// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package costexplorer import ( "fmt" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/private/protocol" "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" ) const opCreateAnomalyMonitor = "CreateAnomalyMonitor" // CreateAnomalyMonitorRequest generates a "aws/request.Request" representing the // client's request for the CreateAnomalyMonitor operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See CreateAnomalyMonitor for more information on using the CreateAnomalyMonitor // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the CreateAnomalyMonitorRequest method. // req, resp := client.CreateAnomalyMonitorRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitor func (c *CostExplorer) CreateAnomalyMonitorRequest(input *CreateAnomalyMonitorInput) (req *request.Request, output *CreateAnomalyMonitorOutput) { op := &request.Operation{ Name: opCreateAnomalyMonitor, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &CreateAnomalyMonitorInput{} } output = &CreateAnomalyMonitorOutput{} req = c.newRequest(op, input, output) return } // CreateAnomalyMonitor API operation for AWS Cost Explorer Service. // // Creates a new cost anomaly detection monitor with the requested type and // monitor specification. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation CreateAnomalyMonitor for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalyMonitor func (c *CostExplorer) CreateAnomalyMonitor(input *CreateAnomalyMonitorInput) (*CreateAnomalyMonitorOutput, error) { req, out := c.CreateAnomalyMonitorRequest(input) return out, req.Send() } // CreateAnomalyMonitorWithContext is the same as CreateAnomalyMonitor with the addition of // the ability to pass a context and additional request options. // // See CreateAnomalyMonitor for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) CreateAnomalyMonitorWithContext(ctx aws.Context, input *CreateAnomalyMonitorInput, opts ...request.Option) (*CreateAnomalyMonitorOutput, error) { req, out := c.CreateAnomalyMonitorRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opCreateAnomalySubscription = "CreateAnomalySubscription" // CreateAnomalySubscriptionRequest generates a "aws/request.Request" representing the // client's request for the CreateAnomalySubscription operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See CreateAnomalySubscription for more information on using the CreateAnomalySubscription // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the CreateAnomalySubscriptionRequest method. // req, resp := client.CreateAnomalySubscriptionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscription func (c *CostExplorer) CreateAnomalySubscriptionRequest(input *CreateAnomalySubscriptionInput) (req *request.Request, output *CreateAnomalySubscriptionOutput) { op := &request.Operation{ Name: opCreateAnomalySubscription, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &CreateAnomalySubscriptionInput{} } output = &CreateAnomalySubscriptionOutput{} req = c.newRequest(op, input, output) return } // CreateAnomalySubscription API operation for AWS Cost Explorer Service. // // Adds a subscription to a cost anomaly detection monitor. You can use each // subscription to define subscribers with email or SNS notifications. Email // subscribers can set a dollar threshold and a time frequency for receiving // notifications. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation CreateAnomalySubscription for usage and error information. // // Returned Error Types: // * UnknownMonitorException // The cost anomaly monitor does not exist for the account. // // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateAnomalySubscription func (c *CostExplorer) CreateAnomalySubscription(input *CreateAnomalySubscriptionInput) (*CreateAnomalySubscriptionOutput, error) { req, out := c.CreateAnomalySubscriptionRequest(input) return out, req.Send() } // CreateAnomalySubscriptionWithContext is the same as CreateAnomalySubscription with the addition of // the ability to pass a context and additional request options. // // See CreateAnomalySubscription for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) CreateAnomalySubscriptionWithContext(ctx aws.Context, input *CreateAnomalySubscriptionInput, opts ...request.Option) (*CreateAnomalySubscriptionOutput, error) { req, out := c.CreateAnomalySubscriptionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opCreateCostCategoryDefinition = "CreateCostCategoryDefinition" // CreateCostCategoryDefinitionRequest generates a "aws/request.Request" representing the // client's request for the CreateCostCategoryDefinition operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See CreateCostCategoryDefinition for more information on using the CreateCostCategoryDefinition // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the CreateCostCategoryDefinitionRequest method. // req, resp := client.CreateCostCategoryDefinitionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition func (c *CostExplorer) CreateCostCategoryDefinitionRequest(input *CreateCostCategoryDefinitionInput) (req *request.Request, output *CreateCostCategoryDefinitionOutput) { op := &request.Operation{ Name: opCreateCostCategoryDefinition, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &CreateCostCategoryDefinitionInput{} } output = &CreateCostCategoryDefinitionOutput{} req = c.newRequest(op, input, output) return } // CreateCostCategoryDefinition API operation for AWS Cost Explorer Service. // // Creates a new Cost Category with the requested name and rules. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation CreateCostCategoryDefinition for usage and error information. // // Returned Error Types: // * ServiceQuotaExceededException // You've reached the limit on the number of resources you can create, or exceeded // the size of an individual resource. // // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition func (c *CostExplorer) CreateCostCategoryDefinition(input *CreateCostCategoryDefinitionInput) (*CreateCostCategoryDefinitionOutput, error) { req, out := c.CreateCostCategoryDefinitionRequest(input) return out, req.Send() } // CreateCostCategoryDefinitionWithContext is the same as CreateCostCategoryDefinition with the addition of // the ability to pass a context and additional request options. // // See CreateCostCategoryDefinition for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) CreateCostCategoryDefinitionWithContext(ctx aws.Context, input *CreateCostCategoryDefinitionInput, opts ...request.Option) (*CreateCostCategoryDefinitionOutput, error) { req, out := c.CreateCostCategoryDefinitionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opDeleteAnomalyMonitor = "DeleteAnomalyMonitor" // DeleteAnomalyMonitorRequest generates a "aws/request.Request" representing the // client's request for the DeleteAnomalyMonitor operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See DeleteAnomalyMonitor for more information on using the DeleteAnomalyMonitor // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the DeleteAnomalyMonitorRequest method. // req, resp := client.DeleteAnomalyMonitorRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitor func (c *CostExplorer) DeleteAnomalyMonitorRequest(input *DeleteAnomalyMonitorInput) (req *request.Request, output *DeleteAnomalyMonitorOutput) { op := &request.Operation{ Name: opDeleteAnomalyMonitor, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &DeleteAnomalyMonitorInput{} } output = &DeleteAnomalyMonitorOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } // DeleteAnomalyMonitor API operation for AWS Cost Explorer Service. // // Deletes a cost anomaly monitor. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation DeleteAnomalyMonitor for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * UnknownMonitorException // The cost anomaly monitor does not exist for the account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalyMonitor func (c *CostExplorer) DeleteAnomalyMonitor(input *DeleteAnomalyMonitorInput) (*DeleteAnomalyMonitorOutput, error) { req, out := c.DeleteAnomalyMonitorRequest(input) return out, req.Send() } // DeleteAnomalyMonitorWithContext is the same as DeleteAnomalyMonitor with the addition of // the ability to pass a context and additional request options. // // See DeleteAnomalyMonitor for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) DeleteAnomalyMonitorWithContext(ctx aws.Context, input *DeleteAnomalyMonitorInput, opts ...request.Option) (*DeleteAnomalyMonitorOutput, error) { req, out := c.DeleteAnomalyMonitorRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opDeleteAnomalySubscription = "DeleteAnomalySubscription" // DeleteAnomalySubscriptionRequest generates a "aws/request.Request" representing the // client's request for the DeleteAnomalySubscription operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See DeleteAnomalySubscription for more information on using the DeleteAnomalySubscription // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the DeleteAnomalySubscriptionRequest method. // req, resp := client.DeleteAnomalySubscriptionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscription func (c *CostExplorer) DeleteAnomalySubscriptionRequest(input *DeleteAnomalySubscriptionInput) (req *request.Request, output *DeleteAnomalySubscriptionOutput) { op := &request.Operation{ Name: opDeleteAnomalySubscription, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &DeleteAnomalySubscriptionInput{} } output = &DeleteAnomalySubscriptionOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } // DeleteAnomalySubscription API operation for AWS Cost Explorer Service. // // Deletes a cost anomaly subscription. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation DeleteAnomalySubscription for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * UnknownSubscriptionException // The cost anomaly subscription does not exist for the account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteAnomalySubscription func (c *CostExplorer) DeleteAnomalySubscription(input *DeleteAnomalySubscriptionInput) (*DeleteAnomalySubscriptionOutput, error) { req, out := c.DeleteAnomalySubscriptionRequest(input) return out, req.Send() } // DeleteAnomalySubscriptionWithContext is the same as DeleteAnomalySubscription with the addition of // the ability to pass a context and additional request options. // // See DeleteAnomalySubscription for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) DeleteAnomalySubscriptionWithContext(ctx aws.Context, input *DeleteAnomalySubscriptionInput, opts ...request.Option) (*DeleteAnomalySubscriptionOutput, error) { req, out := c.DeleteAnomalySubscriptionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opDeleteCostCategoryDefinition = "DeleteCostCategoryDefinition" // DeleteCostCategoryDefinitionRequest generates a "aws/request.Request" representing the // client's request for the DeleteCostCategoryDefinition operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See DeleteCostCategoryDefinition for more information on using the DeleteCostCategoryDefinition // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the DeleteCostCategoryDefinitionRequest method. // req, resp := client.DeleteCostCategoryDefinitionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition func (c *CostExplorer) DeleteCostCategoryDefinitionRequest(input *DeleteCostCategoryDefinitionInput) (req *request.Request, output *DeleteCostCategoryDefinitionOutput) { op := &request.Operation{ Name: opDeleteCostCategoryDefinition, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &DeleteCostCategoryDefinitionInput{} } output = &DeleteCostCategoryDefinitionOutput{} req = c.newRequest(op, input, output) return } // DeleteCostCategoryDefinition API operation for AWS Cost Explorer Service. // // Deletes a Cost Category. Expenses from this month going forward will no longer // be categorized with this Cost Category. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation DeleteCostCategoryDefinition for usage and error information. // // Returned Error Types: // * ResourceNotFoundException // The specified ARN in the request doesn't exist. // // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition func (c *CostExplorer) DeleteCostCategoryDefinition(input *DeleteCostCategoryDefinitionInput) (*DeleteCostCategoryDefinitionOutput, error) { req, out := c.DeleteCostCategoryDefinitionRequest(input) return out, req.Send() } // DeleteCostCategoryDefinitionWithContext is the same as DeleteCostCategoryDefinition with the addition of // the ability to pass a context and additional request options. // // See DeleteCostCategoryDefinition for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) DeleteCostCategoryDefinitionWithContext(ctx aws.Context, input *DeleteCostCategoryDefinitionInput, opts ...request.Option) (*DeleteCostCategoryDefinitionOutput, error) { req, out := c.DeleteCostCategoryDefinitionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opDescribeCostCategoryDefinition = "DescribeCostCategoryDefinition" // DescribeCostCategoryDefinitionRequest generates a "aws/request.Request" representing the // client's request for the DescribeCostCategoryDefinition operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See DescribeCostCategoryDefinition for more information on using the DescribeCostCategoryDefinition // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the DescribeCostCategoryDefinitionRequest method. // req, resp := client.DescribeCostCategoryDefinitionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition func (c *CostExplorer) DescribeCostCategoryDefinitionRequest(input *DescribeCostCategoryDefinitionInput) (req *request.Request, output *DescribeCostCategoryDefinitionOutput) { op := &request.Operation{ Name: opDescribeCostCategoryDefinition, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &DescribeCostCategoryDefinitionInput{} } output = &DescribeCostCategoryDefinitionOutput{} req = c.newRequest(op, input, output) return } // DescribeCostCategoryDefinition API operation for AWS Cost Explorer Service. // // Returns the name, ARN, rules, definition, and effective dates of a Cost Category // that's defined in the account. // // You have the option to use EffectiveOn to return a Cost Category that is // active on a specific date. If there is no EffectiveOn specified, you’ll // see a Cost Category that is effective on the current date. If Cost Category // is still effective, EffectiveEnd is omitted in the response. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation DescribeCostCategoryDefinition for usage and error information. // // Returned Error Types: // * ResourceNotFoundException // The specified ARN in the request doesn't exist. // // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition func (c *CostExplorer) DescribeCostCategoryDefinition(input *DescribeCostCategoryDefinitionInput) (*DescribeCostCategoryDefinitionOutput, error) { req, out := c.DescribeCostCategoryDefinitionRequest(input) return out, req.Send() } // DescribeCostCategoryDefinitionWithContext is the same as DescribeCostCategoryDefinition with the addition of // the ability to pass a context and additional request options. // // See DescribeCostCategoryDefinition for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) DescribeCostCategoryDefinitionWithContext(ctx aws.Context, input *DescribeCostCategoryDefinitionInput, opts ...request.Option) (*DescribeCostCategoryDefinitionOutput, error) { req, out := c.DescribeCostCategoryDefinitionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetAnomalies = "GetAnomalies" // GetAnomaliesRequest generates a "aws/request.Request" representing the // client's request for the GetAnomalies operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetAnomalies for more information on using the GetAnomalies // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetAnomaliesRequest method. // req, resp := client.GetAnomaliesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalies func (c *CostExplorer) GetAnomaliesRequest(input *GetAnomaliesInput) (req *request.Request, output *GetAnomaliesOutput) { op := &request.Operation{ Name: opGetAnomalies, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetAnomaliesInput{} } output = &GetAnomaliesOutput{} req = c.newRequest(op, input, output) return } // GetAnomalies API operation for AWS Cost Explorer Service. // // Retrieves all of the cost anomalies detected on your account, during the // time period specified by the DateInterval object. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetAnomalies for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalies func (c *CostExplorer) GetAnomalies(input *GetAnomaliesInput) (*GetAnomaliesOutput, error) { req, out := c.GetAnomaliesRequest(input) return out, req.Send() } // GetAnomaliesWithContext is the same as GetAnomalies with the addition of // the ability to pass a context and additional request options. // // See GetAnomalies for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetAnomaliesWithContext(ctx aws.Context, input *GetAnomaliesInput, opts ...request.Option) (*GetAnomaliesOutput, error) { req, out := c.GetAnomaliesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetAnomalyMonitors = "GetAnomalyMonitors" // GetAnomalyMonitorsRequest generates a "aws/request.Request" representing the // client's request for the GetAnomalyMonitors operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetAnomalyMonitors for more information on using the GetAnomalyMonitors // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetAnomalyMonitorsRequest method. // req, resp := client.GetAnomalyMonitorsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitors func (c *CostExplorer) GetAnomalyMonitorsRequest(input *GetAnomalyMonitorsInput) (req *request.Request, output *GetAnomalyMonitorsOutput) { op := &request.Operation{ Name: opGetAnomalyMonitors, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetAnomalyMonitorsInput{} } output = &GetAnomalyMonitorsOutput{} req = c.newRequest(op, input, output) return } // GetAnomalyMonitors API operation for AWS Cost Explorer Service. // // Retrieves the cost anomaly monitor definitions for your account. You can // filter using a list of cost anomaly monitor Amazon Resource Names (ARNs). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetAnomalyMonitors for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * UnknownMonitorException // The cost anomaly monitor does not exist for the account. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalyMonitors func (c *CostExplorer) GetAnomalyMonitors(input *GetAnomalyMonitorsInput) (*GetAnomalyMonitorsOutput, error) { req, out := c.GetAnomalyMonitorsRequest(input) return out, req.Send() } // GetAnomalyMonitorsWithContext is the same as GetAnomalyMonitors with the addition of // the ability to pass a context and additional request options. // // See GetAnomalyMonitors for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetAnomalyMonitorsWithContext(ctx aws.Context, input *GetAnomalyMonitorsInput, opts ...request.Option) (*GetAnomalyMonitorsOutput, error) { req, out := c.GetAnomalyMonitorsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetAnomalySubscriptions = "GetAnomalySubscriptions" // GetAnomalySubscriptionsRequest generates a "aws/request.Request" representing the // client's request for the GetAnomalySubscriptions operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetAnomalySubscriptions for more information on using the GetAnomalySubscriptions // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetAnomalySubscriptionsRequest method. // req, resp := client.GetAnomalySubscriptionsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptions func (c *CostExplorer) GetAnomalySubscriptionsRequest(input *GetAnomalySubscriptionsInput) (req *request.Request, output *GetAnomalySubscriptionsOutput) { op := &request.Operation{ Name: opGetAnomalySubscriptions, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetAnomalySubscriptionsInput{} } output = &GetAnomalySubscriptionsOutput{} req = c.newRequest(op, input, output) return } // GetAnomalySubscriptions API operation for AWS Cost Explorer Service. // // Retrieves the cost anomaly subscription objects for your account. You can // filter using a list of cost anomaly monitor Amazon Resource Names (ARNs). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetAnomalySubscriptions for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * UnknownSubscriptionException // The cost anomaly subscription does not exist for the account. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetAnomalySubscriptions func (c *CostExplorer) GetAnomalySubscriptions(input *GetAnomalySubscriptionsInput) (*GetAnomalySubscriptionsOutput, error) { req, out := c.GetAnomalySubscriptionsRequest(input) return out, req.Send() } // GetAnomalySubscriptionsWithContext is the same as GetAnomalySubscriptions with the addition of // the ability to pass a context and additional request options. // // See GetAnomalySubscriptions for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetAnomalySubscriptionsWithContext(ctx aws.Context, input *GetAnomalySubscriptionsInput, opts ...request.Option) (*GetAnomalySubscriptionsOutput, error) { req, out := c.GetAnomalySubscriptionsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetCostAndUsage = "GetCostAndUsage" // GetCostAndUsageRequest generates a "aws/request.Request" representing the // client's request for the GetCostAndUsage operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetCostAndUsage for more information on using the GetCostAndUsage // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetCostAndUsageRequest method. // req, resp := client.GetCostAndUsageRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage func (c *CostExplorer) GetCostAndUsageRequest(input *GetCostAndUsageInput) (req *request.Request, output *GetCostAndUsageOutput) { op := &request.Operation{ Name: opGetCostAndUsage, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetCostAndUsageInput{} } output = &GetCostAndUsageOutput{} req = c.newRequest(op, input, output) return } // GetCostAndUsage API operation for AWS Cost Explorer Service. // // Retrieves cost and usage metrics for your account. You can specify which // cost and usage-related metric, such as BlendedCosts or UsageQuantity, that // you want the request to return. You can also filter and group your data by // various dimensions, such as SERVICE or AZ, in a specific time range. For // a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) // operation. Management account in an organization in AWS Organizations have // access to all member accounts. // // For information about filter limitations, see Quotas and restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-limits.html) // in the Billing and Cost Management User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetCostAndUsage for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * BillExpirationException // The requested report expired. Update the date interval and try again. // // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // * RequestChangedException // Your request parameters changed between pages. Try again with the old parameters // or without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage func (c *CostExplorer) GetCostAndUsage(input *GetCostAndUsageInput) (*GetCostAndUsageOutput, error) { req, out := c.GetCostAndUsageRequest(input) return out, req.Send() } // GetCostAndUsageWithContext is the same as GetCostAndUsage with the addition of // the ability to pass a context and additional request options. // // See GetCostAndUsage for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetCostAndUsageWithContext(ctx aws.Context, input *GetCostAndUsageInput, opts ...request.Option) (*GetCostAndUsageOutput, error) { req, out := c.GetCostAndUsageRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetCostAndUsageWithResources = "GetCostAndUsageWithResources" // GetCostAndUsageWithResourcesRequest generates a "aws/request.Request" representing the // client's request for the GetCostAndUsageWithResources operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetCostAndUsageWithResources for more information on using the GetCostAndUsageWithResources // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetCostAndUsageWithResourcesRequest method. // req, resp := client.GetCostAndUsageWithResourcesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources func (c *CostExplorer) GetCostAndUsageWithResourcesRequest(input *GetCostAndUsageWithResourcesInput) (req *request.Request, output *GetCostAndUsageWithResourcesOutput) { op := &request.Operation{ Name: opGetCostAndUsageWithResources, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetCostAndUsageWithResourcesInput{} } output = &GetCostAndUsageWithResourcesOutput{} req = c.newRequest(op, input, output) return } // GetCostAndUsageWithResources API operation for AWS Cost Explorer Service. // // Retrieves cost and usage metrics with resources for your account. You can // specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, // that you want the request to return. You can also filter and group your data // by various dimensions, such as SERVICE or AZ, in a specific time range. For // a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) // operation. Management account in an organization in AWS Organizations have // access to all member accounts. This API is currently available for the Amazon // Elastic Compute Cloud – Compute service only. // // This is an opt-in only feature. You can enable this feature from the Cost // Explorer Settings page. For information on how to access the Settings page, // see Controlling Access for Cost Explorer (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-access.html) // in the AWS Billing and Cost Management User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetCostAndUsageWithResources for usage and error information. // // Returned Error Types: // * DataUnavailableException // The requested data is unavailable. // // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * BillExpirationException // The requested report expired. Update the date interval and try again. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // * RequestChangedException // Your request parameters changed between pages. Try again with the old parameters // or without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources func (c *CostExplorer) GetCostAndUsageWithResources(input *GetCostAndUsageWithResourcesInput) (*GetCostAndUsageWithResourcesOutput, error) { req, out := c.GetCostAndUsageWithResourcesRequest(input) return out, req.Send() } // GetCostAndUsageWithResourcesWithContext is the same as GetCostAndUsageWithResources with the addition of // the ability to pass a context and additional request options. // // See GetCostAndUsageWithResources for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetCostAndUsageWithResourcesWithContext(ctx aws.Context, input *GetCostAndUsageWithResourcesInput, opts ...request.Option) (*GetCostAndUsageWithResourcesOutput, error) { req, out := c.GetCostAndUsageWithResourcesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetCostCategories = "GetCostCategories" // GetCostCategoriesRequest generates a "aws/request.Request" representing the // client's request for the GetCostCategories operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetCostCategories for more information on using the GetCostCategories // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetCostCategoriesRequest method. // req, resp := client.GetCostCategoriesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategories func (c *CostExplorer) GetCostCategoriesRequest(input *GetCostCategoriesInput) (req *request.Request, output *GetCostCategoriesOutput) { op := &request.Operation{ Name: opGetCostCategories, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetCostCategoriesInput{} } output = &GetCostCategoriesOutput{} req = c.newRequest(op, input, output) return } // GetCostCategories API operation for AWS Cost Explorer Service. // // Retrieves an array of Cost Category names and values incurred cost. // // If some Cost Category names and values are not associated with any cost, // they will not be returned by this API. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetCostCategories for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * BillExpirationException // The requested report expired. Update the date interval and try again. // // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // * RequestChangedException // Your request parameters changed between pages. Try again with the old parameters // or without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostCategories func (c *CostExplorer) GetCostCategories(input *GetCostCategoriesInput) (*GetCostCategoriesOutput, error) { req, out := c.GetCostCategoriesRequest(input) return out, req.Send() } // GetCostCategoriesWithContext is the same as GetCostCategories with the addition of // the ability to pass a context and additional request options. // // See GetCostCategories for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetCostCategoriesWithContext(ctx aws.Context, input *GetCostCategoriesInput, opts ...request.Option) (*GetCostCategoriesOutput, error) { req, out := c.GetCostCategoriesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetCostForecast = "GetCostForecast" // GetCostForecastRequest generates a "aws/request.Request" representing the // client's request for the GetCostForecast operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetCostForecast for more information on using the GetCostForecast // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetCostForecastRequest method. // req, resp := client.GetCostForecastRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast func (c *CostExplorer) GetCostForecastRequest(input *GetCostForecastInput) (req *request.Request, output *GetCostForecastOutput) { op := &request.Operation{ Name: opGetCostForecast, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetCostForecastInput{} } output = &GetCostForecastOutput{} req = c.newRequest(op, input, output) return } // GetCostForecast API operation for AWS Cost Explorer Service. // // Retrieves a forecast for how much Amazon Web Services predicts that you will // spend over the forecast time period that you select, based on your past costs. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetCostForecast for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * DataUnavailableException // The requested data is unavailable. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast func (c *CostExplorer) GetCostForecast(input *GetCostForecastInput) (*GetCostForecastOutput, error) { req, out := c.GetCostForecastRequest(input) return out, req.Send() } // GetCostForecastWithContext is the same as GetCostForecast with the addition of // the ability to pass a context and additional request options. // // See GetCostForecast for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetCostForecastWithContext(ctx aws.Context, input *GetCostForecastInput, opts ...request.Option) (*GetCostForecastOutput, error) { req, out := c.GetCostForecastRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetDimensionValues = "GetDimensionValues" // GetDimensionValuesRequest generates a "aws/request.Request" representing the // client's request for the GetDimensionValues operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetDimensionValues for more information on using the GetDimensionValues // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetDimensionValuesRequest method. // req, resp := client.GetDimensionValuesRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues func (c *CostExplorer) GetDimensionValuesRequest(input *GetDimensionValuesInput) (req *request.Request, output *GetDimensionValuesOutput) { op := &request.Operation{ Name: opGetDimensionValues, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetDimensionValuesInput{} } output = &GetDimensionValuesOutput{} req = c.newRequest(op, input, output) return } // GetDimensionValues API operation for AWS Cost Explorer Service. // // Retrieves all available filter values for a specified filter over a period // of time. You can search the dimension values for an arbitrary string. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetDimensionValues for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * BillExpirationException // The requested report expired. Update the date interval and try again. // // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // * RequestChangedException // Your request parameters changed between pages. Try again with the old parameters // or without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues func (c *CostExplorer) GetDimensionValues(input *GetDimensionValuesInput) (*GetDimensionValuesOutput, error) { req, out := c.GetDimensionValuesRequest(input) return out, req.Send() } // GetDimensionValuesWithContext is the same as GetDimensionValues with the addition of // the ability to pass a context and additional request options. // // See GetDimensionValues for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetDimensionValuesWithContext(ctx aws.Context, input *GetDimensionValuesInput, opts ...request.Option) (*GetDimensionValuesOutput, error) { req, out := c.GetDimensionValuesRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetReservationCoverage = "GetReservationCoverage" // GetReservationCoverageRequest generates a "aws/request.Request" representing the // client's request for the GetReservationCoverage operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetReservationCoverage for more information on using the GetReservationCoverage // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetReservationCoverageRequest method. // req, resp := client.GetReservationCoverageRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage func (c *CostExplorer) GetReservationCoverageRequest(input *GetReservationCoverageInput) (req *request.Request, output *GetReservationCoverageOutput) { op := &request.Operation{ Name: opGetReservationCoverage, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetReservationCoverageInput{} } output = &GetReservationCoverageOutput{} req = c.newRequest(op, input, output) return } // GetReservationCoverage API operation for AWS Cost Explorer Service. // // Retrieves the reservation coverage for your account. This enables you to // see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon // Relational Database Service, or Amazon Redshift usage is covered by a reservation. // An organization's management account can see the coverage of the associated // member accounts. This supports dimensions, Cost Categories, and nested expressions. // For any time period, you can filter data about reservation usage by the following // dimensions: // // * AZ // // * CACHE_ENGINE // // * DATABASE_ENGINE // // * DEPLOYMENT_OPTION // // * INSTANCE_TYPE // // * LINKED_ACCOUNT // // * OPERATING_SYSTEM // // * PLATFORM // // * REGION // // * SERVICE // // * TAG // // * TENANCY // // To determine valid values for a dimension, use the GetDimensionValues operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetReservationCoverage for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage func (c *CostExplorer) GetReservationCoverage(input *GetReservationCoverageInput) (*GetReservationCoverageOutput, error) { req, out := c.GetReservationCoverageRequest(input) return out, req.Send() } // GetReservationCoverageWithContext is the same as GetReservationCoverage with the addition of // the ability to pass a context and additional request options. // // See GetReservationCoverage for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetReservationCoverageWithContext(ctx aws.Context, input *GetReservationCoverageInput, opts ...request.Option) (*GetReservationCoverageOutput, error) { req, out := c.GetReservationCoverageRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetReservationPurchaseRecommendation = "GetReservationPurchaseRecommendation" // GetReservationPurchaseRecommendationRequest generates a "aws/request.Request" representing the // client's request for the GetReservationPurchaseRecommendation operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetReservationPurchaseRecommendation for more information on using the GetReservationPurchaseRecommendation // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetReservationPurchaseRecommendationRequest method. // req, resp := client.GetReservationPurchaseRecommendationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation func (c *CostExplorer) GetReservationPurchaseRecommendationRequest(input *GetReservationPurchaseRecommendationInput) (req *request.Request, output *GetReservationPurchaseRecommendationOutput) { op := &request.Operation{ Name: opGetReservationPurchaseRecommendation, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetReservationPurchaseRecommendationInput{} } output = &GetReservationPurchaseRecommendationOutput{} req = c.newRequest(op, input, output) return } // GetReservationPurchaseRecommendation API operation for AWS Cost Explorer Service. // // Gets recommendations for which reservations to purchase. These recommendations // could help you reduce your costs. Reservations provide a discounted hourly // rate (up to 75%) compared to On-Demand pricing. // // AWS generates your recommendations by identifying your On-Demand usage during // a specific time period and collecting your usage into categories that are // eligible for a reservation. After AWS has these categories, it simulates // every combination of reservations in each category of usage to identify the // best number of each type of RI to purchase to maximize your estimated savings. // // For example, AWS automatically aggregates your Amazon EC2 Linux, shared tenancy, // and c4 family usage in the US West (Oregon) Region and recommends that you // buy size-flexible regional reservations to apply to the c4 family usage. // AWS recommends the smallest size instance in an instance family. This makes // it easier to purchase a size-flexible RI. AWS also shows the equal number // of normalized units so that you can purchase any instance size that you want. // For this example, your RI recommendation would be for c4.large because that // is the smallest size instance in the c4 instance family. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetReservationPurchaseRecommendation for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation func (c *CostExplorer) GetReservationPurchaseRecommendation(input *GetReservationPurchaseRecommendationInput) (*GetReservationPurchaseRecommendationOutput, error) { req, out := c.GetReservationPurchaseRecommendationRequest(input) return out, req.Send() } // GetReservationPurchaseRecommendationWithContext is the same as GetReservationPurchaseRecommendation with the addition of // the ability to pass a context and additional request options. // // See GetReservationPurchaseRecommendation for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetReservationPurchaseRecommendationWithContext(ctx aws.Context, input *GetReservationPurchaseRecommendationInput, opts ...request.Option) (*GetReservationPurchaseRecommendationOutput, error) { req, out := c.GetReservationPurchaseRecommendationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetReservationUtilization = "GetReservationUtilization" // GetReservationUtilizationRequest generates a "aws/request.Request" representing the // client's request for the GetReservationUtilization operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetReservationUtilization for more information on using the GetReservationUtilization // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetReservationUtilizationRequest method. // req, resp := client.GetReservationUtilizationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization func (c *CostExplorer) GetReservationUtilizationRequest(input *GetReservationUtilizationInput) (req *request.Request, output *GetReservationUtilizationOutput) { op := &request.Operation{ Name: opGetReservationUtilization, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetReservationUtilizationInput{} } output = &GetReservationUtilizationOutput{} req = c.newRequest(op, input, output) return } // GetReservationUtilization API operation for AWS Cost Explorer Service. // // Retrieves the reservation utilization for your account. Management account // in an organization have access to member accounts. You can filter data by // dimensions in a time period. You can use GetDimensionValues to determine // the possible dimension values. Currently, you can group only by SUBSCRIPTION_ID. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetReservationUtilization for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization func (c *CostExplorer) GetReservationUtilization(input *GetReservationUtilizationInput) (*GetReservationUtilizationOutput, error) { req, out := c.GetReservationUtilizationRequest(input) return out, req.Send() } // GetReservationUtilizationWithContext is the same as GetReservationUtilization with the addition of // the ability to pass a context and additional request options. // // See GetReservationUtilization for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetReservationUtilizationWithContext(ctx aws.Context, input *GetReservationUtilizationInput, opts ...request.Option) (*GetReservationUtilizationOutput, error) { req, out := c.GetReservationUtilizationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetRightsizingRecommendation = "GetRightsizingRecommendation" // GetRightsizingRecommendationRequest generates a "aws/request.Request" representing the // client's request for the GetRightsizingRecommendation operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetRightsizingRecommendation for more information on using the GetRightsizingRecommendation // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetRightsizingRecommendationRequest method. // req, resp := client.GetRightsizingRecommendationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation func (c *CostExplorer) GetRightsizingRecommendationRequest(input *GetRightsizingRecommendationInput) (req *request.Request, output *GetRightsizingRecommendationOutput) { op := &request.Operation{ Name: opGetRightsizingRecommendation, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetRightsizingRecommendationInput{} } output = &GetRightsizingRecommendationOutput{} req = c.newRequest(op, input, output) return } // GetRightsizingRecommendation API operation for AWS Cost Explorer Service. // // Creates recommendations that help you save cost by identifying idle and underutilized // Amazon EC2 instances. // // Recommendations are generated to either downsize or terminate instances, // along with providing savings detail and metrics. For details on calculation // and function, see Optimizing Your Cost with Rightsizing Recommendations (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html) // in the AWS Billing and Cost Management User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetRightsizingRecommendation for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation func (c *CostExplorer) GetRightsizingRecommendation(input *GetRightsizingRecommendationInput) (*GetRightsizingRecommendationOutput, error) { req, out := c.GetRightsizingRecommendationRequest(input) return out, req.Send() } // GetRightsizingRecommendationWithContext is the same as GetRightsizingRecommendation with the addition of // the ability to pass a context and additional request options. // // See GetRightsizingRecommendation for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetRightsizingRecommendationWithContext(ctx aws.Context, input *GetRightsizingRecommendationInput, opts ...request.Option) (*GetRightsizingRecommendationOutput, error) { req, out := c.GetRightsizingRecommendationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetSavingsPlansCoverage = "GetSavingsPlansCoverage" // GetSavingsPlansCoverageRequest generates a "aws/request.Request" representing the // client's request for the GetSavingsPlansCoverage operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetSavingsPlansCoverage for more information on using the GetSavingsPlansCoverage // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetSavingsPlansCoverageRequest method. // req, resp := client.GetSavingsPlansCoverageRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage func (c *CostExplorer) GetSavingsPlansCoverageRequest(input *GetSavingsPlansCoverageInput) (req *request.Request, output *GetSavingsPlansCoverageOutput) { op := &request.Operation{ Name: opGetSavingsPlansCoverage, HTTPMethod: "POST", HTTPPath: "/", Paginator: &request.Paginator{ InputTokens: []string{"NextToken"}, OutputTokens: []string{"NextToken"}, LimitToken: "MaxResults", TruncationToken: "", }, } if input == nil { input = &GetSavingsPlansCoverageInput{} } output = &GetSavingsPlansCoverageOutput{} req = c.newRequest(op, input, output) return } // GetSavingsPlansCoverage API operation for AWS Cost Explorer Service. // // Retrieves the Savings Plans covered for your account. This enables you to // see how much of your cost is covered by a Savings Plan. An organization’s // management account can see the coverage of the associated member accounts. // This supports dimensions, Cost Categories, and nested expressions. For any // time period, you can filter data for Savings Plans usage with the following // dimensions: // // * LINKED_ACCOUNT // // * REGION // // * SERVICE // // * INSTANCE_FAMILY // // To determine valid values for a dimension, use the GetDimensionValues operation. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetSavingsPlansCoverage for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage func (c *CostExplorer) GetSavingsPlansCoverage(input *GetSavingsPlansCoverageInput) (*GetSavingsPlansCoverageOutput, error) { req, out := c.GetSavingsPlansCoverageRequest(input) return out, req.Send() } // GetSavingsPlansCoverageWithContext is the same as GetSavingsPlansCoverage with the addition of // the ability to pass a context and additional request options. // // See GetSavingsPlansCoverage for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetSavingsPlansCoverageWithContext(ctx aws.Context, input *GetSavingsPlansCoverageInput, opts ...request.Option) (*GetSavingsPlansCoverageOutput, error) { req, out := c.GetSavingsPlansCoverageRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } // GetSavingsPlansCoveragePages iterates over the pages of a GetSavingsPlansCoverage operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // // See GetSavingsPlansCoverage method for more information on how to use this operation. // // Note: This operation can generate multiple requests to a service. // // // Example iterating over at most 3 pages of a GetSavingsPlansCoverage operation. // pageNum := 0 // err := client.GetSavingsPlansCoveragePages(params, // func(page *costexplorer.GetSavingsPlansCoverageOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) // func (c *CostExplorer) GetSavingsPlansCoveragePages(input *GetSavingsPlansCoverageInput, fn func(*GetSavingsPlansCoverageOutput, bool) bool) error { return c.GetSavingsPlansCoveragePagesWithContext(aws.BackgroundContext(), input, fn) } // GetSavingsPlansCoveragePagesWithContext same as GetSavingsPlansCoveragePages except // it takes a Context and allows setting request options on the pages. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetSavingsPlansCoveragePagesWithContext(ctx aws.Context, input *GetSavingsPlansCoverageInput, fn func(*GetSavingsPlansCoverageOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { var inCpy *GetSavingsPlansCoverageInput if input != nil { tmp := *input inCpy = &tmp } req, _ := c.GetSavingsPlansCoverageRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil }, } for p.Next() { if !fn(p.Page().(*GetSavingsPlansCoverageOutput), !p.HasNextPage()) { break } } return p.Err() } const opGetSavingsPlansPurchaseRecommendation = "GetSavingsPlansPurchaseRecommendation" // GetSavingsPlansPurchaseRecommendationRequest generates a "aws/request.Request" representing the // client's request for the GetSavingsPlansPurchaseRecommendation operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetSavingsPlansPurchaseRecommendation for more information on using the GetSavingsPlansPurchaseRecommendation // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetSavingsPlansPurchaseRecommendationRequest method. // req, resp := client.GetSavingsPlansPurchaseRecommendationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation func (c *CostExplorer) GetSavingsPlansPurchaseRecommendationRequest(input *GetSavingsPlansPurchaseRecommendationInput) (req *request.Request, output *GetSavingsPlansPurchaseRecommendationOutput) { op := &request.Operation{ Name: opGetSavingsPlansPurchaseRecommendation, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetSavingsPlansPurchaseRecommendationInput{} } output = &GetSavingsPlansPurchaseRecommendationOutput{} req = c.newRequest(op, input, output) return } // GetSavingsPlansPurchaseRecommendation API operation for AWS Cost Explorer Service. // // Retrieves your request parameters, Savings Plan Recommendations Summary and // Details. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetSavingsPlansPurchaseRecommendation for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation func (c *CostExplorer) GetSavingsPlansPurchaseRecommendation(input *GetSavingsPlansPurchaseRecommendationInput) (*GetSavingsPlansPurchaseRecommendationOutput, error) { req, out := c.GetSavingsPlansPurchaseRecommendationRequest(input) return out, req.Send() } // GetSavingsPlansPurchaseRecommendationWithContext is the same as GetSavingsPlansPurchaseRecommendation with the addition of // the ability to pass a context and additional request options. // // See GetSavingsPlansPurchaseRecommendation for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetSavingsPlansPurchaseRecommendationWithContext(ctx aws.Context, input *GetSavingsPlansPurchaseRecommendationInput, opts ...request.Option) (*GetSavingsPlansPurchaseRecommendationOutput, error) { req, out := c.GetSavingsPlansPurchaseRecommendationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetSavingsPlansUtilization = "GetSavingsPlansUtilization" // GetSavingsPlansUtilizationRequest generates a "aws/request.Request" representing the // client's request for the GetSavingsPlansUtilization operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetSavingsPlansUtilization for more information on using the GetSavingsPlansUtilization // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetSavingsPlansUtilizationRequest method. // req, resp := client.GetSavingsPlansUtilizationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization func (c *CostExplorer) GetSavingsPlansUtilizationRequest(input *GetSavingsPlansUtilizationInput) (req *request.Request, output *GetSavingsPlansUtilizationOutput) { op := &request.Operation{ Name: opGetSavingsPlansUtilization, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetSavingsPlansUtilizationInput{} } output = &GetSavingsPlansUtilizationOutput{} req = c.newRequest(op, input, output) return } // GetSavingsPlansUtilization API operation for AWS Cost Explorer Service. // // 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 cannot group by any dimension values for GetSavingsPlansUtilization. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetSavingsPlansUtilization for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * DataUnavailableException // The requested data is unavailable. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization func (c *CostExplorer) GetSavingsPlansUtilization(input *GetSavingsPlansUtilizationInput) (*GetSavingsPlansUtilizationOutput, error) { req, out := c.GetSavingsPlansUtilizationRequest(input) return out, req.Send() } // GetSavingsPlansUtilizationWithContext is the same as GetSavingsPlansUtilization with the addition of // the ability to pass a context and additional request options. // // See GetSavingsPlansUtilization for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetSavingsPlansUtilizationWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationInput, opts ...request.Option) (*GetSavingsPlansUtilizationOutput, error) { req, out := c.GetSavingsPlansUtilizationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetSavingsPlansUtilizationDetails = "GetSavingsPlansUtilizationDetails" // GetSavingsPlansUtilizationDetailsRequest generates a "aws/request.Request" representing the // client's request for the GetSavingsPlansUtilizationDetails operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetSavingsPlansUtilizationDetails for more information on using the GetSavingsPlansUtilizationDetails // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetSavingsPlansUtilizationDetailsRequest method. // req, resp := client.GetSavingsPlansUtilizationDetailsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails func (c *CostExplorer) GetSavingsPlansUtilizationDetailsRequest(input *GetSavingsPlansUtilizationDetailsInput) (req *request.Request, output *GetSavingsPlansUtilizationDetailsOutput) { op := &request.Operation{ Name: opGetSavingsPlansUtilizationDetails, HTTPMethod: "POST", HTTPPath: "/", Paginator: &request.Paginator{ InputTokens: []string{"NextToken"}, OutputTokens: []string{"NextToken"}, LimitToken: "MaxResults", TruncationToken: "", }, } if input == nil { input = &GetSavingsPlansUtilizationDetailsInput{} } output = &GetSavingsPlansUtilizationDetailsOutput{} req = c.newRequest(op, input, output) return } // GetSavingsPlansUtilizationDetails API operation for AWS Cost Explorer Service. // // Retrieves attribute data along with aggregate utilization and savings data // for a given time period. This doesn't support granular or grouped data (daily/monthly) // in response. You can't retrieve data by dates in a single response similar // to GetSavingsPlanUtilization, but you have the option to make multiple calls // to GetSavingsPlanUtilizationDetails by providing individual dates. You can // use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension // values. // // GetSavingsPlanUtilizationDetails internally groups data by SavingsPlansArn. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetSavingsPlansUtilizationDetails for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails func (c *CostExplorer) GetSavingsPlansUtilizationDetails(input *GetSavingsPlansUtilizationDetailsInput) (*GetSavingsPlansUtilizationDetailsOutput, error) { req, out := c.GetSavingsPlansUtilizationDetailsRequest(input) return out, req.Send() } // GetSavingsPlansUtilizationDetailsWithContext is the same as GetSavingsPlansUtilizationDetails with the addition of // the ability to pass a context and additional request options. // // See GetSavingsPlansUtilizationDetails for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetSavingsPlansUtilizationDetailsWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationDetailsInput, opts ...request.Option) (*GetSavingsPlansUtilizationDetailsOutput, error) { req, out := c.GetSavingsPlansUtilizationDetailsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } // GetSavingsPlansUtilizationDetailsPages iterates over the pages of a GetSavingsPlansUtilizationDetails operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // // See GetSavingsPlansUtilizationDetails method for more information on how to use this operation. // // Note: This operation can generate multiple requests to a service. // // // Example iterating over at most 3 pages of a GetSavingsPlansUtilizationDetails operation. // pageNum := 0 // err := client.GetSavingsPlansUtilizationDetailsPages(params, // func(page *costexplorer.GetSavingsPlansUtilizationDetailsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) // func (c *CostExplorer) GetSavingsPlansUtilizationDetailsPages(input *GetSavingsPlansUtilizationDetailsInput, fn func(*GetSavingsPlansUtilizationDetailsOutput, bool) bool) error { return c.GetSavingsPlansUtilizationDetailsPagesWithContext(aws.BackgroundContext(), input, fn) } // GetSavingsPlansUtilizationDetailsPagesWithContext same as GetSavingsPlansUtilizationDetailsPages except // it takes a Context and allows setting request options on the pages. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetSavingsPlansUtilizationDetailsPagesWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationDetailsInput, fn func(*GetSavingsPlansUtilizationDetailsOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { var inCpy *GetSavingsPlansUtilizationDetailsInput if input != nil { tmp := *input inCpy = &tmp } req, _ := c.GetSavingsPlansUtilizationDetailsRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil }, } for p.Next() { if !fn(p.Page().(*GetSavingsPlansUtilizationDetailsOutput), !p.HasNextPage()) { break } } return p.Err() } const opGetTags = "GetTags" // GetTagsRequest generates a "aws/request.Request" representing the // client's request for the GetTags operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetTags for more information on using the GetTags // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetTagsRequest method. // req, resp := client.GetTagsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags func (c *CostExplorer) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) { op := &request.Operation{ Name: opGetTags, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetTagsInput{} } output = &GetTagsOutput{} req = c.newRequest(op, input, output) return } // GetTags API operation for AWS Cost Explorer Service. // // Queries for available tag keys and tag values for a specified period. You // can search the tag values for an arbitrary string. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetTags for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * BillExpirationException // The requested report expired. Update the date interval and try again. // // * DataUnavailableException // The requested data is unavailable. // // * InvalidNextTokenException // The pagination token is invalid. Try again without a pagination token. // // * RequestChangedException // Your request parameters changed between pages. Try again with the old parameters // or without a pagination token. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags func (c *CostExplorer) GetTags(input *GetTagsInput) (*GetTagsOutput, error) { req, out := c.GetTagsRequest(input) return out, req.Send() } // GetTagsWithContext is the same as GetTags with the addition of // the ability to pass a context and additional request options. // // See GetTags for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) { req, out := c.GetTagsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetUsageForecast = "GetUsageForecast" // GetUsageForecastRequest generates a "aws/request.Request" representing the // client's request for the GetUsageForecast operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetUsageForecast for more information on using the GetUsageForecast // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetUsageForecastRequest method. // req, resp := client.GetUsageForecastRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast func (c *CostExplorer) GetUsageForecastRequest(input *GetUsageForecastInput) (req *request.Request, output *GetUsageForecastOutput) { op := &request.Operation{ Name: opGetUsageForecast, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetUsageForecastInput{} } output = &GetUsageForecastOutput{} req = c.newRequest(op, input, output) return } // GetUsageForecast API operation for AWS Cost Explorer Service. // // Retrieves a forecast for how much Amazon Web Services predicts that you will // use over the forecast time period that you select, based on your past usage. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation GetUsageForecast for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * DataUnavailableException // The requested data is unavailable. // // * UnresolvableUsageUnitException // Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup // filter selections that contain matching units, for example: hours. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast func (c *CostExplorer) GetUsageForecast(input *GetUsageForecastInput) (*GetUsageForecastOutput, error) { req, out := c.GetUsageForecastRequest(input) return out, req.Send() } // GetUsageForecastWithContext is the same as GetUsageForecast with the addition of // the ability to pass a context and additional request options. // // See GetUsageForecast for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) GetUsageForecastWithContext(ctx aws.Context, input *GetUsageForecastInput, opts ...request.Option) (*GetUsageForecastOutput, error) { req, out := c.GetUsageForecastRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opListCostCategoryDefinitions = "ListCostCategoryDefinitions" // ListCostCategoryDefinitionsRequest generates a "aws/request.Request" representing the // client's request for the ListCostCategoryDefinitions operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See ListCostCategoryDefinitions for more information on using the ListCostCategoryDefinitions // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the ListCostCategoryDefinitionsRequest method. // req, resp := client.ListCostCategoryDefinitionsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions func (c *CostExplorer) ListCostCategoryDefinitionsRequest(input *ListCostCategoryDefinitionsInput) (req *request.Request, output *ListCostCategoryDefinitionsOutput) { op := &request.Operation{ Name: opListCostCategoryDefinitions, HTTPMethod: "POST", HTTPPath: "/", Paginator: &request.Paginator{ InputTokens: []string{"NextToken"}, OutputTokens: []string{"NextToken"}, LimitToken: "MaxResults", TruncationToken: "", }, } if input == nil { input = &ListCostCategoryDefinitionsInput{} } output = &ListCostCategoryDefinitionsOutput{} req = c.newRequest(op, input, output) return } // ListCostCategoryDefinitions API operation for AWS Cost Explorer Service. // // Returns the name, ARN, NumberOfRules and effective dates of all Cost Categories // defined in the account. You have the option to use EffectiveOn to return // a list of Cost Categories that were active on a specific date. If there is // no EffectiveOn specified, you’ll see Cost Categories that are effective // on the current date. If Cost Category is still effective, EffectiveEnd is // omitted in the response. ListCostCategoryDefinitions supports pagination. // The request can have a MaxResults range up to 100. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation ListCostCategoryDefinitions for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions func (c *CostExplorer) ListCostCategoryDefinitions(input *ListCostCategoryDefinitionsInput) (*ListCostCategoryDefinitionsOutput, error) { req, out := c.ListCostCategoryDefinitionsRequest(input) return out, req.Send() } // ListCostCategoryDefinitionsWithContext is the same as ListCostCategoryDefinitions with the addition of // the ability to pass a context and additional request options. // // See ListCostCategoryDefinitions for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) ListCostCategoryDefinitionsWithContext(ctx aws.Context, input *ListCostCategoryDefinitionsInput, opts ...request.Option) (*ListCostCategoryDefinitionsOutput, error) { req, out := c.ListCostCategoryDefinitionsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } // ListCostCategoryDefinitionsPages iterates over the pages of a ListCostCategoryDefinitions operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // // See ListCostCategoryDefinitions method for more information on how to use this operation. // // Note: This operation can generate multiple requests to a service. // // // Example iterating over at most 3 pages of a ListCostCategoryDefinitions operation. // pageNum := 0 // err := client.ListCostCategoryDefinitionsPages(params, // func(page *costexplorer.ListCostCategoryDefinitionsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) // func (c *CostExplorer) ListCostCategoryDefinitionsPages(input *ListCostCategoryDefinitionsInput, fn func(*ListCostCategoryDefinitionsOutput, bool) bool) error { return c.ListCostCategoryDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn) } // ListCostCategoryDefinitionsPagesWithContext same as ListCostCategoryDefinitionsPages except // it takes a Context and allows setting request options on the pages. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) ListCostCategoryDefinitionsPagesWithContext(ctx aws.Context, input *ListCostCategoryDefinitionsInput, fn func(*ListCostCategoryDefinitionsOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { var inCpy *ListCostCategoryDefinitionsInput if input != nil { tmp := *input inCpy = &tmp } req, _ := c.ListCostCategoryDefinitionsRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil }, } for p.Next() { if !fn(p.Page().(*ListCostCategoryDefinitionsOutput), !p.HasNextPage()) { break } } return p.Err() } const opProvideAnomalyFeedback = "ProvideAnomalyFeedback" // ProvideAnomalyFeedbackRequest generates a "aws/request.Request" representing the // client's request for the ProvideAnomalyFeedback operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See ProvideAnomalyFeedback for more information on using the ProvideAnomalyFeedback // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the ProvideAnomalyFeedbackRequest method. // req, resp := client.ProvideAnomalyFeedbackRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedback func (c *CostExplorer) ProvideAnomalyFeedbackRequest(input *ProvideAnomalyFeedbackInput) (req *request.Request, output *ProvideAnomalyFeedbackOutput) { op := &request.Operation{ Name: opProvideAnomalyFeedback, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &ProvideAnomalyFeedbackInput{} } output = &ProvideAnomalyFeedbackOutput{} req = c.newRequest(op, input, output) return } // ProvideAnomalyFeedback API operation for AWS Cost Explorer Service. // // Modifies the feedback property of a given cost anomaly. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation ProvideAnomalyFeedback for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ProvideAnomalyFeedback func (c *CostExplorer) ProvideAnomalyFeedback(input *ProvideAnomalyFeedbackInput) (*ProvideAnomalyFeedbackOutput, error) { req, out := c.ProvideAnomalyFeedbackRequest(input) return out, req.Send() } // ProvideAnomalyFeedbackWithContext is the same as ProvideAnomalyFeedback with the addition of // the ability to pass a context and additional request options. // // See ProvideAnomalyFeedback for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) ProvideAnomalyFeedbackWithContext(ctx aws.Context, input *ProvideAnomalyFeedbackInput, opts ...request.Option) (*ProvideAnomalyFeedbackOutput, error) { req, out := c.ProvideAnomalyFeedbackRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opUpdateAnomalyMonitor = "UpdateAnomalyMonitor" // UpdateAnomalyMonitorRequest generates a "aws/request.Request" representing the // client's request for the UpdateAnomalyMonitor operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See UpdateAnomalyMonitor for more information on using the UpdateAnomalyMonitor // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the UpdateAnomalyMonitorRequest method. // req, resp := client.UpdateAnomalyMonitorRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitor func (c *CostExplorer) UpdateAnomalyMonitorRequest(input *UpdateAnomalyMonitorInput) (req *request.Request, output *UpdateAnomalyMonitorOutput) { op := &request.Operation{ Name: opUpdateAnomalyMonitor, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &UpdateAnomalyMonitorInput{} } output = &UpdateAnomalyMonitorOutput{} req = c.newRequest(op, input, output) return } // UpdateAnomalyMonitor API operation for AWS Cost Explorer Service. // // Updates an existing cost anomaly monitor. The changes made are applied going // forward, and does not change anomalies detected in the past. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation UpdateAnomalyMonitor for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * UnknownMonitorException // The cost anomaly monitor does not exist for the account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalyMonitor func (c *CostExplorer) UpdateAnomalyMonitor(input *UpdateAnomalyMonitorInput) (*UpdateAnomalyMonitorOutput, error) { req, out := c.UpdateAnomalyMonitorRequest(input) return out, req.Send() } // UpdateAnomalyMonitorWithContext is the same as UpdateAnomalyMonitor with the addition of // the ability to pass a context and additional request options. // // See UpdateAnomalyMonitor for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) UpdateAnomalyMonitorWithContext(ctx aws.Context, input *UpdateAnomalyMonitorInput, opts ...request.Option) (*UpdateAnomalyMonitorOutput, error) { req, out := c.UpdateAnomalyMonitorRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opUpdateAnomalySubscription = "UpdateAnomalySubscription" // UpdateAnomalySubscriptionRequest generates a "aws/request.Request" representing the // client's request for the UpdateAnomalySubscription operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See UpdateAnomalySubscription for more information on using the UpdateAnomalySubscription // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the UpdateAnomalySubscriptionRequest method. // req, resp := client.UpdateAnomalySubscriptionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscription func (c *CostExplorer) UpdateAnomalySubscriptionRequest(input *UpdateAnomalySubscriptionInput) (req *request.Request, output *UpdateAnomalySubscriptionOutput) { op := &request.Operation{ Name: opUpdateAnomalySubscription, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &UpdateAnomalySubscriptionInput{} } output = &UpdateAnomalySubscriptionOutput{} req = c.newRequest(op, input, output) return } // UpdateAnomalySubscription API operation for AWS Cost Explorer Service. // // Updates an existing cost anomaly monitor subscription. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation UpdateAnomalySubscription for usage and error information. // // Returned Error Types: // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // * UnknownMonitorException // The cost anomaly monitor does not exist for the account. // // * UnknownSubscriptionException // The cost anomaly subscription does not exist for the account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateAnomalySubscription func (c *CostExplorer) UpdateAnomalySubscription(input *UpdateAnomalySubscriptionInput) (*UpdateAnomalySubscriptionOutput, error) { req, out := c.UpdateAnomalySubscriptionRequest(input) return out, req.Send() } // UpdateAnomalySubscriptionWithContext is the same as UpdateAnomalySubscription with the addition of // the ability to pass a context and additional request options. // // See UpdateAnomalySubscription for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) UpdateAnomalySubscriptionWithContext(ctx aws.Context, input *UpdateAnomalySubscriptionInput, opts ...request.Option) (*UpdateAnomalySubscriptionOutput, error) { req, out := c.UpdateAnomalySubscriptionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opUpdateCostCategoryDefinition = "UpdateCostCategoryDefinition" // UpdateCostCategoryDefinitionRequest generates a "aws/request.Request" representing the // client's request for the UpdateCostCategoryDefinition operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See UpdateCostCategoryDefinition for more information on using the UpdateCostCategoryDefinition // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the UpdateCostCategoryDefinitionRequest method. // req, resp := client.UpdateCostCategoryDefinitionRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition func (c *CostExplorer) UpdateCostCategoryDefinitionRequest(input *UpdateCostCategoryDefinitionInput) (req *request.Request, output *UpdateCostCategoryDefinitionOutput) { op := &request.Operation{ Name: opUpdateCostCategoryDefinition, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &UpdateCostCategoryDefinitionInput{} } output = &UpdateCostCategoryDefinitionOutput{} req = c.newRequest(op, input, output) return } // UpdateCostCategoryDefinition API operation for AWS Cost Explorer Service. // // Updates an existing Cost Category. Changes made to the Cost Category rules // will be used to categorize the current month’s expenses and future expenses. // This won’t change categorization for the previous months. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Cost Explorer Service's // API operation UpdateCostCategoryDefinition for usage and error information. // // Returned Error Types: // * ResourceNotFoundException // The specified ARN in the request doesn't exist. // // * ServiceQuotaExceededException // You've reached the limit on the number of resources you can create, or exceeded // the size of an individual resource. // // * LimitExceededException // You made too many calls in a short period of time. Try again later. // // See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition func (c *CostExplorer) UpdateCostCategoryDefinition(input *UpdateCostCategoryDefinitionInput) (*UpdateCostCategoryDefinitionOutput, error) { req, out := c.UpdateCostCategoryDefinitionRequest(input) return out, req.Send() } // UpdateCostCategoryDefinitionWithContext is the same as UpdateCostCategoryDefinition with the addition of // the ability to pass a context and additional request options. // // See UpdateCostCategoryDefinition for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *CostExplorer) UpdateCostCategoryDefinitionWithContext(ctx aws.Context, input *UpdateCostCategoryDefinitionInput, opts ...request.Option) (*UpdateCostCategoryDefinitionOutput, error) { req, out := c.UpdateCostCategoryDefinitionRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } // An unusual cost pattern. This consists of the detailed metadata and the current // status of the anomaly object. type Anomaly struct { _ struct{} `type:"structure"` // The last day the anomaly is detected. AnomalyEndDate *string `type:"string"` // The unique identifier for the anomaly. // // AnomalyId is a required field AnomalyId *string `type:"string" required:"true"` // The latest and maximum score for the anomaly. // // AnomalyScore is a required field AnomalyScore *AnomalyScore `type:"structure" required:"true"` // The first day the anomaly is detected. AnomalyStartDate *string `type:"string"` // The dimension for the anomaly. For example, an AWS service in a service monitor. DimensionValue *string `type:"string"` // The feedback value. Feedback *string `type:"string" enum:"AnomalyFeedbackType"` // The dollar impact for the anomaly. // // Impact is a required field Impact *Impact `type:"structure" required:"true"` // The Amazon Resource Name (ARN) for the cost monitor that generated this anomaly. // // MonitorArn is a required field MonitorArn *string `type:"string" required:"true"` // The list of identified root causes for the anomaly. RootCauses []*RootCause `type:"list"` } // String returns the string representation func (s Anomaly) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Anomaly) GoString() string { return s.String() } // SetAnomalyEndDate sets the AnomalyEndDate field's value. func (s *Anomaly) SetAnomalyEndDate(v string) *Anomaly { s.AnomalyEndDate = &v return s } // SetAnomalyId sets the AnomalyId field's value. func (s *Anomaly) SetAnomalyId(v string) *Anomaly { s.AnomalyId = &v return s } // SetAnomalyScore sets the AnomalyScore field's value. func (s *Anomaly) SetAnomalyScore(v *AnomalyScore) *Anomaly { s.AnomalyScore = v return s } // SetAnomalyStartDate sets the AnomalyStartDate field's value. func (s *Anomaly) SetAnomalyStartDate(v string) *Anomaly { s.AnomalyStartDate = &v return s } // SetDimensionValue sets the DimensionValue field's value. func (s *Anomaly) SetDimensionValue(v string) *Anomaly { s.DimensionValue = &v return s } // SetFeedback sets the Feedback field's value. func (s *Anomaly) SetFeedback(v string) *Anomaly { s.Feedback = &v return s } // SetImpact sets the Impact field's value. func (s *Anomaly) SetImpact(v *Impact) *Anomaly { s.Impact = v return s } // SetMonitorArn sets the MonitorArn field's value. func (s *Anomaly) SetMonitorArn(v string) *Anomaly { s.MonitorArn = &v return s } // SetRootCauses sets the RootCauses field's value. func (s *Anomaly) SetRootCauses(v []*RootCause) *Anomaly { s.RootCauses = v return s } // The time period for an anomaly. type AnomalyDateInterval struct { _ struct{} `type:"structure"` // The last date an anomaly was observed. EndDate *string `type:"string"` // The first date an anomaly was observed. // // StartDate is a required field StartDate *string `type:"string" required:"true"` } // String returns the string representation func (s AnomalyDateInterval) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s AnomalyDateInterval) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *AnomalyDateInterval) Validate() error { invalidParams := request.ErrInvalidParams{Context: "AnomalyDateInterval"} if s.StartDate == nil { invalidParams.Add(request.NewErrParamRequired("StartDate")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetEndDate sets the EndDate field's value. func (s *AnomalyDateInterval) SetEndDate(v string) *AnomalyDateInterval { s.EndDate = &v return s } // SetStartDate sets the StartDate field's value. func (s *AnomalyDateInterval) SetStartDate(v string) *AnomalyDateInterval { s.StartDate = &v return s } // This object continuously inspects your account's cost data for anomalies, // based on MonitorType and MonitorSpecification. The content consists of detailed // metadata and the current status of the monitor object. type AnomalyMonitor struct { _ struct{} `type:"structure"` // The date when the monitor was created. CreationDate *string `type:"string"` // The value for evaluated dimensions. DimensionalValueCount *int64 `type:"integer"` // The date when the monitor last evaluated for anomalies. LastEvaluatedDate *string `type:"string"` // The date when the monitor was last updated. LastUpdatedDate *string `type:"string"` // The Amazon Resource Name (ARN) value. MonitorArn *string `type:"string"` // The dimensions to evaluate. MonitorDimension *string `type:"string" enum:"MonitorDimension"` // The name of the monitor. // // MonitorName is a required field MonitorName *string `type:"string" required:"true"` // Use Expression to filter by cost or by usage. There are two patterns: // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for // REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, // the Region is a full name (for example, REGION==US East (N. Virginia). // The Expression example looks like: { "Dimensions": { "Key": "REGION", // "Values": [ "us-east-1", “us-west-1†] } } The list of dimension values // are OR'd together to retrieve cost or usage data. You can create Expression // and DimensionValues objects using either with* methods or set* methods // in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list // of one or more Expression objects. This allows you to filter on more advanced // options. For example, you can filter on ((REGION == us-east-1 OR REGION // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each // Expression can have only one operator, the service returns an error if // more than one is specified. The following example shows an Expression // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } // // For the GetRightsizingRecommendation action, a combination of OR and NOT // is not supported. OR is not supported between different dimensions, or dimensions // and tags. NOT operators aren't supported. Dimensions are also limited to // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. // // For the GetReservationPurchaseRecommendation action, only NOT is supported. // AND and OR are not supported. Dimensions are limited to LINKED_ACCOUNT. MonitorSpecification *Expression `type:"structure"` // The possible type values. // // MonitorType is a required field MonitorType *string `type:"string" required:"true" enum:"MonitorType"` } // String returns the string representation func (s AnomalyMonitor) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s AnomalyMonitor) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *AnomalyMonitor) Validate() error { invalidParams := request.ErrInvalidParams{Context: "AnomalyMonitor"} if s.MonitorName == nil { invalidParams.Add(request.NewErrParamRequired("MonitorName")) } if s.MonitorType == nil { invalidParams.Add(request.NewErrParamRequired("MonitorType")) } if s.MonitorSpecification != nil { if err := s.MonitorSpecification.Validate(); err != nil { invalidParams.AddNested("MonitorSpecification", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetCreationDate sets the CreationDate field's value. func (s *AnomalyMonitor) SetCreationDate(v string) *AnomalyMonitor { s.CreationDate = &v return s } // SetDimensionalValueCount sets the DimensionalValueCount field's value. func (s *AnomalyMonitor) SetDimensionalValueCount(v int64) *AnomalyMonitor { s.DimensionalValueCount = &v return s } // SetLastEvaluatedDate sets the LastEvaluatedDate field's value. func (s *AnomalyMonitor) SetLastEvaluatedDate(v string) *AnomalyMonitor { s.LastEvaluatedDate = &v return s } // SetLastUpdatedDate sets the LastUpdatedDate field's value. func (s *AnomalyMonitor) SetLastUpdatedDate(v string) *AnomalyMonitor { s.LastUpdatedDate = &v return s } // SetMonitorArn sets the MonitorArn field's value. func (s *AnomalyMonitor) SetMonitorArn(v string) *AnomalyMonitor { s.MonitorArn = &v return s } // SetMonitorDimension sets the MonitorDimension field's value. func (s *AnomalyMonitor) SetMonitorDimension(v string) *AnomalyMonitor { s.MonitorDimension = &v return s } // SetMonitorName sets the MonitorName field's value. func (s *AnomalyMonitor) SetMonitorName(v string) *AnomalyMonitor { s.MonitorName = &v return s } // SetMonitorSpecification sets the MonitorSpecification field's value. func (s *AnomalyMonitor) SetMonitorSpecification(v *Expression) *AnomalyMonitor { s.MonitorSpecification = v return s } // SetMonitorType sets the MonitorType field's value. func (s *AnomalyMonitor) SetMonitorType(v string) *AnomalyMonitor { s.MonitorType = &v return s } // Quantifies the anomaly. The higher score means that it is more anomalous. type AnomalyScore struct { _ struct{} `type:"structure"` // The last observed score. // // CurrentScore is a required field CurrentScore *float64 `type:"double" required:"true"` // The maximum score observed during the AnomalyDateInterval. // // MaxScore is a required field MaxScore *float64 `type:"double" required:"true"` } // String returns the string representation func (s AnomalyScore) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s AnomalyScore) GoString() string { return s.String() } // SetCurrentScore sets the CurrentScore field's value. func (s *AnomalyScore) SetCurrentScore(v float64) *AnomalyScore { s.CurrentScore = &v return s } // SetMaxScore sets the MaxScore field's value. func (s *AnomalyScore) SetMaxScore(v float64) *AnomalyScore { s.MaxScore = &v return s } // The association between a monitor, threshold, and list of subscribers used // to deliver notifications about anomalies detected by a monitor that exceeds // a threshold. The content consists of the detailed metadata and the current // status of the AnomalySubscription object. type AnomalySubscription struct { _ struct{} `type:"structure"` // Your unique account identifier. AccountId *string `type:"string"` // The frequency at which anomaly reports are sent over email. // // Frequency is a required field Frequency *string `type:"string" required:"true" enum:"AnomalySubscriptionFrequency"` // A list of cost anomaly monitors. // // MonitorArnList is a required field MonitorArnList []*string `type:"list" required:"true"` // A list of subscribers to notify. // // Subscribers is a required field Subscribers []*Subscriber `type:"list" required:"true"` // The AnomalySubscription Amazon Resource Name (ARN). SubscriptionArn *string `type:"string"` // The name for the subscription. // // SubscriptionName is a required field SubscriptionName *string `type:"string" required:"true"` // The dollar value that triggers a notification if the threshold is exceeded. // // Threshold is a required field Threshold *float64 `type:"double" required:"true"` } // String returns the string representation func (s AnomalySubscription) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s AnomalySubscription) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *AnomalySubscription) Validate() error { invalidParams := request.ErrInvalidParams{Context: "AnomalySubscription"} if s.Frequency == nil { invalidParams.Add(request.NewErrParamRequired("Frequency")) } if s.MonitorArnList == nil { invalidParams.Add(request.NewErrParamRequired("MonitorArnList")) } if s.Subscribers == nil { invalidParams.Add(request.NewErrParamRequired("Subscribers")) } if s.SubscriptionName == nil { invalidParams.Add(request.NewErrParamRequired("SubscriptionName")) } if s.Threshold == nil { invalidParams.Add(request.NewErrParamRequired("Threshold")) } if s.Subscribers != nil { for i, v := range s.Subscribers { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Subscribers", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetAccountId sets the AccountId field's value. func (s *AnomalySubscription) SetAccountId(v string) *AnomalySubscription { s.AccountId = &v return s } // SetFrequency sets the Frequency field's value. func (s *AnomalySubscription) SetFrequency(v string) *AnomalySubscription { s.Frequency = &v return s } // SetMonitorArnList sets the MonitorArnList field's value. func (s *AnomalySubscription) SetMonitorArnList(v []*string) *AnomalySubscription { s.MonitorArnList = v return s } // SetSubscribers sets the Subscribers field's value. func (s *AnomalySubscription) SetSubscribers(v []*Subscriber) *AnomalySubscription { s.Subscribers = v return s } // SetSubscriptionArn sets the SubscriptionArn field's value. func (s *AnomalySubscription) SetSubscriptionArn(v string) *AnomalySubscription { s.SubscriptionArn = &v return s } // SetSubscriptionName sets the SubscriptionName field's value. func (s *AnomalySubscription) SetSubscriptionName(v string) *AnomalySubscription { s.SubscriptionName = &v return s } // SetThreshold sets the Threshold field's value. func (s *AnomalySubscription) SetThreshold(v float64) *AnomalySubscription { s.Threshold = &v return s } // The requested report expired. Update the date interval and try again. type BillExpirationException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s BillExpirationException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s BillExpirationException) GoString() string { return s.String() } func newErrorBillExpirationException(v protocol.ResponseMetadata) error { return &BillExpirationException{ RespMetadata: v, } } // Code returns the exception type name. func (s *BillExpirationException) Code() string { return "BillExpirationException" } // Message returns the exception's message. func (s *BillExpirationException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *BillExpirationException) OrigErr() error { return nil } func (s *BillExpirationException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *BillExpirationException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *BillExpirationException) RequestID() string { return s.RespMetadata.RequestID } // The structure of Cost Categories. This includes detailed metadata and the // set of rules for the CostCategory object. type CostCategory struct { _ struct{} `type:"structure"` // The unique identifier for your Cost Category. // // CostCategoryArn is a required field CostCategoryArn *string `min:"20" type:"string" required:"true"` // The default value for the cost category. DefaultValue *string `min:"1" type:"string"` // The Cost Category's effective end date. EffectiveEnd *string `min:"20" type:"string"` // The Cost Category's effective start date. // // EffectiveStart is a required field EffectiveStart *string `min:"20" type:"string" required:"true"` // The unique name of the Cost Category. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` // The list of processing statuses for Cost Management products for a specific // cost category. ProcessingStatus []*CostCategoryProcessingStatus `type:"list"` // The rule schema version in this particular Cost Category. // // RuleVersion is a required field RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` // Rules are processed in order. If there are multiple rules that match the // line item, then the first rule to match is used to determine that Cost Category // value. // // Rules is a required field Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` } // String returns the string representation func (s CostCategory) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CostCategory) GoString() string { return s.String() } // SetCostCategoryArn sets the CostCategoryArn field's value. func (s *CostCategory) SetCostCategoryArn(v string) *CostCategory { s.CostCategoryArn = &v return s } // SetDefaultValue sets the DefaultValue field's value. func (s *CostCategory) SetDefaultValue(v string) *CostCategory { s.DefaultValue = &v return s } // SetEffectiveEnd sets the EffectiveEnd field's value. func (s *CostCategory) SetEffectiveEnd(v string) *CostCategory { s.EffectiveEnd = &v return s } // SetEffectiveStart sets the EffectiveStart field's value. func (s *CostCategory) SetEffectiveStart(v string) *CostCategory { s.EffectiveStart = &v return s } // SetName sets the Name field's value. func (s *CostCategory) SetName(v string) *CostCategory { s.Name = &v return s } // SetProcessingStatus sets the ProcessingStatus field's value. func (s *CostCategory) SetProcessingStatus(v []*CostCategoryProcessingStatus) *CostCategory { s.ProcessingStatus = v return s } // SetRuleVersion sets the RuleVersion field's value. func (s *CostCategory) SetRuleVersion(v string) *CostCategory { s.RuleVersion = &v return s } // SetRules sets the Rules field's value. func (s *CostCategory) SetRules(v []*CostCategoryRule) *CostCategory { s.Rules = v return s } // When creating or updating a cost category, you can define the CostCategoryRule // rule type as INHERITED_VALUE. This rule type adds the flexibility of defining // a rule that dynamically inherits the cost category value from the dimension // value defined by CostCategoryInheritedValueDimension. For example, if you // wanted to dynamically group costs based on the value of a specific tag key, // you would first choose an inherited value rule type, then choose the tag // dimension and specify the tag key to use. type CostCategoryInheritedValueDimension struct { _ struct{} `type:"structure"` // The key to extract cost category values. DimensionKey *string `type:"string"` // The name of dimension for which to group costs. // // If you specify LINKED_ACCOUNT_NAME, the cost category value will be based // on account name. If you specify TAG, the cost category value will be based // on the value of the specified tag key. DimensionName *string `type:"string" enum:"CostCategoryInheritedValueDimensionName"` } // String returns the string representation func (s CostCategoryInheritedValueDimension) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CostCategoryInheritedValueDimension) GoString() string { return s.String() } // SetDimensionKey sets the DimensionKey field's value. func (s *CostCategoryInheritedValueDimension) SetDimensionKey(v string) *CostCategoryInheritedValueDimension { s.DimensionKey = &v return s } // SetDimensionName sets the DimensionName field's value. func (s *CostCategoryInheritedValueDimension) SetDimensionName(v string) *CostCategoryInheritedValueDimension { s.DimensionName = &v return s } // The list of processing statuses for Cost Management products for a specific // cost category. type CostCategoryProcessingStatus struct { _ struct{} `type:"structure"` // The Cost Management product name of the applied status. Component *string `type:"string" enum:"CostCategoryStatusComponent"` // The process status for a specific cost category. Status *string `type:"string" enum:"CostCategoryStatus"` } // String returns the string representation func (s CostCategoryProcessingStatus) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CostCategoryProcessingStatus) GoString() string { return s.String() } // SetComponent sets the Component field's value. func (s *CostCategoryProcessingStatus) SetComponent(v string) *CostCategoryProcessingStatus { s.Component = &v return s } // SetStatus sets the Status field's value. func (s *CostCategoryProcessingStatus) SetStatus(v string) *CostCategoryProcessingStatus { s.Status = &v return s } // A reference to a Cost Category containing only enough information to identify // the Cost Category. // // You can use this information to retrieve the full Cost Category information // using DescribeCostCategory. type CostCategoryReference struct { _ struct{} `type:"structure"` // The unique identifier for your Cost Category. CostCategoryArn *string `min:"20" type:"string"` // The default value for the cost category. DefaultValue *string `min:"1" type:"string"` // The Cost Category's effective end date. EffectiveEnd *string `min:"20" type:"string"` // The Cost Category's effective start date. EffectiveStart *string `min:"20" type:"string"` // The unique name of the Cost Category. Name *string `min:"1" type:"string"` // The number of rules associated with a specific Cost Category. NumberOfRules *int64 `type:"integer"` // The list of processing statuses for Cost Management products for a specific // cost category. ProcessingStatus []*CostCategoryProcessingStatus `type:"list"` // A list of unique cost category values in a specific cost category. Values []*string `type:"list"` } // String returns the string representation func (s CostCategoryReference) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CostCategoryReference) GoString() string { return s.String() } // SetCostCategoryArn sets the CostCategoryArn field's value. func (s *CostCategoryReference) SetCostCategoryArn(v string) *CostCategoryReference { s.CostCategoryArn = &v return s } // SetDefaultValue sets the DefaultValue field's value. func (s *CostCategoryReference) SetDefaultValue(v string) *CostCategoryReference { s.DefaultValue = &v return s } // SetEffectiveEnd sets the EffectiveEnd field's value. func (s *CostCategoryReference) SetEffectiveEnd(v string) *CostCategoryReference { s.EffectiveEnd = &v return s } // SetEffectiveStart sets the EffectiveStart field's value. func (s *CostCategoryReference) SetEffectiveStart(v string) *CostCategoryReference { s.EffectiveStart = &v return s } // SetName sets the Name field's value. func (s *CostCategoryReference) SetName(v string) *CostCategoryReference { s.Name = &v return s } // SetNumberOfRules sets the NumberOfRules field's value. func (s *CostCategoryReference) SetNumberOfRules(v int64) *CostCategoryReference { s.NumberOfRules = &v return s } // SetProcessingStatus sets the ProcessingStatus field's value. func (s *CostCategoryReference) SetProcessingStatus(v []*CostCategoryProcessingStatus) *CostCategoryReference { s.ProcessingStatus = v return s } // SetValues sets the Values field's value. func (s *CostCategoryReference) SetValues(v []*string) *CostCategoryReference { s.Values = v return s } // Rules are processed in order. If there are multiple rules that match the // line item, then the first rule to match is used to determine that Cost Category // value. type CostCategoryRule struct { _ struct{} `type:"structure"` // The value the line item will be categorized as, if the line item contains // the matched dimension. InheritedValue *CostCategoryInheritedValueDimension `type:"structure"` // An Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // object used to categorize costs. This supports dimensions, tags, and nested // expressions. Currently the only dimensions supported are LINKED_ACCOUNT, // SERVICE_CODE, RECORD_TYPE, and LINKED_ACCOUNT_NAME. // // Root level OR is not supported. We recommend that you create a separate rule // instead. // // RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported // for Cost Category expressions. This dimension uses different terms, depending // on whether you're using the console or API/JSON editor. For a detailed comparison, // see Term Comparisons (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms) // in the AWS Billing and Cost Management User Guide. Rule *Expression `type:"structure"` // You can define the CostCategoryRule rule type as either REGULAR or INHERITED_VALUE. // The INHERITED_VALUE rule type adds the flexibility of defining a rule that // dynamically inherits the cost category value from the dimension value defined // by CostCategoryInheritedValueDimension. For example, if you wanted to dynamically // group costs based on the value of a specific tag key, you would first choose // an inherited value rule type, then choose the tag dimension and specify the // tag key to use. Type *string `type:"string" enum:"CostCategoryRuleType"` // The default value for the cost category. Value *string `min:"1" type:"string"` } // String returns the string representation func (s CostCategoryRule) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CostCategoryRule) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *CostCategoryRule) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CostCategoryRule"} if s.Value != nil && len(*s.Value) < 1 { invalidParams.Add(request.NewErrParamMinLen("Value", 1)) } if s.Rule != nil { if err := s.Rule.Validate(); err != nil { invalidParams.AddNested("Rule", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetInheritedValue sets the InheritedValue field's value. func (s *CostCategoryRule) SetInheritedValue(v *CostCategoryInheritedValueDimension) *CostCategoryRule { s.InheritedValue = v return s } // SetRule sets the Rule field's value. func (s *CostCategoryRule) SetRule(v *Expression) *CostCategoryRule { s.Rule = v return s } // SetType sets the Type field's value. func (s *CostCategoryRule) SetType(v string) *CostCategoryRule { s.Type = &v return s } // SetValue sets the Value field's value. func (s *CostCategoryRule) SetValue(v string) *CostCategoryRule { s.Value = &v return s } // The Cost Categories values used for filtering the costs. // // If Values and Key are not specified, the ABSENT MatchOption is applied to // all Cost Categories. That is, filtering on resources that are not mapped // to any Cost Categories. // // If Values is provided and Key is not specified, the ABSENT MatchOption is // applied to the Cost Categories Key only. That is, filtering on resources // without the given Cost Categories key. type CostCategoryValues struct { _ struct{} `type:"structure"` // The unique name of the Cost Category. Key *string `min:"1" type:"string"` // The match options that you can use to filter your results. MatchOptions is // only applicable for actions related to cost category. The default values // for MatchOptions is EQUALS and CASE_SENSITIVE. MatchOptions []*string `type:"list"` // The specific value of the Cost Category. Values []*string `type:"list"` } // String returns the string representation func (s CostCategoryValues) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CostCategoryValues) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *CostCategoryValues) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CostCategoryValues"} if s.Key != nil && len(*s.Key) < 1 { invalidParams.Add(request.NewErrParamMinLen("Key", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetKey sets the Key field's value. func (s *CostCategoryValues) SetKey(v string) *CostCategoryValues { s.Key = &v return s } // SetMatchOptions sets the MatchOptions field's value. func (s *CostCategoryValues) SetMatchOptions(v []*string) *CostCategoryValues { s.MatchOptions = v return s } // SetValues sets the Values field's value. func (s *CostCategoryValues) SetValues(v []*string) *CostCategoryValues { s.Values = v return s } // The amount of instance usage that a reservation covered. type Coverage struct { _ struct{} `type:"structure"` // The amount of cost that the reservation covered. CoverageCost *CoverageCost `type:"structure"` // The amount of instance usage that the reservation covered, in hours. CoverageHours *CoverageHours `type:"structure"` // The amount of instance usage that the reservation covered, in normalized // units. CoverageNormalizedUnits *CoverageNormalizedUnits `type:"structure"` } // String returns the string representation func (s Coverage) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Coverage) GoString() string { return s.String() } // SetCoverageCost sets the CoverageCost field's value. func (s *Coverage) SetCoverageCost(v *CoverageCost) *Coverage { s.CoverageCost = v return s } // SetCoverageHours sets the CoverageHours field's value. func (s *Coverage) SetCoverageHours(v *CoverageHours) *Coverage { s.CoverageHours = v return s } // SetCoverageNormalizedUnits sets the CoverageNormalizedUnits field's value. func (s *Coverage) SetCoverageNormalizedUnits(v *CoverageNormalizedUnits) *Coverage { s.CoverageNormalizedUnits = v return s } // Reservation coverage for a specified period, in hours. type CoverageByTime struct { _ struct{} `type:"structure"` // The groups of instances that the reservation covered. Groups []*ReservationCoverageGroup `type:"list"` // The period that this coverage was used over. TimePeriod *DateInterval `type:"structure"` // The total reservation coverage, in hours. Total *Coverage `type:"structure"` } // String returns the string representation func (s CoverageByTime) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CoverageByTime) GoString() string { return s.String() } // SetGroups sets the Groups field's value. func (s *CoverageByTime) SetGroups(v []*ReservationCoverageGroup) *CoverageByTime { s.Groups = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *CoverageByTime) SetTimePeriod(v *DateInterval) *CoverageByTime { s.TimePeriod = v return s } // SetTotal sets the Total field's value. func (s *CoverageByTime) SetTotal(v *Coverage) *CoverageByTime { s.Total = v return s } // How much it costs to run an instance. type CoverageCost struct { _ struct{} `type:"structure"` // How much an On-Demand Instance costs. OnDemandCost *string `type:"string"` } // String returns the string representation func (s CoverageCost) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CoverageCost) GoString() string { return s.String() } // SetOnDemandCost sets the OnDemandCost field's value. func (s *CoverageCost) SetOnDemandCost(v string) *CoverageCost { s.OnDemandCost = &v return s } // How long a running instance either used a reservation or was On-Demand. type CoverageHours struct { _ struct{} `type:"structure"` // The percentage of instance hours that a reservation covered. CoverageHoursPercentage *string `type:"string"` // The number of instance running hours that On-Demand Instances covered. OnDemandHours *string `type:"string"` // The number of instance running hours that reservations covered. ReservedHours *string `type:"string"` // The total instance usage, in hours. TotalRunningHours *string `type:"string"` } // String returns the string representation func (s CoverageHours) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CoverageHours) GoString() string { return s.String() } // SetCoverageHoursPercentage sets the CoverageHoursPercentage field's value. func (s *CoverageHours) SetCoverageHoursPercentage(v string) *CoverageHours { s.CoverageHoursPercentage = &v return s } // SetOnDemandHours sets the OnDemandHours field's value. func (s *CoverageHours) SetOnDemandHours(v string) *CoverageHours { s.OnDemandHours = &v return s } // SetReservedHours sets the ReservedHours field's value. func (s *CoverageHours) SetReservedHours(v string) *CoverageHours { s.ReservedHours = &v return s } // SetTotalRunningHours sets the TotalRunningHours field's value. func (s *CoverageHours) SetTotalRunningHours(v string) *CoverageHours { s.TotalRunningHours = &v return s } // The amount of instance usage, in normalized units. Normalized units enable // you to see your EC2 usage for multiple sizes of instances in a uniform way. // For example, suppose you run an xlarge instance and a 2xlarge instance. If // you run both instances for the same amount of time, the 2xlarge instance // uses twice as much of your reservation as the xlarge instance, even though // both instances show only one instance-hour. Using normalized units instead // of instance-hours, the xlarge instance used 8 normalized units, and the 2xlarge // instance used 16 normalized units. // // For more information, see Modifying Reserved Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) // in the Amazon Elastic Compute Cloud User Guide for Linux Instances. type CoverageNormalizedUnits struct { _ struct{} `type:"structure"` // The percentage of your used instance normalized units that a reservation // covers. CoverageNormalizedUnitsPercentage *string `type:"string"` // The number of normalized units that are covered by On-Demand Instances instead // of a reservation. OnDemandNormalizedUnits *string `type:"string"` // The number of normalized units that a reservation covers. ReservedNormalizedUnits *string `type:"string"` // The total number of normalized units that you used. TotalRunningNormalizedUnits *string `type:"string"` } // String returns the string representation func (s CoverageNormalizedUnits) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CoverageNormalizedUnits) GoString() string { return s.String() } // SetCoverageNormalizedUnitsPercentage sets the CoverageNormalizedUnitsPercentage field's value. func (s *CoverageNormalizedUnits) SetCoverageNormalizedUnitsPercentage(v string) *CoverageNormalizedUnits { s.CoverageNormalizedUnitsPercentage = &v return s } // SetOnDemandNormalizedUnits sets the OnDemandNormalizedUnits field's value. func (s *CoverageNormalizedUnits) SetOnDemandNormalizedUnits(v string) *CoverageNormalizedUnits { s.OnDemandNormalizedUnits = &v return s } // SetReservedNormalizedUnits sets the ReservedNormalizedUnits field's value. func (s *CoverageNormalizedUnits) SetReservedNormalizedUnits(v string) *CoverageNormalizedUnits { s.ReservedNormalizedUnits = &v return s } // SetTotalRunningNormalizedUnits sets the TotalRunningNormalizedUnits field's value. func (s *CoverageNormalizedUnits) SetTotalRunningNormalizedUnits(v string) *CoverageNormalizedUnits { s.TotalRunningNormalizedUnits = &v return s } type CreateAnomalyMonitorInput struct { _ struct{} `type:"structure"` // The cost anomaly detection monitor object that you want to create. // // AnomalyMonitor is a required field AnomalyMonitor *AnomalyMonitor `type:"structure" required:"true"` } // String returns the string representation func (s CreateAnomalyMonitorInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CreateAnomalyMonitorInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *CreateAnomalyMonitorInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CreateAnomalyMonitorInput"} if s.AnomalyMonitor == nil { invalidParams.Add(request.NewErrParamRequired("AnomalyMonitor")) } if s.AnomalyMonitor != nil { if err := s.AnomalyMonitor.Validate(); err != nil { invalidParams.AddNested("AnomalyMonitor", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetAnomalyMonitor sets the AnomalyMonitor field's value. func (s *CreateAnomalyMonitorInput) SetAnomalyMonitor(v *AnomalyMonitor) *CreateAnomalyMonitorInput { s.AnomalyMonitor = v return s } type CreateAnomalyMonitorOutput struct { _ struct{} `type:"structure"` // The unique identifier of your newly created cost anomaly detection monitor. // // MonitorArn is a required field MonitorArn *string `type:"string" required:"true"` } // String returns the string representation func (s CreateAnomalyMonitorOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CreateAnomalyMonitorOutput) GoString() string { return s.String() } // SetMonitorArn sets the MonitorArn field's value. func (s *CreateAnomalyMonitorOutput) SetMonitorArn(v string) *CreateAnomalyMonitorOutput { s.MonitorArn = &v return s } type CreateAnomalySubscriptionInput struct { _ struct{} `type:"structure"` // The cost anomaly subscription object that you want to create. // // AnomalySubscription is a required field AnomalySubscription *AnomalySubscription `type:"structure" required:"true"` } // String returns the string representation func (s CreateAnomalySubscriptionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CreateAnomalySubscriptionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *CreateAnomalySubscriptionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CreateAnomalySubscriptionInput"} if s.AnomalySubscription == nil { invalidParams.Add(request.NewErrParamRequired("AnomalySubscription")) } if s.AnomalySubscription != nil { if err := s.AnomalySubscription.Validate(); err != nil { invalidParams.AddNested("AnomalySubscription", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetAnomalySubscription sets the AnomalySubscription field's value. func (s *CreateAnomalySubscriptionInput) SetAnomalySubscription(v *AnomalySubscription) *CreateAnomalySubscriptionInput { s.AnomalySubscription = v return s } type CreateAnomalySubscriptionOutput struct { _ struct{} `type:"structure"` // The unique identifier of your newly created cost anomaly subscription. // // SubscriptionArn is a required field SubscriptionArn *string `type:"string" required:"true"` } // String returns the string representation func (s CreateAnomalySubscriptionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CreateAnomalySubscriptionOutput) GoString() string { return s.String() } // SetSubscriptionArn sets the SubscriptionArn field's value. func (s *CreateAnomalySubscriptionOutput) SetSubscriptionArn(v string) *CreateAnomalySubscriptionOutput { s.SubscriptionArn = &v return s } type CreateCostCategoryDefinitionInput struct { _ struct{} `type:"structure"` // The default value for the cost category. DefaultValue *string `min:"1" type:"string"` // The unique name of the Cost Category. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` // The rule schema version in this particular Cost Category. // // RuleVersion is a required field RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` // The Cost Category rules used to categorize costs. For more information, see // CostCategoryRule (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html). // // Rules is a required field Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` } // String returns the string representation func (s CreateCostCategoryDefinitionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CreateCostCategoryDefinitionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *CreateCostCategoryDefinitionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CreateCostCategoryDefinitionInput"} if s.DefaultValue != nil && len(*s.DefaultValue) < 1 { invalidParams.Add(request.NewErrParamMinLen("DefaultValue", 1)) } if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } if s.RuleVersion == nil { invalidParams.Add(request.NewErrParamRequired("RuleVersion")) } if s.Rules == nil { invalidParams.Add(request.NewErrParamRequired("Rules")) } if s.Rules != nil && len(s.Rules) < 1 { invalidParams.Add(request.NewErrParamMinLen("Rules", 1)) } if s.Rules != nil { for i, v := range s.Rules { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetDefaultValue sets the DefaultValue field's value. func (s *CreateCostCategoryDefinitionInput) SetDefaultValue(v string) *CreateCostCategoryDefinitionInput { s.DefaultValue = &v return s } // SetName sets the Name field's value. func (s *CreateCostCategoryDefinitionInput) SetName(v string) *CreateCostCategoryDefinitionInput { s.Name = &v return s } // SetRuleVersion sets the RuleVersion field's value. func (s *CreateCostCategoryDefinitionInput) SetRuleVersion(v string) *CreateCostCategoryDefinitionInput { s.RuleVersion = &v return s } // SetRules sets the Rules field's value. func (s *CreateCostCategoryDefinitionInput) SetRules(v []*CostCategoryRule) *CreateCostCategoryDefinitionInput { s.Rules = v return s } type CreateCostCategoryDefinitionOutput struct { _ struct{} `type:"structure"` // The unique identifier for your newly created Cost Category. CostCategoryArn *string `min:"20" type:"string"` // The Cost Category's effective start date. EffectiveStart *string `min:"20" type:"string"` } // String returns the string representation func (s CreateCostCategoryDefinitionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CreateCostCategoryDefinitionOutput) GoString() string { return s.String() } // SetCostCategoryArn sets the CostCategoryArn field's value. func (s *CreateCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *CreateCostCategoryDefinitionOutput { s.CostCategoryArn = &v return s } // SetEffectiveStart sets the EffectiveStart field's value. func (s *CreateCostCategoryDefinitionOutput) SetEffectiveStart(v string) *CreateCostCategoryDefinitionOutput { s.EffectiveStart = &v return s } // Context about the current instance. type CurrentInstance struct { _ struct{} `type:"structure"` // The currency code that AWS used to calculate the costs for this instance. CurrencyCode *string `type:"string"` // The name you've given an instance. This field will show as blank if you haven't // given the instance a name. InstanceName *string `type:"string"` // Current On-Demand cost of operating this instance on a monthly basis. MonthlyCost *string `type:"string"` // Number of hours during the lookback period billed at On-Demand rates. OnDemandHoursInLookbackPeriod *string `type:"string"` // Number of hours during the lookback period covered by reservations. ReservationCoveredHoursInLookbackPeriod *string `type:"string"` // Details about the resource and utilization. ResourceDetails *ResourceDetails `type:"structure"` // Resource ID of the current instance. ResourceId *string `type:"string"` // Utilization information of the current instance during the lookback period. ResourceUtilization *ResourceUtilization `type:"structure"` // Number of hours during the lookback period covered by Savings Plans. SavingsPlansCoveredHoursInLookbackPeriod *string `type:"string"` // Cost allocation resource tags applied to the instance. Tags []*TagValues `type:"list"` // The total number of hours the instance ran during the lookback period. TotalRunningHoursInLookbackPeriod *string `type:"string"` } // String returns the string representation func (s CurrentInstance) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s CurrentInstance) GoString() string { return s.String() } // SetCurrencyCode sets the CurrencyCode field's value. func (s *CurrentInstance) SetCurrencyCode(v string) *CurrentInstance { s.CurrencyCode = &v return s } // SetInstanceName sets the InstanceName field's value. func (s *CurrentInstance) SetInstanceName(v string) *CurrentInstance { s.InstanceName = &v return s } // SetMonthlyCost sets the MonthlyCost field's value. func (s *CurrentInstance) SetMonthlyCost(v string) *CurrentInstance { s.MonthlyCost = &v return s } // SetOnDemandHoursInLookbackPeriod sets the OnDemandHoursInLookbackPeriod field's value. func (s *CurrentInstance) SetOnDemandHoursInLookbackPeriod(v string) *CurrentInstance { s.OnDemandHoursInLookbackPeriod = &v return s } // SetReservationCoveredHoursInLookbackPeriod sets the ReservationCoveredHoursInLookbackPeriod field's value. func (s *CurrentInstance) SetReservationCoveredHoursInLookbackPeriod(v string) *CurrentInstance { s.ReservationCoveredHoursInLookbackPeriod = &v return s } // SetResourceDetails sets the ResourceDetails field's value. func (s *CurrentInstance) SetResourceDetails(v *ResourceDetails) *CurrentInstance { s.ResourceDetails = v return s } // SetResourceId sets the ResourceId field's value. func (s *CurrentInstance) SetResourceId(v string) *CurrentInstance { s.ResourceId = &v return s } // SetResourceUtilization sets the ResourceUtilization field's value. func (s *CurrentInstance) SetResourceUtilization(v *ResourceUtilization) *CurrentInstance { s.ResourceUtilization = v return s } // SetSavingsPlansCoveredHoursInLookbackPeriod sets the SavingsPlansCoveredHoursInLookbackPeriod field's value. func (s *CurrentInstance) SetSavingsPlansCoveredHoursInLookbackPeriod(v string) *CurrentInstance { s.SavingsPlansCoveredHoursInLookbackPeriod = &v return s } // SetTags sets the Tags field's value. func (s *CurrentInstance) SetTags(v []*TagValues) *CurrentInstance { s.Tags = v return s } // SetTotalRunningHoursInLookbackPeriod sets the TotalRunningHoursInLookbackPeriod field's value. func (s *CurrentInstance) SetTotalRunningHoursInLookbackPeriod(v string) *CurrentInstance { s.TotalRunningHoursInLookbackPeriod = &v return s } // The requested data is unavailable. type DataUnavailableException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s DataUnavailableException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DataUnavailableException) GoString() string { return s.String() } func newErrorDataUnavailableException(v protocol.ResponseMetadata) error { return &DataUnavailableException{ RespMetadata: v, } } // Code returns the exception type name. func (s *DataUnavailableException) Code() string { return "DataUnavailableException" } // Message returns the exception's message. func (s *DataUnavailableException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *DataUnavailableException) OrigErr() error { return nil } func (s *DataUnavailableException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *DataUnavailableException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *DataUnavailableException) RequestID() string { return s.RespMetadata.RequestID } // The time period of the request. type DateInterval struct { _ struct{} `type:"structure"` // The end of the time period. The end date is exclusive. For example, if end // is 2017-05-01, AWS retrieves cost and usage data from the start date up to, // but not including, 2017-05-01. // // End is a required field End *string `type:"string" required:"true"` // The beginning of the time period. The start date is inclusive. For example, // if start is 2017-01-01, AWS retrieves cost and usage data starting at 2017-01-01 // up to the end date. The start date must be equal to or no later than the // current date to avoid a validation error. // // Start is a required field Start *string `type:"string" required:"true"` } // String returns the string representation func (s DateInterval) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DateInterval) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DateInterval) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DateInterval"} if s.End == nil { invalidParams.Add(request.NewErrParamRequired("End")) } if s.Start == nil { invalidParams.Add(request.NewErrParamRequired("Start")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetEnd sets the End field's value. func (s *DateInterval) SetEnd(v string) *DateInterval { s.End = &v return s } // SetStart sets the Start field's value. func (s *DateInterval) SetStart(v string) *DateInterval { s.Start = &v return s } type DeleteAnomalyMonitorInput struct { _ struct{} `type:"structure"` // The unique identifier of the cost anomaly monitor that you want to delete. // // MonitorArn is a required field MonitorArn *string `type:"string" required:"true"` } // String returns the string representation func (s DeleteAnomalyMonitorInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DeleteAnomalyMonitorInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DeleteAnomalyMonitorInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DeleteAnomalyMonitorInput"} if s.MonitorArn == nil { invalidParams.Add(request.NewErrParamRequired("MonitorArn")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetMonitorArn sets the MonitorArn field's value. func (s *DeleteAnomalyMonitorInput) SetMonitorArn(v string) *DeleteAnomalyMonitorInput { s.MonitorArn = &v return s } type DeleteAnomalyMonitorOutput struct { _ struct{} `type:"structure"` } // String returns the string representation func (s DeleteAnomalyMonitorOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DeleteAnomalyMonitorOutput) GoString() string { return s.String() } type DeleteAnomalySubscriptionInput struct { _ struct{} `type:"structure"` // The unique identifier of the cost anomaly subscription that you want to delete. // // SubscriptionArn is a required field SubscriptionArn *string `type:"string" required:"true"` } // String returns the string representation func (s DeleteAnomalySubscriptionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DeleteAnomalySubscriptionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DeleteAnomalySubscriptionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DeleteAnomalySubscriptionInput"} if s.SubscriptionArn == nil { invalidParams.Add(request.NewErrParamRequired("SubscriptionArn")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetSubscriptionArn sets the SubscriptionArn field's value. func (s *DeleteAnomalySubscriptionInput) SetSubscriptionArn(v string) *DeleteAnomalySubscriptionInput { s.SubscriptionArn = &v return s } type DeleteAnomalySubscriptionOutput struct { _ struct{} `type:"structure"` } // String returns the string representation func (s DeleteAnomalySubscriptionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DeleteAnomalySubscriptionOutput) GoString() string { return s.String() } type DeleteCostCategoryDefinitionInput struct { _ struct{} `type:"structure"` // The unique identifier for your Cost Category. // // CostCategoryArn is a required field CostCategoryArn *string `min:"20" type:"string" required:"true"` } // String returns the string representation func (s DeleteCostCategoryDefinitionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DeleteCostCategoryDefinitionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DeleteCostCategoryDefinitionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DeleteCostCategoryDefinitionInput"} if s.CostCategoryArn == nil { invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) } if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetCostCategoryArn sets the CostCategoryArn field's value. func (s *DeleteCostCategoryDefinitionInput) SetCostCategoryArn(v string) *DeleteCostCategoryDefinitionInput { s.CostCategoryArn = &v return s } type DeleteCostCategoryDefinitionOutput struct { _ struct{} `type:"structure"` // The unique identifier for your Cost Category. CostCategoryArn *string `min:"20" type:"string"` // The effective end date of the Cost Category as a result of deleting it. No // costs after this date will be categorized by the deleted Cost Category. EffectiveEnd *string `min:"20" type:"string"` } // String returns the string representation func (s DeleteCostCategoryDefinitionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DeleteCostCategoryDefinitionOutput) GoString() string { return s.String() } // SetCostCategoryArn sets the CostCategoryArn field's value. func (s *DeleteCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *DeleteCostCategoryDefinitionOutput { s.CostCategoryArn = &v return s } // SetEffectiveEnd sets the EffectiveEnd field's value. func (s *DeleteCostCategoryDefinitionOutput) SetEffectiveEnd(v string) *DeleteCostCategoryDefinitionOutput { s.EffectiveEnd = &v return s } type DescribeCostCategoryDefinitionInput struct { _ struct{} `type:"structure"` // The unique identifier for your Cost Category. // // CostCategoryArn is a required field CostCategoryArn *string `min:"20" type:"string" required:"true"` // The date when the Cost Category was effective. EffectiveOn *string `min:"20" type:"string"` } // String returns the string representation func (s DescribeCostCategoryDefinitionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeCostCategoryDefinitionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DescribeCostCategoryDefinitionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DescribeCostCategoryDefinitionInput"} if s.CostCategoryArn == nil { invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) } if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) } if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { invalidParams.Add(request.NewErrParamMinLen("EffectiveOn", 20)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetCostCategoryArn sets the CostCategoryArn field's value. func (s *DescribeCostCategoryDefinitionInput) SetCostCategoryArn(v string) *DescribeCostCategoryDefinitionInput { s.CostCategoryArn = &v return s } // SetEffectiveOn sets the EffectiveOn field's value. func (s *DescribeCostCategoryDefinitionInput) SetEffectiveOn(v string) *DescribeCostCategoryDefinitionInput { s.EffectiveOn = &v return s } type DescribeCostCategoryDefinitionOutput struct { _ struct{} `type:"structure"` // The structure of Cost Categories. This includes detailed metadata and the // set of rules for the CostCategory object. CostCategory *CostCategory `type:"structure"` } // String returns the string representation func (s DescribeCostCategoryDefinitionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeCostCategoryDefinitionOutput) GoString() string { return s.String() } // SetCostCategory sets the CostCategory field's value. func (s *DescribeCostCategoryDefinitionOutput) SetCostCategory(v *CostCategory) *DescribeCostCategoryDefinitionOutput { s.CostCategory = v return s } // The metadata that you can use to filter and group your results. You can use // GetDimensionValues to find specific values. type DimensionValues struct { _ struct{} `type:"structure"` // The names of the metadata types that you can use to filter and group your // results. For example, AZ returns a list of Availability Zones. Key *string `type:"string" enum:"Dimension"` // The match options that you can use to filter your results. MatchOptions is // only applicable for actions related to Cost Category. The default values // for MatchOptions are EQUALS and CASE_SENSITIVE. MatchOptions []*string `type:"list"` // The metadata values that you can use to filter and group your results. You // can use GetDimensionValues to find specific values. Values []*string `type:"list"` } // String returns the string representation func (s DimensionValues) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DimensionValues) GoString() string { return s.String() } // SetKey sets the Key field's value. func (s *DimensionValues) SetKey(v string) *DimensionValues { s.Key = &v return s } // SetMatchOptions sets the MatchOptions field's value. func (s *DimensionValues) SetMatchOptions(v []*string) *DimensionValues { s.MatchOptions = v return s } // SetValues sets the Values field's value. func (s *DimensionValues) SetValues(v []*string) *DimensionValues { s.Values = v return s } // The metadata of a specific type that you can use to filter and group your // results. You can use GetDimensionValues to find specific values. type DimensionValuesWithAttributes struct { _ struct{} `type:"structure"` // The attribute that applies to a specific Dimension. Attributes map[string]*string `type:"map"` // The value of a dimension with a specific attribute. Value *string `type:"string"` } // String returns the string representation func (s DimensionValuesWithAttributes) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DimensionValuesWithAttributes) GoString() string { return s.String() } // SetAttributes sets the Attributes field's value. func (s *DimensionValuesWithAttributes) SetAttributes(v map[string]*string) *DimensionValuesWithAttributes { s.Attributes = v return s } // SetValue sets the Value field's value. func (s *DimensionValuesWithAttributes) SetValue(v string) *DimensionValuesWithAttributes { s.Value = &v return s } // The field that contains a list of disk (local storage) metrics associated // with the current instance. type DiskResourceUtilization struct { _ struct{} `type:"structure"` // The maximum read throughput operations per second. DiskReadBytesPerSecond *string `type:"string"` // The maximum number of read operations per second. DiskReadOpsPerSecond *string `type:"string"` // The maximum write throughput operations per second. DiskWriteBytesPerSecond *string `type:"string"` // The maximum number of write operations per second. DiskWriteOpsPerSecond *string `type:"string"` } // String returns the string representation func (s DiskResourceUtilization) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DiskResourceUtilization) GoString() string { return s.String() } // SetDiskReadBytesPerSecond sets the DiskReadBytesPerSecond field's value. func (s *DiskResourceUtilization) SetDiskReadBytesPerSecond(v string) *DiskResourceUtilization { s.DiskReadBytesPerSecond = &v return s } // SetDiskReadOpsPerSecond sets the DiskReadOpsPerSecond field's value. func (s *DiskResourceUtilization) SetDiskReadOpsPerSecond(v string) *DiskResourceUtilization { s.DiskReadOpsPerSecond = &v return s } // SetDiskWriteBytesPerSecond sets the DiskWriteBytesPerSecond field's value. func (s *DiskResourceUtilization) SetDiskWriteBytesPerSecond(v string) *DiskResourceUtilization { s.DiskWriteBytesPerSecond = &v return s } // SetDiskWriteOpsPerSecond sets the DiskWriteOpsPerSecond field's value. func (s *DiskResourceUtilization) SetDiskWriteOpsPerSecond(v string) *DiskResourceUtilization { s.DiskWriteOpsPerSecond = &v return s } // The EBS field that contains a list of EBS metrics associated with the current // instance. type EBSResourceUtilization struct { _ struct{} `type:"structure"` // The maximum size of read operations per second EbsReadBytesPerSecond *string `type:"string"` // The maximum number of read operations per second. EbsReadOpsPerSecond *string `type:"string"` // The maximum size of write operations per second. EbsWriteBytesPerSecond *string `type:"string"` // The maximum number of write operations per second. EbsWriteOpsPerSecond *string `type:"string"` } // String returns the string representation func (s EBSResourceUtilization) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s EBSResourceUtilization) GoString() string { return s.String() } // SetEbsReadBytesPerSecond sets the EbsReadBytesPerSecond field's value. func (s *EBSResourceUtilization) SetEbsReadBytesPerSecond(v string) *EBSResourceUtilization { s.EbsReadBytesPerSecond = &v return s } // SetEbsReadOpsPerSecond sets the EbsReadOpsPerSecond field's value. func (s *EBSResourceUtilization) SetEbsReadOpsPerSecond(v string) *EBSResourceUtilization { s.EbsReadOpsPerSecond = &v return s } // SetEbsWriteBytesPerSecond sets the EbsWriteBytesPerSecond field's value. func (s *EBSResourceUtilization) SetEbsWriteBytesPerSecond(v string) *EBSResourceUtilization { s.EbsWriteBytesPerSecond = &v return s } // SetEbsWriteOpsPerSecond sets the EbsWriteOpsPerSecond field's value. func (s *EBSResourceUtilization) SetEbsWriteOpsPerSecond(v string) *EBSResourceUtilization { s.EbsWriteOpsPerSecond = &v return s } // Details about the Amazon EC2 instances that AWS recommends that you purchase. type EC2InstanceDetails struct { _ struct{} `type:"structure"` // The Availability Zone of the recommended reservation. AvailabilityZone *string `type:"string"` // Whether the recommendation is for a current-generation instance. CurrentGeneration *bool `type:"boolean"` // The instance family of the recommended reservation. Family *string `type:"string"` // The type of instance that AWS recommends. InstanceType *string `type:"string"` // The platform of the recommended reservation. The platform is the specific // combination of operating system, license model, and software on an instance. Platform *string `type:"string"` // The AWS Region of the recommended reservation. Region *string `type:"string"` // Whether the recommended reservation is size flexible. SizeFlexEligible *bool `type:"boolean"` // Whether the recommended reservation is dedicated or shared. Tenancy *string `type:"string"` } // String returns the string representation func (s EC2InstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s EC2InstanceDetails) GoString() string { return s.String() } // SetAvailabilityZone sets the AvailabilityZone field's value. func (s *EC2InstanceDetails) SetAvailabilityZone(v string) *EC2InstanceDetails { s.AvailabilityZone = &v return s } // SetCurrentGeneration sets the CurrentGeneration field's value. func (s *EC2InstanceDetails) SetCurrentGeneration(v bool) *EC2InstanceDetails { s.CurrentGeneration = &v return s } // SetFamily sets the Family field's value. func (s *EC2InstanceDetails) SetFamily(v string) *EC2InstanceDetails { s.Family = &v return s } // SetInstanceType sets the InstanceType field's value. func (s *EC2InstanceDetails) SetInstanceType(v string) *EC2InstanceDetails { s.InstanceType = &v return s } // SetPlatform sets the Platform field's value. func (s *EC2InstanceDetails) SetPlatform(v string) *EC2InstanceDetails { s.Platform = &v return s } // SetRegion sets the Region field's value. func (s *EC2InstanceDetails) SetRegion(v string) *EC2InstanceDetails { s.Region = &v return s } // SetSizeFlexEligible sets the SizeFlexEligible field's value. func (s *EC2InstanceDetails) SetSizeFlexEligible(v bool) *EC2InstanceDetails { s.SizeFlexEligible = &v return s } // SetTenancy sets the Tenancy field's value. func (s *EC2InstanceDetails) SetTenancy(v string) *EC2InstanceDetails { s.Tenancy = &v return s } // Details on the Amazon EC2 Resource. type EC2ResourceDetails struct { _ struct{} `type:"structure"` // Hourly public On-Demand rate for the instance type. HourlyOnDemandRate *string `type:"string"` // The type of AWS instance. InstanceType *string `type:"string"` // Memory capacity of the AWS instance. Memory *string `type:"string"` // Network performance capacity of the AWS instance. NetworkPerformance *string `type:"string"` // The platform of the AWS instance. The platform is the specific combination // of operating system, license model, and software on an instance. Platform *string `type:"string"` // The AWS Region of the instance. Region *string `type:"string"` // The SKU of the product. Sku *string `type:"string"` // The disk storage of the AWS instance (not EBS storage). Storage *string `type:"string"` // Number of VCPU cores in the AWS instance type. Vcpu *string `type:"string"` } // String returns the string representation func (s EC2ResourceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s EC2ResourceDetails) GoString() string { return s.String() } // SetHourlyOnDemandRate sets the HourlyOnDemandRate field's value. func (s *EC2ResourceDetails) SetHourlyOnDemandRate(v string) *EC2ResourceDetails { s.HourlyOnDemandRate = &v return s } // SetInstanceType sets the InstanceType field's value. func (s *EC2ResourceDetails) SetInstanceType(v string) *EC2ResourceDetails { s.InstanceType = &v return s } // SetMemory sets the Memory field's value. func (s *EC2ResourceDetails) SetMemory(v string) *EC2ResourceDetails { s.Memory = &v return s } // SetNetworkPerformance sets the NetworkPerformance field's value. func (s *EC2ResourceDetails) SetNetworkPerformance(v string) *EC2ResourceDetails { s.NetworkPerformance = &v return s } // SetPlatform sets the Platform field's value. func (s *EC2ResourceDetails) SetPlatform(v string) *EC2ResourceDetails { s.Platform = &v return s } // SetRegion sets the Region field's value. func (s *EC2ResourceDetails) SetRegion(v string) *EC2ResourceDetails { s.Region = &v return s } // SetSku sets the Sku field's value. func (s *EC2ResourceDetails) SetSku(v string) *EC2ResourceDetails { s.Sku = &v return s } // SetStorage sets the Storage field's value. func (s *EC2ResourceDetails) SetStorage(v string) *EC2ResourceDetails { s.Storage = &v return s } // SetVcpu sets the Vcpu field's value. func (s *EC2ResourceDetails) SetVcpu(v string) *EC2ResourceDetails { s.Vcpu = &v return s } // Utilization metrics of the instance. type EC2ResourceUtilization struct { _ struct{} `type:"structure"` // The field that contains a list of disk (local storage) metrics associated // with the current instance. DiskResourceUtilization *DiskResourceUtilization `type:"structure"` // The EBS field that contains a list of EBS metrics associated with the current // instance. EBSResourceUtilization *EBSResourceUtilization `type:"structure"` // Maximum observed or expected CPU utilization of the instance. MaxCpuUtilizationPercentage *string `type:"string"` // Maximum observed or expected memory utilization of the instance. MaxMemoryUtilizationPercentage *string `type:"string"` // Maximum observed or expected storage utilization of the instance (does not // measure EBS storage). MaxStorageUtilizationPercentage *string `type:"string"` // The network field that contains a list of network metrics associated with // the current instance. NetworkResourceUtilization *NetworkResourceUtilization `type:"structure"` } // String returns the string representation func (s EC2ResourceUtilization) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s EC2ResourceUtilization) GoString() string { return s.String() } // SetDiskResourceUtilization sets the DiskResourceUtilization field's value. func (s *EC2ResourceUtilization) SetDiskResourceUtilization(v *DiskResourceUtilization) *EC2ResourceUtilization { s.DiskResourceUtilization = v return s } // SetEBSResourceUtilization sets the EBSResourceUtilization field's value. func (s *EC2ResourceUtilization) SetEBSResourceUtilization(v *EBSResourceUtilization) *EC2ResourceUtilization { s.EBSResourceUtilization = v return s } // SetMaxCpuUtilizationPercentage sets the MaxCpuUtilizationPercentage field's value. func (s *EC2ResourceUtilization) SetMaxCpuUtilizationPercentage(v string) *EC2ResourceUtilization { s.MaxCpuUtilizationPercentage = &v return s } // SetMaxMemoryUtilizationPercentage sets the MaxMemoryUtilizationPercentage field's value. func (s *EC2ResourceUtilization) SetMaxMemoryUtilizationPercentage(v string) *EC2ResourceUtilization { s.MaxMemoryUtilizationPercentage = &v return s } // SetMaxStorageUtilizationPercentage sets the MaxStorageUtilizationPercentage field's value. func (s *EC2ResourceUtilization) SetMaxStorageUtilizationPercentage(v string) *EC2ResourceUtilization { s.MaxStorageUtilizationPercentage = &v return s } // SetNetworkResourceUtilization sets the NetworkResourceUtilization field's value. func (s *EC2ResourceUtilization) SetNetworkResourceUtilization(v *NetworkResourceUtilization) *EC2ResourceUtilization { s.NetworkResourceUtilization = v return s } // The Amazon EC2 hardware specifications that you want AWS to provide recommendations // for. type EC2Specification struct { _ struct{} `type:"structure"` // Whether you want a recommendation for standard or convertible reservations. OfferingClass *string `type:"string" enum:"OfferingClass"` } // String returns the string representation func (s EC2Specification) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s EC2Specification) GoString() string { return s.String() } // SetOfferingClass sets the OfferingClass field's value. func (s *EC2Specification) SetOfferingClass(v string) *EC2Specification { s.OfferingClass = &v return s } // Details about the Amazon ES instances that AWS recommends that you purchase. type ESInstanceDetails struct { _ struct{} `type:"structure"` // Whether the recommendation is for a current-generation instance. CurrentGeneration *bool `type:"boolean"` // The class of instance that AWS recommends. InstanceClass *string `type:"string"` // The size of instance that AWS recommends. InstanceSize *string `type:"string"` // The AWS Region of the recommended reservation. Region *string `type:"string"` // Whether the recommended reservation is size flexible. SizeFlexEligible *bool `type:"boolean"` } // String returns the string representation func (s ESInstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ESInstanceDetails) GoString() string { return s.String() } // SetCurrentGeneration sets the CurrentGeneration field's value. func (s *ESInstanceDetails) SetCurrentGeneration(v bool) *ESInstanceDetails { s.CurrentGeneration = &v return s } // SetInstanceClass sets the InstanceClass field's value. func (s *ESInstanceDetails) SetInstanceClass(v string) *ESInstanceDetails { s.InstanceClass = &v return s } // SetInstanceSize sets the InstanceSize field's value. func (s *ESInstanceDetails) SetInstanceSize(v string) *ESInstanceDetails { s.InstanceSize = &v return s } // SetRegion sets the Region field's value. func (s *ESInstanceDetails) SetRegion(v string) *ESInstanceDetails { s.Region = &v return s } // SetSizeFlexEligible sets the SizeFlexEligible field's value. func (s *ESInstanceDetails) SetSizeFlexEligible(v bool) *ESInstanceDetails { s.SizeFlexEligible = &v return s } // Details about the Amazon ElastiCache instances that AWS recommends that you // purchase. type ElastiCacheInstanceDetails struct { _ struct{} `type:"structure"` // Whether the recommendation is for a current generation instance. CurrentGeneration *bool `type:"boolean"` // The instance family of the recommended reservation. Family *string `type:"string"` // The type of node that AWS recommends. NodeType *string `type:"string"` // The description of the recommended reservation. ProductDescription *string `type:"string"` // The AWS Region of the recommended reservation. Region *string `type:"string"` // Whether the recommended reservation is size flexible. SizeFlexEligible *bool `type:"boolean"` } // String returns the string representation func (s ElastiCacheInstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ElastiCacheInstanceDetails) GoString() string { return s.String() } // SetCurrentGeneration sets the CurrentGeneration field's value. func (s *ElastiCacheInstanceDetails) SetCurrentGeneration(v bool) *ElastiCacheInstanceDetails { s.CurrentGeneration = &v return s } // SetFamily sets the Family field's value. func (s *ElastiCacheInstanceDetails) SetFamily(v string) *ElastiCacheInstanceDetails { s.Family = &v return s } // SetNodeType sets the NodeType field's value. func (s *ElastiCacheInstanceDetails) SetNodeType(v string) *ElastiCacheInstanceDetails { s.NodeType = &v return s } // SetProductDescription sets the ProductDescription field's value. func (s *ElastiCacheInstanceDetails) SetProductDescription(v string) *ElastiCacheInstanceDetails { s.ProductDescription = &v return s } // SetRegion sets the Region field's value. func (s *ElastiCacheInstanceDetails) SetRegion(v string) *ElastiCacheInstanceDetails { s.Region = &v return s } // SetSizeFlexEligible sets the SizeFlexEligible field's value. func (s *ElastiCacheInstanceDetails) SetSizeFlexEligible(v bool) *ElastiCacheInstanceDetails { s.SizeFlexEligible = &v return s } // Use Expression to filter by cost or by usage. There are two patterns: // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for // REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, // the Region is a full name (for example, REGION==US East (N. Virginia). // The Expression example looks like: { "Dimensions": { "Key": "REGION", // "Values": [ "us-east-1", “us-west-1†] } } The list of dimension values // are OR'd together to retrieve cost or usage data. You can create Expression // and DimensionValues objects using either with* methods or set* methods // in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list // of one or more Expression objects. This allows you to filter on more advanced // options. For example, you can filter on ((REGION == us-east-1 OR REGION // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each // Expression can have only one operator, the service returns an error if // more than one is specified. The following example shows an Expression // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } // // For the GetRightsizingRecommendation action, a combination of OR and NOT // is not supported. OR is not supported between different dimensions, or dimensions // and tags. NOT operators aren't supported. Dimensions are also limited to // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. // // For the GetReservationPurchaseRecommendation action, only NOT is supported. // AND and OR are not supported. Dimensions are limited to LINKED_ACCOUNT. type Expression struct { _ struct{} `type:"structure"` // Return results that match both Dimension objects. And []*Expression `type:"list"` // The filter based on CostCategory values. CostCategories *CostCategoryValues `type:"structure"` // The specific Dimension to use for Expression. Dimensions *DimensionValues `type:"structure"` // Return results that don't match a Dimension object. Not *Expression `type:"structure"` // Return results that match either Dimension object. Or []*Expression `type:"list"` // The specific Tag to use for Expression. Tags *TagValues `type:"structure"` } // String returns the string representation func (s Expression) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Expression) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *Expression) Validate() error { invalidParams := request.ErrInvalidParams{Context: "Expression"} if s.CostCategories != nil { if err := s.CostCategories.Validate(); err != nil { invalidParams.AddNested("CostCategories", err.(request.ErrInvalidParams)) } } if s.Not != nil { if err := s.Not.Validate(); err != nil { invalidParams.AddNested("Not", err.(request.ErrInvalidParams)) } } if s.Or != nil { for i, v := range s.Or { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Or", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetAnd sets the And field's value. func (s *Expression) SetAnd(v []*Expression) *Expression { s.And = v return s } // SetCostCategories sets the CostCategories field's value. func (s *Expression) SetCostCategories(v *CostCategoryValues) *Expression { s.CostCategories = v return s } // SetDimensions sets the Dimensions field's value. func (s *Expression) SetDimensions(v *DimensionValues) *Expression { s.Dimensions = v return s } // SetNot sets the Not field's value. func (s *Expression) SetNot(v *Expression) *Expression { s.Not = v return s } // SetOr sets the Or field's value. func (s *Expression) SetOr(v []*Expression) *Expression { s.Or = v return s } // SetTags sets the Tags field's value. func (s *Expression) SetTags(v *TagValues) *Expression { s.Tags = v return s } // The forecast created for your query. type ForecastResult struct { _ struct{} `type:"structure"` // The mean value of the forecast. MeanValue *string `type:"string"` // The lower limit for the prediction interval. PredictionIntervalLowerBound *string `type:"string"` // The upper limit for the prediction interval. PredictionIntervalUpperBound *string `type:"string"` // The period of time that the forecast covers. TimePeriod *DateInterval `type:"structure"` } // String returns the string representation func (s ForecastResult) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ForecastResult) GoString() string { return s.String() } // SetMeanValue sets the MeanValue field's value. func (s *ForecastResult) SetMeanValue(v string) *ForecastResult { s.MeanValue = &v return s } // SetPredictionIntervalLowerBound sets the PredictionIntervalLowerBound field's value. func (s *ForecastResult) SetPredictionIntervalLowerBound(v string) *ForecastResult { s.PredictionIntervalLowerBound = &v return s } // SetPredictionIntervalUpperBound sets the PredictionIntervalUpperBound field's value. func (s *ForecastResult) SetPredictionIntervalUpperBound(v string) *ForecastResult { s.PredictionIntervalUpperBound = &v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *ForecastResult) SetTimePeriod(v *DateInterval) *ForecastResult { s.TimePeriod = v return s } type GetAnomaliesInput struct { _ struct{} `type:"structure"` // Assigns the start and end dates for retrieving cost anomalies. The returned // anomaly object will have an AnomalyEndDate in the specified time range. // // DateInterval is a required field DateInterval *AnomalyDateInterval `type:"structure" required:"true"` // Filters anomaly results by the feedback field on the anomaly object. Feedback *string `type:"string" enum:"AnomalyFeedbackType"` // The number of entries a paginated response contains. MaxResults *int64 `type:"integer"` // Retrieves all of the cost anomalies detected for a specific cost anomaly // monitor Amazon Resource Name (ARN). MonitorArn *string `type:"string"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` // Filters anomaly results by the total impact field on the anomaly object. // For example, you can filter anomalies GREATER_THAN 200.00 to retrieve anomalies, // with an estimated dollar impact greater than 200. TotalImpact *TotalImpactFilter `type:"structure"` } // String returns the string representation func (s GetAnomaliesInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetAnomaliesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetAnomaliesInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetAnomaliesInput"} if s.DateInterval == nil { invalidParams.Add(request.NewErrParamRequired("DateInterval")) } if s.DateInterval != nil { if err := s.DateInterval.Validate(); err != nil { invalidParams.AddNested("DateInterval", err.(request.ErrInvalidParams)) } } if s.TotalImpact != nil { if err := s.TotalImpact.Validate(); err != nil { invalidParams.AddNested("TotalImpact", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetDateInterval sets the DateInterval field's value. func (s *GetAnomaliesInput) SetDateInterval(v *AnomalyDateInterval) *GetAnomaliesInput { s.DateInterval = v return s } // SetFeedback sets the Feedback field's value. func (s *GetAnomaliesInput) SetFeedback(v string) *GetAnomaliesInput { s.Feedback = &v return s } // SetMaxResults sets the MaxResults field's value. func (s *GetAnomaliesInput) SetMaxResults(v int64) *GetAnomaliesInput { s.MaxResults = &v return s } // SetMonitorArn sets the MonitorArn field's value. func (s *GetAnomaliesInput) SetMonitorArn(v string) *GetAnomaliesInput { s.MonitorArn = &v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetAnomaliesInput) SetNextPageToken(v string) *GetAnomaliesInput { s.NextPageToken = &v return s } // SetTotalImpact sets the TotalImpact field's value. func (s *GetAnomaliesInput) SetTotalImpact(v *TotalImpactFilter) *GetAnomaliesInput { s.TotalImpact = v return s } type GetAnomaliesOutput struct { _ struct{} `type:"structure"` // A list of cost anomalies. // // Anomalies is a required field Anomalies []*Anomaly `type:"list" required:"true"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` } // String returns the string representation func (s GetAnomaliesOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetAnomaliesOutput) GoString() string { return s.String() } // SetAnomalies sets the Anomalies field's value. func (s *GetAnomaliesOutput) SetAnomalies(v []*Anomaly) *GetAnomaliesOutput { s.Anomalies = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetAnomaliesOutput) SetNextPageToken(v string) *GetAnomaliesOutput { s.NextPageToken = &v return s } type GetAnomalyMonitorsInput struct { _ struct{} `type:"structure"` // The number of entries a paginated response contains. MaxResults *int64 `type:"integer"` // A list of cost anomaly monitor ARNs. MonitorArnList []*string `type:"list"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` } // String returns the string representation func (s GetAnomalyMonitorsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetAnomalyMonitorsInput) GoString() string { return s.String() } // SetMaxResults sets the MaxResults field's value. func (s *GetAnomalyMonitorsInput) SetMaxResults(v int64) *GetAnomalyMonitorsInput { s.MaxResults = &v return s } // SetMonitorArnList sets the MonitorArnList field's value. func (s *GetAnomalyMonitorsInput) SetMonitorArnList(v []*string) *GetAnomalyMonitorsInput { s.MonitorArnList = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetAnomalyMonitorsInput) SetNextPageToken(v string) *GetAnomalyMonitorsInput { s.NextPageToken = &v return s } type GetAnomalyMonitorsOutput struct { _ struct{} `type:"structure"` // A list of cost anomaly monitors that includes the detailed metadata for each // monitor. // // AnomalyMonitors is a required field AnomalyMonitors []*AnomalyMonitor `type:"list" required:"true"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` } // String returns the string representation func (s GetAnomalyMonitorsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetAnomalyMonitorsOutput) GoString() string { return s.String() } // SetAnomalyMonitors sets the AnomalyMonitors field's value. func (s *GetAnomalyMonitorsOutput) SetAnomalyMonitors(v []*AnomalyMonitor) *GetAnomalyMonitorsOutput { s.AnomalyMonitors = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetAnomalyMonitorsOutput) SetNextPageToken(v string) *GetAnomalyMonitorsOutput { s.NextPageToken = &v return s } type GetAnomalySubscriptionsInput struct { _ struct{} `type:"structure"` // The number of entries a paginated response contains. MaxResults *int64 `type:"integer"` // Cost anomaly monitor ARNs. MonitorArn *string `type:"string"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` // A list of cost anomaly subscription ARNs. SubscriptionArnList []*string `type:"list"` } // String returns the string representation func (s GetAnomalySubscriptionsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetAnomalySubscriptionsInput) GoString() string { return s.String() } // SetMaxResults sets the MaxResults field's value. func (s *GetAnomalySubscriptionsInput) SetMaxResults(v int64) *GetAnomalySubscriptionsInput { s.MaxResults = &v return s } // SetMonitorArn sets the MonitorArn field's value. func (s *GetAnomalySubscriptionsInput) SetMonitorArn(v string) *GetAnomalySubscriptionsInput { s.MonitorArn = &v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetAnomalySubscriptionsInput) SetNextPageToken(v string) *GetAnomalySubscriptionsInput { s.NextPageToken = &v return s } // SetSubscriptionArnList sets the SubscriptionArnList field's value. func (s *GetAnomalySubscriptionsInput) SetSubscriptionArnList(v []*string) *GetAnomalySubscriptionsInput { s.SubscriptionArnList = v return s } type GetAnomalySubscriptionsOutput struct { _ struct{} `type:"structure"` // A list of cost anomaly subscriptions that includes the detailed metadata // for each one. // // AnomalySubscriptions is a required field AnomalySubscriptions []*AnomalySubscription `type:"list" required:"true"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` } // String returns the string representation func (s GetAnomalySubscriptionsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetAnomalySubscriptionsOutput) GoString() string { return s.String() } // SetAnomalySubscriptions sets the AnomalySubscriptions field's value. func (s *GetAnomalySubscriptionsOutput) SetAnomalySubscriptions(v []*AnomalySubscription) *GetAnomalySubscriptionsOutput { s.AnomalySubscriptions = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetAnomalySubscriptionsOutput) SetNextPageToken(v string) *GetAnomalySubscriptionsOutput { s.NextPageToken = &v return s } type GetCostAndUsageInput struct { _ struct{} `type:"structure"` // Filters AWS costs by different dimensions. For example, you can specify SERVICE // and LINKED_ACCOUNT and get the costs that are associated with that account's // usage of that service. You can nest Expression objects to define any combination // of dimension filters. For more information, see Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html). Filter *Expression `type:"structure"` // Sets the AWS cost granularity to MONTHLY or DAILY, or HOURLY. If Granularity // isn't set, the response object doesn't include the Granularity, either MONTHLY // or DAILY, or HOURLY. // // Granularity is a required field Granularity *string `type:"string" required:"true" enum:"Granularity"` // You can group AWS costs using up to two different groups, either dimensions, // tag keys, cost categories, or any two group by types. // // When you group by tag key, you get all tag values, including empty strings. // // Valid values are AZ, INSTANCE_TYPE, LEGAL_ENTITY_NAME, LINKED_ACCOUNT, OPERATION, // PLATFORM, PURCHASE_TYPE, SERVICE, TAGS, TENANCY, RECORD_TYPE, and USAGE_TYPE. GroupBy []*GroupDefinition `type:"list"` // Which metrics are returned in the query. For more information about blended // and unblended rates, see Why does the "blended" annotation appear on some // line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). // // Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, // NormalizedUsageAmount, UnblendedCost, and UsageQuantity. // // If you return the UsageQuantity metric, the service aggregates all usage // numbers without taking into account the units. For example, if you aggregate // usageQuantity across all of Amazon EC2, the results aren't meaningful because // Amazon EC2 compute hours and data transfer are measured in different units // (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, // filter by UsageType or UsageTypeGroups. // // Metrics is required for GetCostAndUsage requests. // // Metrics is a required field Metrics []*string `type:"list" required:"true"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` // Sets the start and end dates for retrieving AWS costs. The start date is // inclusive, but the end date is exclusive. For example, if start is 2017-01-01 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 // up to and including 2017-04-30 but not including 2017-05-01. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetCostAndUsageInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetCostAndUsageInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetCostAndUsageInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetCostAndUsageInput"} if s.Granularity == nil { invalidParams.Add(request.NewErrParamRequired("Granularity")) } if s.Metrics == nil { invalidParams.Add(request.NewErrParamRequired("Metrics")) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *GetCostAndUsageInput) SetFilter(v *Expression) *GetCostAndUsageInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. func (s *GetCostAndUsageInput) SetGranularity(v string) *GetCostAndUsageInput { s.Granularity = &v return s } // SetGroupBy sets the GroupBy field's value. func (s *GetCostAndUsageInput) SetGroupBy(v []*GroupDefinition) *GetCostAndUsageInput { s.GroupBy = v return s } // SetMetrics sets the Metrics field's value. func (s *GetCostAndUsageInput) SetMetrics(v []*string) *GetCostAndUsageInput { s.Metrics = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetCostAndUsageInput) SetNextPageToken(v string) *GetCostAndUsageInput { s.NextPageToken = &v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetCostAndUsageInput) SetTimePeriod(v *DateInterval) *GetCostAndUsageInput { s.TimePeriod = v return s } type GetCostAndUsageOutput struct { _ struct{} `type:"structure"` // The attributes that apply to a specific dimension value. For example, if // the value is a linked account, the attribute is that account name. DimensionValueAttributes []*DimensionValuesWithAttributes `type:"list"` // The groups that are specified by the Filter or GroupBy parameters in the // request. GroupDefinitions []*GroupDefinition `type:"list"` // The token for the next set of retrievable results. AWS provides the token // when the response from a previous call has more results than the maximum // page size. NextPageToken *string `type:"string"` // The time period that is covered by the results in the response. ResultsByTime []*ResultByTime `type:"list"` } // String returns the string representation func (s GetCostAndUsageOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetCostAndUsageOutput) GoString() string { return s.String() } // SetDimensionValueAttributes sets the DimensionValueAttributes field's value. func (s *GetCostAndUsageOutput) SetDimensionValueAttributes(v []*DimensionValuesWithAttributes) *GetCostAndUsageOutput { s.DimensionValueAttributes = v return s } // SetGroupDefinitions sets the GroupDefinitions field's value. func (s *GetCostAndUsageOutput) SetGroupDefinitions(v []*GroupDefinition) *GetCostAndUsageOutput { s.GroupDefinitions = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetCostAndUsageOutput) SetNextPageToken(v string) *GetCostAndUsageOutput { s.NextPageToken = &v return s } // SetResultsByTime sets the ResultsByTime field's value. func (s *GetCostAndUsageOutput) SetResultsByTime(v []*ResultByTime) *GetCostAndUsageOutput { s.ResultsByTime = v return s } type GetCostAndUsageWithResourcesInput struct { _ struct{} `type:"structure"` // Filters Amazon Web Services costs by different dimensions. For example, you // can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated // with that account's usage of that service. You can nest Expression objects // to define any combination of dimension filters. For more information, see // Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html). // // The GetCostAndUsageWithResources operation requires that you either group // by or filter by a ResourceId. It requires the Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // "SERVICE = Amazon Elastic Compute Cloud - Compute" in the filter. // // Filter is a required field Filter *Expression `type:"structure" required:"true"` // Sets the AWS cost granularity to MONTHLY, DAILY, or HOURLY. If Granularity // isn't set, the response object doesn't include the Granularity, MONTHLY, // DAILY, or HOURLY. // // Granularity is a required field Granularity *string `type:"string" required:"true" enum:"Granularity"` // You can group Amazon Web Services costs using up to two different groups: // DIMENSION, TAG, COST_CATEGORY. GroupBy []*GroupDefinition `type:"list"` // Which metrics are returned in the query. For more information about blended // and unblended rates, see Why does the "blended" annotation appear on some // line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). // // Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, // NormalizedUsageAmount, UnblendedCost, and UsageQuantity. // // If you return the UsageQuantity metric, the service aggregates all usage // numbers without taking the units into account. For example, if you aggregate // usageQuantity across all of Amazon EC2, the results aren't meaningful because // Amazon EC2 compute hours and data transfer are measured in different units // (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, // filter by UsageType or UsageTypeGroups. // // Metrics is required for GetCostAndUsageWithResources requests. Metrics []*string `type:"list"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` // Sets the start and end dates for retrieving Amazon Web Services costs. The // range must be within the last 14 days (the start date cannot be earlier than // 14 days ago). The start date is inclusive, but the end date is exclusive. // For example, if start is 2017-01-01 and end is 2017-05-01, then the cost // and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 // but not including 2017-05-01. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetCostAndUsageWithResourcesInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetCostAndUsageWithResourcesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetCostAndUsageWithResourcesInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetCostAndUsageWithResourcesInput"} if s.Filter == nil { invalidParams.Add(request.NewErrParamRequired("Filter")) } if s.Granularity == nil { invalidParams.Add(request.NewErrParamRequired("Granularity")) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *GetCostAndUsageWithResourcesInput) SetFilter(v *Expression) *GetCostAndUsageWithResourcesInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. func (s *GetCostAndUsageWithResourcesInput) SetGranularity(v string) *GetCostAndUsageWithResourcesInput { s.Granularity = &v return s } // SetGroupBy sets the GroupBy field's value. func (s *GetCostAndUsageWithResourcesInput) SetGroupBy(v []*GroupDefinition) *GetCostAndUsageWithResourcesInput { s.GroupBy = v return s } // SetMetrics sets the Metrics field's value. func (s *GetCostAndUsageWithResourcesInput) SetMetrics(v []*string) *GetCostAndUsageWithResourcesInput { s.Metrics = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetCostAndUsageWithResourcesInput) SetNextPageToken(v string) *GetCostAndUsageWithResourcesInput { s.NextPageToken = &v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetCostAndUsageWithResourcesInput) SetTimePeriod(v *DateInterval) *GetCostAndUsageWithResourcesInput { s.TimePeriod = v return s } type GetCostAndUsageWithResourcesOutput struct { _ struct{} `type:"structure"` // The attributes that apply to a specific dimension value. For example, if // the value is a linked account, the attribute is that account name. DimensionValueAttributes []*DimensionValuesWithAttributes `type:"list"` // The groups that are specified by the Filter or GroupBy parameters in the // request. GroupDefinitions []*GroupDefinition `type:"list"` // The token for the next set of retrievable results. AWS provides the token // when the response from a previous call has more results than the maximum // page size. NextPageToken *string `type:"string"` // The time period that is covered by the results in the response. ResultsByTime []*ResultByTime `type:"list"` } // String returns the string representation func (s GetCostAndUsageWithResourcesOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetCostAndUsageWithResourcesOutput) GoString() string { return s.String() } // SetDimensionValueAttributes sets the DimensionValueAttributes field's value. func (s *GetCostAndUsageWithResourcesOutput) SetDimensionValueAttributes(v []*DimensionValuesWithAttributes) *GetCostAndUsageWithResourcesOutput { s.DimensionValueAttributes = v return s } // SetGroupDefinitions sets the GroupDefinitions field's value. func (s *GetCostAndUsageWithResourcesOutput) SetGroupDefinitions(v []*GroupDefinition) *GetCostAndUsageWithResourcesOutput { s.GroupDefinitions = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetCostAndUsageWithResourcesOutput) SetNextPageToken(v string) *GetCostAndUsageWithResourcesOutput { s.NextPageToken = &v return s } // SetResultsByTime sets the ResultsByTime field's value. func (s *GetCostAndUsageWithResourcesOutput) SetResultsByTime(v []*ResultByTime) *GetCostAndUsageWithResourcesOutput { s.ResultsByTime = v return s } type GetCostCategoriesInput struct { _ struct{} `type:"structure"` // The unique name of the Cost Category. CostCategoryName *string `min:"1" type:"string"` // Use Expression to filter by cost or by usage. There are two patterns: // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for // REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, // the Region is a full name (for example, REGION==US East (N. Virginia). // The Expression example looks like: { "Dimensions": { "Key": "REGION", // "Values": [ "us-east-1", “us-west-1†] } } The list of dimension values // are OR'd together to retrieve cost or usage data. You can create Expression // and DimensionValues objects using either with* methods or set* methods // in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list // of one or more Expression objects. This allows you to filter on more advanced // options. For example, you can filter on ((REGION == us-east-1 OR REGION // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each // Expression can have only one operator, the service returns an error if // more than one is specified. The following example shows an Expression // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } // // For the GetRightsizingRecommendation action, a combination of OR and NOT // is not supported. OR is not supported between different dimensions, or dimensions // and tags. NOT operators aren't supported. Dimensions are also limited to // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. // // For the GetReservationPurchaseRecommendation action, only NOT is supported. // AND and OR are not supported. Dimensions are limited to LINKED_ACCOUNT. Filter *Expression `type:"structure"` // This field is only used when SortBy is provided in the request. // // The maximum number of objects that to be returned for this request. If MaxResults // is not specified with SortBy, the request will return 1000 results as the // default value for this parameter. // // For GetCostCategories, MaxResults has an upper limit of 1000. MaxResults *int64 `min:"1" type:"integer"` // If the number of objects that are still available for retrieval exceeds the // limit, AWS returns a NextPageToken value in the response. To retrieve the // next batch of objects, provide the NextPageToken from the prior call in your // next request. NextPageToken *string `type:"string"` // The value that you want to search the filter values for. // // If you do not specify a CostCategoryName, SearchString will be used to filter // Cost Category names that match the SearchString pattern. If you do specifiy // a CostCategoryName, SearchString will be used to filter Cost Category values // that match the SearchString pattern. SearchString *string `type:"string"` // The value by which you want to sort the data. // // The key represents cost and usage metrics. The following values are supported: // // * BlendedCost // // * UnblendedCost // // * AmortizedCost // // * NetAmortizedCost // // * NetUnblendedCost // // * UsageQuantity // // * NormalizedUsageAmount // // Supported values for SortOrder are ASCENDING or DESCENDING. // // When using SortBy, NextPageToken and SearchString are not supported. SortBy []*SortDefinition `type:"list"` // The time period of the request. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetCostCategoriesInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetCostCategoriesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetCostCategoriesInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetCostCategoriesInput"} if s.CostCategoryName != nil && len(*s.CostCategoryName) < 1 { invalidParams.Add(request.NewErrParamMinLen("CostCategoryName", 1)) } if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.SortBy != nil { for i, v := range s.SortBy { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SortBy", i), err.(request.ErrInvalidParams)) } } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetCostCategoryName sets the CostCategoryName field's value. func (s *GetCostCategoriesInput) SetCostCategoryName(v string) *GetCostCategoriesInput { s.CostCategoryName = &v return s } // SetFilter sets the Filter field's value. func (s *GetCostCategoriesInput) SetFilter(v *Expression) *GetCostCategoriesInput { s.Filter = v return s } // SetMaxResults sets the MaxResults field's value. func (s *GetCostCategoriesInput) SetMaxResults(v int64) *GetCostCategoriesInput { s.MaxResults = &v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetCostCategoriesInput) SetNextPageToken(v string) *GetCostCategoriesInput { s.NextPageToken = &v return s } // SetSearchString sets the SearchString field's value. func (s *GetCostCategoriesInput) SetSearchString(v string) *GetCostCategoriesInput { s.SearchString = &v return s } // SetSortBy sets the SortBy field's value. func (s *GetCostCategoriesInput) SetSortBy(v []*SortDefinition) *GetCostCategoriesInput { s.SortBy = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetCostCategoriesInput) SetTimePeriod(v *DateInterval) *GetCostCategoriesInput { s.TimePeriod = v return s } type GetCostCategoriesOutput struct { _ struct{} `type:"structure"` // The names of the Cost Categories. CostCategoryNames []*string `type:"list"` // The Cost Category values. // // CostCategoryValues are not returned if CostCategoryName is not specified // in the request. CostCategoryValues []*string `type:"list"` // If the number of objects that are still available for retrieval exceeds the // limit, AWS returns a NextPageToken value in the response. To retrieve the // next batch of objects, provide the marker from the prior call in your next // request. NextPageToken *string `type:"string"` // The number of objects returned. // // ReturnSize is a required field ReturnSize *int64 `type:"integer" required:"true"` // The total number of objects. // // TotalSize is a required field TotalSize *int64 `type:"integer" required:"true"` } // String returns the string representation func (s GetCostCategoriesOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetCostCategoriesOutput) GoString() string { return s.String() } // SetCostCategoryNames sets the CostCategoryNames field's value. func (s *GetCostCategoriesOutput) SetCostCategoryNames(v []*string) *GetCostCategoriesOutput { s.CostCategoryNames = v return s } // SetCostCategoryValues sets the CostCategoryValues field's value. func (s *GetCostCategoriesOutput) SetCostCategoryValues(v []*string) *GetCostCategoriesOutput { s.CostCategoryValues = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetCostCategoriesOutput) SetNextPageToken(v string) *GetCostCategoriesOutput { s.NextPageToken = &v return s } // SetReturnSize sets the ReturnSize field's value. func (s *GetCostCategoriesOutput) SetReturnSize(v int64) *GetCostCategoriesOutput { s.ReturnSize = &v return s } // SetTotalSize sets the TotalSize field's value. func (s *GetCostCategoriesOutput) SetTotalSize(v int64) *GetCostCategoriesOutput { s.TotalSize = &v return s } type GetCostForecastInput struct { _ struct{} `type:"structure"` // The filters that you want to use to filter your forecast. The GetCostForecast // API supports filtering by the following dimensions: // // * AZ // // * INSTANCE_TYPE // // * LINKED_ACCOUNT // // * LINKED_ACCOUNT_NAME // // * OPERATION // // * PURCHASE_TYPE // // * REGION // // * SERVICE // // * USAGE_TYPE // // * USAGE_TYPE_GROUP // // * RECORD_TYPE // // * OPERATING_SYSTEM // // * TENANCY // // * SCOPE // // * PLATFORM // // * SUBSCRIPTION_ID // // * LEGAL_ENTITY_NAME // // * DEPLOYMENT_OPTION // // * DATABASE_ENGINE // // * INSTANCE_TYPE_FAMILY // // * BILLING_ENTITY // // * RESERVATION_ID // // * SAVINGS_PLAN_ARN Filter *Expression `type:"structure"` // How granular you want the forecast to be. You can get 3 months of DAILY forecasts // or 12 months of MONTHLY forecasts. // // The GetCostForecast operation supports only DAILY and MONTHLY granularities. // // Granularity is a required field Granularity *string `type:"string" required:"true" enum:"Granularity"` // Which metric Cost Explorer uses to create your forecast. For more information // about blended and unblended rates, see Why does the "blended" annotation // appear on some line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). // // Valid values for a GetCostForecast call are the following: // // * AMORTIZED_COST // // * BLENDED_COST // // * NET_AMORTIZED_COST // // * NET_UNBLENDED_COST // // * UNBLENDED_COST // // Metric is a required field Metric *string `type:"string" required:"true" enum:"Metric"` // Cost Explorer always returns the mean forecast as a single point. You can // request a prediction interval around the mean by specifying a confidence // level. The higher the confidence level, the more confident Cost Explorer // is about the actual value falling in the prediction interval. Higher confidence // levels result in wider prediction intervals. PredictionIntervalLevel *int64 `min:"51" type:"integer"` // The period of time that you want the forecast to cover. The start date must // be equal to or no later than the current date to avoid a validation error. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetCostForecastInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetCostForecastInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetCostForecastInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetCostForecastInput"} if s.Granularity == nil { invalidParams.Add(request.NewErrParamRequired("Granularity")) } if s.Metric == nil { invalidParams.Add(request.NewErrParamRequired("Metric")) } if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *GetCostForecastInput) SetFilter(v *Expression) *GetCostForecastInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. func (s *GetCostForecastInput) SetGranularity(v string) *GetCostForecastInput { s.Granularity = &v return s } // SetMetric sets the Metric field's value. func (s *GetCostForecastInput) SetMetric(v string) *GetCostForecastInput { s.Metric = &v return s } // SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. func (s *GetCostForecastInput) SetPredictionIntervalLevel(v int64) *GetCostForecastInput { s.PredictionIntervalLevel = &v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetCostForecastInput) SetTimePeriod(v *DateInterval) *GetCostForecastInput { s.TimePeriod = v return s } type GetCostForecastOutput struct { _ struct{} `type:"structure"` // The forecasts for your query, in order. For DAILY forecasts, this is a list // of days. For MONTHLY forecasts, this is a list of months. ForecastResultsByTime []*ForecastResult `type:"list"` // How much you are forecasted to spend over the forecast period, in USD. Total *MetricValue `type:"structure"` } // String returns the string representation func (s GetCostForecastOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetCostForecastOutput) GoString() string { return s.String() } // SetForecastResultsByTime sets the ForecastResultsByTime field's value. func (s *GetCostForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetCostForecastOutput { s.ForecastResultsByTime = v return s } // SetTotal sets the Total field's value. func (s *GetCostForecastOutput) SetTotal(v *MetricValue) *GetCostForecastOutput { s.Total = v return s } type GetDimensionValuesInput struct { _ struct{} `type:"structure"` // The context for the call to GetDimensionValues. This can be RESERVATIONS // or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is // set to RESERVATIONS, the resulting dimension values can be used in the GetReservationUtilization // operation. If the context is set to COST_AND_USAGE, the resulting dimension // values can be used in the GetCostAndUsage operation. // // If you set the context to COST_AND_USAGE, you can use the following dimensions // for searching: // // * AZ - The Availability Zone. An example is us-east-1a. // // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples // are Aurora or MySQL. // // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. // // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS // services, such as Amazon Web Services. // // * LINKED_ACCOUNT - The description in the attribute map that includes // the full name of the member account. The value field contains the AWS // ID of the member account. // // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. // // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. // // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or // Linux. // // * PURCHASE_TYPE - The reservation type of the purchase to which this usage // is related. Examples include On-Demand Instances and Standard Reserved // Instances. // // * SERVICE - The AWS service such as Amazon DynamoDB. // // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. // The response for the GetDimensionValues operation includes a unit attribute. // Examples include GB and Hrs. // // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is // Amazon EC2: CloudWatch – Alarms. The response for this operation includes // a unit attribute. // // * REGION - The AWS Region. // // * RECORD_TYPE - The different types of charges such as RI fees, usage // costs, tax refunds, and credits. // // * RESOURCE_ID - The unique identifier of the resource. ResourceId is an // opt-in feature only available for last 14 days for EC2-Compute Service. // // If you set the context to RESERVATIONS, you can use the following dimensions // for searching: // // * AZ - The Availability Zone. An example is us-east-1a. // // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are // Windows or Linux. // // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service // deployments. Valid values are SingleAZ and MultiAZ. // // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. // // * LINKED_ACCOUNT - The description in the attribute map that includes // the full name of the member account. The value field contains the AWS // ID of the member account. // // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or // Linux. // // * REGION - The AWS Region. // // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values // are regional or a single Availability Zone. // // * TAG (Coverage only) - The tags that are associated with a Reserved Instance // (RI). // // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. // // If you set the context to SAVINGS_PLANS, you can use the following dimensions // for searching: // // * SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) // // * PAYMENT_OPTION - Payment option for the given Savings Plans (for example, // All Upfront) // // * REGION - The AWS Region. // // * INSTANCE_TYPE_FAMILY - The family of instances (For example, m5) // // * LINKED_ACCOUNT - The description in the attribute map that includes // the full name of the member account. The value field contains the AWS // ID of the member account. // // * SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan Context *string `type:"string" enum:"Context"` // The name of the dimension. Each Dimension is available for a different Context. // For more information, see Context. // // Dimension is a required field Dimension *string `type:"string" required:"true" enum:"Dimension"` // Use Expression to filter by cost or by usage. There are two patterns: // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for // REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, // the Region is a full name (for example, REGION==US East (N. Virginia). // The Expression example looks like: { "Dimensions": { "Key": "REGION", // "Values": [ "us-east-1", “us-west-1†] } } The list of dimension values // are OR'd together to retrieve cost or usage data. You can create Expression // and DimensionValues objects using either with* methods or set* methods // in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list // of one or more Expression objects. This allows you to filter on more advanced // options. For example, you can filter on ((REGION == us-east-1 OR REGION // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each // Expression can have only one operator, the service returns an error if // more than one is specified. The following example shows an Expression // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } // // For the GetRightsizingRecommendation action, a combination of OR and NOT // is not supported. OR is not supported between different dimensions, or dimensions // and tags. NOT operators aren't supported. Dimensions are also limited to // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. // // For the GetReservationPurchaseRecommendation action, only NOT is supported. // AND and OR are not supported. Dimensions are limited to LINKED_ACCOUNT. Filter *Expression `type:"structure"` // This field is only used when SortBy is provided in the request. The maximum // number of objects that to be returned for this request. If MaxResults is // not specified with SortBy, the request will return 1000 results as the default // value for this parameter. // // For GetDimensionValues, MaxResults has an upper limit of 1000. MaxResults *int64 `min:"1" type:"integer"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` // The value that you want to search the filter values for. SearchString *string `type:"string"` // The value by which you want to sort the data. // // The key represents cost and usage metrics. The following values are supported: // // * BlendedCost // // * UnblendedCost // // * AmortizedCost // // * NetAmortizedCost // // * NetUnblendedCost // // * UsageQuantity // // * NormalizedUsageAmount // // Supported values for SortOrder are ASCENDING or DESCENDING. // // When you specify a SortBy paramater, the context must be COST_AND_USAGE. // Further, when using SortBy, NextPageToken and SearchString are not supported. SortBy []*SortDefinition `type:"list"` // The start and end dates for retrieving the dimension values. The start date // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 // up to and including 2017-04-30 but not including 2017-05-01. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetDimensionValuesInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetDimensionValuesInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetDimensionValuesInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetDimensionValuesInput"} if s.Dimension == nil { invalidParams.Add(request.NewErrParamRequired("Dimension")) } if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.SortBy != nil { for i, v := range s.SortBy { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SortBy", i), err.(request.ErrInvalidParams)) } } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetContext sets the Context field's value. func (s *GetDimensionValuesInput) SetContext(v string) *GetDimensionValuesInput { s.Context = &v return s } // SetDimension sets the Dimension field's value. func (s *GetDimensionValuesInput) SetDimension(v string) *GetDimensionValuesInput { s.Dimension = &v return s } // SetFilter sets the Filter field's value. func (s *GetDimensionValuesInput) SetFilter(v *Expression) *GetDimensionValuesInput { s.Filter = v return s } // SetMaxResults sets the MaxResults field's value. func (s *GetDimensionValuesInput) SetMaxResults(v int64) *GetDimensionValuesInput { s.MaxResults = &v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetDimensionValuesInput) SetNextPageToken(v string) *GetDimensionValuesInput { s.NextPageToken = &v return s } // SetSearchString sets the SearchString field's value. func (s *GetDimensionValuesInput) SetSearchString(v string) *GetDimensionValuesInput { s.SearchString = &v return s } // SetSortBy sets the SortBy field's value. func (s *GetDimensionValuesInput) SetSortBy(v []*SortDefinition) *GetDimensionValuesInput { s.SortBy = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetDimensionValuesInput) SetTimePeriod(v *DateInterval) *GetDimensionValuesInput { s.TimePeriod = v return s } type GetDimensionValuesOutput struct { _ struct{} `type:"structure"` // The filters that you used to filter your request. Some dimensions are available // only for a specific context. // // If you set the context to COST_AND_USAGE, you can use the following dimensions // for searching: // // * AZ - The Availability Zone. An example is us-east-1a. // // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples // are Aurora or MySQL. // // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. // // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS // services, such as Amazon Web Services. // // * LINKED_ACCOUNT - The description in the attribute map that includes // the full name of the member account. The value field contains the AWS // ID of the member account. // // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. // // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. // // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or // Linux. // // * PURCHASE_TYPE - The reservation type of the purchase to which this usage // is related. Examples include On-Demand Instances and Standard Reserved // Instances. // // * SERVICE - The AWS service such as Amazon DynamoDB. // // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. // The response for the GetDimensionValues operation includes a unit attribute. // Examples include GB and Hrs. // // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is // Amazon EC2: CloudWatch – Alarms. The response for this operation includes // a unit attribute. // // * RECORD_TYPE - The different types of charges such as RI fees, usage // costs, tax refunds, and credits. // // * RESOURCE_ID - The unique identifier of the resource. ResourceId is an // opt-in feature only available for last 14 days for EC2-Compute Service. // // If you set the context to RESERVATIONS, you can use the following dimensions // for searching: // // * AZ - The Availability Zone. An example is us-east-1a. // // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are // Windows or Linux. // // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service // deployments. Valid values are SingleAZ and MultiAZ. // // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. // // * LINKED_ACCOUNT - The description in the attribute map that includes // the full name of the member account. The value field contains the AWS // ID of the member account. // // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or // Linux. // // * REGION - The AWS Region. // // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values // are regional or a single Availability Zone. // // * TAG (Coverage only) - The tags that are associated with a Reserved Instance // (RI). // // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. // // If you set the context to SAVINGS_PLANS, you can use the following dimensions // for searching: // // * SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) // // * PAYMENT_OPTION - Payment option for the given Savings Plans (for example, // All Upfront) // // * REGION - The AWS Region. // // * INSTANCE_TYPE_FAMILY - The family of instances (For example, m5) // // * LINKED_ACCOUNT - The description in the attribute map that includes // the full name of the member account. The value field contains the AWS // ID of the member account. // // * SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan // // DimensionValues is a required field DimensionValues []*DimensionValuesWithAttributes `type:"list" required:"true"` // The token for the next set of retrievable results. AWS provides the token // when the response from a previous call has more results than the maximum // page size. NextPageToken *string `type:"string"` // The number of results that AWS returned at one time. // // ReturnSize is a required field ReturnSize *int64 `type:"integer" required:"true"` // The total number of search results. // // TotalSize is a required field TotalSize *int64 `type:"integer" required:"true"` } // String returns the string representation func (s GetDimensionValuesOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetDimensionValuesOutput) GoString() string { return s.String() } // SetDimensionValues sets the DimensionValues field's value. func (s *GetDimensionValuesOutput) SetDimensionValues(v []*DimensionValuesWithAttributes) *GetDimensionValuesOutput { s.DimensionValues = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetDimensionValuesOutput) SetNextPageToken(v string) *GetDimensionValuesOutput { s.NextPageToken = &v return s } // SetReturnSize sets the ReturnSize field's value. func (s *GetDimensionValuesOutput) SetReturnSize(v int64) *GetDimensionValuesOutput { s.ReturnSize = &v return s } // SetTotalSize sets the TotalSize field's value. func (s *GetDimensionValuesOutput) SetTotalSize(v int64) *GetDimensionValuesOutput { s.TotalSize = &v return s } // You can use the following request parameters to query for how much of your // instance usage a reservation covered. type GetReservationCoverageInput struct { _ struct{} `type:"structure"` // Filters utilization data by dimensions. You can filter by the following dimensions: // // * AZ // // * CACHE_ENGINE // // * DATABASE_ENGINE // // * DEPLOYMENT_OPTION // // * INSTANCE_TYPE // // * LINKED_ACCOUNT // // * OPERATING_SYSTEM // // * PLATFORM // // * REGION // // * SERVICE // // * TAG // // * TENANCY // // GetReservationCoverage uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // object as the other operations, but only AND is supported among each dimension. // You can nest only one level deep. If there are multiple values for a dimension, // they are OR'd together. // // If you don't provide a SERVICE filter, Cost Explorer defaults to EC2. // // Cost category is also supported. Filter *Expression `type:"structure"` // The granularity of the AWS cost data for the reservation. Valid values are // MONTHLY and DAILY. // // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the // response object doesn't include Granularity, either MONTHLY or DAILY. // // The GetReservationCoverage operation supports only DAILY and MONTHLY granularities. Granularity *string `type:"string" enum:"Granularity"` // You can group the data by the following attributes: // // * AZ // // * CACHE_ENGINE // // * DATABASE_ENGINE // // * DEPLOYMENT_OPTION // // * INSTANCE_TYPE // // * LINKED_ACCOUNT // // * OPERATING_SYSTEM // // * PLATFORM // // * REGION // // * TENANCY GroupBy []*GroupDefinition `type:"list"` // The maximum number of objects that you returned for this request. If more // objects are available, in the response, AWS provides a NextPageToken value // that you can use in a subsequent call to get the next batch of objects. MaxResults *int64 `min:"1" type:"integer"` // The measurement that you want your reservation coverage reported in. // // Valid values are Hour, Unit, and Cost. You can use multiple values in a request. Metrics []*string `type:"list"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` // The value by which you want to sort the data. // // The following values are supported for Key: // // * OnDemandCost // // * CoverageHoursPercentage // // * OnDemandHours // // * ReservedHours // // * TotalRunningHours // // * CoverageNormalizedUnitsPercentage // // * OnDemandNormalizedUnits // // * ReservedNormalizedUnits // // * TotalRunningNormalizedUnits // // * Time // // Supported values for SortOrder are ASCENDING or DESCENDING. SortBy *SortDefinition `type:"structure"` // The start and end dates of the period that you want to retrieve data about // reservation coverage for. You can retrieve data for a maximum of 13 months: // the last 12 months and the current month. The start date is inclusive, but // the end date is exclusive. For example, if start is 2017-01-01 and end is // 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up // to and including 2017-04-30 but not including 2017-05-01. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetReservationCoverageInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetReservationCoverageInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetReservationCoverageInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetReservationCoverageInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.SortBy != nil { if err := s.SortBy.Validate(); err != nil { invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams)) } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *GetReservationCoverageInput) SetFilter(v *Expression) *GetReservationCoverageInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. func (s *GetReservationCoverageInput) SetGranularity(v string) *GetReservationCoverageInput { s.Granularity = &v return s } // SetGroupBy sets the GroupBy field's value. func (s *GetReservationCoverageInput) SetGroupBy(v []*GroupDefinition) *GetReservationCoverageInput { s.GroupBy = v return s } // SetMaxResults sets the MaxResults field's value. func (s *GetReservationCoverageInput) SetMaxResults(v int64) *GetReservationCoverageInput { s.MaxResults = &v return s } // SetMetrics sets the Metrics field's value. func (s *GetReservationCoverageInput) SetMetrics(v []*string) *GetReservationCoverageInput { s.Metrics = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetReservationCoverageInput) SetNextPageToken(v string) *GetReservationCoverageInput { s.NextPageToken = &v return s } // SetSortBy sets the SortBy field's value. func (s *GetReservationCoverageInput) SetSortBy(v *SortDefinition) *GetReservationCoverageInput { s.SortBy = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetReservationCoverageInput) SetTimePeriod(v *DateInterval) *GetReservationCoverageInput { s.TimePeriod = v return s } type GetReservationCoverageOutput struct { _ struct{} `type:"structure"` // The amount of time that your reservations covered. // // CoveragesByTime is a required field CoveragesByTime []*CoverageByTime `type:"list" required:"true"` // The token for the next set of retrievable results. AWS provides the token // when the response from a previous call has more results than the maximum // page size. NextPageToken *string `type:"string"` // The total amount of instance usage that a reservation covered. Total *Coverage `type:"structure"` } // String returns the string representation func (s GetReservationCoverageOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetReservationCoverageOutput) GoString() string { return s.String() } // SetCoveragesByTime sets the CoveragesByTime field's value. func (s *GetReservationCoverageOutput) SetCoveragesByTime(v []*CoverageByTime) *GetReservationCoverageOutput { s.CoveragesByTime = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetReservationCoverageOutput) SetNextPageToken(v string) *GetReservationCoverageOutput { s.NextPageToken = &v return s } // SetTotal sets the Total field's value. func (s *GetReservationCoverageOutput) SetTotal(v *Coverage) *GetReservationCoverageOutput { s.Total = v return s } type GetReservationPurchaseRecommendationInput struct { _ struct{} `type:"structure"` // The account ID that is associated with the recommendation. AccountId *string `type:"string"` // The account scope that you want your recommendations for. Amazon Web Services // calculates recommendations including the management account and member accounts // if the value is set to PAYER. If the value is LINKED, recommendations are // calculated for individual member accounts only. AccountScope *string `type:"string" enum:"AccountScope"` // Use Expression to filter by cost or by usage. There are two patterns: // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for // REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, // the Region is a full name (for example, REGION==US East (N. Virginia). // The Expression example looks like: { "Dimensions": { "Key": "REGION", // "Values": [ "us-east-1", “us-west-1†] } } The list of dimension values // are OR'd together to retrieve cost or usage data. You can create Expression // and DimensionValues objects using either with* methods or set* methods // in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list // of one or more Expression objects. This allows you to filter on more advanced // options. For example, you can filter on ((REGION == us-east-1 OR REGION // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each // Expression can have only one operator, the service returns an error if // more than one is specified. The following example shows an Expression // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } // // For the GetRightsizingRecommendation action, a combination of OR and NOT // is not supported. OR is not supported between different dimensions, or dimensions // and tags. NOT operators aren't supported. Dimensions are also limited to // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. // // For the GetReservationPurchaseRecommendation action, only NOT is supported. // AND and OR are not supported. Dimensions are limited to LINKED_ACCOUNT. Filter *Expression `type:"structure"` // The number of previous days that you want AWS to consider when it calculates // your recommendations. LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` // The pagination token that indicates the next set of results that you want // to retrieve. NextPageToken *string `type:"string"` // The number of recommendations that you want returned in a single response // object. PageSize *int64 `type:"integer"` // The reservation purchase option that you want recommendations for. PaymentOption *string `type:"string" enum:"PaymentOption"` // The specific service that you want recommendations for. // // Service is a required field Service *string `type:"string" required:"true"` // The hardware specifications for the service instances that you want recommendations // for, such as standard or convertible Amazon EC2 instances. ServiceSpecification *ServiceSpecification `type:"structure"` // The reservation term that you want recommendations for. TermInYears *string `type:"string" enum:"TermInYears"` } // String returns the string representation func (s GetReservationPurchaseRecommendationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetReservationPurchaseRecommendationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetReservationPurchaseRecommendationInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetReservationPurchaseRecommendationInput"} if s.Service == nil { invalidParams.Add(request.NewErrParamRequired("Service")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetAccountId sets the AccountId field's value. func (s *GetReservationPurchaseRecommendationInput) SetAccountId(v string) *GetReservationPurchaseRecommendationInput { s.AccountId = &v return s } // SetAccountScope sets the AccountScope field's value. func (s *GetReservationPurchaseRecommendationInput) SetAccountScope(v string) *GetReservationPurchaseRecommendationInput { s.AccountScope = &v return s } // SetFilter sets the Filter field's value. func (s *GetReservationPurchaseRecommendationInput) SetFilter(v *Expression) *GetReservationPurchaseRecommendationInput { s.Filter = v return s } // SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. func (s *GetReservationPurchaseRecommendationInput) SetLookbackPeriodInDays(v string) *GetReservationPurchaseRecommendationInput { s.LookbackPeriodInDays = &v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetReservationPurchaseRecommendationInput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationInput { s.NextPageToken = &v return s } // SetPageSize sets the PageSize field's value. func (s *GetReservationPurchaseRecommendationInput) SetPageSize(v int64) *GetReservationPurchaseRecommendationInput { s.PageSize = &v return s } // SetPaymentOption sets the PaymentOption field's value. func (s *GetReservationPurchaseRecommendationInput) SetPaymentOption(v string) *GetReservationPurchaseRecommendationInput { s.PaymentOption = &v return s } // SetService sets the Service field's value. func (s *GetReservationPurchaseRecommendationInput) SetService(v string) *GetReservationPurchaseRecommendationInput { s.Service = &v return s } // SetServiceSpecification sets the ServiceSpecification field's value. func (s *GetReservationPurchaseRecommendationInput) SetServiceSpecification(v *ServiceSpecification) *GetReservationPurchaseRecommendationInput { s.ServiceSpecification = v return s } // SetTermInYears sets the TermInYears field's value. func (s *GetReservationPurchaseRecommendationInput) SetTermInYears(v string) *GetReservationPurchaseRecommendationInput { s.TermInYears = &v return s } type GetReservationPurchaseRecommendationOutput struct { _ struct{} `type:"structure"` // Information about this specific recommendation call, such as the time stamp // for when Cost Explorer generated this recommendation. Metadata *ReservationPurchaseRecommendationMetadata `type:"structure"` // The pagination token for the next set of retrievable results. NextPageToken *string `type:"string"` // Recommendations for reservations to purchase. Recommendations []*ReservationPurchaseRecommendation `type:"list"` } // String returns the string representation func (s GetReservationPurchaseRecommendationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetReservationPurchaseRecommendationOutput) GoString() string { return s.String() } // SetMetadata sets the Metadata field's value. func (s *GetReservationPurchaseRecommendationOutput) SetMetadata(v *ReservationPurchaseRecommendationMetadata) *GetReservationPurchaseRecommendationOutput { s.Metadata = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetReservationPurchaseRecommendationOutput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationOutput { s.NextPageToken = &v return s } // SetRecommendations sets the Recommendations field's value. func (s *GetReservationPurchaseRecommendationOutput) SetRecommendations(v []*ReservationPurchaseRecommendation) *GetReservationPurchaseRecommendationOutput { s.Recommendations = v return s } type GetReservationUtilizationInput struct { _ struct{} `type:"structure"` // Filters utilization data by dimensions. You can filter by the following dimensions: // // * AZ // // * CACHE_ENGINE // // * DEPLOYMENT_OPTION // // * INSTANCE_TYPE // // * LINKED_ACCOUNT // // * OPERATING_SYSTEM // // * PLATFORM // // * REGION // // * SERVICE // // * SCOPE // // * TENANCY // // GetReservationUtilization uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // object as the other operations, but only AND is supported among each dimension, // and nesting is supported up to only one level deep. If there are multiple // values for a dimension, they are OR'd together. Filter *Expression `type:"structure"` // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the // response object doesn't include Granularity, either MONTHLY or DAILY. If // both GroupBy and Granularity aren't set, GetReservationUtilization defaults // to DAILY. // // The GetReservationUtilization operation supports only DAILY and MONTHLY granularities. Granularity *string `type:"string" enum:"Granularity"` // Groups only by SUBSCRIPTION_ID. Metadata is included. GroupBy []*GroupDefinition `type:"list"` // The maximum number of objects that you returned for this request. If more // objects are available, in the response, AWS provides a NextPageToken value // that you can use in a subsequent call to get the next batch of objects. MaxResults *int64 `min:"1" type:"integer"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` // The value by which you want to sort the data. // // The following values are supported for Key: // // * UtilizationPercentage // // * UtilizationPercentageInUnits // // * PurchasedHours // // * PurchasedUnits // // * TotalActualHours // // * TotalActualUnits // // * UnusedHours // // * UnusedUnits // // * OnDemandCostOfRIHoursUsed // // * NetRISavings // // * TotalPotentialRISavings // // * AmortizedUpfrontFee // // * AmortizedRecurringFee // // * TotalAmortizedFee // // * RICostForUnusedHours // // * RealizedSavings // // * UnrealizedSavings // // Supported values for SortOrder are ASCENDING or DESCENDING. SortBy *SortDefinition `type:"structure"` // Sets the start and end dates for retrieving RI utilization. The start date // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 // up to and including 2017-04-30 but not including 2017-05-01. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetReservationUtilizationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetReservationUtilizationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetReservationUtilizationInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetReservationUtilizationInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.SortBy != nil { if err := s.SortBy.Validate(); err != nil { invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams)) } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *GetReservationUtilizationInput) SetFilter(v *Expression) *GetReservationUtilizationInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. func (s *GetReservationUtilizationInput) SetGranularity(v string) *GetReservationUtilizationInput { s.Granularity = &v return s } // SetGroupBy sets the GroupBy field's value. func (s *GetReservationUtilizationInput) SetGroupBy(v []*GroupDefinition) *GetReservationUtilizationInput { s.GroupBy = v return s } // SetMaxResults sets the MaxResults field's value. func (s *GetReservationUtilizationInput) SetMaxResults(v int64) *GetReservationUtilizationInput { s.MaxResults = &v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetReservationUtilizationInput) SetNextPageToken(v string) *GetReservationUtilizationInput { s.NextPageToken = &v return s } // SetSortBy sets the SortBy field's value. func (s *GetReservationUtilizationInput) SetSortBy(v *SortDefinition) *GetReservationUtilizationInput { s.SortBy = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetReservationUtilizationInput) SetTimePeriod(v *DateInterval) *GetReservationUtilizationInput { s.TimePeriod = v return s } type GetReservationUtilizationOutput struct { _ struct{} `type:"structure"` // The token for the next set of retrievable results. AWS provides the token // when the response from a previous call has more results than the maximum // page size. NextPageToken *string `type:"string"` // The total amount of time that you used your RIs. Total *ReservationAggregates `type:"structure"` // The amount of time that you used your RIs. // // UtilizationsByTime is a required field UtilizationsByTime []*UtilizationByTime `type:"list" required:"true"` } // String returns the string representation func (s GetReservationUtilizationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetReservationUtilizationOutput) GoString() string { return s.String() } // SetNextPageToken sets the NextPageToken field's value. func (s *GetReservationUtilizationOutput) SetNextPageToken(v string) *GetReservationUtilizationOutput { s.NextPageToken = &v return s } // SetTotal sets the Total field's value. func (s *GetReservationUtilizationOutput) SetTotal(v *ReservationAggregates) *GetReservationUtilizationOutput { s.Total = v return s } // SetUtilizationsByTime sets the UtilizationsByTime field's value. func (s *GetReservationUtilizationOutput) SetUtilizationsByTime(v []*UtilizationByTime) *GetReservationUtilizationOutput { s.UtilizationsByTime = v return s } type GetRightsizingRecommendationInput struct { _ struct{} `type:"structure"` // Enables you to customize recommendations across two attributes. You can choose // to view recommendations for instances within the same instance families or // across different instance families. You can also choose to view your estimated // savings associated with recommendations with consideration of existing Savings // Plans or RI benefits, or neither. Configuration *RightsizingRecommendationConfiguration `type:"structure"` // Use Expression to filter by cost or by usage. There are two patterns: // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for // REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, // the Region is a full name (for example, REGION==US East (N. Virginia). // The Expression example looks like: { "Dimensions": { "Key": "REGION", // "Values": [ "us-east-1", “us-west-1†] } } The list of dimension values // are OR'd together to retrieve cost or usage data. You can create Expression // and DimensionValues objects using either with* methods or set* methods // in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list // of one or more Expression objects. This allows you to filter on more advanced // options. For example, you can filter on ((REGION == us-east-1 OR REGION // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each // Expression can have only one operator, the service returns an error if // more than one is specified. The following example shows an Expression // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } // // For the GetRightsizingRecommendation action, a combination of OR and NOT // is not supported. OR is not supported between different dimensions, or dimensions // and tags. NOT operators aren't supported. Dimensions are also limited to // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. // // For the GetReservationPurchaseRecommendation action, only NOT is supported. // AND and OR are not supported. Dimensions are limited to LINKED_ACCOUNT. Filter *Expression `type:"structure"` // The pagination token that indicates the next set of results that you want // to retrieve. NextPageToken *string `type:"string"` // The number of recommendations that you want returned in a single response // object. PageSize *int64 `type:"integer"` // The specific service that you want recommendations for. The only valid value // for GetRightsizingRecommendation is "AmazonEC2". // // Service is a required field Service *string `type:"string" required:"true"` } // String returns the string representation func (s GetRightsizingRecommendationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetRightsizingRecommendationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetRightsizingRecommendationInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetRightsizingRecommendationInput"} if s.Service == nil { invalidParams.Add(request.NewErrParamRequired("Service")) } if s.Configuration != nil { if err := s.Configuration.Validate(); err != nil { invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams)) } } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetConfiguration sets the Configuration field's value. func (s *GetRightsizingRecommendationInput) SetConfiguration(v *RightsizingRecommendationConfiguration) *GetRightsizingRecommendationInput { s.Configuration = v return s } // SetFilter sets the Filter field's value. func (s *GetRightsizingRecommendationInput) SetFilter(v *Expression) *GetRightsizingRecommendationInput { s.Filter = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetRightsizingRecommendationInput) SetNextPageToken(v string) *GetRightsizingRecommendationInput { s.NextPageToken = &v return s } // SetPageSize sets the PageSize field's value. func (s *GetRightsizingRecommendationInput) SetPageSize(v int64) *GetRightsizingRecommendationInput { s.PageSize = &v return s } // SetService sets the Service field's value. func (s *GetRightsizingRecommendationInput) SetService(v string) *GetRightsizingRecommendationInput { s.Service = &v return s } type GetRightsizingRecommendationOutput struct { _ struct{} `type:"structure"` // Enables you to customize recommendations across two attributes. You can choose // to view recommendations for instances within the same instance families or // across different instance families. You can also choose to view your estimated // savings associated with recommendations with consideration of existing Savings // Plans or RI benefits, or neither. Configuration *RightsizingRecommendationConfiguration `type:"structure"` // Information regarding this specific recommendation set. Metadata *RightsizingRecommendationMetadata `type:"structure"` // The token to retrieve the next set of results. NextPageToken *string `type:"string"` // Recommendations to rightsize resources. RightsizingRecommendations []*RightsizingRecommendation `type:"list"` // Summary of this recommendation set. Summary *RightsizingRecommendationSummary `type:"structure"` } // String returns the string representation func (s GetRightsizingRecommendationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetRightsizingRecommendationOutput) GoString() string { return s.String() } // SetConfiguration sets the Configuration field's value. func (s *GetRightsizingRecommendationOutput) SetConfiguration(v *RightsizingRecommendationConfiguration) *GetRightsizingRecommendationOutput { s.Configuration = v return s } // SetMetadata sets the Metadata field's value. func (s *GetRightsizingRecommendationOutput) SetMetadata(v *RightsizingRecommendationMetadata) *GetRightsizingRecommendationOutput { s.Metadata = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetRightsizingRecommendationOutput) SetNextPageToken(v string) *GetRightsizingRecommendationOutput { s.NextPageToken = &v return s } // SetRightsizingRecommendations sets the RightsizingRecommendations field's value. func (s *GetRightsizingRecommendationOutput) SetRightsizingRecommendations(v []*RightsizingRecommendation) *GetRightsizingRecommendationOutput { s.RightsizingRecommendations = v return s } // SetSummary sets the Summary field's value. func (s *GetRightsizingRecommendationOutput) SetSummary(v *RightsizingRecommendationSummary) *GetRightsizingRecommendationOutput { s.Summary = v return s } type GetSavingsPlansCoverageInput struct { _ struct{} `type:"structure"` // Filters Savings Plans coverage data by dimensions. You can filter data for // Savings Plans usage with the following dimensions: // // * LINKED_ACCOUNT // // * REGION // // * SERVICE // // * INSTANCE_FAMILY // // GetSavingsPlansCoverage uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // object as the other operations, but only AND is supported among each dimension. // If there are multiple values for a dimension, they are OR'd together. // // Cost category is also supported. Filter *Expression `type:"structure"` // The granularity of the Amazon Web Services cost data for your Savings Plans. // Granularity can't be set if GroupBy is set. // // The GetSavingsPlansCoverage operation supports only DAILY and MONTHLY granularities. Granularity *string `type:"string" enum:"Granularity"` // You can group the data using the attributes INSTANCE_FAMILY, REGION, or SERVICE. GroupBy []*GroupDefinition `type:"list"` // The number of items to be returned in a response. The default is 20, with // a minimum value of 1. MaxResults *int64 `min:"1" type:"integer"` // The measurement that you want your Savings Plans coverage reported in. The // only valid value is SpendCoveredBySavingsPlans. Metrics []*string `type:"list"` // The token to retrieve the next set of results. Amazon Web Services provides // the token when the response from a previous call has more results than the // maximum page size. NextToken *string `type:"string"` // The value by which you want to sort the data. // // The following values are supported for Key: // // * SpendCoveredBySavingsPlan // // * OnDemandCost // // * CoveragePercentage // // * TotalCost // // * InstanceFamily // // * Region // // * Service // // Supported values for SortOrder are ASCENDING or DESCENDING. SortBy *SortDefinition `type:"structure"` // 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. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetSavingsPlansCoverageInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetSavingsPlansCoverageInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetSavingsPlansCoverageInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansCoverageInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.SortBy != nil { if err := s.SortBy.Validate(); err != nil { invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams)) } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *GetSavingsPlansCoverageInput) SetFilter(v *Expression) *GetSavingsPlansCoverageInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. func (s *GetSavingsPlansCoverageInput) SetGranularity(v string) *GetSavingsPlansCoverageInput { s.Granularity = &v return s } // SetGroupBy sets the GroupBy field's value. func (s *GetSavingsPlansCoverageInput) SetGroupBy(v []*GroupDefinition) *GetSavingsPlansCoverageInput { s.GroupBy = v return s } // SetMaxResults sets the MaxResults field's value. func (s *GetSavingsPlansCoverageInput) SetMaxResults(v int64) *GetSavingsPlansCoverageInput { s.MaxResults = &v return s } // SetMetrics sets the Metrics field's value. func (s *GetSavingsPlansCoverageInput) SetMetrics(v []*string) *GetSavingsPlansCoverageInput { s.Metrics = v return s } // SetNextToken sets the NextToken field's value. func (s *GetSavingsPlansCoverageInput) SetNextToken(v string) *GetSavingsPlansCoverageInput { s.NextToken = &v return s } // SetSortBy sets the SortBy field's value. func (s *GetSavingsPlansCoverageInput) SetSortBy(v *SortDefinition) *GetSavingsPlansCoverageInput { s.SortBy = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetSavingsPlansCoverageInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansCoverageInput { s.TimePeriod = v return s } type GetSavingsPlansCoverageOutput struct { _ struct{} `type:"structure"` // The token to retrieve the next set of results. Amazon Web Services provides // the token when the response from a previous call has more results than the // maximum page size. NextToken *string `type:"string"` // The amount of spend that your Savings Plans covered. // // SavingsPlansCoverages is a required field SavingsPlansCoverages []*SavingsPlansCoverage `type:"list" required:"true"` } // String returns the string representation func (s GetSavingsPlansCoverageOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetSavingsPlansCoverageOutput) GoString() string { return s.String() } // SetNextToken sets the NextToken field's value. func (s *GetSavingsPlansCoverageOutput) SetNextToken(v string) *GetSavingsPlansCoverageOutput { s.NextToken = &v return s } // SetSavingsPlansCoverages sets the SavingsPlansCoverages field's value. func (s *GetSavingsPlansCoverageOutput) SetSavingsPlansCoverages(v []*SavingsPlansCoverage) *GetSavingsPlansCoverageOutput { s.SavingsPlansCoverages = v return s } type GetSavingsPlansPurchaseRecommendationInput struct { _ struct{} `type:"structure"` // The account scope that you want your recommendations for. Amazon Web Services // calculates recommendations including the management account and member accounts // if the value is set to PAYER. If the value is LINKED, recommendations are // calculated for individual member accounts only. AccountScope *string `type:"string" enum:"AccountScope"` // You can filter your recommendations by Account ID with the LINKED_ACCOUNT // dimension. To filter your recommendations by Account ID, specify Key as LINKED_ACCOUNT // and Value as the comma-separated Acount ID(s) for which you want to see Savings // Plans purchase recommendations. // // For GetSavingsPlansPurchaseRecommendation, the Filter does not include CostCategories // or Tags. It only includes Dimensions. With Dimensions, Key must be LINKED_ACCOUNT // and Value can be a single Account ID or multiple comma-separated Account // IDs for which you want to see Savings Plans Purchase Recommendations. AND // and OR operators are not supported. Filter *Expression `type:"structure"` // The lookback period used to generate the recommendation. // // LookbackPeriodInDays is a required field LookbackPeriodInDays *string `type:"string" required:"true" enum:"LookbackPeriodInDays"` // The token to retrieve the next set of results. Amazon Web Services provides // the token when the response from a previous call has more results than the // maximum page size. NextPageToken *string `type:"string"` // The number of recommendations that you want returned in a single response // object. PageSize *int64 `type:"integer"` // The payment option used to generate these recommendations. // // PaymentOption is a required field PaymentOption *string `type:"string" required:"true" enum:"PaymentOption"` // The Savings Plans recommendation type requested. // // SavingsPlansType is a required field SavingsPlansType *string `type:"string" required:"true" enum:"SupportedSavingsPlansType"` // The savings plan recommendation term used to generate these recommendations. // // TermInYears is a required field TermInYears *string `type:"string" required:"true" enum:"TermInYears"` } // String returns the string representation func (s GetSavingsPlansPurchaseRecommendationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetSavingsPlansPurchaseRecommendationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetSavingsPlansPurchaseRecommendationInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansPurchaseRecommendationInput"} if s.LookbackPeriodInDays == nil { invalidParams.Add(request.NewErrParamRequired("LookbackPeriodInDays")) } if s.PaymentOption == nil { invalidParams.Add(request.NewErrParamRequired("PaymentOption")) } if s.SavingsPlansType == nil { invalidParams.Add(request.NewErrParamRequired("SavingsPlansType")) } if s.TermInYears == nil { invalidParams.Add(request.NewErrParamRequired("TermInYears")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetAccountScope sets the AccountScope field's value. func (s *GetSavingsPlansPurchaseRecommendationInput) SetAccountScope(v string) *GetSavingsPlansPurchaseRecommendationInput { s.AccountScope = &v return s } // SetFilter sets the Filter field's value. func (s *GetSavingsPlansPurchaseRecommendationInput) SetFilter(v *Expression) *GetSavingsPlansPurchaseRecommendationInput { s.Filter = v return s } // SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. func (s *GetSavingsPlansPurchaseRecommendationInput) SetLookbackPeriodInDays(v string) *GetSavingsPlansPurchaseRecommendationInput { s.LookbackPeriodInDays = &v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetSavingsPlansPurchaseRecommendationInput) SetNextPageToken(v string) *GetSavingsPlansPurchaseRecommendationInput { s.NextPageToken = &v return s } // SetPageSize sets the PageSize field's value. func (s *GetSavingsPlansPurchaseRecommendationInput) SetPageSize(v int64) *GetSavingsPlansPurchaseRecommendationInput { s.PageSize = &v return s } // SetPaymentOption sets the PaymentOption field's value. func (s *GetSavingsPlansPurchaseRecommendationInput) SetPaymentOption(v string) *GetSavingsPlansPurchaseRecommendationInput { s.PaymentOption = &v return s } // SetSavingsPlansType sets the SavingsPlansType field's value. func (s *GetSavingsPlansPurchaseRecommendationInput) SetSavingsPlansType(v string) *GetSavingsPlansPurchaseRecommendationInput { s.SavingsPlansType = &v return s } // SetTermInYears sets the TermInYears field's value. func (s *GetSavingsPlansPurchaseRecommendationInput) SetTermInYears(v string) *GetSavingsPlansPurchaseRecommendationInput { s.TermInYears = &v return s } type GetSavingsPlansPurchaseRecommendationOutput struct { _ struct{} `type:"structure"` // Information regarding this specific recommendation set. Metadata *SavingsPlansPurchaseRecommendationMetadata `type:"structure"` // The token for the next set of retrievable results. AWS provides the token // when the response from a previous call has more results than the maximum // page size. NextPageToken *string `type:"string"` // Contains your request parameters, Savings Plan Recommendations Summary, and // Details. SavingsPlansPurchaseRecommendation *SavingsPlansPurchaseRecommendation `type:"structure"` } // String returns the string representation func (s GetSavingsPlansPurchaseRecommendationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetSavingsPlansPurchaseRecommendationOutput) GoString() string { return s.String() } // SetMetadata sets the Metadata field's value. func (s *GetSavingsPlansPurchaseRecommendationOutput) SetMetadata(v *SavingsPlansPurchaseRecommendationMetadata) *GetSavingsPlansPurchaseRecommendationOutput { s.Metadata = v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetSavingsPlansPurchaseRecommendationOutput) SetNextPageToken(v string) *GetSavingsPlansPurchaseRecommendationOutput { s.NextPageToken = &v return s } // SetSavingsPlansPurchaseRecommendation sets the SavingsPlansPurchaseRecommendation field's value. func (s *GetSavingsPlansPurchaseRecommendationOutput) SetSavingsPlansPurchaseRecommendation(v *SavingsPlansPurchaseRecommendation) *GetSavingsPlansPurchaseRecommendationOutput { s.SavingsPlansPurchaseRecommendation = v return s } type GetSavingsPlansUtilizationDetailsInput struct { _ struct{} `type:"structure"` // The data type. DataType []*string `type:"list"` // Filters Savings Plans utilization coverage data for active Savings Plans // dimensions. You can filter data with the following dimensions: // // * LINKED_ACCOUNT // // * SAVINGS_PLAN_ARN // // * REGION // // * PAYMENT_OPTION // // * INSTANCE_TYPE_FAMILY // // GetSavingsPlansUtilizationDetails uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // object as the other operations, but only AND is supported among each dimension. Filter *Expression `type:"structure"` // The number of items to be returned in a response. The default is 20, with // a minimum value of 1. MaxResults *int64 `min:"1" type:"integer"` // The token to retrieve the next set of results. Amazon Web Services provides // the token when the response from a previous call has more results than the // maximum page size. NextToken *string `type:"string"` // The value by which you want to sort the data. // // The following values are supported for Key: // // * UtilizationPercentage // // * TotalCommitment // // * UsedCommitment // // * UnusedCommitment // // * NetSavings // // * AmortizedRecurringCommitment // // * AmortizedUpfrontCommitment // // Supported values for SortOrder are ASCENDING or DESCENDING. SortBy *SortDefinition `type:"structure"` // 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. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetSavingsPlansUtilizationDetailsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetSavingsPlansUtilizationDetailsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetSavingsPlansUtilizationDetailsInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansUtilizationDetailsInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.SortBy != nil { if err := s.SortBy.Validate(); err != nil { invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams)) } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetDataType sets the DataType field's value. func (s *GetSavingsPlansUtilizationDetailsInput) SetDataType(v []*string) *GetSavingsPlansUtilizationDetailsInput { s.DataType = v return s } // SetFilter sets the Filter field's value. func (s *GetSavingsPlansUtilizationDetailsInput) SetFilter(v *Expression) *GetSavingsPlansUtilizationDetailsInput { s.Filter = v return s } // SetMaxResults sets the MaxResults field's value. func (s *GetSavingsPlansUtilizationDetailsInput) SetMaxResults(v int64) *GetSavingsPlansUtilizationDetailsInput { s.MaxResults = &v return s } // SetNextToken sets the NextToken field's value. func (s *GetSavingsPlansUtilizationDetailsInput) SetNextToken(v string) *GetSavingsPlansUtilizationDetailsInput { s.NextToken = &v return s } // SetSortBy sets the SortBy field's value. func (s *GetSavingsPlansUtilizationDetailsInput) SetSortBy(v *SortDefinition) *GetSavingsPlansUtilizationDetailsInput { s.SortBy = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetSavingsPlansUtilizationDetailsInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationDetailsInput { s.TimePeriod = v return s } type GetSavingsPlansUtilizationDetailsOutput struct { _ struct{} `type:"structure"` // The token to retrieve the next set of results. Amazon Web Services provides // the token when the response from a previous call has more results than the // maximum page size. NextToken *string `type:"string"` // Retrieves a single daily or monthly Savings Plans utilization rate and details // for your account. // // SavingsPlansUtilizationDetails is a required field SavingsPlansUtilizationDetails []*SavingsPlansUtilizationDetail `type:"list" required:"true"` // The time period of the request. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` // The total Savings Plans utilization, regardless of time period. Total *SavingsPlansUtilizationAggregates `type:"structure"` } // String returns the string representation func (s GetSavingsPlansUtilizationDetailsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetSavingsPlansUtilizationDetailsOutput) GoString() string { return s.String() } // SetNextToken sets the NextToken field's value. func (s *GetSavingsPlansUtilizationDetailsOutput) SetNextToken(v string) *GetSavingsPlansUtilizationDetailsOutput { s.NextToken = &v return s } // SetSavingsPlansUtilizationDetails sets the SavingsPlansUtilizationDetails field's value. func (s *GetSavingsPlansUtilizationDetailsOutput) SetSavingsPlansUtilizationDetails(v []*SavingsPlansUtilizationDetail) *GetSavingsPlansUtilizationDetailsOutput { s.SavingsPlansUtilizationDetails = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetSavingsPlansUtilizationDetailsOutput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationDetailsOutput { s.TimePeriod = v return s } // SetTotal sets the Total field's value. func (s *GetSavingsPlansUtilizationDetailsOutput) SetTotal(v *SavingsPlansUtilizationAggregates) *GetSavingsPlansUtilizationDetailsOutput { s.Total = v return s } type GetSavingsPlansUtilizationInput struct { _ struct{} `type:"structure"` // 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 (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) // object as the other operations, but only AND is supported among each dimension. Filter *Expression `type:"structure"` // The granularity of the Amazon Web Services utillization data for your Savings // Plans. // // The GetSavingsPlansUtilization operation supports only DAILY and MONTHLY // granularities. Granularity *string `type:"string" enum:"Granularity"` // The value by which you want to sort the data. // // The following values are supported for Key: // // * UtilizationPercentage // // * TotalCommitment // // * UsedCommitment // // * UnusedCommitment // // * NetSavings // // Supported values for SortOrder are ASCENDING or DESCENDING. SortBy *SortDefinition `type:"structure"` // 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. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetSavingsPlansUtilizationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetSavingsPlansUtilizationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetSavingsPlansUtilizationInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansUtilizationInput"} if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.SortBy != nil { if err := s.SortBy.Validate(); err != nil { invalidParams.AddNested("SortBy", err.(request.ErrInvalidParams)) } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *GetSavingsPlansUtilizationInput) SetFilter(v *Expression) *GetSavingsPlansUtilizationInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. func (s *GetSavingsPlansUtilizationInput) SetGranularity(v string) *GetSavingsPlansUtilizationInput { s.Granularity = &v return s } // SetSortBy sets the SortBy field's value. func (s *GetSavingsPlansUtilizationInput) SetSortBy(v *SortDefinition) *GetSavingsPlansUtilizationInput { s.SortBy = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetSavingsPlansUtilizationInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationInput { s.TimePeriod = v return s } type GetSavingsPlansUtilizationOutput struct { _ struct{} `type:"structure"` // The amount of cost/commitment you used your Savings Plans. This allows you // to specify date ranges. SavingsPlansUtilizationsByTime []*SavingsPlansUtilizationByTime `type:"list"` // The total amount of cost/commitment that you used your Savings Plans, regardless // of date ranges. // // Total is a required field Total *SavingsPlansUtilizationAggregates `type:"structure" required:"true"` } // String returns the string representation func (s GetSavingsPlansUtilizationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetSavingsPlansUtilizationOutput) GoString() string { return s.String() } // SetSavingsPlansUtilizationsByTime sets the SavingsPlansUtilizationsByTime field's value. func (s *GetSavingsPlansUtilizationOutput) SetSavingsPlansUtilizationsByTime(v []*SavingsPlansUtilizationByTime) *GetSavingsPlansUtilizationOutput { s.SavingsPlansUtilizationsByTime = v return s } // SetTotal sets the Total field's value. func (s *GetSavingsPlansUtilizationOutput) SetTotal(v *SavingsPlansUtilizationAggregates) *GetSavingsPlansUtilizationOutput { s.Total = v return s } type GetTagsInput struct { _ struct{} `type:"structure"` // Use Expression to filter by cost or by usage. There are two patterns: // // * Simple dimension values - You can set the dimension name and values // for the filters that you plan to use. For example, you can filter for // REGION==us-east-1 OR REGION==us-west-1. For GetRightsizingRecommendation, // the Region is a full name (for example, REGION==US East (N. Virginia). // The Expression example looks like: { "Dimensions": { "Key": "REGION", // "Values": [ "us-east-1", “us-west-1†] } } The list of dimension values // are OR'd together to retrieve cost or usage data. You can create Expression // and DimensionValues objects using either with* methods or set* methods // in multiple lines. // // * Compound dimension values with logical operations - You can use multiple // Expression types and the logical operators AND/OR/NOT to create a list // of one or more Expression objects. This allows you to filter on more advanced // options. For example, you can filter on ((REGION == us-east-1 OR REGION // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each // Expression can have only one operator, the service returns an error if // more than one is specified. The following example shows an Expression // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } // // For the GetRightsizingRecommendation action, a combination of OR and NOT // is not supported. OR is not supported between different dimensions, or dimensions // and tags. NOT operators aren't supported. Dimensions are also limited to // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. // // For the GetReservationPurchaseRecommendation action, only NOT is supported. // AND and OR are not supported. Dimensions are limited to LINKED_ACCOUNT. Filter *Expression `type:"structure"` // This field is only used when SortBy is provided in the request. The maximum // number of objects that to be returned for this request. If MaxResults is // not specified with SortBy, the request will return 1000 results as the default // value for this parameter. // // For GetTags, MaxResults has an upper limit of 1000. MaxResults *int64 `min:"1" type:"integer"` // The token to retrieve the next set of results. AWS provides the token when // the response from a previous call has more results than the maximum page // size. NextPageToken *string `type:"string"` // The value that you want to search for. SearchString *string `type:"string"` // The value by which you want to sort the data. // // The key represents cost and usage metrics. The following values are supported: // // * BlendedCost // // * UnblendedCost // // * AmortizedCost // // * NetAmortizedCost // // * NetUnblendedCost // // * UsageQuantity // // * NormalizedUsageAmount // // Supported values for SortOrder are ASCENDING or DESCENDING. // // When using SortBy, NextPageToken and SearchString are not supported. SortBy []*SortDefinition `type:"list"` // The key of the tag that you want to return values for. TagKey *string `type:"string"` // The start and end dates for retrieving the dimension values. The start date // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 // up to and including 2017-04-30 but not including 2017-05-01. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetTagsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetTagsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetTagsInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.SortBy != nil { for i, v := range s.SortBy { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SortBy", i), err.(request.ErrInvalidParams)) } } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *GetTagsInput) SetFilter(v *Expression) *GetTagsInput { s.Filter = v return s } // SetMaxResults sets the MaxResults field's value. func (s *GetTagsInput) SetMaxResults(v int64) *GetTagsInput { s.MaxResults = &v return s } // SetNextPageToken sets the NextPageToken field's value. func (s *GetTagsInput) SetNextPageToken(v string) *GetTagsInput { s.NextPageToken = &v return s } // SetSearchString sets the SearchString field's value. func (s *GetTagsInput) SetSearchString(v string) *GetTagsInput { s.SearchString = &v return s } // SetSortBy sets the SortBy field's value. func (s *GetTagsInput) SetSortBy(v []*SortDefinition) *GetTagsInput { s.SortBy = v return s } // SetTagKey sets the TagKey field's value. func (s *GetTagsInput) SetTagKey(v string) *GetTagsInput { s.TagKey = &v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetTagsInput) SetTimePeriod(v *DateInterval) *GetTagsInput { s.TimePeriod = v return s } type GetTagsOutput struct { _ struct{} `type:"structure"` // The token for the next set of retrievable results. AWS provides the token // when the response from a previous call has more results than the maximum // page size. NextPageToken *string `type:"string"` // The number of query results that AWS returns at a time. // // ReturnSize is a required field ReturnSize *int64 `type:"integer" required:"true"` // The tags that match your request. // // Tags is a required field Tags []*string `type:"list" required:"true"` // The total number of query results. // // TotalSize is a required field TotalSize *int64 `type:"integer" required:"true"` } // String returns the string representation func (s GetTagsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetTagsOutput) GoString() string { return s.String() } // SetNextPageToken sets the NextPageToken field's value. func (s *GetTagsOutput) SetNextPageToken(v string) *GetTagsOutput { s.NextPageToken = &v return s } // SetReturnSize sets the ReturnSize field's value. func (s *GetTagsOutput) SetReturnSize(v int64) *GetTagsOutput { s.ReturnSize = &v return s } // SetTags sets the Tags field's value. func (s *GetTagsOutput) SetTags(v []*string) *GetTagsOutput { s.Tags = v return s } // SetTotalSize sets the TotalSize field's value. func (s *GetTagsOutput) SetTotalSize(v int64) *GetTagsOutput { s.TotalSize = &v return s } type GetUsageForecastInput struct { _ struct{} `type:"structure"` // The filters that you want to use to filter your forecast. The GetUsageForecast // API supports filtering by the following dimensions: // // * AZ // // * INSTANCE_TYPE // // * LINKED_ACCOUNT // // * LINKED_ACCOUNT_NAME // // * OPERATION // // * PURCHASE_TYPE // // * REGION // // * SERVICE // // * USAGE_TYPE // // * USAGE_TYPE_GROUP // // * RECORD_TYPE // // * OPERATING_SYSTEM // // * TENANCY // // * SCOPE // // * PLATFORM // // * SUBSCRIPTION_ID // // * LEGAL_ENTITY_NAME // // * DEPLOYMENT_OPTION // // * DATABASE_ENGINE // // * INSTANCE_TYPE_FAMILY // // * BILLING_ENTITY // // * RESERVATION_ID // // * SAVINGS_PLAN_ARN Filter *Expression `type:"structure"` // How granular you want the forecast to be. You can get 3 months of DAILY forecasts // or 12 months of MONTHLY forecasts. // // The GetUsageForecast operation supports only DAILY and MONTHLY granularities. // // Granularity is a required field Granularity *string `type:"string" required:"true" enum:"Granularity"` // Which metric Cost Explorer uses to create your forecast. // // Valid values for a GetUsageForecast call are the following: // // * USAGE_QUANTITY // // * NORMALIZED_USAGE_AMOUNT // // Metric is a required field Metric *string `type:"string" required:"true" enum:"Metric"` // Cost Explorer always returns the mean forecast as a single point. You can // request a prediction interval around the mean by specifying a confidence // level. The higher the confidence level, the more confident Cost Explorer // is about the actual value falling in the prediction interval. Higher confidence // levels result in wider prediction intervals. PredictionIntervalLevel *int64 `min:"51" type:"integer"` // The start and end dates of the period that you want to retrieve usage forecast // for. The start date is inclusive, but the end date is exclusive. For example, // if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data // is retrieved from 2017-01-01 up to and including 2017-04-30 but not including // 2017-05-01. The start date must be equal to or later than the current date // to avoid a validation error. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` } // String returns the string representation func (s GetUsageForecastInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetUsageForecastInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetUsageForecastInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetUsageForecastInput"} if s.Granularity == nil { invalidParams.Add(request.NewErrParamRequired("Granularity")) } if s.Metric == nil { invalidParams.Add(request.NewErrParamRequired("Metric")) } if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) } if s.TimePeriod == nil { invalidParams.Add(request.NewErrParamRequired("TimePeriod")) } if s.Filter != nil { if err := s.Filter.Validate(); err != nil { invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) } } if s.TimePeriod != nil { if err := s.TimePeriod.Validate(); err != nil { invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *GetUsageForecastInput) SetFilter(v *Expression) *GetUsageForecastInput { s.Filter = v return s } // SetGranularity sets the Granularity field's value. func (s *GetUsageForecastInput) SetGranularity(v string) *GetUsageForecastInput { s.Granularity = &v return s } // SetMetric sets the Metric field's value. func (s *GetUsageForecastInput) SetMetric(v string) *GetUsageForecastInput { s.Metric = &v return s } // SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. func (s *GetUsageForecastInput) SetPredictionIntervalLevel(v int64) *GetUsageForecastInput { s.PredictionIntervalLevel = &v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *GetUsageForecastInput) SetTimePeriod(v *DateInterval) *GetUsageForecastInput { s.TimePeriod = v return s } type GetUsageForecastOutput struct { _ struct{} `type:"structure"` // The forecasts for your query, in order. For DAILY forecasts, this is a list // of days. For MONTHLY forecasts, this is a list of months. ForecastResultsByTime []*ForecastResult `type:"list"` // How much you're forecasted to use over the forecast period. Total *MetricValue `type:"structure"` } // String returns the string representation func (s GetUsageForecastOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetUsageForecastOutput) GoString() string { return s.String() } // SetForecastResultsByTime sets the ForecastResultsByTime field's value. func (s *GetUsageForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetUsageForecastOutput { s.ForecastResultsByTime = v return s } // SetTotal sets the Total field's value. func (s *GetUsageForecastOutput) SetTotal(v *MetricValue) *GetUsageForecastOutput { s.Total = v return s } // One level of grouped data in the results. type Group struct { _ struct{} `type:"structure"` // The keys that are included in this group. Keys []*string `type:"list"` // The metrics that are included in this group. Metrics map[string]*MetricValue `type:"map"` } // String returns the string representation func (s Group) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Group) GoString() string { return s.String() } // SetKeys sets the Keys field's value. func (s *Group) SetKeys(v []*string) *Group { s.Keys = v return s } // SetMetrics sets the Metrics field's value. func (s *Group) SetMetrics(v map[string]*MetricValue) *Group { s.Metrics = v return s } // Represents a group when you specify a group by criteria or in the response // to a query with a specific grouping. type GroupDefinition struct { _ struct{} `type:"structure"` // The string that represents a key for a specified group. Key *string `type:"string"` // The string that represents the type of group. Type *string `type:"string" enum:"GroupDefinitionType"` } // String returns the string representation func (s GroupDefinition) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GroupDefinition) GoString() string { return s.String() } // SetKey sets the Key field's value. func (s *GroupDefinition) SetKey(v string) *GroupDefinition { s.Key = &v return s } // SetType sets the Type field's value. func (s *GroupDefinition) SetType(v string) *GroupDefinition { s.Type = &v return s } // The anomaly's dollar value. type Impact struct { _ struct{} `type:"structure"` // The maximum dollar value observed for an anomaly. // // MaxImpact is a required field MaxImpact *float64 `type:"double" required:"true"` // The cumulative dollar value observed for an anomaly. TotalImpact *float64 `type:"double"` } // String returns the string representation func (s Impact) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Impact) GoString() string { return s.String() } // SetMaxImpact sets the MaxImpact field's value. func (s *Impact) SetMaxImpact(v float64) *Impact { s.MaxImpact = &v return s } // SetTotalImpact sets the TotalImpact field's value. func (s *Impact) SetTotalImpact(v float64) *Impact { s.TotalImpact = &v return s } // Details about the instances that AWS recommends that you purchase. type InstanceDetails struct { _ struct{} `type:"structure"` // The Amazon EC2 instances that AWS recommends that you purchase. EC2InstanceDetails *EC2InstanceDetails `type:"structure"` // The Amazon ES instances that AWS recommends that you purchase. ESInstanceDetails *ESInstanceDetails `type:"structure"` // The ElastiCache instances that AWS recommends that you purchase. ElastiCacheInstanceDetails *ElastiCacheInstanceDetails `type:"structure"` // The Amazon RDS instances that AWS recommends that you purchase. RDSInstanceDetails *RDSInstanceDetails `type:"structure"` // The Amazon Redshift instances that AWS recommends that you purchase. RedshiftInstanceDetails *RedshiftInstanceDetails `type:"structure"` } // String returns the string representation func (s InstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s InstanceDetails) GoString() string { return s.String() } // SetEC2InstanceDetails sets the EC2InstanceDetails field's value. func (s *InstanceDetails) SetEC2InstanceDetails(v *EC2InstanceDetails) *InstanceDetails { s.EC2InstanceDetails = v return s } // SetESInstanceDetails sets the ESInstanceDetails field's value. func (s *InstanceDetails) SetESInstanceDetails(v *ESInstanceDetails) *InstanceDetails { s.ESInstanceDetails = v return s } // SetElastiCacheInstanceDetails sets the ElastiCacheInstanceDetails field's value. func (s *InstanceDetails) SetElastiCacheInstanceDetails(v *ElastiCacheInstanceDetails) *InstanceDetails { s.ElastiCacheInstanceDetails = v return s } // SetRDSInstanceDetails sets the RDSInstanceDetails field's value. func (s *InstanceDetails) SetRDSInstanceDetails(v *RDSInstanceDetails) *InstanceDetails { s.RDSInstanceDetails = v return s } // SetRedshiftInstanceDetails sets the RedshiftInstanceDetails field's value. func (s *InstanceDetails) SetRedshiftInstanceDetails(v *RedshiftInstanceDetails) *InstanceDetails { s.RedshiftInstanceDetails = v return s } // The pagination token is invalid. Try again without a pagination token. type InvalidNextTokenException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s InvalidNextTokenException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s InvalidNextTokenException) GoString() string { return s.String() } func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error { return &InvalidNextTokenException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidNextTokenException) Code() string { return "InvalidNextTokenException" } // Message returns the exception's message. func (s *InvalidNextTokenException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidNextTokenException) OrigErr() error { return nil } func (s *InvalidNextTokenException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidNextTokenException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidNextTokenException) RequestID() string { return s.RespMetadata.RequestID } // You made too many calls in a short period of time. Try again later. type LimitExceededException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s LimitExceededException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s LimitExceededException) GoString() string { return s.String() } func newErrorLimitExceededException(v protocol.ResponseMetadata) error { return &LimitExceededException{ RespMetadata: v, } } // Code returns the exception type name. func (s *LimitExceededException) Code() string { return "LimitExceededException" } // Message returns the exception's message. func (s *LimitExceededException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *LimitExceededException) OrigErr() error { return nil } func (s *LimitExceededException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *LimitExceededException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *LimitExceededException) RequestID() string { return s.RespMetadata.RequestID } type ListCostCategoryDefinitionsInput struct { _ struct{} `type:"structure"` // The date when the Cost Category was effective. EffectiveOn *string `min:"20" type:"string"` // The number of entries a paginated response contains. MaxResults *int64 `min:"1" type:"integer"` // The token to retrieve the next set of results. Amazon Web Services provides // the token when the response from a previous call has more results than the // maximum page size. NextToken *string `type:"string"` } // String returns the string representation func (s ListCostCategoryDefinitionsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ListCostCategoryDefinitionsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *ListCostCategoryDefinitionsInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "ListCostCategoryDefinitionsInput"} if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { invalidParams.Add(request.NewErrParamMinLen("EffectiveOn", 20)) } if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetEffectiveOn sets the EffectiveOn field's value. func (s *ListCostCategoryDefinitionsInput) SetEffectiveOn(v string) *ListCostCategoryDefinitionsInput { s.EffectiveOn = &v return s } // SetMaxResults sets the MaxResults field's value. func (s *ListCostCategoryDefinitionsInput) SetMaxResults(v int64) *ListCostCategoryDefinitionsInput { s.MaxResults = &v return s } // SetNextToken sets the NextToken field's value. func (s *ListCostCategoryDefinitionsInput) SetNextToken(v string) *ListCostCategoryDefinitionsInput { s.NextToken = &v return s } type ListCostCategoryDefinitionsOutput struct { _ struct{} `type:"structure"` // A reference to a Cost Category containing enough information to identify // the Cost Category. CostCategoryReferences []*CostCategoryReference `type:"list"` // The token to retrieve the next set of results. Amazon Web Services provides // the token when the response from a previous call has more results than the // maximum page size. NextToken *string `type:"string"` } // String returns the string representation func (s ListCostCategoryDefinitionsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ListCostCategoryDefinitionsOutput) GoString() string { return s.String() } // SetCostCategoryReferences sets the CostCategoryReferences field's value. func (s *ListCostCategoryDefinitionsOutput) SetCostCategoryReferences(v []*CostCategoryReference) *ListCostCategoryDefinitionsOutput { s.CostCategoryReferences = v return s } // SetNextToken sets the NextToken field's value. func (s *ListCostCategoryDefinitionsOutput) SetNextToken(v string) *ListCostCategoryDefinitionsOutput { s.NextToken = &v return s } // The aggregated value for a metric. type MetricValue struct { _ struct{} `type:"structure"` // The actual number that represents the metric. Amount *string `type:"string"` // The unit that the metric is given in. Unit *string `type:"string"` } // String returns the string representation func (s MetricValue) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s MetricValue) GoString() string { return s.String() } // SetAmount sets the Amount field's value. func (s *MetricValue) SetAmount(v string) *MetricValue { s.Amount = &v return s } // SetUnit sets the Unit field's value. func (s *MetricValue) SetUnit(v string) *MetricValue { s.Unit = &v return s } // Details on the modification recommendation. type ModifyRecommendationDetail struct { _ struct{} `type:"structure"` // Identifies whether this instance type is the AWS default recommendation. TargetInstances []*TargetInstance `type:"list"` } // String returns the string representation func (s ModifyRecommendationDetail) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ModifyRecommendationDetail) GoString() string { return s.String() } // SetTargetInstances sets the TargetInstances field's value. func (s *ModifyRecommendationDetail) SetTargetInstances(v []*TargetInstance) *ModifyRecommendationDetail { s.TargetInstances = v return s } // The network field that contains a list of network metrics associated with // the current instance. type NetworkResourceUtilization struct { _ struct{} `type:"structure"` // The network ingress throughput utilization measured in Bytes per second. NetworkInBytesPerSecond *string `type:"string"` // The network outgress throughput utilization measured in Bytes per second. NetworkOutBytesPerSecond *string `type:"string"` // The network ingress packets measured in packets per second. NetworkPacketsInPerSecond *string `type:"string"` // The network outgress packets measured in packets per second. NetworkPacketsOutPerSecond *string `type:"string"` } // String returns the string representation func (s NetworkResourceUtilization) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s NetworkResourceUtilization) GoString() string { return s.String() } // SetNetworkInBytesPerSecond sets the NetworkInBytesPerSecond field's value. func (s *NetworkResourceUtilization) SetNetworkInBytesPerSecond(v string) *NetworkResourceUtilization { s.NetworkInBytesPerSecond = &v return s } // SetNetworkOutBytesPerSecond sets the NetworkOutBytesPerSecond field's value. func (s *NetworkResourceUtilization) SetNetworkOutBytesPerSecond(v string) *NetworkResourceUtilization { s.NetworkOutBytesPerSecond = &v return s } // SetNetworkPacketsInPerSecond sets the NetworkPacketsInPerSecond field's value. func (s *NetworkResourceUtilization) SetNetworkPacketsInPerSecond(v string) *NetworkResourceUtilization { s.NetworkPacketsInPerSecond = &v return s } // SetNetworkPacketsOutPerSecond sets the NetworkPacketsOutPerSecond field's value. func (s *NetworkResourceUtilization) SetNetworkPacketsOutPerSecond(v string) *NetworkResourceUtilization { s.NetworkPacketsOutPerSecond = &v return s } type ProvideAnomalyFeedbackInput struct { _ struct{} `type:"structure"` // A cost anomaly ID. // // AnomalyId is a required field AnomalyId *string `type:"string" required:"true"` // Describes whether the cost anomaly was a planned activity or you considered // it an anomaly. // // Feedback is a required field Feedback *string `type:"string" required:"true" enum:"AnomalyFeedbackType"` } // String returns the string representation func (s ProvideAnomalyFeedbackInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ProvideAnomalyFeedbackInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *ProvideAnomalyFeedbackInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "ProvideAnomalyFeedbackInput"} if s.AnomalyId == nil { invalidParams.Add(request.NewErrParamRequired("AnomalyId")) } if s.Feedback == nil { invalidParams.Add(request.NewErrParamRequired("Feedback")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetAnomalyId sets the AnomalyId field's value. func (s *ProvideAnomalyFeedbackInput) SetAnomalyId(v string) *ProvideAnomalyFeedbackInput { s.AnomalyId = &v return s } // SetFeedback sets the Feedback field's value. func (s *ProvideAnomalyFeedbackInput) SetFeedback(v string) *ProvideAnomalyFeedbackInput { s.Feedback = &v return s } type ProvideAnomalyFeedbackOutput struct { _ struct{} `type:"structure"` // The ID of the modified cost anomaly. // // AnomalyId is a required field AnomalyId *string `type:"string" required:"true"` } // String returns the string representation func (s ProvideAnomalyFeedbackOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ProvideAnomalyFeedbackOutput) GoString() string { return s.String() } // SetAnomalyId sets the AnomalyId field's value. func (s *ProvideAnomalyFeedbackOutput) SetAnomalyId(v string) *ProvideAnomalyFeedbackOutput { s.AnomalyId = &v return s } // Details about the Amazon RDS instances that AWS recommends that you purchase. type RDSInstanceDetails struct { _ struct{} `type:"structure"` // Whether the recommendation is for a current-generation instance. CurrentGeneration *bool `type:"boolean"` // The database edition that the recommended reservation supports. DatabaseEdition *string `type:"string"` // The database engine that the recommended reservation supports. DatabaseEngine *string `type:"string"` // Whether the recommendation is for a reservation in a single Availability // Zone or a reservation with a backup in a second Availability Zone. DeploymentOption *string `type:"string"` // The instance family of the recommended reservation. Family *string `type:"string"` // The type of instance that AWS recommends. InstanceType *string `type:"string"` // The license model that the recommended reservation supports. LicenseModel *string `type:"string"` // The AWS Region of the recommended reservation. Region *string `type:"string"` // Whether the recommended reservation is size flexible. SizeFlexEligible *bool `type:"boolean"` } // String returns the string representation func (s RDSInstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s RDSInstanceDetails) GoString() string { return s.String() } // SetCurrentGeneration sets the CurrentGeneration field's value. func (s *RDSInstanceDetails) SetCurrentGeneration(v bool) *RDSInstanceDetails { s.CurrentGeneration = &v return s } // SetDatabaseEdition sets the DatabaseEdition field's value. func (s *RDSInstanceDetails) SetDatabaseEdition(v string) *RDSInstanceDetails { s.DatabaseEdition = &v return s } // SetDatabaseEngine sets the DatabaseEngine field's value. func (s *RDSInstanceDetails) SetDatabaseEngine(v string) *RDSInstanceDetails { s.DatabaseEngine = &v return s } // SetDeploymentOption sets the DeploymentOption field's value. func (s *RDSInstanceDetails) SetDeploymentOption(v string) *RDSInstanceDetails { s.DeploymentOption = &v return s } // SetFamily sets the Family field's value. func (s *RDSInstanceDetails) SetFamily(v string) *RDSInstanceDetails { s.Family = &v return s } // SetInstanceType sets the InstanceType field's value. func (s *RDSInstanceDetails) SetInstanceType(v string) *RDSInstanceDetails { s.InstanceType = &v return s } // SetLicenseModel sets the LicenseModel field's value. func (s *RDSInstanceDetails) SetLicenseModel(v string) *RDSInstanceDetails { s.LicenseModel = &v return s } // SetRegion sets the Region field's value. func (s *RDSInstanceDetails) SetRegion(v string) *RDSInstanceDetails { s.Region = &v return s } // SetSizeFlexEligible sets the SizeFlexEligible field's value. func (s *RDSInstanceDetails) SetSizeFlexEligible(v bool) *RDSInstanceDetails { s.SizeFlexEligible = &v return s } // Details about the Amazon Redshift instances that AWS recommends that you // purchase. type RedshiftInstanceDetails struct { _ struct{} `type:"structure"` // Whether the recommendation is for a current-generation instance. CurrentGeneration *bool `type:"boolean"` // The instance family of the recommended reservation. Family *string `type:"string"` // The type of node that AWS recommends. NodeType *string `type:"string"` // The AWS Region of the recommended reservation. Region *string `type:"string"` // Whether the recommended reservation is size flexible. SizeFlexEligible *bool `type:"boolean"` } // String returns the string representation func (s RedshiftInstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s RedshiftInstanceDetails) GoString() string { return s.String() } // SetCurrentGeneration sets the CurrentGeneration field's value. func (s *RedshiftInstanceDetails) SetCurrentGeneration(v bool) *RedshiftInstanceDetails { s.CurrentGeneration = &v return s } // SetFamily sets the Family field's value. func (s *RedshiftInstanceDetails) SetFamily(v string) *RedshiftInstanceDetails { s.Family = &v return s } // SetNodeType sets the NodeType field's value. func (s *RedshiftInstanceDetails) SetNodeType(v string) *RedshiftInstanceDetails { s.NodeType = &v return s } // SetRegion sets the Region field's value. func (s *RedshiftInstanceDetails) SetRegion(v string) *RedshiftInstanceDetails { s.Region = &v return s } // SetSizeFlexEligible sets the SizeFlexEligible field's value. func (s *RedshiftInstanceDetails) SetSizeFlexEligible(v bool) *RedshiftInstanceDetails { s.SizeFlexEligible = &v return s } // Your request parameters changed between pages. Try again with the old parameters // or without a pagination token. type RequestChangedException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s RequestChangedException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s RequestChangedException) GoString() string { return s.String() } func newErrorRequestChangedException(v protocol.ResponseMetadata) error { return &RequestChangedException{ RespMetadata: v, } } // Code returns the exception type name. func (s *RequestChangedException) Code() string { return "RequestChangedException" } // Message returns the exception's message. func (s *RequestChangedException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *RequestChangedException) OrigErr() error { return nil } func (s *RequestChangedException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *RequestChangedException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *RequestChangedException) RequestID() string { return s.RespMetadata.RequestID } // The aggregated numbers for your reservation usage. type ReservationAggregates struct { _ struct{} `type:"structure"` // The monthly cost of your reservation, amortized over the reservation period. AmortizedRecurringFee *string `type:"string"` // The upfront cost of your reservation, amortized over the reservation period. AmortizedUpfrontFee *string `type:"string"` // How much you saved due to purchasing and utilizing reservation. AWS calculates // this by subtracting TotalAmortizedFee from OnDemandCostOfRIHoursUsed. NetRISavings *string `type:"string"` // How much your reservation would cost if charged On-Demand rates. OnDemandCostOfRIHoursUsed *string `type:"string"` // How many reservation hours that you purchased. PurchasedHours *string `type:"string"` // How many Amazon EC2 reservation hours that you purchased, converted to normalized // units. Normalized units are available only for Amazon EC2 usage after November // 11, 2017. PurchasedUnits *string `type:"string"` // The cost of unused hours for your reservation. RICostForUnusedHours *string `type:"string"` // The realized savings due to purchasing and using a reservation. RealizedSavings *string `type:"string"` // The total number of reservation hours that you used. TotalActualHours *string `type:"string"` // The total number of Amazon EC2 reservation hours that you used, converted // to normalized units. Normalized units are available only for Amazon EC2 usage // after November 11, 2017. TotalActualUnits *string `type:"string"` // The total cost of your reservation, amortized over the reservation period. TotalAmortizedFee *string `type:"string"` // How much you could save if you use your entire reservation. TotalPotentialRISavings *string `type:"string"` // The unrealized savings due to purchasing and using a reservation. UnrealizedSavings *string `type:"string"` // The number of reservation hours that you didn't use. UnusedHours *string `type:"string"` // The number of Amazon EC2 reservation hours that you didn't use, converted // to normalized units. Normalized units are available only for Amazon EC2 usage // after November 11, 2017. UnusedUnits *string `type:"string"` // The percentage of reservation time that you used. UtilizationPercentage *string `type:"string"` // The percentage of Amazon EC2 reservation time that you used, converted to // normalized units. Normalized units are available only for Amazon EC2 usage // after November 11, 2017. UtilizationPercentageInUnits *string `type:"string"` } // String returns the string representation func (s ReservationAggregates) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ReservationAggregates) GoString() string { return s.String() } // SetAmortizedRecurringFee sets the AmortizedRecurringFee field's value. func (s *ReservationAggregates) SetAmortizedRecurringFee(v string) *ReservationAggregates { s.AmortizedRecurringFee = &v return s } // SetAmortizedUpfrontFee sets the AmortizedUpfrontFee field's value. func (s *ReservationAggregates) SetAmortizedUpfrontFee(v string) *ReservationAggregates { s.AmortizedUpfrontFee = &v return s } // SetNetRISavings sets the NetRISavings field's value. func (s *ReservationAggregates) SetNetRISavings(v string) *ReservationAggregates { s.NetRISavings = &v return s } // SetOnDemandCostOfRIHoursUsed sets the OnDemandCostOfRIHoursUsed field's value. func (s *ReservationAggregates) SetOnDemandCostOfRIHoursUsed(v string) *ReservationAggregates { s.OnDemandCostOfRIHoursUsed = &v return s } // SetPurchasedHours sets the PurchasedHours field's value. func (s *ReservationAggregates) SetPurchasedHours(v string) *ReservationAggregates { s.PurchasedHours = &v return s } // SetPurchasedUnits sets the PurchasedUnits field's value. func (s *ReservationAggregates) SetPurchasedUnits(v string) *ReservationAggregates { s.PurchasedUnits = &v return s } // SetRICostForUnusedHours sets the RICostForUnusedHours field's value. func (s *ReservationAggregates) SetRICostForUnusedHours(v string) *ReservationAggregates { s.RICostForUnusedHours = &v return s } // SetRealizedSavings sets the RealizedSavings field's value. func (s *ReservationAggregates) SetRealizedSavings(v string) *ReservationAggregates { s.RealizedSavings = &v return s } // SetTotalActualHours sets the TotalActualHours field's value. func (s *ReservationAggregates) SetTotalActualHours(v string) *ReservationAggregates { s.TotalActualHours = &v return s } // SetTotalActualUnits sets the TotalActualUnits field's value. func (s *ReservationAggregates) SetTotalActualUnits(v string) *ReservationAggregates { s.TotalActualUnits = &v return s } // SetTotalAmortizedFee sets the TotalAmortizedFee field's value. func (s *ReservationAggregates) SetTotalAmortizedFee(v string) *ReservationAggregates { s.TotalAmortizedFee = &v return s } // SetTotalPotentialRISavings sets the TotalPotentialRISavings field's value. func (s *ReservationAggregates) SetTotalPotentialRISavings(v string) *ReservationAggregates { s.TotalPotentialRISavings = &v return s } // SetUnrealizedSavings sets the UnrealizedSavings field's value. func (s *ReservationAggregates) SetUnrealizedSavings(v string) *ReservationAggregates { s.UnrealizedSavings = &v return s } // SetUnusedHours sets the UnusedHours field's value. func (s *ReservationAggregates) SetUnusedHours(v string) *ReservationAggregates { s.UnusedHours = &v return s } // SetUnusedUnits sets the UnusedUnits field's value. func (s *ReservationAggregates) SetUnusedUnits(v string) *ReservationAggregates { s.UnusedUnits = &v return s } // SetUtilizationPercentage sets the UtilizationPercentage field's value. func (s *ReservationAggregates) SetUtilizationPercentage(v string) *ReservationAggregates { s.UtilizationPercentage = &v return s } // SetUtilizationPercentageInUnits sets the UtilizationPercentageInUnits field's value. func (s *ReservationAggregates) SetUtilizationPercentageInUnits(v string) *ReservationAggregates { s.UtilizationPercentageInUnits = &v return s } // A group of reservations that share a set of attributes. type ReservationCoverageGroup struct { _ struct{} `type:"structure"` // The attributes for this group of reservations. Attributes map[string]*string `type:"map"` // How much instance usage this group of reservations covered. Coverage *Coverage `type:"structure"` } // String returns the string representation func (s ReservationCoverageGroup) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ReservationCoverageGroup) GoString() string { return s.String() } // SetAttributes sets the Attributes field's value. func (s *ReservationCoverageGroup) SetAttributes(v map[string]*string) *ReservationCoverageGroup { s.Attributes = v return s } // SetCoverage sets the Coverage field's value. func (s *ReservationCoverageGroup) SetCoverage(v *Coverage) *ReservationCoverageGroup { s.Coverage = v return s } // A specific reservation that AWS recommends for purchase. type ReservationPurchaseRecommendation struct { _ struct{} `type:"structure"` // The account scope that AWS recommends that you purchase this instance for. // For example, you can purchase this reservation for an entire organization // in AWS Organizations. AccountScope *string `type:"string" enum:"AccountScope"` // How many days of previous usage that AWS considers when making this recommendation. LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` // The payment option for the reservation. For example, AllUpfront or NoUpfront. PaymentOption *string `type:"string" enum:"PaymentOption"` // Details about the recommended purchases. RecommendationDetails []*ReservationPurchaseRecommendationDetail `type:"list"` // A summary about the recommended purchase. RecommendationSummary *ReservationPurchaseRecommendationSummary `type:"structure"` // Hardware specifications for the service that you want recommendations for. ServiceSpecification *ServiceSpecification `type:"structure"` // The term of the reservation that you want recommendations for, in years. TermInYears *string `type:"string" enum:"TermInYears"` } // String returns the string representation func (s ReservationPurchaseRecommendation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ReservationPurchaseRecommendation) GoString() string { return s.String() } // SetAccountScope sets the AccountScope field's value. func (s *ReservationPurchaseRecommendation) SetAccountScope(v string) *ReservationPurchaseRecommendation { s.AccountScope = &v return s } // SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. func (s *ReservationPurchaseRecommendation) SetLookbackPeriodInDays(v string) *ReservationPurchaseRecommendation { s.LookbackPeriodInDays = &v return s } // SetPaymentOption sets the PaymentOption field's value. func (s *ReservationPurchaseRecommendation) SetPaymentOption(v string) *ReservationPurchaseRecommendation { s.PaymentOption = &v return s } // SetRecommendationDetails sets the RecommendationDetails field's value. func (s *ReservationPurchaseRecommendation) SetRecommendationDetails(v []*ReservationPurchaseRecommendationDetail) *ReservationPurchaseRecommendation { s.RecommendationDetails = v return s } // SetRecommendationSummary sets the RecommendationSummary field's value. func (s *ReservationPurchaseRecommendation) SetRecommendationSummary(v *ReservationPurchaseRecommendationSummary) *ReservationPurchaseRecommendation { s.RecommendationSummary = v return s } // SetServiceSpecification sets the ServiceSpecification field's value. func (s *ReservationPurchaseRecommendation) SetServiceSpecification(v *ServiceSpecification) *ReservationPurchaseRecommendation { s.ServiceSpecification = v return s } // SetTermInYears sets the TermInYears field's value. func (s *ReservationPurchaseRecommendation) SetTermInYears(v string) *ReservationPurchaseRecommendation { s.TermInYears = &v return s } // Details about your recommended reservation purchase. type ReservationPurchaseRecommendationDetail struct { _ struct{} `type:"structure"` // The account that this RI recommendation is for. AccountId *string `type:"string"` // The average number of normalized units that you used in an hour during the // historical period. AWS uses this to calculate your recommended reservation // purchases. AverageNormalizedUnitsUsedPerHour *string `type:"string"` // The average number of instances that you used in an hour during the historical // period. AWS uses this to calculate your recommended reservation purchases. AverageNumberOfInstancesUsedPerHour *string `type:"string"` // The average utilization of your instances. AWS uses this to calculate your // recommended reservation purchases. AverageUtilization *string `type:"string"` // The currency code that AWS used to calculate the costs for this instance. CurrencyCode *string `type:"string"` // How long AWS estimates that it takes for this instance to start saving you // money, in months. EstimatedBreakEvenInMonths *string `type:"string"` // How much AWS estimates that you spend on On-Demand Instances in a month. EstimatedMonthlyOnDemandCost *string `type:"string"` // How much AWS estimates that this specific recommendation could save you in // a month. EstimatedMonthlySavingsAmount *string `type:"string"` // How much AWS estimates that this specific recommendation could save you in // a month, as a percentage of your overall costs. EstimatedMonthlySavingsPercentage *string `type:"string"` // How much AWS estimates that you would have spent for all usage during the // specified historical period if you had a reservation. EstimatedReservationCostForLookbackPeriod *string `type:"string"` // Details about the instances that AWS recommends that you purchase. InstanceDetails *InstanceDetails `type:"structure"` // The maximum number of normalized units that you used in an hour during the // historical period. AWS uses this to calculate your recommended reservation // purchases. MaximumNormalizedUnitsUsedPerHour *string `type:"string"` // The maximum number of instances that you used in an hour during the historical // period. AWS uses this to calculate your recommended reservation purchases. MaximumNumberOfInstancesUsedPerHour *string `type:"string"` // The minimum number of normalized units that you used in an hour during the // historical period. AWS uses this to calculate your recommended reservation // purchases. MinimumNormalizedUnitsUsedPerHour *string `type:"string"` // The minimum number of instances that you used in an hour during the historical // period. AWS uses this to calculate your recommended reservation purchases. MinimumNumberOfInstancesUsedPerHour *string `type:"string"` // The number of normalized units that AWS recommends that you purchase. RecommendedNormalizedUnitsToPurchase *string `type:"string"` // The number of instances that AWS recommends that you purchase. RecommendedNumberOfInstancesToPurchase *string `type:"string"` // How much purchasing this instance costs you on a monthly basis. RecurringStandardMonthlyCost *string `type:"string"` // How much purchasing this instance costs you upfront. UpfrontCost *string `type:"string"` } // String returns the string representation func (s ReservationPurchaseRecommendationDetail) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ReservationPurchaseRecommendationDetail) GoString() string { return s.String() } // SetAccountId sets the AccountId field's value. func (s *ReservationPurchaseRecommendationDetail) SetAccountId(v string) *ReservationPurchaseRecommendationDetail { s.AccountId = &v return s } // SetAverageNormalizedUnitsUsedPerHour sets the AverageNormalizedUnitsUsedPerHour field's value. func (s *ReservationPurchaseRecommendationDetail) SetAverageNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { s.AverageNormalizedUnitsUsedPerHour = &v return s } // SetAverageNumberOfInstancesUsedPerHour sets the AverageNumberOfInstancesUsedPerHour field's value. func (s *ReservationPurchaseRecommendationDetail) SetAverageNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { s.AverageNumberOfInstancesUsedPerHour = &v return s } // SetAverageUtilization sets the AverageUtilization field's value. func (s *ReservationPurchaseRecommendationDetail) SetAverageUtilization(v string) *ReservationPurchaseRecommendationDetail { s.AverageUtilization = &v return s } // SetCurrencyCode sets the CurrencyCode field's value. func (s *ReservationPurchaseRecommendationDetail) SetCurrencyCode(v string) *ReservationPurchaseRecommendationDetail { s.CurrencyCode = &v return s } // SetEstimatedBreakEvenInMonths sets the EstimatedBreakEvenInMonths field's value. func (s *ReservationPurchaseRecommendationDetail) SetEstimatedBreakEvenInMonths(v string) *ReservationPurchaseRecommendationDetail { s.EstimatedBreakEvenInMonths = &v return s } // SetEstimatedMonthlyOnDemandCost sets the EstimatedMonthlyOnDemandCost field's value. func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlyOnDemandCost(v string) *ReservationPurchaseRecommendationDetail { s.EstimatedMonthlyOnDemandCost = &v return s } // SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationDetail { s.EstimatedMonthlySavingsAmount = &v return s } // SetEstimatedMonthlySavingsPercentage sets the EstimatedMonthlySavingsPercentage field's value. func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationDetail { s.EstimatedMonthlySavingsPercentage = &v return s } // SetEstimatedReservationCostForLookbackPeriod sets the EstimatedReservationCostForLookbackPeriod field's value. func (s *ReservationPurchaseRecommendationDetail) SetEstimatedReservationCostForLookbackPeriod(v string) *ReservationPurchaseRecommendationDetail { s.EstimatedReservationCostForLookbackPeriod = &v return s } // SetInstanceDetails sets the InstanceDetails field's value. func (s *ReservationPurchaseRecommendationDetail) SetInstanceDetails(v *InstanceDetails) *ReservationPurchaseRecommendationDetail { s.InstanceDetails = v return s } // SetMaximumNormalizedUnitsUsedPerHour sets the MaximumNormalizedUnitsUsedPerHour field's value. func (s *ReservationPurchaseRecommendationDetail) SetMaximumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { s.MaximumNormalizedUnitsUsedPerHour = &v return s } // SetMaximumNumberOfInstancesUsedPerHour sets the MaximumNumberOfInstancesUsedPerHour field's value. func (s *ReservationPurchaseRecommendationDetail) SetMaximumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { s.MaximumNumberOfInstancesUsedPerHour = &v return s } // SetMinimumNormalizedUnitsUsedPerHour sets the MinimumNormalizedUnitsUsedPerHour field's value. func (s *ReservationPurchaseRecommendationDetail) SetMinimumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { s.MinimumNormalizedUnitsUsedPerHour = &v return s } // SetMinimumNumberOfInstancesUsedPerHour sets the MinimumNumberOfInstancesUsedPerHour field's value. func (s *ReservationPurchaseRecommendationDetail) SetMinimumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { s.MinimumNumberOfInstancesUsedPerHour = &v return s } // SetRecommendedNormalizedUnitsToPurchase sets the RecommendedNormalizedUnitsToPurchase field's value. func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNormalizedUnitsToPurchase(v string) *ReservationPurchaseRecommendationDetail { s.RecommendedNormalizedUnitsToPurchase = &v return s } // SetRecommendedNumberOfInstancesToPurchase sets the RecommendedNumberOfInstancesToPurchase field's value. func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNumberOfInstancesToPurchase(v string) *ReservationPurchaseRecommendationDetail { s.RecommendedNumberOfInstancesToPurchase = &v return s } // SetRecurringStandardMonthlyCost sets the RecurringStandardMonthlyCost field's value. func (s *ReservationPurchaseRecommendationDetail) SetRecurringStandardMonthlyCost(v string) *ReservationPurchaseRecommendationDetail { s.RecurringStandardMonthlyCost = &v return s } // SetUpfrontCost sets the UpfrontCost field's value. func (s *ReservationPurchaseRecommendationDetail) SetUpfrontCost(v string) *ReservationPurchaseRecommendationDetail { s.UpfrontCost = &v return s } // Information about this specific recommendation, such as the timestamp for // when AWS made a specific recommendation. type ReservationPurchaseRecommendationMetadata struct { _ struct{} `type:"structure"` // The timestamp for when AWS made this recommendation. GenerationTimestamp *string `type:"string"` // The ID for this specific recommendation. RecommendationId *string `type:"string"` } // String returns the string representation func (s ReservationPurchaseRecommendationMetadata) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ReservationPurchaseRecommendationMetadata) GoString() string { return s.String() } // SetGenerationTimestamp sets the GenerationTimestamp field's value. func (s *ReservationPurchaseRecommendationMetadata) SetGenerationTimestamp(v string) *ReservationPurchaseRecommendationMetadata { s.GenerationTimestamp = &v return s } // SetRecommendationId sets the RecommendationId field's value. func (s *ReservationPurchaseRecommendationMetadata) SetRecommendationId(v string) *ReservationPurchaseRecommendationMetadata { s.RecommendationId = &v return s } // A summary about this recommendation, such as the currency code, the amount // that AWS estimates that you could save, and the total amount of reservation // to purchase. type ReservationPurchaseRecommendationSummary struct { _ struct{} `type:"structure"` // The currency code used for this recommendation. CurrencyCode *string `type:"string"` // The total amount that AWS estimates that this recommendation could save you // in a month. TotalEstimatedMonthlySavingsAmount *string `type:"string"` // The total amount that AWS estimates that this recommendation could save you // in a month, as a percentage of your costs. TotalEstimatedMonthlySavingsPercentage *string `type:"string"` } // String returns the string representation func (s ReservationPurchaseRecommendationSummary) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ReservationPurchaseRecommendationSummary) GoString() string { return s.String() } // SetCurrencyCode sets the CurrencyCode field's value. func (s *ReservationPurchaseRecommendationSummary) SetCurrencyCode(v string) *ReservationPurchaseRecommendationSummary { s.CurrencyCode = &v return s } // SetTotalEstimatedMonthlySavingsAmount sets the TotalEstimatedMonthlySavingsAmount field's value. func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationSummary { s.TotalEstimatedMonthlySavingsAmount = &v return s } // SetTotalEstimatedMonthlySavingsPercentage sets the TotalEstimatedMonthlySavingsPercentage field's value. func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationSummary { s.TotalEstimatedMonthlySavingsPercentage = &v return s } // A group of reservations that share a set of attributes. type ReservationUtilizationGroup struct { _ struct{} `type:"structure"` // The attributes for this group of reservations. Attributes map[string]*string `type:"map"` // The key for a specific reservation attribute. Key *string `type:"string"` // How much you used this group of reservations. Utilization *ReservationAggregates `type:"structure"` // The value of a specific reservation attribute. Value *string `type:"string"` } // String returns the string representation func (s ReservationUtilizationGroup) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ReservationUtilizationGroup) GoString() string { return s.String() } // SetAttributes sets the Attributes field's value. func (s *ReservationUtilizationGroup) SetAttributes(v map[string]*string) *ReservationUtilizationGroup { s.Attributes = v return s } // SetKey sets the Key field's value. func (s *ReservationUtilizationGroup) SetKey(v string) *ReservationUtilizationGroup { s.Key = &v return s } // SetUtilization sets the Utilization field's value. func (s *ReservationUtilizationGroup) SetUtilization(v *ReservationAggregates) *ReservationUtilizationGroup { s.Utilization = v return s } // SetValue sets the Value field's value. func (s *ReservationUtilizationGroup) SetValue(v string) *ReservationUtilizationGroup { s.Value = &v return s } // Details on the resource. type ResourceDetails struct { _ struct{} `type:"structure"` // Details on the Amazon EC2 resource. EC2ResourceDetails *EC2ResourceDetails `type:"structure"` } // String returns the string representation func (s ResourceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ResourceDetails) GoString() string { return s.String() } // SetEC2ResourceDetails sets the EC2ResourceDetails field's value. func (s *ResourceDetails) SetEC2ResourceDetails(v *EC2ResourceDetails) *ResourceDetails { s.EC2ResourceDetails = v return s } // The specified ARN in the request doesn't exist. type ResourceNotFoundException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s ResourceNotFoundException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ResourceNotFoundException) GoString() string { return s.String() } func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { return &ResourceNotFoundException{ RespMetadata: v, } } // Code returns the exception type name. func (s *ResourceNotFoundException) Code() string { return "ResourceNotFoundException" } // Message returns the exception's message. func (s *ResourceNotFoundException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *ResourceNotFoundException) OrigErr() error { return nil } func (s *ResourceNotFoundException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *ResourceNotFoundException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *ResourceNotFoundException) RequestID() string { return s.RespMetadata.RequestID } // Resource utilization of current resource. type ResourceUtilization struct { _ struct{} `type:"structure"` // Utilization of current Amazon EC2 instance. EC2ResourceUtilization *EC2ResourceUtilization `type:"structure"` } // String returns the string representation func (s ResourceUtilization) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ResourceUtilization) GoString() string { return s.String() } // SetEC2ResourceUtilization sets the EC2ResourceUtilization field's value. func (s *ResourceUtilization) SetEC2ResourceUtilization(v *EC2ResourceUtilization) *ResourceUtilization { s.EC2ResourceUtilization = v return s } // The result that is associated with a time period. type ResultByTime struct { _ struct{} `type:"structure"` // Whether the result is estimated. Estimated *bool `type:"boolean"` // The groups that this time period includes. Groups []*Group `type:"list"` // The time period that the result covers. TimePeriod *DateInterval `type:"structure"` // The total amount of cost or usage accrued during the time period. Total map[string]*MetricValue `type:"map"` } // String returns the string representation func (s ResultByTime) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ResultByTime) GoString() string { return s.String() } // SetEstimated sets the Estimated field's value. func (s *ResultByTime) SetEstimated(v bool) *ResultByTime { s.Estimated = &v return s } // SetGroups sets the Groups field's value. func (s *ResultByTime) SetGroups(v []*Group) *ResultByTime { s.Groups = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *ResultByTime) SetTimePeriod(v *DateInterval) *ResultByTime { s.TimePeriod = v return s } // SetTotal sets the Total field's value. func (s *ResultByTime) SetTotal(v map[string]*MetricValue) *ResultByTime { s.Total = v return s } // Recommendations to rightsize resources. type RightsizingRecommendation struct { _ struct{} `type:"structure"` // The account that this recommendation is for. AccountId *string `type:"string"` // Context regarding the current instance. CurrentInstance *CurrentInstance `type:"structure"` // The list of possible reasons why the recommendation is generated such as // under or over utilization of specific metrics (for example, CPU, Memory, // Network). FindingReasonCodes []*string `type:"list"` // Details for modification recommendations. ModifyRecommendationDetail *ModifyRecommendationDetail `type:"structure"` // Recommendation to either terminate or modify the resource. RightsizingType *string `type:"string" enum:"RightsizingType"` // Details for termination recommendations. TerminateRecommendationDetail *TerminateRecommendationDetail `type:"structure"` } // String returns the string representation func (s RightsizingRecommendation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s RightsizingRecommendation) GoString() string { return s.String() } // SetAccountId sets the AccountId field's value. func (s *RightsizingRecommendation) SetAccountId(v string) *RightsizingRecommendation { s.AccountId = &v return s } // SetCurrentInstance sets the CurrentInstance field's value. func (s *RightsizingRecommendation) SetCurrentInstance(v *CurrentInstance) *RightsizingRecommendation { s.CurrentInstance = v return s } // SetFindingReasonCodes sets the FindingReasonCodes field's value. func (s *RightsizingRecommendation) SetFindingReasonCodes(v []*string) *RightsizingRecommendation { s.FindingReasonCodes = v return s } // SetModifyRecommendationDetail sets the ModifyRecommendationDetail field's value. func (s *RightsizingRecommendation) SetModifyRecommendationDetail(v *ModifyRecommendationDetail) *RightsizingRecommendation { s.ModifyRecommendationDetail = v return s } // SetRightsizingType sets the RightsizingType field's value. func (s *RightsizingRecommendation) SetRightsizingType(v string) *RightsizingRecommendation { s.RightsizingType = &v return s } // SetTerminateRecommendationDetail sets the TerminateRecommendationDetail field's value. func (s *RightsizingRecommendation) SetTerminateRecommendationDetail(v *TerminateRecommendationDetail) *RightsizingRecommendation { s.TerminateRecommendationDetail = v return s } // Enables you to customize recommendations across two attributes. You can choose // to view recommendations for instances within the same instance families or // across different instance families. You can also choose to view your estimated // savings associated with recommendations with consideration of existing Savings // Plans or RI benefits, or neither. type RightsizingRecommendationConfiguration struct { _ struct{} `type:"structure"` // The option to consider RI or Savings Plans discount benefits in your savings // calculation. The default value is TRUE. // // BenefitsConsidered is a required field BenefitsConsidered *bool `type:"boolean" required:"true"` // The option to see recommendations within the same instance family, or recommendations // for instances across other families. The default value is SAME_INSTANCE_FAMILY. // // RecommendationTarget is a required field RecommendationTarget *string `type:"string" required:"true" enum:"RecommendationTarget"` } // String returns the string representation func (s RightsizingRecommendationConfiguration) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s RightsizingRecommendationConfiguration) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *RightsizingRecommendationConfiguration) Validate() error { invalidParams := request.ErrInvalidParams{Context: "RightsizingRecommendationConfiguration"} if s.BenefitsConsidered == nil { invalidParams.Add(request.NewErrParamRequired("BenefitsConsidered")) } if s.RecommendationTarget == nil { invalidParams.Add(request.NewErrParamRequired("RecommendationTarget")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetBenefitsConsidered sets the BenefitsConsidered field's value. func (s *RightsizingRecommendationConfiguration) SetBenefitsConsidered(v bool) *RightsizingRecommendationConfiguration { s.BenefitsConsidered = &v return s } // SetRecommendationTarget sets the RecommendationTarget field's value. func (s *RightsizingRecommendationConfiguration) SetRecommendationTarget(v string) *RightsizingRecommendationConfiguration { s.RecommendationTarget = &v return s } // Metadata for this recommendation set. type RightsizingRecommendationMetadata struct { _ struct{} `type:"structure"` // Additional metadata that may be applicable to the recommendation. AdditionalMetadata *string `type:"string"` // The timestamp for when AWS made this recommendation. GenerationTimestamp *string `type:"string"` // How many days of previous usage that AWS considers when making this recommendation. LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` // The ID for this specific recommendation. RecommendationId *string `type:"string"` } // String returns the string representation func (s RightsizingRecommendationMetadata) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s RightsizingRecommendationMetadata) GoString() string { return s.String() } // SetAdditionalMetadata sets the AdditionalMetadata field's value. func (s *RightsizingRecommendationMetadata) SetAdditionalMetadata(v string) *RightsizingRecommendationMetadata { s.AdditionalMetadata = &v return s } // SetGenerationTimestamp sets the GenerationTimestamp field's value. func (s *RightsizingRecommendationMetadata) SetGenerationTimestamp(v string) *RightsizingRecommendationMetadata { s.GenerationTimestamp = &v return s } // SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. func (s *RightsizingRecommendationMetadata) SetLookbackPeriodInDays(v string) *RightsizingRecommendationMetadata { s.LookbackPeriodInDays = &v return s } // SetRecommendationId sets the RecommendationId field's value. func (s *RightsizingRecommendationMetadata) SetRecommendationId(v string) *RightsizingRecommendationMetadata { s.RecommendationId = &v return s } // Summary of rightsizing recommendations type RightsizingRecommendationSummary struct { _ struct{} `type:"structure"` // Estimated total savings resulting from modifications, on a monthly basis. EstimatedTotalMonthlySavingsAmount *string `type:"string"` // The currency code that AWS used to calculate the savings. SavingsCurrencyCode *string `type:"string"` // Savings percentage based on the recommended modifications, relative to the // total On-Demand costs associated with these instances. SavingsPercentage *string `type:"string"` // Total number of instance recommendations. TotalRecommendationCount *string `type:"string"` } // String returns the string representation func (s RightsizingRecommendationSummary) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s RightsizingRecommendationSummary) GoString() string { return s.String() } // SetEstimatedTotalMonthlySavingsAmount sets the EstimatedTotalMonthlySavingsAmount field's value. func (s *RightsizingRecommendationSummary) SetEstimatedTotalMonthlySavingsAmount(v string) *RightsizingRecommendationSummary { s.EstimatedTotalMonthlySavingsAmount = &v return s } // SetSavingsCurrencyCode sets the SavingsCurrencyCode field's value. func (s *RightsizingRecommendationSummary) SetSavingsCurrencyCode(v string) *RightsizingRecommendationSummary { s.SavingsCurrencyCode = &v return s } // SetSavingsPercentage sets the SavingsPercentage field's value. func (s *RightsizingRecommendationSummary) SetSavingsPercentage(v string) *RightsizingRecommendationSummary { s.SavingsPercentage = &v return s } // SetTotalRecommendationCount sets the TotalRecommendationCount field's value. func (s *RightsizingRecommendationSummary) SetTotalRecommendationCount(v string) *RightsizingRecommendationSummary { s.TotalRecommendationCount = &v return s } // The combination of AWS service, linked account, Region, and usage type where // a cost anomaly is observed. type RootCause struct { _ struct{} `type:"structure"` // The linked account value associated with the cost anomaly. LinkedAccount *string `type:"string"` // The AWS Region associated with the cost anomaly. Region *string `type:"string"` // The AWS service name associated with the cost anomaly. Service *string `type:"string"` // The UsageType value associated with the cost anomaly. UsageType *string `type:"string"` } // String returns the string representation func (s RootCause) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s RootCause) GoString() string { return s.String() } // SetLinkedAccount sets the LinkedAccount field's value. func (s *RootCause) SetLinkedAccount(v string) *RootCause { s.LinkedAccount = &v return s } // SetRegion sets the Region field's value. func (s *RootCause) SetRegion(v string) *RootCause { s.Region = &v return s } // SetService sets the Service field's value. func (s *RootCause) SetService(v string) *RootCause { s.Service = &v return s } // SetUsageType sets the UsageType field's value. func (s *RootCause) SetUsageType(v string) *RootCause { s.UsageType = &v return s } // The amortized amount of Savings Plans purchased in a specific account during // a specific time interval. type SavingsPlansAmortizedCommitment struct { _ struct{} `type:"structure"` // The amortized amount of your Savings Plans commitment that was purchased // with either a Partial or a NoUpfront. AmortizedRecurringCommitment *string `type:"string"` // The amortized amount of your Savings Plans commitment that was purchased // with an Upfront or PartialUpfront Savings Plans. AmortizedUpfrontCommitment *string `type:"string"` // The total amortized amount of your Savings Plans commitment, regardless of // your Savings Plans purchase method. TotalAmortizedCommitment *string `type:"string"` } // String returns the string representation func (s SavingsPlansAmortizedCommitment) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansAmortizedCommitment) GoString() string { return s.String() } // SetAmortizedRecurringCommitment sets the AmortizedRecurringCommitment field's value. func (s *SavingsPlansAmortizedCommitment) SetAmortizedRecurringCommitment(v string) *SavingsPlansAmortizedCommitment { s.AmortizedRecurringCommitment = &v return s } // SetAmortizedUpfrontCommitment sets the AmortizedUpfrontCommitment field's value. func (s *SavingsPlansAmortizedCommitment) SetAmortizedUpfrontCommitment(v string) *SavingsPlansAmortizedCommitment { s.AmortizedUpfrontCommitment = &v return s } // SetTotalAmortizedCommitment sets the TotalAmortizedCommitment field's value. func (s *SavingsPlansAmortizedCommitment) SetTotalAmortizedCommitment(v string) *SavingsPlansAmortizedCommitment { s.TotalAmortizedCommitment = &v return s } // The amount of Savings Plans eligible usage that is covered by Savings Plans. // All calculations consider the On-Demand equivalent of your Savings Plans // usage. type SavingsPlansCoverage struct { _ struct{} `type:"structure"` // The attribute that applies to a specific Dimension. Attributes map[string]*string `type:"map"` // The amount of Savings Plans eligible usage that the Savings Plans covered. Coverage *SavingsPlansCoverageData `type:"structure"` // The time period of the request. TimePeriod *DateInterval `type:"structure"` } // String returns the string representation func (s SavingsPlansCoverage) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansCoverage) GoString() string { return s.String() } // SetAttributes sets the Attributes field's value. func (s *SavingsPlansCoverage) SetAttributes(v map[string]*string) *SavingsPlansCoverage { s.Attributes = v return s } // SetCoverage sets the Coverage field's value. func (s *SavingsPlansCoverage) SetCoverage(v *SavingsPlansCoverageData) *SavingsPlansCoverage { s.Coverage = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *SavingsPlansCoverage) SetTimePeriod(v *DateInterval) *SavingsPlansCoverage { s.TimePeriod = v return s } // Specific coverage percentage, On-Demand costs, and spend covered by Savings // Plans, and total Savings Plans costs for an account. type SavingsPlansCoverageData struct { _ struct{} `type:"structure"` // The percentage of your existing Savings Plans covered usage, divided by all // of your eligible Savings Plans usage in an account(or set of accounts). CoveragePercentage *string `type:"string"` // The cost of your AWS usage at the public On-Demand rate. OnDemandCost *string `type:"string"` // The amount of your AWS usage that is covered by a Savings Plans. SpendCoveredBySavingsPlans *string `type:"string"` // The total cost of your AWS usage, regardless of your purchase option. TotalCost *string `type:"string"` } // String returns the string representation func (s SavingsPlansCoverageData) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansCoverageData) GoString() string { return s.String() } // SetCoveragePercentage sets the CoveragePercentage field's value. func (s *SavingsPlansCoverageData) SetCoveragePercentage(v string) *SavingsPlansCoverageData { s.CoveragePercentage = &v return s } // SetOnDemandCost sets the OnDemandCost field's value. func (s *SavingsPlansCoverageData) SetOnDemandCost(v string) *SavingsPlansCoverageData { s.OnDemandCost = &v return s } // SetSpendCoveredBySavingsPlans sets the SpendCoveredBySavingsPlans field's value. func (s *SavingsPlansCoverageData) SetSpendCoveredBySavingsPlans(v string) *SavingsPlansCoverageData { s.SpendCoveredBySavingsPlans = &v return s } // SetTotalCost sets the TotalCost field's value. func (s *SavingsPlansCoverageData) SetTotalCost(v string) *SavingsPlansCoverageData { s.TotalCost = &v return s } // Attribute details on a specific Savings Plan. type SavingsPlansDetails struct { _ struct{} `type:"structure"` // A group of instance types that Savings Plans applies to. InstanceFamily *string `type:"string"` // The unique ID used to distinguish Savings Plans from one another. OfferingId *string `type:"string"` // A collection of AWS resources in a geographic area. Each AWS Region is isolated // and independent of the other Regions. Region *string `type:"string"` } // String returns the string representation func (s SavingsPlansDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansDetails) GoString() string { return s.String() } // SetInstanceFamily sets the InstanceFamily field's value. func (s *SavingsPlansDetails) SetInstanceFamily(v string) *SavingsPlansDetails { s.InstanceFamily = &v return s } // SetOfferingId sets the OfferingId field's value. func (s *SavingsPlansDetails) SetOfferingId(v string) *SavingsPlansDetails { s.OfferingId = &v return s } // SetRegion sets the Region field's value. func (s *SavingsPlansDetails) SetRegion(v string) *SavingsPlansDetails { s.Region = &v return s } // Contains your request parameters, Savings Plan Recommendations Summary, and // Details. type SavingsPlansPurchaseRecommendation struct { _ struct{} `type:"structure"` // The account scope that you want your recommendations for. Amazon Web Services // calculates recommendations including the management account and member accounts // if the value is set to PAYER. If the value is LINKED, recommendations are // calculated for individual member accounts only. AccountScope *string `type:"string" enum:"AccountScope"` // The lookback period in days, used to generate the recommendation. LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` // The payment option used to generate the recommendation. PaymentOption *string `type:"string" enum:"PaymentOption"` // Details for the Savings Plans we recommend that you purchase to cover existing // Savings Plans eligible workloads. SavingsPlansPurchaseRecommendationDetails []*SavingsPlansPurchaseRecommendationDetail `type:"list"` // Summary metrics for your Savings Plans Recommendations. SavingsPlansPurchaseRecommendationSummary *SavingsPlansPurchaseRecommendationSummary `type:"structure"` // The requested Savings Plans recommendation type. SavingsPlansType *string `type:"string" enum:"SupportedSavingsPlansType"` // The Savings Plans recommendation term in years, used to generate the recommendation. TermInYears *string `type:"string" enum:"TermInYears"` } // String returns the string representation func (s SavingsPlansPurchaseRecommendation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansPurchaseRecommendation) GoString() string { return s.String() } // SetAccountScope sets the AccountScope field's value. func (s *SavingsPlansPurchaseRecommendation) SetAccountScope(v string) *SavingsPlansPurchaseRecommendation { s.AccountScope = &v return s } // SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. func (s *SavingsPlansPurchaseRecommendation) SetLookbackPeriodInDays(v string) *SavingsPlansPurchaseRecommendation { s.LookbackPeriodInDays = &v return s } // SetPaymentOption sets the PaymentOption field's value. func (s *SavingsPlansPurchaseRecommendation) SetPaymentOption(v string) *SavingsPlansPurchaseRecommendation { s.PaymentOption = &v return s } // SetSavingsPlansPurchaseRecommendationDetails sets the SavingsPlansPurchaseRecommendationDetails field's value. func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansPurchaseRecommendationDetails(v []*SavingsPlansPurchaseRecommendationDetail) *SavingsPlansPurchaseRecommendation { s.SavingsPlansPurchaseRecommendationDetails = v return s } // SetSavingsPlansPurchaseRecommendationSummary sets the SavingsPlansPurchaseRecommendationSummary field's value. func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansPurchaseRecommendationSummary(v *SavingsPlansPurchaseRecommendationSummary) *SavingsPlansPurchaseRecommendation { s.SavingsPlansPurchaseRecommendationSummary = v return s } // SetSavingsPlansType sets the SavingsPlansType field's value. func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansType(v string) *SavingsPlansPurchaseRecommendation { s.SavingsPlansType = &v return s } // SetTermInYears sets the TermInYears field's value. func (s *SavingsPlansPurchaseRecommendation) SetTermInYears(v string) *SavingsPlansPurchaseRecommendation { s.TermInYears = &v return s } // Details for your recommended Savings Plans. type SavingsPlansPurchaseRecommendationDetail struct { _ struct{} `type:"structure"` // The AccountID the recommendation is generated for. AccountId *string `type:"string"` // The currency code AWS used to generate the recommendations and present potential // savings. CurrencyCode *string `type:"string"` // The average value of hourly On-Demand spend over the lookback period of the // applicable usage type. CurrentAverageHourlyOnDemandSpend *string `type:"string"` // The highest value of hourly On-Demand spend over the lookback period of the // applicable usage type. CurrentMaximumHourlyOnDemandSpend *string `type:"string"` // The lowest value of hourly On-Demand spend over the lookback period of the // applicable usage type. CurrentMinimumHourlyOnDemandSpend *string `type:"string"` // The estimated utilization of the recommended Savings Plans. EstimatedAverageUtilization *string `type:"string"` // The estimated monthly savings amount, based on the recommended Savings Plans. EstimatedMonthlySavingsAmount *string `type:"string"` // The remaining On-Demand cost estimated to not be covered by the recommended // Savings Plans, over the length of the lookback period. EstimatedOnDemandCost *string `type:"string"` // The estimated On-Demand costs you would expect with no additional commitment, // based on your usage of the selected time period and the Savings Plans you // own. EstimatedOnDemandCostWithCurrentCommitment *string `type:"string"` // The estimated return on investment based on the recommended Savings Plans // purchased. This is calculated as estimatedSavingsAmount/ estimatedSPCost*100. EstimatedROI *string `type:"string"` // The cost of the recommended Savings Plans over the length of the lookback // period. EstimatedSPCost *string `type:"string"` // The estimated savings amount based on the recommended Savings Plans over // the length of the lookback period. EstimatedSavingsAmount *string `type:"string"` // The estimated savings percentage relative to the total cost of applicable // On-Demand usage over the lookback period. EstimatedSavingsPercentage *string `type:"string"` // The recommended hourly commitment level for the Savings Plans type, and configuration // based on the usage during the lookback period. HourlyCommitmentToPurchase *string `type:"string"` // Details for your recommended Savings Plans. SavingsPlansDetails *SavingsPlansDetails `type:"structure"` // The upfront cost of the recommended Savings Plans, based on the selected // payment option. UpfrontCost *string `type:"string"` } // String returns the string representation func (s SavingsPlansPurchaseRecommendationDetail) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansPurchaseRecommendationDetail) GoString() string { return s.String() } // SetAccountId sets the AccountId field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetAccountId(v string) *SavingsPlansPurchaseRecommendationDetail { s.AccountId = &v return s } // SetCurrencyCode sets the CurrencyCode field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrencyCode(v string) *SavingsPlansPurchaseRecommendationDetail { s.CurrencyCode = &v return s } // SetCurrentAverageHourlyOnDemandSpend sets the CurrentAverageHourlyOnDemandSpend field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentAverageHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { s.CurrentAverageHourlyOnDemandSpend = &v return s } // SetCurrentMaximumHourlyOnDemandSpend sets the CurrentMaximumHourlyOnDemandSpend field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentMaximumHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { s.CurrentMaximumHourlyOnDemandSpend = &v return s } // SetCurrentMinimumHourlyOnDemandSpend sets the CurrentMinimumHourlyOnDemandSpend field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentMinimumHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { s.CurrentMinimumHourlyOnDemandSpend = &v return s } // SetEstimatedAverageUtilization sets the EstimatedAverageUtilization field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedAverageUtilization(v string) *SavingsPlansPurchaseRecommendationDetail { s.EstimatedAverageUtilization = &v return s } // SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedMonthlySavingsAmount(v string) *SavingsPlansPurchaseRecommendationDetail { s.EstimatedMonthlySavingsAmount = &v return s } // SetEstimatedOnDemandCost sets the EstimatedOnDemandCost field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedOnDemandCost(v string) *SavingsPlansPurchaseRecommendationDetail { s.EstimatedOnDemandCost = &v return s } // SetEstimatedOnDemandCostWithCurrentCommitment sets the EstimatedOnDemandCostWithCurrentCommitment field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedOnDemandCostWithCurrentCommitment(v string) *SavingsPlansPurchaseRecommendationDetail { s.EstimatedOnDemandCostWithCurrentCommitment = &v return s } // SetEstimatedROI sets the EstimatedROI field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedROI(v string) *SavingsPlansPurchaseRecommendationDetail { s.EstimatedROI = &v return s } // SetEstimatedSPCost sets the EstimatedSPCost field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSPCost(v string) *SavingsPlansPurchaseRecommendationDetail { s.EstimatedSPCost = &v return s } // SetEstimatedSavingsAmount sets the EstimatedSavingsAmount field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSavingsAmount(v string) *SavingsPlansPurchaseRecommendationDetail { s.EstimatedSavingsAmount = &v return s } // SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSavingsPercentage(v string) *SavingsPlansPurchaseRecommendationDetail { s.EstimatedSavingsPercentage = &v return s } // SetHourlyCommitmentToPurchase sets the HourlyCommitmentToPurchase field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetHourlyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationDetail { s.HourlyCommitmentToPurchase = &v return s } // SetSavingsPlansDetails sets the SavingsPlansDetails field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetSavingsPlansDetails(v *SavingsPlansDetails) *SavingsPlansPurchaseRecommendationDetail { s.SavingsPlansDetails = v return s } // SetUpfrontCost sets the UpfrontCost field's value. func (s *SavingsPlansPurchaseRecommendationDetail) SetUpfrontCost(v string) *SavingsPlansPurchaseRecommendationDetail { s.UpfrontCost = &v return s } // Metadata about your Savings Plans Purchase Recommendations. type SavingsPlansPurchaseRecommendationMetadata struct { _ struct{} `type:"structure"` // Additional metadata that may be applicable to the recommendation. AdditionalMetadata *string `type:"string"` // The timestamp showing when the recommendations were generated. GenerationTimestamp *string `type:"string"` // The unique identifier for the recommendation set. RecommendationId *string `type:"string"` } // String returns the string representation func (s SavingsPlansPurchaseRecommendationMetadata) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansPurchaseRecommendationMetadata) GoString() string { return s.String() } // SetAdditionalMetadata sets the AdditionalMetadata field's value. func (s *SavingsPlansPurchaseRecommendationMetadata) SetAdditionalMetadata(v string) *SavingsPlansPurchaseRecommendationMetadata { s.AdditionalMetadata = &v return s } // SetGenerationTimestamp sets the GenerationTimestamp field's value. func (s *SavingsPlansPurchaseRecommendationMetadata) SetGenerationTimestamp(v string) *SavingsPlansPurchaseRecommendationMetadata { s.GenerationTimestamp = &v return s } // SetRecommendationId sets the RecommendationId field's value. func (s *SavingsPlansPurchaseRecommendationMetadata) SetRecommendationId(v string) *SavingsPlansPurchaseRecommendationMetadata { s.RecommendationId = &v return s } // Summary metrics for your Savings Plans Purchase Recommendations. type SavingsPlansPurchaseRecommendationSummary struct { _ struct{} `type:"structure"` // The currency code AWS used to generate the recommendations and present potential // savings. CurrencyCode *string `type:"string"` // The current total on demand spend of the applicable usage types over the // lookback period. CurrentOnDemandSpend *string `type:"string"` // The recommended Savings Plans cost on a daily (24 hourly) basis. DailyCommitmentToPurchase *string `type:"string"` // The estimated monthly savings amount, based on the recommended Savings Plans // purchase. EstimatedMonthlySavingsAmount *string `type:"string"` // The estimated On-Demand costs you would expect with no additional commitment, // based on your usage of the selected time period and the Savings Plans you // own. EstimatedOnDemandCostWithCurrentCommitment *string `type:"string"` // The estimated return on investment based on the recommended Savings Plans // and estimated savings. EstimatedROI *string `type:"string"` // The estimated total savings over the lookback period, based on the purchase // of the recommended Savings Plans. EstimatedSavingsAmount *string `type:"string"` // The estimated savings relative to the total cost of On-Demand usage, over // the lookback period. This is calculated as estimatedSavingsAmount/ CurrentOnDemandSpend*100. EstimatedSavingsPercentage *string `type:"string"` // The estimated total cost of the usage after purchasing the recommended Savings // Plans. This is a sum of the cost of Savings Plans during this term, and the // remaining On-Demand usage. EstimatedTotalCost *string `type:"string"` // The recommended hourly commitment based on the recommendation parameters. HourlyCommitmentToPurchase *string `type:"string"` // The aggregate number of Savings Plans recommendations that exist for your // account. TotalRecommendationCount *string `type:"string"` } // String returns the string representation func (s SavingsPlansPurchaseRecommendationSummary) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansPurchaseRecommendationSummary) GoString() string { return s.String() } // SetCurrencyCode sets the CurrencyCode field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetCurrencyCode(v string) *SavingsPlansPurchaseRecommendationSummary { s.CurrencyCode = &v return s } // SetCurrentOnDemandSpend sets the CurrentOnDemandSpend field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetCurrentOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationSummary { s.CurrentOnDemandSpend = &v return s } // SetDailyCommitmentToPurchase sets the DailyCommitmentToPurchase field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetDailyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationSummary { s.DailyCommitmentToPurchase = &v return s } // SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedMonthlySavingsAmount(v string) *SavingsPlansPurchaseRecommendationSummary { s.EstimatedMonthlySavingsAmount = &v return s } // SetEstimatedOnDemandCostWithCurrentCommitment sets the EstimatedOnDemandCostWithCurrentCommitment field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedOnDemandCostWithCurrentCommitment(v string) *SavingsPlansPurchaseRecommendationSummary { s.EstimatedOnDemandCostWithCurrentCommitment = &v return s } // SetEstimatedROI sets the EstimatedROI field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedROI(v string) *SavingsPlansPurchaseRecommendationSummary { s.EstimatedROI = &v return s } // SetEstimatedSavingsAmount sets the EstimatedSavingsAmount field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedSavingsAmount(v string) *SavingsPlansPurchaseRecommendationSummary { s.EstimatedSavingsAmount = &v return s } // SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedSavingsPercentage(v string) *SavingsPlansPurchaseRecommendationSummary { s.EstimatedSavingsPercentage = &v return s } // SetEstimatedTotalCost sets the EstimatedTotalCost field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedTotalCost(v string) *SavingsPlansPurchaseRecommendationSummary { s.EstimatedTotalCost = &v return s } // SetHourlyCommitmentToPurchase sets the HourlyCommitmentToPurchase field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetHourlyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationSummary { s.HourlyCommitmentToPurchase = &v return s } // SetTotalRecommendationCount sets the TotalRecommendationCount field's value. func (s *SavingsPlansPurchaseRecommendationSummary) SetTotalRecommendationCount(v string) *SavingsPlansPurchaseRecommendationSummary { s.TotalRecommendationCount = &v return s } // The amount of savings you're accumulating, against the public On-Demand rate // of the usage accrued in an account. type SavingsPlansSavings struct { _ struct{} `type:"structure"` // The savings amount that you are accumulating for the usage that is covered // by a Savings Plans, when compared to the On-Demand equivalent of the same // usage. NetSavings *string `type:"string"` // How much the amount that the usage would have cost if it was accrued at the // On-Demand rate. OnDemandCostEquivalent *string `type:"string"` } // String returns the string representation func (s SavingsPlansSavings) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansSavings) GoString() string { return s.String() } // SetNetSavings sets the NetSavings field's value. func (s *SavingsPlansSavings) SetNetSavings(v string) *SavingsPlansSavings { s.NetSavings = &v return s } // SetOnDemandCostEquivalent sets the OnDemandCostEquivalent field's value. func (s *SavingsPlansSavings) SetOnDemandCostEquivalent(v string) *SavingsPlansSavings { s.OnDemandCostEquivalent = &v return s } // The measurement of how well you are using your existing Savings Plans. type SavingsPlansUtilization struct { _ struct{} `type:"structure"` // The total amount of Savings Plans commitment that's been purchased in an // account (or set of accounts). TotalCommitment *string `type:"string"` // The amount of your Savings Plans commitment that was not consumed from Savings // Plans eligible usage in a specific period. UnusedCommitment *string `type:"string"` // The amount of your Savings Plans commitment that was consumed from Savings // Plans eligible usage in a specific period. UsedCommitment *string `type:"string"` // The amount of UsedCommitment divided by the TotalCommitment for your Savings // Plans. UtilizationPercentage *string `type:"string"` } // String returns the string representation func (s SavingsPlansUtilization) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansUtilization) GoString() string { return s.String() } // SetTotalCommitment sets the TotalCommitment field's value. func (s *SavingsPlansUtilization) SetTotalCommitment(v string) *SavingsPlansUtilization { s.TotalCommitment = &v return s } // SetUnusedCommitment sets the UnusedCommitment field's value. func (s *SavingsPlansUtilization) SetUnusedCommitment(v string) *SavingsPlansUtilization { s.UnusedCommitment = &v return s } // SetUsedCommitment sets the UsedCommitment field's value. func (s *SavingsPlansUtilization) SetUsedCommitment(v string) *SavingsPlansUtilization { s.UsedCommitment = &v return s } // SetUtilizationPercentage sets the UtilizationPercentage field's value. func (s *SavingsPlansUtilization) SetUtilizationPercentage(v string) *SavingsPlansUtilization { s.UtilizationPercentage = &v return s } // The aggregated utilization metrics for your Savings Plans usage. type SavingsPlansUtilizationAggregates struct { _ struct{} `type:"structure"` // The total amortized commitment for a Savings Plans. This includes the sum // of the upfront and recurring Savings Plans fees. AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` // The amount saved by using existing Savings Plans. Savings returns both net // savings from Savings Plans, as well as the onDemandCostEquivalent of the // Savings Plans when considering the utilization rate. Savings *SavingsPlansSavings `type:"structure"` // A ratio of your effectiveness of using existing Savings Plans to apply to // workloads that are Savings Plans eligible. // // Utilization is a required field Utilization *SavingsPlansUtilization `type:"structure" required:"true"` } // String returns the string representation func (s SavingsPlansUtilizationAggregates) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansUtilizationAggregates) GoString() string { return s.String() } // SetAmortizedCommitment sets the AmortizedCommitment field's value. func (s *SavingsPlansUtilizationAggregates) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationAggregates { s.AmortizedCommitment = v return s } // SetSavings sets the Savings field's value. func (s *SavingsPlansUtilizationAggregates) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationAggregates { s.Savings = v return s } // SetUtilization sets the Utilization field's value. func (s *SavingsPlansUtilizationAggregates) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationAggregates { s.Utilization = v return s } // The amount of Savings Plans utilization, in hours. type SavingsPlansUtilizationByTime struct { _ struct{} `type:"structure"` // The total amortized commitment for a Savings Plans. This includes the sum // of the upfront and recurring Savings Plans fees. AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` // The amount saved by using existing Savings Plans. Savings returns both net // savings from Savings Plans as well as the onDemandCostEquivalent of the Savings // Plans when considering the utilization rate. Savings *SavingsPlansSavings `type:"structure"` // The time period of the request. // // TimePeriod is a required field TimePeriod *DateInterval `type:"structure" required:"true"` // A ratio of your effectiveness of using existing Savings Plans to apply to // workloads that are Savings Plans eligible. // // Utilization is a required field Utilization *SavingsPlansUtilization `type:"structure" required:"true"` } // String returns the string representation func (s SavingsPlansUtilizationByTime) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansUtilizationByTime) GoString() string { return s.String() } // SetAmortizedCommitment sets the AmortizedCommitment field's value. func (s *SavingsPlansUtilizationByTime) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationByTime { s.AmortizedCommitment = v return s } // SetSavings sets the Savings field's value. func (s *SavingsPlansUtilizationByTime) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationByTime { s.Savings = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *SavingsPlansUtilizationByTime) SetTimePeriod(v *DateInterval) *SavingsPlansUtilizationByTime { s.TimePeriod = v return s } // SetUtilization sets the Utilization field's value. func (s *SavingsPlansUtilizationByTime) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationByTime { s.Utilization = v return s } // A single daily or monthly Savings Plans utilization rate, and details for // your account. A management account in an organization have access to member // accounts. You can use GetDimensionValues to determine the possible dimension // values. type SavingsPlansUtilizationDetail struct { _ struct{} `type:"structure"` // The total amortized commitment for a Savings Plans. Includes the sum of the // upfront and recurring Savings Plans fees. AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` // The attribute that applies to a specific Dimension. Attributes map[string]*string `type:"map"` // The amount saved by using existing Savings Plans. Savings returns both net // savings from savings plans as well as the onDemandCostEquivalent of the Savings // Plans when considering the utilization rate. Savings *SavingsPlansSavings `type:"structure"` // The unique Amazon Resource Name (ARN) for a particular Savings Plan. SavingsPlanArn *string `type:"string"` // A ratio of your effectiveness of using existing Savings Plans to apply to // workloads that are Savings Plans eligible. Utilization *SavingsPlansUtilization `type:"structure"` } // String returns the string representation func (s SavingsPlansUtilizationDetail) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SavingsPlansUtilizationDetail) GoString() string { return s.String() } // SetAmortizedCommitment sets the AmortizedCommitment field's value. func (s *SavingsPlansUtilizationDetail) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationDetail { s.AmortizedCommitment = v return s } // SetAttributes sets the Attributes field's value. func (s *SavingsPlansUtilizationDetail) SetAttributes(v map[string]*string) *SavingsPlansUtilizationDetail { s.Attributes = v return s } // SetSavings sets the Savings field's value. func (s *SavingsPlansUtilizationDetail) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationDetail { s.Savings = v return s } // SetSavingsPlanArn sets the SavingsPlanArn field's value. func (s *SavingsPlansUtilizationDetail) SetSavingsPlanArn(v string) *SavingsPlansUtilizationDetail { s.SavingsPlanArn = &v return s } // SetUtilization sets the Utilization field's value. func (s *SavingsPlansUtilizationDetail) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationDetail { s.Utilization = v return s } // You've reached the limit on the number of resources you can create, or exceeded // the size of an individual resource. type ServiceQuotaExceededException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s ServiceQuotaExceededException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ServiceQuotaExceededException) GoString() string { return s.String() } func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { return &ServiceQuotaExceededException{ RespMetadata: v, } } // Code returns the exception type name. func (s *ServiceQuotaExceededException) Code() string { return "ServiceQuotaExceededException" } // Message returns the exception's message. func (s *ServiceQuotaExceededException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *ServiceQuotaExceededException) OrigErr() error { return nil } func (s *ServiceQuotaExceededException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *ServiceQuotaExceededException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *ServiceQuotaExceededException) RequestID() string { return s.RespMetadata.RequestID } // Hardware specifications for the service that you want recommendations for. type ServiceSpecification struct { _ struct{} `type:"structure"` // The Amazon EC2 hardware specifications that you want AWS to provide recommendations // for. EC2Specification *EC2Specification `type:"structure"` } // String returns the string representation func (s ServiceSpecification) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ServiceSpecification) GoString() string { return s.String() } // SetEC2Specification sets the EC2Specification field's value. func (s *ServiceSpecification) SetEC2Specification(v *EC2Specification) *ServiceSpecification { s.EC2Specification = v return s } // The details of how to sort the data. type SortDefinition struct { _ struct{} `type:"structure"` // The key by which to sort the data. // // Key is a required field Key *string `type:"string" required:"true"` // The order in which to sort the data. SortOrder *string `type:"string" enum:"SortOrder"` } // String returns the string representation func (s SortDefinition) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SortDefinition) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *SortDefinition) Validate() error { invalidParams := request.ErrInvalidParams{Context: "SortDefinition"} if s.Key == nil { invalidParams.Add(request.NewErrParamRequired("Key")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetKey sets the Key field's value. func (s *SortDefinition) SetKey(v string) *SortDefinition { s.Key = &v return s } // SetSortOrder sets the SortOrder field's value. func (s *SortDefinition) SetSortOrder(v string) *SortDefinition { s.SortOrder = &v return s } // The recipient of AnomalySubscription notifications. type Subscriber struct { _ struct{} `type:"structure"` // The email address or SNS Amazon Resource Name (ARN), depending on the Type. Address *string `min:"6" type:"string"` // Indicates if the subscriber accepts the notifications. Status *string `type:"string" enum:"SubscriberStatus"` // The notification delivery channel. Type *string `type:"string" enum:"SubscriberType"` } // String returns the string representation func (s Subscriber) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Subscriber) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *Subscriber) Validate() error { invalidParams := request.ErrInvalidParams{Context: "Subscriber"} if s.Address != nil && len(*s.Address) < 6 { invalidParams.Add(request.NewErrParamMinLen("Address", 6)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetAddress sets the Address field's value. func (s *Subscriber) SetAddress(v string) *Subscriber { s.Address = &v return s } // SetStatus sets the Status field's value. func (s *Subscriber) SetStatus(v string) *Subscriber { s.Status = &v return s } // SetType sets the Type field's value. func (s *Subscriber) SetType(v string) *Subscriber { s.Type = &v return s } // The values that are available for a tag. // // If Values and Key are not specified, the ABSENT MatchOption is applied to // all tags. That is, filtering on resources with no tags. // // If Values is provided and Key is not specified, the ABSENT MatchOption is // applied to the tag Key only. That is, filtering on resources without the // given tag key. type TagValues struct { _ struct{} `type:"structure"` // The key for the tag. Key *string `type:"string"` // The match options that you can use to filter your results. MatchOptions is // only applicable for actions related to Cost Category. The default values // for MatchOptions are EQUALS and CASE_SENSITIVE. MatchOptions []*string `type:"list"` // The specific value of the tag. Values []*string `type:"list"` } // String returns the string representation func (s TagValues) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s TagValues) GoString() string { return s.String() } // SetKey sets the Key field's value. func (s *TagValues) SetKey(v string) *TagValues { s.Key = &v return s } // SetMatchOptions sets the MatchOptions field's value. func (s *TagValues) SetMatchOptions(v []*string) *TagValues { s.MatchOptions = v return s } // SetValues sets the Values field's value. func (s *TagValues) SetValues(v []*string) *TagValues { s.Values = v return s } // Details on recommended instance. type TargetInstance struct { _ struct{} `type:"structure"` // The currency code that AWS used to calculate the costs for this instance. CurrencyCode *string `type:"string"` // Indicates whether this recommendation is the defaulted AWS recommendation. DefaultTargetInstance *bool `type:"boolean"` // Expected cost to operate this instance type on a monthly basis. EstimatedMonthlyCost *string `type:"string"` // Estimated savings resulting from modification, on a monthly basis. EstimatedMonthlySavings *string `type:"string"` // Expected utilization metrics for target instance type. ExpectedResourceUtilization *ResourceUtilization `type:"structure"` // Explains the actions you might need to take in order to successfully migrate // your workloads from the current instance type to the recommended instance // type. PlatformDifferences []*string `type:"list"` // Details on the target instance type. ResourceDetails *ResourceDetails `type:"structure"` } // String returns the string representation func (s TargetInstance) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s TargetInstance) GoString() string { return s.String() } // SetCurrencyCode sets the CurrencyCode field's value. func (s *TargetInstance) SetCurrencyCode(v string) *TargetInstance { s.CurrencyCode = &v return s } // SetDefaultTargetInstance sets the DefaultTargetInstance field's value. func (s *TargetInstance) SetDefaultTargetInstance(v bool) *TargetInstance { s.DefaultTargetInstance = &v return s } // SetEstimatedMonthlyCost sets the EstimatedMonthlyCost field's value. func (s *TargetInstance) SetEstimatedMonthlyCost(v string) *TargetInstance { s.EstimatedMonthlyCost = &v return s } // SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. func (s *TargetInstance) SetEstimatedMonthlySavings(v string) *TargetInstance { s.EstimatedMonthlySavings = &v return s } // SetExpectedResourceUtilization sets the ExpectedResourceUtilization field's value. func (s *TargetInstance) SetExpectedResourceUtilization(v *ResourceUtilization) *TargetInstance { s.ExpectedResourceUtilization = v return s } // SetPlatformDifferences sets the PlatformDifferences field's value. func (s *TargetInstance) SetPlatformDifferences(v []*string) *TargetInstance { s.PlatformDifferences = v return s } // SetResourceDetails sets the ResourceDetails field's value. func (s *TargetInstance) SetResourceDetails(v *ResourceDetails) *TargetInstance { s.ResourceDetails = v return s } // Details on termination recommendation. type TerminateRecommendationDetail struct { _ struct{} `type:"structure"` // The currency code that AWS used to calculate the costs for this instance. CurrencyCode *string `type:"string"` // Estimated savings resulting from modification, on a monthly basis. EstimatedMonthlySavings *string `type:"string"` } // String returns the string representation func (s TerminateRecommendationDetail) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s TerminateRecommendationDetail) GoString() string { return s.String() } // SetCurrencyCode sets the CurrencyCode field's value. func (s *TerminateRecommendationDetail) SetCurrencyCode(v string) *TerminateRecommendationDetail { s.CurrencyCode = &v return s } // SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. func (s *TerminateRecommendationDetail) SetEstimatedMonthlySavings(v string) *TerminateRecommendationDetail { s.EstimatedMonthlySavings = &v return s } // Filters cost anomalies based on the total impact. type TotalImpactFilter struct { _ struct{} `type:"structure"` // The upper bound dollar value used in the filter. EndValue *float64 `type:"double"` // The comparing value used in the filter. // // NumericOperator is a required field NumericOperator *string `type:"string" required:"true" enum:"NumericOperator"` // The lower bound dollar value used in the filter. // // StartValue is a required field StartValue *float64 `type:"double" required:"true"` } // String returns the string representation func (s TotalImpactFilter) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s TotalImpactFilter) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *TotalImpactFilter) Validate() error { invalidParams := request.ErrInvalidParams{Context: "TotalImpactFilter"} if s.NumericOperator == nil { invalidParams.Add(request.NewErrParamRequired("NumericOperator")) } if s.StartValue == nil { invalidParams.Add(request.NewErrParamRequired("StartValue")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetEndValue sets the EndValue field's value. func (s *TotalImpactFilter) SetEndValue(v float64) *TotalImpactFilter { s.EndValue = &v return s } // SetNumericOperator sets the NumericOperator field's value. func (s *TotalImpactFilter) SetNumericOperator(v string) *TotalImpactFilter { s.NumericOperator = &v return s } // SetStartValue sets the StartValue field's value. func (s *TotalImpactFilter) SetStartValue(v float64) *TotalImpactFilter { s.StartValue = &v return s } // The cost anomaly monitor does not exist for the account. type UnknownMonitorException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s UnknownMonitorException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UnknownMonitorException) GoString() string { return s.String() } func newErrorUnknownMonitorException(v protocol.ResponseMetadata) error { return &UnknownMonitorException{ RespMetadata: v, } } // Code returns the exception type name. func (s *UnknownMonitorException) Code() string { return "UnknownMonitorException" } // Message returns the exception's message. func (s *UnknownMonitorException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *UnknownMonitorException) OrigErr() error { return nil } func (s *UnknownMonitorException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *UnknownMonitorException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *UnknownMonitorException) RequestID() string { return s.RespMetadata.RequestID } // The cost anomaly subscription does not exist for the account. type UnknownSubscriptionException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s UnknownSubscriptionException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UnknownSubscriptionException) GoString() string { return s.String() } func newErrorUnknownSubscriptionException(v protocol.ResponseMetadata) error { return &UnknownSubscriptionException{ RespMetadata: v, } } // Code returns the exception type name. func (s *UnknownSubscriptionException) Code() string { return "UnknownSubscriptionException" } // Message returns the exception's message. func (s *UnknownSubscriptionException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *UnknownSubscriptionException) OrigErr() error { return nil } func (s *UnknownSubscriptionException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *UnknownSubscriptionException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *UnknownSubscriptionException) RequestID() string { return s.RespMetadata.RequestID } // Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup // filter selections that contain matching units, for example: hours. type UnresolvableUsageUnitException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` } // String returns the string representation func (s UnresolvableUsageUnitException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UnresolvableUsageUnitException) GoString() string { return s.String() } func newErrorUnresolvableUsageUnitException(v protocol.ResponseMetadata) error { return &UnresolvableUsageUnitException{ RespMetadata: v, } } // Code returns the exception type name. func (s *UnresolvableUsageUnitException) Code() string { return "UnresolvableUsageUnitException" } // Message returns the exception's message. func (s *UnresolvableUsageUnitException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *UnresolvableUsageUnitException) OrigErr() error { return nil } func (s *UnresolvableUsageUnitException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *UnresolvableUsageUnitException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *UnresolvableUsageUnitException) RequestID() string { return s.RespMetadata.RequestID } type UpdateAnomalyMonitorInput struct { _ struct{} `type:"structure"` // Cost anomaly monitor Amazon Resource Names (ARNs). // // MonitorArn is a required field MonitorArn *string `type:"string" required:"true"` // The new name for the cost anomaly monitor. MonitorName *string `type:"string"` } // String returns the string representation func (s UpdateAnomalyMonitorInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateAnomalyMonitorInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateAnomalyMonitorInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "UpdateAnomalyMonitorInput"} if s.MonitorArn == nil { invalidParams.Add(request.NewErrParamRequired("MonitorArn")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetMonitorArn sets the MonitorArn field's value. func (s *UpdateAnomalyMonitorInput) SetMonitorArn(v string) *UpdateAnomalyMonitorInput { s.MonitorArn = &v return s } // SetMonitorName sets the MonitorName field's value. func (s *UpdateAnomalyMonitorInput) SetMonitorName(v string) *UpdateAnomalyMonitorInput { s.MonitorName = &v return s } type UpdateAnomalyMonitorOutput struct { _ struct{} `type:"structure"` // A cost anomaly monitor ARN. // // MonitorArn is a required field MonitorArn *string `type:"string" required:"true"` } // String returns the string representation func (s UpdateAnomalyMonitorOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateAnomalyMonitorOutput) GoString() string { return s.String() } // SetMonitorArn sets the MonitorArn field's value. func (s *UpdateAnomalyMonitorOutput) SetMonitorArn(v string) *UpdateAnomalyMonitorOutput { s.MonitorArn = &v return s } type UpdateAnomalySubscriptionInput struct { _ struct{} `type:"structure"` // The update to the frequency value at which subscribers will receive notifications. Frequency *string `type:"string" enum:"AnomalySubscriptionFrequency"` // A list of cost anomaly monitor ARNs. MonitorArnList []*string `type:"list"` // The update to the subscriber list. Subscribers []*Subscriber `type:"list"` // A cost anomaly subscription Amazon Resource Name (ARN). // // SubscriptionArn is a required field SubscriptionArn *string `type:"string" required:"true"` // The subscription's new name. SubscriptionName *string `type:"string"` // The update to the threshold value for receiving notifications. Threshold *float64 `type:"double"` } // String returns the string representation func (s UpdateAnomalySubscriptionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateAnomalySubscriptionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateAnomalySubscriptionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "UpdateAnomalySubscriptionInput"} if s.SubscriptionArn == nil { invalidParams.Add(request.NewErrParamRequired("SubscriptionArn")) } if s.Subscribers != nil { for i, v := range s.Subscribers { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Subscribers", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFrequency sets the Frequency field's value. func (s *UpdateAnomalySubscriptionInput) SetFrequency(v string) *UpdateAnomalySubscriptionInput { s.Frequency = &v return s } // SetMonitorArnList sets the MonitorArnList field's value. func (s *UpdateAnomalySubscriptionInput) SetMonitorArnList(v []*string) *UpdateAnomalySubscriptionInput { s.MonitorArnList = v return s } // SetSubscribers sets the Subscribers field's value. func (s *UpdateAnomalySubscriptionInput) SetSubscribers(v []*Subscriber) *UpdateAnomalySubscriptionInput { s.Subscribers = v return s } // SetSubscriptionArn sets the SubscriptionArn field's value. func (s *UpdateAnomalySubscriptionInput) SetSubscriptionArn(v string) *UpdateAnomalySubscriptionInput { s.SubscriptionArn = &v return s } // SetSubscriptionName sets the SubscriptionName field's value. func (s *UpdateAnomalySubscriptionInput) SetSubscriptionName(v string) *UpdateAnomalySubscriptionInput { s.SubscriptionName = &v return s } // SetThreshold sets the Threshold field's value. func (s *UpdateAnomalySubscriptionInput) SetThreshold(v float64) *UpdateAnomalySubscriptionInput { s.Threshold = &v return s } type UpdateAnomalySubscriptionOutput struct { _ struct{} `type:"structure"` // A cost anomaly subscription ARN. // // SubscriptionArn is a required field SubscriptionArn *string `type:"string" required:"true"` } // String returns the string representation func (s UpdateAnomalySubscriptionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateAnomalySubscriptionOutput) GoString() string { return s.String() } // SetSubscriptionArn sets the SubscriptionArn field's value. func (s *UpdateAnomalySubscriptionOutput) SetSubscriptionArn(v string) *UpdateAnomalySubscriptionOutput { s.SubscriptionArn = &v return s } type UpdateCostCategoryDefinitionInput struct { _ struct{} `type:"structure"` // The unique identifier for your Cost Category. // // CostCategoryArn is a required field CostCategoryArn *string `min:"20" type:"string" required:"true"` // The default value for the cost category. DefaultValue *string `min:"1" type:"string"` // The rule schema version in this particular Cost Category. // // RuleVersion is a required field RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` // The Expression object used to categorize costs. For more information, see // CostCategoryRule (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html). // // Rules is a required field Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` } // String returns the string representation func (s UpdateCostCategoryDefinitionInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateCostCategoryDefinitionInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *UpdateCostCategoryDefinitionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "UpdateCostCategoryDefinitionInput"} if s.CostCategoryArn == nil { invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) } if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) } if s.DefaultValue != nil && len(*s.DefaultValue) < 1 { invalidParams.Add(request.NewErrParamMinLen("DefaultValue", 1)) } if s.RuleVersion == nil { invalidParams.Add(request.NewErrParamRequired("RuleVersion")) } if s.Rules == nil { invalidParams.Add(request.NewErrParamRequired("Rules")) } if s.Rules != nil && len(s.Rules) < 1 { invalidParams.Add(request.NewErrParamMinLen("Rules", 1)) } if s.Rules != nil { for i, v := range s.Rules { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetCostCategoryArn sets the CostCategoryArn field's value. func (s *UpdateCostCategoryDefinitionInput) SetCostCategoryArn(v string) *UpdateCostCategoryDefinitionInput { s.CostCategoryArn = &v return s } // SetDefaultValue sets the DefaultValue field's value. func (s *UpdateCostCategoryDefinitionInput) SetDefaultValue(v string) *UpdateCostCategoryDefinitionInput { s.DefaultValue = &v return s } // SetRuleVersion sets the RuleVersion field's value. func (s *UpdateCostCategoryDefinitionInput) SetRuleVersion(v string) *UpdateCostCategoryDefinitionInput { s.RuleVersion = &v return s } // SetRules sets the Rules field's value. func (s *UpdateCostCategoryDefinitionInput) SetRules(v []*CostCategoryRule) *UpdateCostCategoryDefinitionInput { s.Rules = v return s } type UpdateCostCategoryDefinitionOutput struct { _ struct{} `type:"structure"` // The unique identifier for your Cost Category. CostCategoryArn *string `min:"20" type:"string"` // The Cost Category's effective start date. EffectiveStart *string `min:"20" type:"string"` } // String returns the string representation func (s UpdateCostCategoryDefinitionOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UpdateCostCategoryDefinitionOutput) GoString() string { return s.String() } // SetCostCategoryArn sets the CostCategoryArn field's value. func (s *UpdateCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *UpdateCostCategoryDefinitionOutput { s.CostCategoryArn = &v return s } // SetEffectiveStart sets the EffectiveStart field's value. func (s *UpdateCostCategoryDefinitionOutput) SetEffectiveStart(v string) *UpdateCostCategoryDefinitionOutput { s.EffectiveStart = &v return s } // The amount of utilization, in hours. type UtilizationByTime struct { _ struct{} `type:"structure"` // The groups that this utilization result uses. Groups []*ReservationUtilizationGroup `type:"list"` // The period of time that this utilization was used for. TimePeriod *DateInterval `type:"structure"` // The total number of reservation hours that were used. Total *ReservationAggregates `type:"structure"` } // String returns the string representation func (s UtilizationByTime) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s UtilizationByTime) GoString() string { return s.String() } // SetGroups sets the Groups field's value. func (s *UtilizationByTime) SetGroups(v []*ReservationUtilizationGroup) *UtilizationByTime { s.Groups = v return s } // SetTimePeriod sets the TimePeriod field's value. func (s *UtilizationByTime) SetTimePeriod(v *DateInterval) *UtilizationByTime { s.TimePeriod = v return s } // SetTotal sets the Total field's value. func (s *UtilizationByTime) SetTotal(v *ReservationAggregates) *UtilizationByTime { s.Total = v return s } const ( // AccountScopePayer is a AccountScope enum value AccountScopePayer = "PAYER" // AccountScopeLinked is a AccountScope enum value AccountScopeLinked = "LINKED" ) // AccountScope_Values returns all elements of the AccountScope enum func AccountScope_Values() []string { return []string{ AccountScopePayer, AccountScopeLinked, } } const ( // AnomalyFeedbackTypeYes is a AnomalyFeedbackType enum value AnomalyFeedbackTypeYes = "YES" // AnomalyFeedbackTypeNo is a AnomalyFeedbackType enum value AnomalyFeedbackTypeNo = "NO" // AnomalyFeedbackTypePlannedActivity is a AnomalyFeedbackType enum value AnomalyFeedbackTypePlannedActivity = "PLANNED_ACTIVITY" ) // AnomalyFeedbackType_Values returns all elements of the AnomalyFeedbackType enum func AnomalyFeedbackType_Values() []string { return []string{ AnomalyFeedbackTypeYes, AnomalyFeedbackTypeNo, AnomalyFeedbackTypePlannedActivity, } } const ( // AnomalySubscriptionFrequencyDaily is a AnomalySubscriptionFrequency enum value AnomalySubscriptionFrequencyDaily = "DAILY" // AnomalySubscriptionFrequencyImmediate is a AnomalySubscriptionFrequency enum value AnomalySubscriptionFrequencyImmediate = "IMMEDIATE" // AnomalySubscriptionFrequencyWeekly is a AnomalySubscriptionFrequency enum value AnomalySubscriptionFrequencyWeekly = "WEEKLY" ) // AnomalySubscriptionFrequency_Values returns all elements of the AnomalySubscriptionFrequency enum func AnomalySubscriptionFrequency_Values() []string { return []string{ AnomalySubscriptionFrequencyDaily, AnomalySubscriptionFrequencyImmediate, AnomalySubscriptionFrequencyWeekly, } } const ( // ContextCostAndUsage is a Context enum value ContextCostAndUsage = "COST_AND_USAGE" // ContextReservations is a Context enum value ContextReservations = "RESERVATIONS" // ContextSavingsPlans is a Context enum value ContextSavingsPlans = "SAVINGS_PLANS" ) // Context_Values returns all elements of the Context enum func Context_Values() []string { return []string{ ContextCostAndUsage, ContextReservations, ContextSavingsPlans, } } const ( // CostCategoryInheritedValueDimensionNameLinkedAccountName is a CostCategoryInheritedValueDimensionName enum value CostCategoryInheritedValueDimensionNameLinkedAccountName = "LINKED_ACCOUNT_NAME" // CostCategoryInheritedValueDimensionNameTag is a CostCategoryInheritedValueDimensionName enum value CostCategoryInheritedValueDimensionNameTag = "TAG" ) // CostCategoryInheritedValueDimensionName_Values returns all elements of the CostCategoryInheritedValueDimensionName enum func CostCategoryInheritedValueDimensionName_Values() []string { return []string{ CostCategoryInheritedValueDimensionNameLinkedAccountName, CostCategoryInheritedValueDimensionNameTag, } } const ( // CostCategoryRuleTypeRegular is a CostCategoryRuleType enum value CostCategoryRuleTypeRegular = "REGULAR" // CostCategoryRuleTypeInheritedValue is a CostCategoryRuleType enum value CostCategoryRuleTypeInheritedValue = "INHERITED_VALUE" ) // CostCategoryRuleType_Values returns all elements of the CostCategoryRuleType enum func CostCategoryRuleType_Values() []string { return []string{ CostCategoryRuleTypeRegular, CostCategoryRuleTypeInheritedValue, } } // The rule schema version in this particular Cost Category. const ( // CostCategoryRuleVersionCostCategoryExpressionV1 is a CostCategoryRuleVersion enum value CostCategoryRuleVersionCostCategoryExpressionV1 = "CostCategoryExpression.v1" ) // CostCategoryRuleVersion_Values returns all elements of the CostCategoryRuleVersion enum func CostCategoryRuleVersion_Values() []string { return []string{ CostCategoryRuleVersionCostCategoryExpressionV1, } } const ( // CostCategoryStatusProcessing is a CostCategoryStatus enum value CostCategoryStatusProcessing = "PROCESSING" // CostCategoryStatusApplied is a CostCategoryStatus enum value CostCategoryStatusApplied = "APPLIED" ) // CostCategoryStatus_Values returns all elements of the CostCategoryStatus enum func CostCategoryStatus_Values() []string { return []string{ CostCategoryStatusProcessing, CostCategoryStatusApplied, } } const ( // CostCategoryStatusComponentCostExplorer is a CostCategoryStatusComponent enum value CostCategoryStatusComponentCostExplorer = "COST_EXPLORER" ) // CostCategoryStatusComponent_Values returns all elements of the CostCategoryStatusComponent enum func CostCategoryStatusComponent_Values() []string { return []string{ CostCategoryStatusComponentCostExplorer, } } const ( // DimensionAz is a Dimension enum value DimensionAz = "AZ" // DimensionInstanceType is a Dimension enum value DimensionInstanceType = "INSTANCE_TYPE" // DimensionLinkedAccount is a Dimension enum value DimensionLinkedAccount = "LINKED_ACCOUNT" // DimensionLinkedAccountName is a Dimension enum value DimensionLinkedAccountName = "LINKED_ACCOUNT_NAME" // DimensionOperation is a Dimension enum value DimensionOperation = "OPERATION" // DimensionPurchaseType is a Dimension enum value DimensionPurchaseType = "PURCHASE_TYPE" // DimensionRegion is a Dimension enum value DimensionRegion = "REGION" // DimensionService is a Dimension enum value DimensionService = "SERVICE" // DimensionServiceCode is a Dimension enum value DimensionServiceCode = "SERVICE_CODE" // DimensionUsageType is a Dimension enum value DimensionUsageType = "USAGE_TYPE" // DimensionUsageTypeGroup is a Dimension enum value DimensionUsageTypeGroup = "USAGE_TYPE_GROUP" // DimensionRecordType is a Dimension enum value DimensionRecordType = "RECORD_TYPE" // DimensionOperatingSystem is a Dimension enum value DimensionOperatingSystem = "OPERATING_SYSTEM" // DimensionTenancy is a Dimension enum value DimensionTenancy = "TENANCY" // DimensionScope is a Dimension enum value DimensionScope = "SCOPE" // DimensionPlatform is a Dimension enum value DimensionPlatform = "PLATFORM" // DimensionSubscriptionId is a Dimension enum value DimensionSubscriptionId = "SUBSCRIPTION_ID" // DimensionLegalEntityName is a Dimension enum value DimensionLegalEntityName = "LEGAL_ENTITY_NAME" // DimensionDeploymentOption is a Dimension enum value DimensionDeploymentOption = "DEPLOYMENT_OPTION" // DimensionDatabaseEngine is a Dimension enum value DimensionDatabaseEngine = "DATABASE_ENGINE" // DimensionCacheEngine is a Dimension enum value DimensionCacheEngine = "CACHE_ENGINE" // DimensionInstanceTypeFamily is a Dimension enum value DimensionInstanceTypeFamily = "INSTANCE_TYPE_FAMILY" // DimensionBillingEntity is a Dimension enum value DimensionBillingEntity = "BILLING_ENTITY" // DimensionReservationId is a Dimension enum value DimensionReservationId = "RESERVATION_ID" // DimensionResourceId is a Dimension enum value DimensionResourceId = "RESOURCE_ID" // DimensionRightsizingType is a Dimension enum value DimensionRightsizingType = "RIGHTSIZING_TYPE" // DimensionSavingsPlansType is a Dimension enum value DimensionSavingsPlansType = "SAVINGS_PLANS_TYPE" // DimensionSavingsPlanArn is a Dimension enum value DimensionSavingsPlanArn = "SAVINGS_PLAN_ARN" // DimensionPaymentOption is a Dimension enum value DimensionPaymentOption = "PAYMENT_OPTION" // DimensionAgreementEndDateTimeAfter is a Dimension enum value DimensionAgreementEndDateTimeAfter = "AGREEMENT_END_DATE_TIME_AFTER" // DimensionAgreementEndDateTimeBefore is a Dimension enum value DimensionAgreementEndDateTimeBefore = "AGREEMENT_END_DATE_TIME_BEFORE" ) // Dimension_Values returns all elements of the Dimension enum func Dimension_Values() []string { return []string{ DimensionAz, DimensionInstanceType, DimensionLinkedAccount, DimensionLinkedAccountName, DimensionOperation, DimensionPurchaseType, DimensionRegion, DimensionService, DimensionServiceCode, DimensionUsageType, DimensionUsageTypeGroup, DimensionRecordType, DimensionOperatingSystem, DimensionTenancy, DimensionScope, DimensionPlatform, DimensionSubscriptionId, DimensionLegalEntityName, DimensionDeploymentOption, DimensionDatabaseEngine, DimensionCacheEngine, DimensionInstanceTypeFamily, DimensionBillingEntity, DimensionReservationId, DimensionResourceId, DimensionRightsizingType, DimensionSavingsPlansType, DimensionSavingsPlanArn, DimensionPaymentOption, DimensionAgreementEndDateTimeAfter, DimensionAgreementEndDateTimeBefore, } } const ( // FindingReasonCodeCpuOverProvisioned is a FindingReasonCode enum value FindingReasonCodeCpuOverProvisioned = "CPU_OVER_PROVISIONED" // FindingReasonCodeCpuUnderProvisioned is a FindingReasonCode enum value FindingReasonCodeCpuUnderProvisioned = "CPU_UNDER_PROVISIONED" // FindingReasonCodeMemoryOverProvisioned is a FindingReasonCode enum value FindingReasonCodeMemoryOverProvisioned = "MEMORY_OVER_PROVISIONED" // FindingReasonCodeMemoryUnderProvisioned is a FindingReasonCode enum value FindingReasonCodeMemoryUnderProvisioned = "MEMORY_UNDER_PROVISIONED" // FindingReasonCodeEbsThroughputOverProvisioned is a FindingReasonCode enum value FindingReasonCodeEbsThroughputOverProvisioned = "EBS_THROUGHPUT_OVER_PROVISIONED" // FindingReasonCodeEbsThroughputUnderProvisioned is a FindingReasonCode enum value FindingReasonCodeEbsThroughputUnderProvisioned = "EBS_THROUGHPUT_UNDER_PROVISIONED" // FindingReasonCodeEbsIopsOverProvisioned is a FindingReasonCode enum value FindingReasonCodeEbsIopsOverProvisioned = "EBS_IOPS_OVER_PROVISIONED" // FindingReasonCodeEbsIopsUnderProvisioned is a FindingReasonCode enum value FindingReasonCodeEbsIopsUnderProvisioned = "EBS_IOPS_UNDER_PROVISIONED" // FindingReasonCodeNetworkBandwidthOverProvisioned is a FindingReasonCode enum value FindingReasonCodeNetworkBandwidthOverProvisioned = "NETWORK_BANDWIDTH_OVER_PROVISIONED" // FindingReasonCodeNetworkBandwidthUnderProvisioned is a FindingReasonCode enum value FindingReasonCodeNetworkBandwidthUnderProvisioned = "NETWORK_BANDWIDTH_UNDER_PROVISIONED" // FindingReasonCodeNetworkPpsOverProvisioned is a FindingReasonCode enum value FindingReasonCodeNetworkPpsOverProvisioned = "NETWORK_PPS_OVER_PROVISIONED" // FindingReasonCodeNetworkPpsUnderProvisioned is a FindingReasonCode enum value FindingReasonCodeNetworkPpsUnderProvisioned = "NETWORK_PPS_UNDER_PROVISIONED" // FindingReasonCodeDiskIopsOverProvisioned is a FindingReasonCode enum value FindingReasonCodeDiskIopsOverProvisioned = "DISK_IOPS_OVER_PROVISIONED" // FindingReasonCodeDiskIopsUnderProvisioned is a FindingReasonCode enum value FindingReasonCodeDiskIopsUnderProvisioned = "DISK_IOPS_UNDER_PROVISIONED" // FindingReasonCodeDiskThroughputOverProvisioned is a FindingReasonCode enum value FindingReasonCodeDiskThroughputOverProvisioned = "DISK_THROUGHPUT_OVER_PROVISIONED" // FindingReasonCodeDiskThroughputUnderProvisioned is a FindingReasonCode enum value FindingReasonCodeDiskThroughputUnderProvisioned = "DISK_THROUGHPUT_UNDER_PROVISIONED" ) // FindingReasonCode_Values returns all elements of the FindingReasonCode enum func FindingReasonCode_Values() []string { return []string{ FindingReasonCodeCpuOverProvisioned, FindingReasonCodeCpuUnderProvisioned, FindingReasonCodeMemoryOverProvisioned, FindingReasonCodeMemoryUnderProvisioned, FindingReasonCodeEbsThroughputOverProvisioned, FindingReasonCodeEbsThroughputUnderProvisioned, FindingReasonCodeEbsIopsOverProvisioned, FindingReasonCodeEbsIopsUnderProvisioned, FindingReasonCodeNetworkBandwidthOverProvisioned, FindingReasonCodeNetworkBandwidthUnderProvisioned, FindingReasonCodeNetworkPpsOverProvisioned, FindingReasonCodeNetworkPpsUnderProvisioned, FindingReasonCodeDiskIopsOverProvisioned, FindingReasonCodeDiskIopsUnderProvisioned, FindingReasonCodeDiskThroughputOverProvisioned, FindingReasonCodeDiskThroughputUnderProvisioned, } } const ( // GranularityDaily is a Granularity enum value GranularityDaily = "DAILY" // GranularityMonthly is a Granularity enum value GranularityMonthly = "MONTHLY" // GranularityHourly is a Granularity enum value GranularityHourly = "HOURLY" ) // Granularity_Values returns all elements of the Granularity enum func Granularity_Values() []string { return []string{ GranularityDaily, GranularityMonthly, GranularityHourly, } } const ( // GroupDefinitionTypeDimension is a GroupDefinitionType enum value GroupDefinitionTypeDimension = "DIMENSION" // GroupDefinitionTypeTag is a GroupDefinitionType enum value GroupDefinitionTypeTag = "TAG" // GroupDefinitionTypeCostCategory is a GroupDefinitionType enum value GroupDefinitionTypeCostCategory = "COST_CATEGORY" ) // GroupDefinitionType_Values returns all elements of the GroupDefinitionType enum func GroupDefinitionType_Values() []string { return []string{ GroupDefinitionTypeDimension, GroupDefinitionTypeTag, GroupDefinitionTypeCostCategory, } } const ( // LookbackPeriodInDaysSevenDays is a LookbackPeriodInDays enum value LookbackPeriodInDaysSevenDays = "SEVEN_DAYS" // LookbackPeriodInDaysThirtyDays is a LookbackPeriodInDays enum value LookbackPeriodInDaysThirtyDays = "THIRTY_DAYS" // LookbackPeriodInDaysSixtyDays is a LookbackPeriodInDays enum value LookbackPeriodInDaysSixtyDays = "SIXTY_DAYS" ) // LookbackPeriodInDays_Values returns all elements of the LookbackPeriodInDays enum func LookbackPeriodInDays_Values() []string { return []string{ LookbackPeriodInDaysSevenDays, LookbackPeriodInDaysThirtyDays, LookbackPeriodInDaysSixtyDays, } } const ( // MatchOptionEquals is a MatchOption enum value MatchOptionEquals = "EQUALS" // MatchOptionAbsent is a MatchOption enum value MatchOptionAbsent = "ABSENT" // MatchOptionStartsWith is a MatchOption enum value MatchOptionStartsWith = "STARTS_WITH" // MatchOptionEndsWith is a MatchOption enum value MatchOptionEndsWith = "ENDS_WITH" // MatchOptionContains is a MatchOption enum value MatchOptionContains = "CONTAINS" // MatchOptionCaseSensitive is a MatchOption enum value MatchOptionCaseSensitive = "CASE_SENSITIVE" // MatchOptionCaseInsensitive is a MatchOption enum value MatchOptionCaseInsensitive = "CASE_INSENSITIVE" ) // MatchOption_Values returns all elements of the MatchOption enum func MatchOption_Values() []string { return []string{ MatchOptionEquals, MatchOptionAbsent, MatchOptionStartsWith, MatchOptionEndsWith, MatchOptionContains, MatchOptionCaseSensitive, MatchOptionCaseInsensitive, } } const ( // MetricBlendedCost is a Metric enum value MetricBlendedCost = "BLENDED_COST" // MetricUnblendedCost is a Metric enum value MetricUnblendedCost = "UNBLENDED_COST" // MetricAmortizedCost is a Metric enum value MetricAmortizedCost = "AMORTIZED_COST" // MetricNetUnblendedCost is a Metric enum value MetricNetUnblendedCost = "NET_UNBLENDED_COST" // MetricNetAmortizedCost is a Metric enum value MetricNetAmortizedCost = "NET_AMORTIZED_COST" // MetricUsageQuantity is a Metric enum value MetricUsageQuantity = "USAGE_QUANTITY" // MetricNormalizedUsageAmount is a Metric enum value MetricNormalizedUsageAmount = "NORMALIZED_USAGE_AMOUNT" ) // Metric_Values returns all elements of the Metric enum func Metric_Values() []string { return []string{ MetricBlendedCost, MetricUnblendedCost, MetricAmortizedCost, MetricNetUnblendedCost, MetricNetAmortizedCost, MetricUsageQuantity, MetricNormalizedUsageAmount, } } const ( // MonitorDimensionService is a MonitorDimension enum value MonitorDimensionService = "SERVICE" ) // MonitorDimension_Values returns all elements of the MonitorDimension enum func MonitorDimension_Values() []string { return []string{ MonitorDimensionService, } } const ( // MonitorTypeDimensional is a MonitorType enum value MonitorTypeDimensional = "DIMENSIONAL" // MonitorTypeCustom is a MonitorType enum value MonitorTypeCustom = "CUSTOM" ) // MonitorType_Values returns all elements of the MonitorType enum func MonitorType_Values() []string { return []string{ MonitorTypeDimensional, MonitorTypeCustom, } } const ( // NumericOperatorEqual is a NumericOperator enum value NumericOperatorEqual = "EQUAL" // NumericOperatorGreaterThanOrEqual is a NumericOperator enum value NumericOperatorGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL" // NumericOperatorLessThanOrEqual is a NumericOperator enum value NumericOperatorLessThanOrEqual = "LESS_THAN_OR_EQUAL" // NumericOperatorGreaterThan is a NumericOperator enum value NumericOperatorGreaterThan = "GREATER_THAN" // NumericOperatorLessThan is a NumericOperator enum value NumericOperatorLessThan = "LESS_THAN" // NumericOperatorBetween is a NumericOperator enum value NumericOperatorBetween = "BETWEEN" ) // NumericOperator_Values returns all elements of the NumericOperator enum func NumericOperator_Values() []string { return []string{ NumericOperatorEqual, NumericOperatorGreaterThanOrEqual, NumericOperatorLessThanOrEqual, NumericOperatorGreaterThan, NumericOperatorLessThan, NumericOperatorBetween, } } const ( // OfferingClassStandard is a OfferingClass enum value OfferingClassStandard = "STANDARD" // OfferingClassConvertible is a OfferingClass enum value OfferingClassConvertible = "CONVERTIBLE" ) // OfferingClass_Values returns all elements of the OfferingClass enum func OfferingClass_Values() []string { return []string{ OfferingClassStandard, OfferingClassConvertible, } } const ( // PaymentOptionNoUpfront is a PaymentOption enum value PaymentOptionNoUpfront = "NO_UPFRONT" // PaymentOptionPartialUpfront is a PaymentOption enum value PaymentOptionPartialUpfront = "PARTIAL_UPFRONT" // PaymentOptionAllUpfront is a PaymentOption enum value PaymentOptionAllUpfront = "ALL_UPFRONT" // PaymentOptionLightUtilization is a PaymentOption enum value PaymentOptionLightUtilization = "LIGHT_UTILIZATION" // PaymentOptionMediumUtilization is a PaymentOption enum value PaymentOptionMediumUtilization = "MEDIUM_UTILIZATION" // PaymentOptionHeavyUtilization is a PaymentOption enum value PaymentOptionHeavyUtilization = "HEAVY_UTILIZATION" ) // PaymentOption_Values returns all elements of the PaymentOption enum func PaymentOption_Values() []string { return []string{ PaymentOptionNoUpfront, PaymentOptionPartialUpfront, PaymentOptionAllUpfront, PaymentOptionLightUtilization, PaymentOptionMediumUtilization, PaymentOptionHeavyUtilization, } } const ( // PlatformDifferenceHypervisor is a PlatformDifference enum value PlatformDifferenceHypervisor = "HYPERVISOR" // PlatformDifferenceNetworkInterface is a PlatformDifference enum value PlatformDifferenceNetworkInterface = "NETWORK_INTERFACE" // PlatformDifferenceStorageInterface is a PlatformDifference enum value PlatformDifferenceStorageInterface = "STORAGE_INTERFACE" // PlatformDifferenceInstanceStoreAvailability is a PlatformDifference enum value PlatformDifferenceInstanceStoreAvailability = "INSTANCE_STORE_AVAILABILITY" // PlatformDifferenceVirtualizationType is a PlatformDifference enum value PlatformDifferenceVirtualizationType = "VIRTUALIZATION_TYPE" ) // PlatformDifference_Values returns all elements of the PlatformDifference enum func PlatformDifference_Values() []string { return []string{ PlatformDifferenceHypervisor, PlatformDifferenceNetworkInterface, PlatformDifferenceStorageInterface, PlatformDifferenceInstanceStoreAvailability, PlatformDifferenceVirtualizationType, } } const ( // RecommendationTargetSameInstanceFamily is a RecommendationTarget enum value RecommendationTargetSameInstanceFamily = "SAME_INSTANCE_FAMILY" // RecommendationTargetCrossInstanceFamily is a RecommendationTarget enum value RecommendationTargetCrossInstanceFamily = "CROSS_INSTANCE_FAMILY" ) // RecommendationTarget_Values returns all elements of the RecommendationTarget enum func RecommendationTarget_Values() []string { return []string{ RecommendationTargetSameInstanceFamily, RecommendationTargetCrossInstanceFamily, } } const ( // RightsizingTypeTerminate is a RightsizingType enum value RightsizingTypeTerminate = "TERMINATE" // RightsizingTypeModify is a RightsizingType enum value RightsizingTypeModify = "MODIFY" ) // RightsizingType_Values returns all elements of the RightsizingType enum func RightsizingType_Values() []string { return []string{ RightsizingTypeTerminate, RightsizingTypeModify, } } const ( // SavingsPlansDataTypeAttributes is a SavingsPlansDataType enum value SavingsPlansDataTypeAttributes = "ATTRIBUTES" // SavingsPlansDataTypeUtilization is a SavingsPlansDataType enum value SavingsPlansDataTypeUtilization = "UTILIZATION" // SavingsPlansDataTypeAmortizedCommitment is a SavingsPlansDataType enum value SavingsPlansDataTypeAmortizedCommitment = "AMORTIZED_COMMITMENT" // SavingsPlansDataTypeSavings is a SavingsPlansDataType enum value SavingsPlansDataTypeSavings = "SAVINGS" ) // SavingsPlansDataType_Values returns all elements of the SavingsPlansDataType enum func SavingsPlansDataType_Values() []string { return []string{ SavingsPlansDataTypeAttributes, SavingsPlansDataTypeUtilization, SavingsPlansDataTypeAmortizedCommitment, SavingsPlansDataTypeSavings, } } const ( // SortOrderAscending is a SortOrder enum value SortOrderAscending = "ASCENDING" // SortOrderDescending is a SortOrder enum value SortOrderDescending = "DESCENDING" ) // SortOrder_Values returns all elements of the SortOrder enum func SortOrder_Values() []string { return []string{ SortOrderAscending, SortOrderDescending, } } const ( // SubscriberStatusConfirmed is a SubscriberStatus enum value SubscriberStatusConfirmed = "CONFIRMED" // SubscriberStatusDeclined is a SubscriberStatus enum value SubscriberStatusDeclined = "DECLINED" ) // SubscriberStatus_Values returns all elements of the SubscriberStatus enum func SubscriberStatus_Values() []string { return []string{ SubscriberStatusConfirmed, SubscriberStatusDeclined, } } const ( // SubscriberTypeEmail is a SubscriberType enum value SubscriberTypeEmail = "EMAIL" // SubscriberTypeSns is a SubscriberType enum value SubscriberTypeSns = "SNS" ) // SubscriberType_Values returns all elements of the SubscriberType enum func SubscriberType_Values() []string { return []string{ SubscriberTypeEmail, SubscriberTypeSns, } } const ( // SupportedSavingsPlansTypeComputeSp is a SupportedSavingsPlansType enum value SupportedSavingsPlansTypeComputeSp = "COMPUTE_SP" // SupportedSavingsPlansTypeEc2InstanceSp is a SupportedSavingsPlansType enum value SupportedSavingsPlansTypeEc2InstanceSp = "EC2_INSTANCE_SP" // SupportedSavingsPlansTypeSagemakerSp is a SupportedSavingsPlansType enum value SupportedSavingsPlansTypeSagemakerSp = "SAGEMAKER_SP" ) // SupportedSavingsPlansType_Values returns all elements of the SupportedSavingsPlansType enum func SupportedSavingsPlansType_Values() []string { return []string{ SupportedSavingsPlansTypeComputeSp, SupportedSavingsPlansTypeEc2InstanceSp, SupportedSavingsPlansTypeSagemakerSp, } } const ( // TermInYearsOneYear is a TermInYears enum value TermInYearsOneYear = "ONE_YEAR" // TermInYearsThreeYears is a TermInYears enum value TermInYearsThreeYears = "THREE_YEARS" ) // TermInYears_Values returns all elements of the TermInYears enum func TermInYears_Values() []string { return []string{ TermInYearsOneYear, TermInYearsThreeYears, } }