1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package costexplorer
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/service/costexplorer/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// Retrieves the Savings Plans utilization for your account across date ranges
// with daily or monthly granularity. Management account in an organization have
// access to member accounts. You can use GetDimensionValues in SAVINGS_PLANS to
// determine the possible dimension values.
//
// You can't group by any dimension values for GetSavingsPlansUtilization .
func (c *Client) GetSavingsPlansUtilization(ctx context.Context, params *GetSavingsPlansUtilizationInput, optFns ...func(*Options)) (*GetSavingsPlansUtilizationOutput, error) {
if params == nil {
params = &GetSavingsPlansUtilizationInput{}
}
result, metadata, err := c.invokeOperation(ctx, "GetSavingsPlansUtilization", params, optFns, c.addOperationGetSavingsPlansUtilizationMiddlewares)
if err != nil {
return nil, err
}
out := result.(*GetSavingsPlansUtilizationOutput)
out.ResultMetadata = metadata
return out, nil
}
type GetSavingsPlansUtilizationInput struct {
// The time period that you want the usage and costs for. The Start date must be
// within 13 months. The End date must be after the Start date, and before the
// current date. Future dates can't be used as an End date.
//
// This member is required.
TimePeriod *types.DateInterval
// Filters Savings Plans utilization coverage data for active Savings Plans
// dimensions. You can filter data with the following dimensions:
//
// - LINKED_ACCOUNT
//
// - SAVINGS_PLAN_ARN
//
// - SAVINGS_PLANS_TYPE
//
// - REGION
//
// - PAYMENT_OPTION
//
// - INSTANCE_TYPE_FAMILY
//
// GetSavingsPlansUtilization uses the same [Expression] object as the other operations, but
// only AND is supported among each dimension.
//
// [Expression]: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html
Filter *types.Expression
// The granularity of the Amazon Web Services utillization data for your Savings
// Plans.
//
// The GetSavingsPlansUtilization operation supports only DAILY and MONTHLY
// granularities.
Granularity types.Granularity
// The value that you want to sort the data by.
//
// The following values are supported for Key :
//
// - UtilizationPercentage
//
// - TotalCommitment
//
// - UsedCommitment
//
// - UnusedCommitment
//
// - NetSavings
//
// The supported values for SortOrder are ASCENDING and DESCENDING .
SortBy *types.SortDefinition
noSmithyDocumentSerde
}
type GetSavingsPlansUtilizationOutput struct {
// The total amount of cost/commitment that you used your Savings Plans,
// regardless of date ranges.
//
// This member is required.
Total *types.SavingsPlansUtilizationAggregates
// The amount of cost/commitment that you used your Savings Plans. You can use it
// to specify date ranges.
SavingsPlansUtilizationsByTime []types.SavingsPlansUtilizationByTime
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationGetSavingsPlansUtilizationMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetSavingsPlansUtilization{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetSavingsPlansUtilization{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "GetSavingsPlansUtilization"); err != nil {
return fmt.Errorf("add protocol finalizers: %v", err)
}
if err = addlegacyEndpointContextSetter(stack, options); err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = addClientRequestID(stack); err != nil {
return err
}
if err = addComputeContentLength(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = addComputePayloadSHA256(stack); err != nil {
return err
}
if err = addRetry(stack, options); err != nil {
return err
}
if err = addRawResponseToMetadata(stack); err != nil {
return err
}
if err = addRecordResponseTiming(stack); err != nil {
return err
}
if err = addClientUserAgent(stack, options); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addTimeOffsetBuild(stack, c); err != nil {
return err
}
if err = addUserAgentRetryMode(stack, options); err != nil {
return err
}
if err = addOpGetSavingsPlansUtilizationValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetSavingsPlansUtilization(options.Region), middleware.Before); err != nil {
return err
}
if err = addRecursionDetection(stack); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
if err = addDisableHTTPSMiddleware(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opGetSavingsPlansUtilization(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "GetSavingsPlansUtilization",
}
}
|