1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3package costexplorer 4 5import ( 6 "fmt" 7 8 "github.com/aws/aws-sdk-go/aws" 9 "github.com/aws/aws-sdk-go/aws/awsutil" 10 "github.com/aws/aws-sdk-go/aws/request" 11 "github.com/aws/aws-sdk-go/private/protocol" 12) 13 14const opCreateCostCategoryDefinition = "CreateCostCategoryDefinition" 15 16// CreateCostCategoryDefinitionRequest generates a "aws/request.Request" representing the 17// client's request for the CreateCostCategoryDefinition operation. The "output" return 18// value will be populated with the request's response once the request completes 19// successfully. 20// 21// Use "Send" method on the returned Request to send the API call to the service. 22// the "output" return value is not valid until after Send returns without error. 23// 24// See CreateCostCategoryDefinition for more information on using the CreateCostCategoryDefinition 25// API call, and error handling. 26// 27// This method is useful when you want to inject custom logic or configuration 28// into the SDK's request lifecycle. Such as custom headers, or retry logic. 29// 30// 31// // Example sending a request using the CreateCostCategoryDefinitionRequest method. 32// req, resp := client.CreateCostCategoryDefinitionRequest(params) 33// 34// err := req.Send() 35// if err == nil { // resp is now filled 36// fmt.Println(resp) 37// } 38// 39// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition 40func (c *CostExplorer) CreateCostCategoryDefinitionRequest(input *CreateCostCategoryDefinitionInput) (req *request.Request, output *CreateCostCategoryDefinitionOutput) { 41 op := &request.Operation{ 42 Name: opCreateCostCategoryDefinition, 43 HTTPMethod: "POST", 44 HTTPPath: "/", 45 } 46 47 if input == nil { 48 input = &CreateCostCategoryDefinitionInput{} 49 } 50 51 output = &CreateCostCategoryDefinitionOutput{} 52 req = c.newRequest(op, input, output) 53 return 54} 55 56// CreateCostCategoryDefinition API operation for AWS Cost Explorer Service. 57// 58// Creates a new Cost Category with the requested name and rules. 59// 60// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 61// with awserr.Error's Code and Message methods to get detailed information about 62// the error. 63// 64// See the AWS API reference guide for AWS Cost Explorer Service's 65// API operation CreateCostCategoryDefinition for usage and error information. 66// 67// Returned Error Types: 68// * ServiceQuotaExceededException 69// You've reached the limit on the number of resources you can create, or exceeded 70// the size of an individual resources. 71// 72// * LimitExceededException 73// You made too many calls in a short period of time. Try again later. 74// 75// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/CreateCostCategoryDefinition 76func (c *CostExplorer) CreateCostCategoryDefinition(input *CreateCostCategoryDefinitionInput) (*CreateCostCategoryDefinitionOutput, error) { 77 req, out := c.CreateCostCategoryDefinitionRequest(input) 78 return out, req.Send() 79} 80 81// CreateCostCategoryDefinitionWithContext is the same as CreateCostCategoryDefinition with the addition of 82// the ability to pass a context and additional request options. 83// 84// See CreateCostCategoryDefinition for details on how to use this API operation. 85// 86// The context must be non-nil and will be used for request cancellation. If 87// the context is nil a panic will occur. In the future the SDK may create 88// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 89// for more information on using Contexts. 90func (c *CostExplorer) CreateCostCategoryDefinitionWithContext(ctx aws.Context, input *CreateCostCategoryDefinitionInput, opts ...request.Option) (*CreateCostCategoryDefinitionOutput, error) { 91 req, out := c.CreateCostCategoryDefinitionRequest(input) 92 req.SetContext(ctx) 93 req.ApplyOptions(opts...) 94 return out, req.Send() 95} 96 97const opDeleteCostCategoryDefinition = "DeleteCostCategoryDefinition" 98 99// DeleteCostCategoryDefinitionRequest generates a "aws/request.Request" representing the 100// client's request for the DeleteCostCategoryDefinition operation. The "output" return 101// value will be populated with the request's response once the request completes 102// successfully. 103// 104// Use "Send" method on the returned Request to send the API call to the service. 105// the "output" return value is not valid until after Send returns without error. 106// 107// See DeleteCostCategoryDefinition for more information on using the DeleteCostCategoryDefinition 108// API call, and error handling. 109// 110// This method is useful when you want to inject custom logic or configuration 111// into the SDK's request lifecycle. Such as custom headers, or retry logic. 112// 113// 114// // Example sending a request using the DeleteCostCategoryDefinitionRequest method. 115// req, resp := client.DeleteCostCategoryDefinitionRequest(params) 116// 117// err := req.Send() 118// if err == nil { // resp is now filled 119// fmt.Println(resp) 120// } 121// 122// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition 123func (c *CostExplorer) DeleteCostCategoryDefinitionRequest(input *DeleteCostCategoryDefinitionInput) (req *request.Request, output *DeleteCostCategoryDefinitionOutput) { 124 op := &request.Operation{ 125 Name: opDeleteCostCategoryDefinition, 126 HTTPMethod: "POST", 127 HTTPPath: "/", 128 } 129 130 if input == nil { 131 input = &DeleteCostCategoryDefinitionInput{} 132 } 133 134 output = &DeleteCostCategoryDefinitionOutput{} 135 req = c.newRequest(op, input, output) 136 return 137} 138 139// DeleteCostCategoryDefinition API operation for AWS Cost Explorer Service. 140// 141// Deletes a Cost Category. Expenses from this month going forward will no longer 142// be categorized with this Cost Category. 143// 144// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 145// with awserr.Error's Code and Message methods to get detailed information about 146// the error. 147// 148// See the AWS API reference guide for AWS Cost Explorer Service's 149// API operation DeleteCostCategoryDefinition for usage and error information. 150// 151// Returned Error Types: 152// * ResourceNotFoundException 153// The specified ARN in the request doesn't exist. 154// 155// * LimitExceededException 156// You made too many calls in a short period of time. Try again later. 157// 158// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DeleteCostCategoryDefinition 159func (c *CostExplorer) DeleteCostCategoryDefinition(input *DeleteCostCategoryDefinitionInput) (*DeleteCostCategoryDefinitionOutput, error) { 160 req, out := c.DeleteCostCategoryDefinitionRequest(input) 161 return out, req.Send() 162} 163 164// DeleteCostCategoryDefinitionWithContext is the same as DeleteCostCategoryDefinition with the addition of 165// the ability to pass a context and additional request options. 166// 167// See DeleteCostCategoryDefinition for details on how to use this API operation. 168// 169// The context must be non-nil and will be used for request cancellation. If 170// the context is nil a panic will occur. In the future the SDK may create 171// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 172// for more information on using Contexts. 173func (c *CostExplorer) DeleteCostCategoryDefinitionWithContext(ctx aws.Context, input *DeleteCostCategoryDefinitionInput, opts ...request.Option) (*DeleteCostCategoryDefinitionOutput, error) { 174 req, out := c.DeleteCostCategoryDefinitionRequest(input) 175 req.SetContext(ctx) 176 req.ApplyOptions(opts...) 177 return out, req.Send() 178} 179 180const opDescribeCostCategoryDefinition = "DescribeCostCategoryDefinition" 181 182// DescribeCostCategoryDefinitionRequest generates a "aws/request.Request" representing the 183// client's request for the DescribeCostCategoryDefinition operation. The "output" return 184// value will be populated with the request's response once the request completes 185// successfully. 186// 187// Use "Send" method on the returned Request to send the API call to the service. 188// the "output" return value is not valid until after Send returns without error. 189// 190// See DescribeCostCategoryDefinition for more information on using the DescribeCostCategoryDefinition 191// API call, and error handling. 192// 193// This method is useful when you want to inject custom logic or configuration 194// into the SDK's request lifecycle. Such as custom headers, or retry logic. 195// 196// 197// // Example sending a request using the DescribeCostCategoryDefinitionRequest method. 198// req, resp := client.DescribeCostCategoryDefinitionRequest(params) 199// 200// err := req.Send() 201// if err == nil { // resp is now filled 202// fmt.Println(resp) 203// } 204// 205// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition 206func (c *CostExplorer) DescribeCostCategoryDefinitionRequest(input *DescribeCostCategoryDefinitionInput) (req *request.Request, output *DescribeCostCategoryDefinitionOutput) { 207 op := &request.Operation{ 208 Name: opDescribeCostCategoryDefinition, 209 HTTPMethod: "POST", 210 HTTPPath: "/", 211 } 212 213 if input == nil { 214 input = &DescribeCostCategoryDefinitionInput{} 215 } 216 217 output = &DescribeCostCategoryDefinitionOutput{} 218 req = c.newRequest(op, input, output) 219 return 220} 221 222// DescribeCostCategoryDefinition API operation for AWS Cost Explorer Service. 223// 224// Returns the name, ARN, rules, definition, and effective dates of a Cost Category 225// that's defined in the account. 226// 227// You have the option to use EffectiveOn to return a Cost Category that is 228// active on a specific date. If there is no EffectiveOn specified, you’ll 229// see a Cost Category that is effective on the current date. If Cost Category 230// is still effective, EffectiveEnd is omitted in the response. 231// 232// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 233// with awserr.Error's Code and Message methods to get detailed information about 234// the error. 235// 236// See the AWS API reference guide for AWS Cost Explorer Service's 237// API operation DescribeCostCategoryDefinition for usage and error information. 238// 239// Returned Error Types: 240// * ResourceNotFoundException 241// The specified ARN in the request doesn't exist. 242// 243// * LimitExceededException 244// You made too many calls in a short period of time. Try again later. 245// 246// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/DescribeCostCategoryDefinition 247func (c *CostExplorer) DescribeCostCategoryDefinition(input *DescribeCostCategoryDefinitionInput) (*DescribeCostCategoryDefinitionOutput, error) { 248 req, out := c.DescribeCostCategoryDefinitionRequest(input) 249 return out, req.Send() 250} 251 252// DescribeCostCategoryDefinitionWithContext is the same as DescribeCostCategoryDefinition with the addition of 253// the ability to pass a context and additional request options. 254// 255// See DescribeCostCategoryDefinition for details on how to use this API operation. 256// 257// The context must be non-nil and will be used for request cancellation. If 258// the context is nil a panic will occur. In the future the SDK may create 259// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 260// for more information on using Contexts. 261func (c *CostExplorer) DescribeCostCategoryDefinitionWithContext(ctx aws.Context, input *DescribeCostCategoryDefinitionInput, opts ...request.Option) (*DescribeCostCategoryDefinitionOutput, error) { 262 req, out := c.DescribeCostCategoryDefinitionRequest(input) 263 req.SetContext(ctx) 264 req.ApplyOptions(opts...) 265 return out, req.Send() 266} 267 268const opGetCostAndUsage = "GetCostAndUsage" 269 270// GetCostAndUsageRequest generates a "aws/request.Request" representing the 271// client's request for the GetCostAndUsage operation. The "output" return 272// value will be populated with the request's response once the request completes 273// successfully. 274// 275// Use "Send" method on the returned Request to send the API call to the service. 276// the "output" return value is not valid until after Send returns without error. 277// 278// See GetCostAndUsage for more information on using the GetCostAndUsage 279// API call, and error handling. 280// 281// This method is useful when you want to inject custom logic or configuration 282// into the SDK's request lifecycle. Such as custom headers, or retry logic. 283// 284// 285// // Example sending a request using the GetCostAndUsageRequest method. 286// req, resp := client.GetCostAndUsageRequest(params) 287// 288// err := req.Send() 289// if err == nil { // resp is now filled 290// fmt.Println(resp) 291// } 292// 293// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage 294func (c *CostExplorer) GetCostAndUsageRequest(input *GetCostAndUsageInput) (req *request.Request, output *GetCostAndUsageOutput) { 295 op := &request.Operation{ 296 Name: opGetCostAndUsage, 297 HTTPMethod: "POST", 298 HTTPPath: "/", 299 } 300 301 if input == nil { 302 input = &GetCostAndUsageInput{} 303 } 304 305 output = &GetCostAndUsageOutput{} 306 req = c.newRequest(op, input, output) 307 return 308} 309 310// GetCostAndUsage API operation for AWS Cost Explorer Service. 311// 312// Retrieves cost and usage metrics for your account. You can specify which 313// cost and usage-related metric, such as BlendedCosts or UsageQuantity, that 314// you want the request to return. You can also filter and group your data by 315// various dimensions, such as SERVICE or AZ, in a specific time range. For 316// a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) 317// operation. Master accounts in an organization in AWS Organizations have access 318// to all member accounts. 319// 320// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 321// with awserr.Error's Code and Message methods to get detailed information about 322// the error. 323// 324// See the AWS API reference guide for AWS Cost Explorer Service's 325// API operation GetCostAndUsage for usage and error information. 326// 327// Returned Error Types: 328// * LimitExceededException 329// You made too many calls in a short period of time. Try again later. 330// 331// * BillExpirationException 332// The requested report expired. Update the date interval and try again. 333// 334// * DataUnavailableException 335// The requested data is unavailable. 336// 337// * InvalidNextTokenException 338// The pagination token is invalid. Try again without a pagination token. 339// 340// * RequestChangedException 341// Your request parameters changed between pages. Try again with the old parameters 342// or without a pagination token. 343// 344// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage 345func (c *CostExplorer) GetCostAndUsage(input *GetCostAndUsageInput) (*GetCostAndUsageOutput, error) { 346 req, out := c.GetCostAndUsageRequest(input) 347 return out, req.Send() 348} 349 350// GetCostAndUsageWithContext is the same as GetCostAndUsage with the addition of 351// the ability to pass a context and additional request options. 352// 353// See GetCostAndUsage for details on how to use this API operation. 354// 355// The context must be non-nil and will be used for request cancellation. If 356// the context is nil a panic will occur. In the future the SDK may create 357// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 358// for more information on using Contexts. 359func (c *CostExplorer) GetCostAndUsageWithContext(ctx aws.Context, input *GetCostAndUsageInput, opts ...request.Option) (*GetCostAndUsageOutput, error) { 360 req, out := c.GetCostAndUsageRequest(input) 361 req.SetContext(ctx) 362 req.ApplyOptions(opts...) 363 return out, req.Send() 364} 365 366const opGetCostAndUsageWithResources = "GetCostAndUsageWithResources" 367 368// GetCostAndUsageWithResourcesRequest generates a "aws/request.Request" representing the 369// client's request for the GetCostAndUsageWithResources operation. The "output" return 370// value will be populated with the request's response once the request completes 371// successfully. 372// 373// Use "Send" method on the returned Request to send the API call to the service. 374// the "output" return value is not valid until after Send returns without error. 375// 376// See GetCostAndUsageWithResources for more information on using the GetCostAndUsageWithResources 377// API call, and error handling. 378// 379// This method is useful when you want to inject custom logic or configuration 380// into the SDK's request lifecycle. Such as custom headers, or retry logic. 381// 382// 383// // Example sending a request using the GetCostAndUsageWithResourcesRequest method. 384// req, resp := client.GetCostAndUsageWithResourcesRequest(params) 385// 386// err := req.Send() 387// if err == nil { // resp is now filled 388// fmt.Println(resp) 389// } 390// 391// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources 392func (c *CostExplorer) GetCostAndUsageWithResourcesRequest(input *GetCostAndUsageWithResourcesInput) (req *request.Request, output *GetCostAndUsageWithResourcesOutput) { 393 op := &request.Operation{ 394 Name: opGetCostAndUsageWithResources, 395 HTTPMethod: "POST", 396 HTTPPath: "/", 397 } 398 399 if input == nil { 400 input = &GetCostAndUsageWithResourcesInput{} 401 } 402 403 output = &GetCostAndUsageWithResourcesOutput{} 404 req = c.newRequest(op, input, output) 405 return 406} 407 408// GetCostAndUsageWithResources API operation for AWS Cost Explorer Service. 409// 410// Retrieves cost and usage metrics with resources for your account. You can 411// specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, 412// that you want the request to return. You can also filter and group your data 413// by various dimensions, such as SERVICE or AZ, in a specific time range. For 414// a complete list of valid dimensions, see the GetDimensionValues (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) 415// operation. Master accounts in an organization in AWS Organizations have access 416// to all member accounts. This API is currently available for the Amazon Elastic 417// Compute Cloud – Compute service only. 418// 419// This is an opt-in only feature. You can enable this feature from the Cost 420// Explorer Settings page. For information on how to access the Settings page, 421// see Controlling Access for Cost Explorer (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-access.html) 422// in the AWS Billing and Cost Management User Guide. 423// 424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 425// with awserr.Error's Code and Message methods to get detailed information about 426// the error. 427// 428// See the AWS API reference guide for AWS Cost Explorer Service's 429// API operation GetCostAndUsageWithResources for usage and error information. 430// 431// Returned Error Types: 432// * DataUnavailableException 433// The requested data is unavailable. 434// 435// * LimitExceededException 436// You made too many calls in a short period of time. Try again later. 437// 438// * BillExpirationException 439// The requested report expired. Update the date interval and try again. 440// 441// * InvalidNextTokenException 442// The pagination token is invalid. Try again without a pagination token. 443// 444// * RequestChangedException 445// Your request parameters changed between pages. Try again with the old parameters 446// or without a pagination token. 447// 448// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsageWithResources 449func (c *CostExplorer) GetCostAndUsageWithResources(input *GetCostAndUsageWithResourcesInput) (*GetCostAndUsageWithResourcesOutput, error) { 450 req, out := c.GetCostAndUsageWithResourcesRequest(input) 451 return out, req.Send() 452} 453 454// GetCostAndUsageWithResourcesWithContext is the same as GetCostAndUsageWithResources with the addition of 455// the ability to pass a context and additional request options. 456// 457// See GetCostAndUsageWithResources for details on how to use this API operation. 458// 459// The context must be non-nil and will be used for request cancellation. If 460// the context is nil a panic will occur. In the future the SDK may create 461// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 462// for more information on using Contexts. 463func (c *CostExplorer) GetCostAndUsageWithResourcesWithContext(ctx aws.Context, input *GetCostAndUsageWithResourcesInput, opts ...request.Option) (*GetCostAndUsageWithResourcesOutput, error) { 464 req, out := c.GetCostAndUsageWithResourcesRequest(input) 465 req.SetContext(ctx) 466 req.ApplyOptions(opts...) 467 return out, req.Send() 468} 469 470const opGetCostForecast = "GetCostForecast" 471 472// GetCostForecastRequest generates a "aws/request.Request" representing the 473// client's request for the GetCostForecast operation. The "output" return 474// value will be populated with the request's response once the request completes 475// successfully. 476// 477// Use "Send" method on the returned Request to send the API call to the service. 478// the "output" return value is not valid until after Send returns without error. 479// 480// See GetCostForecast for more information on using the GetCostForecast 481// API call, and error handling. 482// 483// This method is useful when you want to inject custom logic or configuration 484// into the SDK's request lifecycle. Such as custom headers, or retry logic. 485// 486// 487// // Example sending a request using the GetCostForecastRequest method. 488// req, resp := client.GetCostForecastRequest(params) 489// 490// err := req.Send() 491// if err == nil { // resp is now filled 492// fmt.Println(resp) 493// } 494// 495// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast 496func (c *CostExplorer) GetCostForecastRequest(input *GetCostForecastInput) (req *request.Request, output *GetCostForecastOutput) { 497 op := &request.Operation{ 498 Name: opGetCostForecast, 499 HTTPMethod: "POST", 500 HTTPPath: "/", 501 } 502 503 if input == nil { 504 input = &GetCostForecastInput{} 505 } 506 507 output = &GetCostForecastOutput{} 508 req = c.newRequest(op, input, output) 509 return 510} 511 512// GetCostForecast API operation for AWS Cost Explorer Service. 513// 514// Retrieves a forecast for how much Amazon Web Services predicts that you will 515// spend over the forecast time period that you select, based on your past costs. 516// 517// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 518// with awserr.Error's Code and Message methods to get detailed information about 519// the error. 520// 521// See the AWS API reference guide for AWS Cost Explorer Service's 522// API operation GetCostForecast for usage and error information. 523// 524// Returned Error Types: 525// * LimitExceededException 526// You made too many calls in a short period of time. Try again later. 527// 528// * DataUnavailableException 529// The requested data is unavailable. 530// 531// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast 532func (c *CostExplorer) GetCostForecast(input *GetCostForecastInput) (*GetCostForecastOutput, error) { 533 req, out := c.GetCostForecastRequest(input) 534 return out, req.Send() 535} 536 537// GetCostForecastWithContext is the same as GetCostForecast with the addition of 538// the ability to pass a context and additional request options. 539// 540// See GetCostForecast for details on how to use this API operation. 541// 542// The context must be non-nil and will be used for request cancellation. If 543// the context is nil a panic will occur. In the future the SDK may create 544// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 545// for more information on using Contexts. 546func (c *CostExplorer) GetCostForecastWithContext(ctx aws.Context, input *GetCostForecastInput, opts ...request.Option) (*GetCostForecastOutput, error) { 547 req, out := c.GetCostForecastRequest(input) 548 req.SetContext(ctx) 549 req.ApplyOptions(opts...) 550 return out, req.Send() 551} 552 553const opGetDimensionValues = "GetDimensionValues" 554 555// GetDimensionValuesRequest generates a "aws/request.Request" representing the 556// client's request for the GetDimensionValues operation. The "output" return 557// value will be populated with the request's response once the request completes 558// successfully. 559// 560// Use "Send" method on the returned Request to send the API call to the service. 561// the "output" return value is not valid until after Send returns without error. 562// 563// See GetDimensionValues for more information on using the GetDimensionValues 564// API call, and error handling. 565// 566// This method is useful when you want to inject custom logic or configuration 567// into the SDK's request lifecycle. Such as custom headers, or retry logic. 568// 569// 570// // Example sending a request using the GetDimensionValuesRequest method. 571// req, resp := client.GetDimensionValuesRequest(params) 572// 573// err := req.Send() 574// if err == nil { // resp is now filled 575// fmt.Println(resp) 576// } 577// 578// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues 579func (c *CostExplorer) GetDimensionValuesRequest(input *GetDimensionValuesInput) (req *request.Request, output *GetDimensionValuesOutput) { 580 op := &request.Operation{ 581 Name: opGetDimensionValues, 582 HTTPMethod: "POST", 583 HTTPPath: "/", 584 } 585 586 if input == nil { 587 input = &GetDimensionValuesInput{} 588 } 589 590 output = &GetDimensionValuesOutput{} 591 req = c.newRequest(op, input, output) 592 return 593} 594 595// GetDimensionValues API operation for AWS Cost Explorer Service. 596// 597// Retrieves all available filter values for a specified filter over a period 598// of time. You can search the dimension values for an arbitrary string. 599// 600// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 601// with awserr.Error's Code and Message methods to get detailed information about 602// the error. 603// 604// See the AWS API reference guide for AWS Cost Explorer Service's 605// API operation GetDimensionValues for usage and error information. 606// 607// Returned Error Types: 608// * LimitExceededException 609// You made too many calls in a short period of time. Try again later. 610// 611// * BillExpirationException 612// The requested report expired. Update the date interval and try again. 613// 614// * DataUnavailableException 615// The requested data is unavailable. 616// 617// * InvalidNextTokenException 618// The pagination token is invalid. Try again without a pagination token. 619// 620// * RequestChangedException 621// Your request parameters changed between pages. Try again with the old parameters 622// or without a pagination token. 623// 624// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues 625func (c *CostExplorer) GetDimensionValues(input *GetDimensionValuesInput) (*GetDimensionValuesOutput, error) { 626 req, out := c.GetDimensionValuesRequest(input) 627 return out, req.Send() 628} 629 630// GetDimensionValuesWithContext is the same as GetDimensionValues with the addition of 631// the ability to pass a context and additional request options. 632// 633// See GetDimensionValues for details on how to use this API operation. 634// 635// The context must be non-nil and will be used for request cancellation. If 636// the context is nil a panic will occur. In the future the SDK may create 637// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 638// for more information on using Contexts. 639func (c *CostExplorer) GetDimensionValuesWithContext(ctx aws.Context, input *GetDimensionValuesInput, opts ...request.Option) (*GetDimensionValuesOutput, error) { 640 req, out := c.GetDimensionValuesRequest(input) 641 req.SetContext(ctx) 642 req.ApplyOptions(opts...) 643 return out, req.Send() 644} 645 646const opGetReservationCoverage = "GetReservationCoverage" 647 648// GetReservationCoverageRequest generates a "aws/request.Request" representing the 649// client's request for the GetReservationCoverage operation. The "output" return 650// value will be populated with the request's response once the request completes 651// successfully. 652// 653// Use "Send" method on the returned Request to send the API call to the service. 654// the "output" return value is not valid until after Send returns without error. 655// 656// See GetReservationCoverage for more information on using the GetReservationCoverage 657// API call, and error handling. 658// 659// This method is useful when you want to inject custom logic or configuration 660// into the SDK's request lifecycle. Such as custom headers, or retry logic. 661// 662// 663// // Example sending a request using the GetReservationCoverageRequest method. 664// req, resp := client.GetReservationCoverageRequest(params) 665// 666// err := req.Send() 667// if err == nil { // resp is now filled 668// fmt.Println(resp) 669// } 670// 671// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage 672func (c *CostExplorer) GetReservationCoverageRequest(input *GetReservationCoverageInput) (req *request.Request, output *GetReservationCoverageOutput) { 673 op := &request.Operation{ 674 Name: opGetReservationCoverage, 675 HTTPMethod: "POST", 676 HTTPPath: "/", 677 } 678 679 if input == nil { 680 input = &GetReservationCoverageInput{} 681 } 682 683 output = &GetReservationCoverageOutput{} 684 req = c.newRequest(op, input, output) 685 return 686} 687 688// GetReservationCoverage API operation for AWS Cost Explorer Service. 689// 690// Retrieves the reservation coverage for your account. This enables you to 691// see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon 692// Relational Database Service, or Amazon Redshift usage is covered by a reservation. 693// An organization's master account can see the coverage of the associated member 694// accounts. This supports dimensions, Cost Categories, and nested expressions. 695// For any time period, you can filter data about reservation usage by the following 696// dimensions: 697// 698// * AZ 699// 700// * CACHE_ENGINE 701// 702// * DATABASE_ENGINE 703// 704// * DEPLOYMENT_OPTION 705// 706// * INSTANCE_TYPE 707// 708// * LINKED_ACCOUNT 709// 710// * OPERATING_SYSTEM 711// 712// * PLATFORM 713// 714// * REGION 715// 716// * SERVICE 717// 718// * TAG 719// 720// * TENANCY 721// 722// To determine valid values for a dimension, use the GetDimensionValues operation. 723// 724// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 725// with awserr.Error's Code and Message methods to get detailed information about 726// the error. 727// 728// See the AWS API reference guide for AWS Cost Explorer Service's 729// API operation GetReservationCoverage for usage and error information. 730// 731// Returned Error Types: 732// * LimitExceededException 733// You made too many calls in a short period of time. Try again later. 734// 735// * DataUnavailableException 736// The requested data is unavailable. 737// 738// * InvalidNextTokenException 739// The pagination token is invalid. Try again without a pagination token. 740// 741// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage 742func (c *CostExplorer) GetReservationCoverage(input *GetReservationCoverageInput) (*GetReservationCoverageOutput, error) { 743 req, out := c.GetReservationCoverageRequest(input) 744 return out, req.Send() 745} 746 747// GetReservationCoverageWithContext is the same as GetReservationCoverage with the addition of 748// the ability to pass a context and additional request options. 749// 750// See GetReservationCoverage for details on how to use this API operation. 751// 752// The context must be non-nil and will be used for request cancellation. If 753// the context is nil a panic will occur. In the future the SDK may create 754// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 755// for more information on using Contexts. 756func (c *CostExplorer) GetReservationCoverageWithContext(ctx aws.Context, input *GetReservationCoverageInput, opts ...request.Option) (*GetReservationCoverageOutput, error) { 757 req, out := c.GetReservationCoverageRequest(input) 758 req.SetContext(ctx) 759 req.ApplyOptions(opts...) 760 return out, req.Send() 761} 762 763const opGetReservationPurchaseRecommendation = "GetReservationPurchaseRecommendation" 764 765// GetReservationPurchaseRecommendationRequest generates a "aws/request.Request" representing the 766// client's request for the GetReservationPurchaseRecommendation operation. The "output" return 767// value will be populated with the request's response once the request completes 768// successfully. 769// 770// Use "Send" method on the returned Request to send the API call to the service. 771// the "output" return value is not valid until after Send returns without error. 772// 773// See GetReservationPurchaseRecommendation for more information on using the GetReservationPurchaseRecommendation 774// API call, and error handling. 775// 776// This method is useful when you want to inject custom logic or configuration 777// into the SDK's request lifecycle. Such as custom headers, or retry logic. 778// 779// 780// // Example sending a request using the GetReservationPurchaseRecommendationRequest method. 781// req, resp := client.GetReservationPurchaseRecommendationRequest(params) 782// 783// err := req.Send() 784// if err == nil { // resp is now filled 785// fmt.Println(resp) 786// } 787// 788// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation 789func (c *CostExplorer) GetReservationPurchaseRecommendationRequest(input *GetReservationPurchaseRecommendationInput) (req *request.Request, output *GetReservationPurchaseRecommendationOutput) { 790 op := &request.Operation{ 791 Name: opGetReservationPurchaseRecommendation, 792 HTTPMethod: "POST", 793 HTTPPath: "/", 794 } 795 796 if input == nil { 797 input = &GetReservationPurchaseRecommendationInput{} 798 } 799 800 output = &GetReservationPurchaseRecommendationOutput{} 801 req = c.newRequest(op, input, output) 802 return 803} 804 805// GetReservationPurchaseRecommendation API operation for AWS Cost Explorer Service. 806// 807// Gets recommendations for which reservations to purchase. These recommendations 808// could help you reduce your costs. Reservations provide a discounted hourly 809// rate (up to 75%) compared to On-Demand pricing. 810// 811// AWS generates your recommendations by identifying your On-Demand usage during 812// a specific time period and collecting your usage into categories that are 813// eligible for a reservation. After AWS has these categories, it simulates 814// every combination of reservations in each category of usage to identify the 815// best number of each type of RI to purchase to maximize your estimated savings. 816// 817// For example, AWS automatically aggregates your Amazon EC2 Linux, shared tenancy, 818// and c4 family usage in the US West (Oregon) Region and recommends that you 819// buy size-flexible regional reservations to apply to the c4 family usage. 820// AWS recommends the smallest size instance in an instance family. This makes 821// it easier to purchase a size-flexible RI. AWS also shows the equal number 822// of normalized units so that you can purchase any instance size that you want. 823// For this example, your RI recommendation would be for c4.large because that 824// is the smallest size instance in the c4 instance family. 825// 826// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 827// with awserr.Error's Code and Message methods to get detailed information about 828// the error. 829// 830// See the AWS API reference guide for AWS Cost Explorer Service's 831// API operation GetReservationPurchaseRecommendation for usage and error information. 832// 833// Returned Error Types: 834// * LimitExceededException 835// You made too many calls in a short period of time. Try again later. 836// 837// * DataUnavailableException 838// The requested data is unavailable. 839// 840// * InvalidNextTokenException 841// The pagination token is invalid. Try again without a pagination token. 842// 843// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation 844func (c *CostExplorer) GetReservationPurchaseRecommendation(input *GetReservationPurchaseRecommendationInput) (*GetReservationPurchaseRecommendationOutput, error) { 845 req, out := c.GetReservationPurchaseRecommendationRequest(input) 846 return out, req.Send() 847} 848 849// GetReservationPurchaseRecommendationWithContext is the same as GetReservationPurchaseRecommendation with the addition of 850// the ability to pass a context and additional request options. 851// 852// See GetReservationPurchaseRecommendation for details on how to use this API operation. 853// 854// The context must be non-nil and will be used for request cancellation. If 855// the context is nil a panic will occur. In the future the SDK may create 856// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 857// for more information on using Contexts. 858func (c *CostExplorer) GetReservationPurchaseRecommendationWithContext(ctx aws.Context, input *GetReservationPurchaseRecommendationInput, opts ...request.Option) (*GetReservationPurchaseRecommendationOutput, error) { 859 req, out := c.GetReservationPurchaseRecommendationRequest(input) 860 req.SetContext(ctx) 861 req.ApplyOptions(opts...) 862 return out, req.Send() 863} 864 865const opGetReservationUtilization = "GetReservationUtilization" 866 867// GetReservationUtilizationRequest generates a "aws/request.Request" representing the 868// client's request for the GetReservationUtilization operation. The "output" return 869// value will be populated with the request's response once the request completes 870// successfully. 871// 872// Use "Send" method on the returned Request to send the API call to the service. 873// the "output" return value is not valid until after Send returns without error. 874// 875// See GetReservationUtilization for more information on using the GetReservationUtilization 876// API call, and error handling. 877// 878// This method is useful when you want to inject custom logic or configuration 879// into the SDK's request lifecycle. Such as custom headers, or retry logic. 880// 881// 882// // Example sending a request using the GetReservationUtilizationRequest method. 883// req, resp := client.GetReservationUtilizationRequest(params) 884// 885// err := req.Send() 886// if err == nil { // resp is now filled 887// fmt.Println(resp) 888// } 889// 890// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization 891func (c *CostExplorer) GetReservationUtilizationRequest(input *GetReservationUtilizationInput) (req *request.Request, output *GetReservationUtilizationOutput) { 892 op := &request.Operation{ 893 Name: opGetReservationUtilization, 894 HTTPMethod: "POST", 895 HTTPPath: "/", 896 } 897 898 if input == nil { 899 input = &GetReservationUtilizationInput{} 900 } 901 902 output = &GetReservationUtilizationOutput{} 903 req = c.newRequest(op, input, output) 904 return 905} 906 907// GetReservationUtilization API operation for AWS Cost Explorer Service. 908// 909// Retrieves the reservation utilization for your account. Master accounts in 910// an organization have access to member accounts. You can filter data by dimensions 911// in a time period. You can use GetDimensionValues to determine the possible 912// dimension values. Currently, you can group only by SUBSCRIPTION_ID. 913// 914// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 915// with awserr.Error's Code and Message methods to get detailed information about 916// the error. 917// 918// See the AWS API reference guide for AWS Cost Explorer Service's 919// API operation GetReservationUtilization for usage and error information. 920// 921// Returned Error Types: 922// * LimitExceededException 923// You made too many calls in a short period of time. Try again later. 924// 925// * DataUnavailableException 926// The requested data is unavailable. 927// 928// * InvalidNextTokenException 929// The pagination token is invalid. Try again without a pagination token. 930// 931// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization 932func (c *CostExplorer) GetReservationUtilization(input *GetReservationUtilizationInput) (*GetReservationUtilizationOutput, error) { 933 req, out := c.GetReservationUtilizationRequest(input) 934 return out, req.Send() 935} 936 937// GetReservationUtilizationWithContext is the same as GetReservationUtilization with the addition of 938// the ability to pass a context and additional request options. 939// 940// See GetReservationUtilization for details on how to use this API operation. 941// 942// The context must be non-nil and will be used for request cancellation. If 943// the context is nil a panic will occur. In the future the SDK may create 944// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 945// for more information on using Contexts. 946func (c *CostExplorer) GetReservationUtilizationWithContext(ctx aws.Context, input *GetReservationUtilizationInput, opts ...request.Option) (*GetReservationUtilizationOutput, error) { 947 req, out := c.GetReservationUtilizationRequest(input) 948 req.SetContext(ctx) 949 req.ApplyOptions(opts...) 950 return out, req.Send() 951} 952 953const opGetRightsizingRecommendation = "GetRightsizingRecommendation" 954 955// GetRightsizingRecommendationRequest generates a "aws/request.Request" representing the 956// client's request for the GetRightsizingRecommendation operation. The "output" return 957// value will be populated with the request's response once the request completes 958// successfully. 959// 960// Use "Send" method on the returned Request to send the API call to the service. 961// the "output" return value is not valid until after Send returns without error. 962// 963// See GetRightsizingRecommendation for more information on using the GetRightsizingRecommendation 964// API call, and error handling. 965// 966// This method is useful when you want to inject custom logic or configuration 967// into the SDK's request lifecycle. Such as custom headers, or retry logic. 968// 969// 970// // Example sending a request using the GetRightsizingRecommendationRequest method. 971// req, resp := client.GetRightsizingRecommendationRequest(params) 972// 973// err := req.Send() 974// if err == nil { // resp is now filled 975// fmt.Println(resp) 976// } 977// 978// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation 979func (c *CostExplorer) GetRightsizingRecommendationRequest(input *GetRightsizingRecommendationInput) (req *request.Request, output *GetRightsizingRecommendationOutput) { 980 op := &request.Operation{ 981 Name: opGetRightsizingRecommendation, 982 HTTPMethod: "POST", 983 HTTPPath: "/", 984 } 985 986 if input == nil { 987 input = &GetRightsizingRecommendationInput{} 988 } 989 990 output = &GetRightsizingRecommendationOutput{} 991 req = c.newRequest(op, input, output) 992 return 993} 994 995// GetRightsizingRecommendation API operation for AWS Cost Explorer Service. 996// 997// Creates recommendations that help you save cost by identifying idle and underutilized 998// Amazon EC2 instances. 999// 1000// Recommendations are generated to either downsize or terminate instances, 1001// along with providing savings detail and metrics. For details on calculation 1002// and function, see Optimizing Your Cost with Rightsizing Recommendations (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html) 1003// in the AWS Billing and Cost Management User Guide. 1004// 1005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1006// with awserr.Error's Code and Message methods to get detailed information about 1007// the error. 1008// 1009// See the AWS API reference guide for AWS Cost Explorer Service's 1010// API operation GetRightsizingRecommendation for usage and error information. 1011// 1012// Returned Error Types: 1013// * LimitExceededException 1014// You made too many calls in a short period of time. Try again later. 1015// 1016// * InvalidNextTokenException 1017// The pagination token is invalid. Try again without a pagination token. 1018// 1019// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation 1020func (c *CostExplorer) GetRightsizingRecommendation(input *GetRightsizingRecommendationInput) (*GetRightsizingRecommendationOutput, error) { 1021 req, out := c.GetRightsizingRecommendationRequest(input) 1022 return out, req.Send() 1023} 1024 1025// GetRightsizingRecommendationWithContext is the same as GetRightsizingRecommendation with the addition of 1026// the ability to pass a context and additional request options. 1027// 1028// See GetRightsizingRecommendation for details on how to use this API operation. 1029// 1030// The context must be non-nil and will be used for request cancellation. If 1031// the context is nil a panic will occur. In the future the SDK may create 1032// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1033// for more information on using Contexts. 1034func (c *CostExplorer) GetRightsizingRecommendationWithContext(ctx aws.Context, input *GetRightsizingRecommendationInput, opts ...request.Option) (*GetRightsizingRecommendationOutput, error) { 1035 req, out := c.GetRightsizingRecommendationRequest(input) 1036 req.SetContext(ctx) 1037 req.ApplyOptions(opts...) 1038 return out, req.Send() 1039} 1040 1041const opGetSavingsPlansCoverage = "GetSavingsPlansCoverage" 1042 1043// GetSavingsPlansCoverageRequest generates a "aws/request.Request" representing the 1044// client's request for the GetSavingsPlansCoverage operation. The "output" return 1045// value will be populated with the request's response once the request completes 1046// successfully. 1047// 1048// Use "Send" method on the returned Request to send the API call to the service. 1049// the "output" return value is not valid until after Send returns without error. 1050// 1051// See GetSavingsPlansCoverage for more information on using the GetSavingsPlansCoverage 1052// API call, and error handling. 1053// 1054// This method is useful when you want to inject custom logic or configuration 1055// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1056// 1057// 1058// // Example sending a request using the GetSavingsPlansCoverageRequest method. 1059// req, resp := client.GetSavingsPlansCoverageRequest(params) 1060// 1061// err := req.Send() 1062// if err == nil { // resp is now filled 1063// fmt.Println(resp) 1064// } 1065// 1066// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage 1067func (c *CostExplorer) GetSavingsPlansCoverageRequest(input *GetSavingsPlansCoverageInput) (req *request.Request, output *GetSavingsPlansCoverageOutput) { 1068 op := &request.Operation{ 1069 Name: opGetSavingsPlansCoverage, 1070 HTTPMethod: "POST", 1071 HTTPPath: "/", 1072 Paginator: &request.Paginator{ 1073 InputTokens: []string{"NextToken"}, 1074 OutputTokens: []string{"NextToken"}, 1075 LimitToken: "MaxResults", 1076 TruncationToken: "", 1077 }, 1078 } 1079 1080 if input == nil { 1081 input = &GetSavingsPlansCoverageInput{} 1082 } 1083 1084 output = &GetSavingsPlansCoverageOutput{} 1085 req = c.newRequest(op, input, output) 1086 return 1087} 1088 1089// GetSavingsPlansCoverage API operation for AWS Cost Explorer Service. 1090// 1091// Retrieves the Savings Plans covered for your account. This enables you to 1092// see how much of your cost is covered by a Savings Plan. An organization’s 1093// master account can see the coverage of the associated member accounts. This 1094// supports dimensions, Cost Categories, and nested expressions. For any time 1095// period, you can filter data for Savings Plans usage with the following dimensions: 1096// 1097// * LINKED_ACCOUNT 1098// 1099// * REGION 1100// 1101// * SERVICE 1102// 1103// * INSTANCE_FAMILY 1104// 1105// To determine valid values for a dimension, use the GetDimensionValues operation. 1106// 1107// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1108// with awserr.Error's Code and Message methods to get detailed information about 1109// the error. 1110// 1111// See the AWS API reference guide for AWS Cost Explorer Service's 1112// API operation GetSavingsPlansCoverage for usage and error information. 1113// 1114// Returned Error Types: 1115// * LimitExceededException 1116// You made too many calls in a short period of time. Try again later. 1117// 1118// * DataUnavailableException 1119// The requested data is unavailable. 1120// 1121// * InvalidNextTokenException 1122// The pagination token is invalid. Try again without a pagination token. 1123// 1124// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansCoverage 1125func (c *CostExplorer) GetSavingsPlansCoverage(input *GetSavingsPlansCoverageInput) (*GetSavingsPlansCoverageOutput, error) { 1126 req, out := c.GetSavingsPlansCoverageRequest(input) 1127 return out, req.Send() 1128} 1129 1130// GetSavingsPlansCoverageWithContext is the same as GetSavingsPlansCoverage with the addition of 1131// the ability to pass a context and additional request options. 1132// 1133// See GetSavingsPlansCoverage for details on how to use this API operation. 1134// 1135// The context must be non-nil and will be used for request cancellation. If 1136// the context is nil a panic will occur. In the future the SDK may create 1137// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1138// for more information on using Contexts. 1139func (c *CostExplorer) GetSavingsPlansCoverageWithContext(ctx aws.Context, input *GetSavingsPlansCoverageInput, opts ...request.Option) (*GetSavingsPlansCoverageOutput, error) { 1140 req, out := c.GetSavingsPlansCoverageRequest(input) 1141 req.SetContext(ctx) 1142 req.ApplyOptions(opts...) 1143 return out, req.Send() 1144} 1145 1146// GetSavingsPlansCoveragePages iterates over the pages of a GetSavingsPlansCoverage operation, 1147// calling the "fn" function with the response data for each page. To stop 1148// iterating, return false from the fn function. 1149// 1150// See GetSavingsPlansCoverage method for more information on how to use this operation. 1151// 1152// Note: This operation can generate multiple requests to a service. 1153// 1154// // Example iterating over at most 3 pages of a GetSavingsPlansCoverage operation. 1155// pageNum := 0 1156// err := client.GetSavingsPlansCoveragePages(params, 1157// func(page *costexplorer.GetSavingsPlansCoverageOutput, lastPage bool) bool { 1158// pageNum++ 1159// fmt.Println(page) 1160// return pageNum <= 3 1161// }) 1162// 1163func (c *CostExplorer) GetSavingsPlansCoveragePages(input *GetSavingsPlansCoverageInput, fn func(*GetSavingsPlansCoverageOutput, bool) bool) error { 1164 return c.GetSavingsPlansCoveragePagesWithContext(aws.BackgroundContext(), input, fn) 1165} 1166 1167// GetSavingsPlansCoveragePagesWithContext same as GetSavingsPlansCoveragePages except 1168// it takes a Context and allows setting request options on the pages. 1169// 1170// The context must be non-nil and will be used for request cancellation. If 1171// the context is nil a panic will occur. In the future the SDK may create 1172// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1173// for more information on using Contexts. 1174func (c *CostExplorer) GetSavingsPlansCoveragePagesWithContext(ctx aws.Context, input *GetSavingsPlansCoverageInput, fn func(*GetSavingsPlansCoverageOutput, bool) bool, opts ...request.Option) error { 1175 p := request.Pagination{ 1176 NewRequest: func() (*request.Request, error) { 1177 var inCpy *GetSavingsPlansCoverageInput 1178 if input != nil { 1179 tmp := *input 1180 inCpy = &tmp 1181 } 1182 req, _ := c.GetSavingsPlansCoverageRequest(inCpy) 1183 req.SetContext(ctx) 1184 req.ApplyOptions(opts...) 1185 return req, nil 1186 }, 1187 } 1188 1189 for p.Next() { 1190 if !fn(p.Page().(*GetSavingsPlansCoverageOutput), !p.HasNextPage()) { 1191 break 1192 } 1193 } 1194 1195 return p.Err() 1196} 1197 1198const opGetSavingsPlansPurchaseRecommendation = "GetSavingsPlansPurchaseRecommendation" 1199 1200// GetSavingsPlansPurchaseRecommendationRequest generates a "aws/request.Request" representing the 1201// client's request for the GetSavingsPlansPurchaseRecommendation operation. The "output" return 1202// value will be populated with the request's response once the request completes 1203// successfully. 1204// 1205// Use "Send" method on the returned Request to send the API call to the service. 1206// the "output" return value is not valid until after Send returns without error. 1207// 1208// See GetSavingsPlansPurchaseRecommendation for more information on using the GetSavingsPlansPurchaseRecommendation 1209// API call, and error handling. 1210// 1211// This method is useful when you want to inject custom logic or configuration 1212// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1213// 1214// 1215// // Example sending a request using the GetSavingsPlansPurchaseRecommendationRequest method. 1216// req, resp := client.GetSavingsPlansPurchaseRecommendationRequest(params) 1217// 1218// err := req.Send() 1219// if err == nil { // resp is now filled 1220// fmt.Println(resp) 1221// } 1222// 1223// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation 1224func (c *CostExplorer) GetSavingsPlansPurchaseRecommendationRequest(input *GetSavingsPlansPurchaseRecommendationInput) (req *request.Request, output *GetSavingsPlansPurchaseRecommendationOutput) { 1225 op := &request.Operation{ 1226 Name: opGetSavingsPlansPurchaseRecommendation, 1227 HTTPMethod: "POST", 1228 HTTPPath: "/", 1229 } 1230 1231 if input == nil { 1232 input = &GetSavingsPlansPurchaseRecommendationInput{} 1233 } 1234 1235 output = &GetSavingsPlansPurchaseRecommendationOutput{} 1236 req = c.newRequest(op, input, output) 1237 return 1238} 1239 1240// GetSavingsPlansPurchaseRecommendation API operation for AWS Cost Explorer Service. 1241// 1242// Retrieves your request parameters, Savings Plan Recommendations Summary and 1243// Details. 1244// 1245// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1246// with awserr.Error's Code and Message methods to get detailed information about 1247// the error. 1248// 1249// See the AWS API reference guide for AWS Cost Explorer Service's 1250// API operation GetSavingsPlansPurchaseRecommendation for usage and error information. 1251// 1252// Returned Error Types: 1253// * LimitExceededException 1254// You made too many calls in a short period of time. Try again later. 1255// 1256// * InvalidNextTokenException 1257// The pagination token is invalid. Try again without a pagination token. 1258// 1259// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansPurchaseRecommendation 1260func (c *CostExplorer) GetSavingsPlansPurchaseRecommendation(input *GetSavingsPlansPurchaseRecommendationInput) (*GetSavingsPlansPurchaseRecommendationOutput, error) { 1261 req, out := c.GetSavingsPlansPurchaseRecommendationRequest(input) 1262 return out, req.Send() 1263} 1264 1265// GetSavingsPlansPurchaseRecommendationWithContext is the same as GetSavingsPlansPurchaseRecommendation with the addition of 1266// the ability to pass a context and additional request options. 1267// 1268// See GetSavingsPlansPurchaseRecommendation for details on how to use this API operation. 1269// 1270// The context must be non-nil and will be used for request cancellation. If 1271// the context is nil a panic will occur. In the future the SDK may create 1272// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1273// for more information on using Contexts. 1274func (c *CostExplorer) GetSavingsPlansPurchaseRecommendationWithContext(ctx aws.Context, input *GetSavingsPlansPurchaseRecommendationInput, opts ...request.Option) (*GetSavingsPlansPurchaseRecommendationOutput, error) { 1275 req, out := c.GetSavingsPlansPurchaseRecommendationRequest(input) 1276 req.SetContext(ctx) 1277 req.ApplyOptions(opts...) 1278 return out, req.Send() 1279} 1280 1281const opGetSavingsPlansUtilization = "GetSavingsPlansUtilization" 1282 1283// GetSavingsPlansUtilizationRequest generates a "aws/request.Request" representing the 1284// client's request for the GetSavingsPlansUtilization operation. The "output" return 1285// value will be populated with the request's response once the request completes 1286// successfully. 1287// 1288// Use "Send" method on the returned Request to send the API call to the service. 1289// the "output" return value is not valid until after Send returns without error. 1290// 1291// See GetSavingsPlansUtilization for more information on using the GetSavingsPlansUtilization 1292// API call, and error handling. 1293// 1294// This method is useful when you want to inject custom logic or configuration 1295// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1296// 1297// 1298// // Example sending a request using the GetSavingsPlansUtilizationRequest method. 1299// req, resp := client.GetSavingsPlansUtilizationRequest(params) 1300// 1301// err := req.Send() 1302// if err == nil { // resp is now filled 1303// fmt.Println(resp) 1304// } 1305// 1306// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization 1307func (c *CostExplorer) GetSavingsPlansUtilizationRequest(input *GetSavingsPlansUtilizationInput) (req *request.Request, output *GetSavingsPlansUtilizationOutput) { 1308 op := &request.Operation{ 1309 Name: opGetSavingsPlansUtilization, 1310 HTTPMethod: "POST", 1311 HTTPPath: "/", 1312 } 1313 1314 if input == nil { 1315 input = &GetSavingsPlansUtilizationInput{} 1316 } 1317 1318 output = &GetSavingsPlansUtilizationOutput{} 1319 req = c.newRequest(op, input, output) 1320 return 1321} 1322 1323// GetSavingsPlansUtilization API operation for AWS Cost Explorer Service. 1324// 1325// Retrieves the Savings Plans utilization for your account across date ranges 1326// with daily or monthly granularity. Master accounts in an organization have 1327// access to member accounts. You can use GetDimensionValues in SAVINGS_PLANS 1328// to determine the possible dimension values. 1329// 1330// You cannot group by any dimension values for GetSavingsPlansUtilization. 1331// 1332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1333// with awserr.Error's Code and Message methods to get detailed information about 1334// the error. 1335// 1336// See the AWS API reference guide for AWS Cost Explorer Service's 1337// API operation GetSavingsPlansUtilization for usage and error information. 1338// 1339// Returned Error Types: 1340// * LimitExceededException 1341// You made too many calls in a short period of time. Try again later. 1342// 1343// * DataUnavailableException 1344// The requested data is unavailable. 1345// 1346// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilization 1347func (c *CostExplorer) GetSavingsPlansUtilization(input *GetSavingsPlansUtilizationInput) (*GetSavingsPlansUtilizationOutput, error) { 1348 req, out := c.GetSavingsPlansUtilizationRequest(input) 1349 return out, req.Send() 1350} 1351 1352// GetSavingsPlansUtilizationWithContext is the same as GetSavingsPlansUtilization with the addition of 1353// the ability to pass a context and additional request options. 1354// 1355// See GetSavingsPlansUtilization for details on how to use this API operation. 1356// 1357// The context must be non-nil and will be used for request cancellation. If 1358// the context is nil a panic will occur. In the future the SDK may create 1359// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1360// for more information on using Contexts. 1361func (c *CostExplorer) GetSavingsPlansUtilizationWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationInput, opts ...request.Option) (*GetSavingsPlansUtilizationOutput, error) { 1362 req, out := c.GetSavingsPlansUtilizationRequest(input) 1363 req.SetContext(ctx) 1364 req.ApplyOptions(opts...) 1365 return out, req.Send() 1366} 1367 1368const opGetSavingsPlansUtilizationDetails = "GetSavingsPlansUtilizationDetails" 1369 1370// GetSavingsPlansUtilizationDetailsRequest generates a "aws/request.Request" representing the 1371// client's request for the GetSavingsPlansUtilizationDetails operation. The "output" return 1372// value will be populated with the request's response once the request completes 1373// successfully. 1374// 1375// Use "Send" method on the returned Request to send the API call to the service. 1376// the "output" return value is not valid until after Send returns without error. 1377// 1378// See GetSavingsPlansUtilizationDetails for more information on using the GetSavingsPlansUtilizationDetails 1379// API call, and error handling. 1380// 1381// This method is useful when you want to inject custom logic or configuration 1382// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1383// 1384// 1385// // Example sending a request using the GetSavingsPlansUtilizationDetailsRequest method. 1386// req, resp := client.GetSavingsPlansUtilizationDetailsRequest(params) 1387// 1388// err := req.Send() 1389// if err == nil { // resp is now filled 1390// fmt.Println(resp) 1391// } 1392// 1393// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails 1394func (c *CostExplorer) GetSavingsPlansUtilizationDetailsRequest(input *GetSavingsPlansUtilizationDetailsInput) (req *request.Request, output *GetSavingsPlansUtilizationDetailsOutput) { 1395 op := &request.Operation{ 1396 Name: opGetSavingsPlansUtilizationDetails, 1397 HTTPMethod: "POST", 1398 HTTPPath: "/", 1399 Paginator: &request.Paginator{ 1400 InputTokens: []string{"NextToken"}, 1401 OutputTokens: []string{"NextToken"}, 1402 LimitToken: "MaxResults", 1403 TruncationToken: "", 1404 }, 1405 } 1406 1407 if input == nil { 1408 input = &GetSavingsPlansUtilizationDetailsInput{} 1409 } 1410 1411 output = &GetSavingsPlansUtilizationDetailsOutput{} 1412 req = c.newRequest(op, input, output) 1413 return 1414} 1415 1416// GetSavingsPlansUtilizationDetails API operation for AWS Cost Explorer Service. 1417// 1418// Retrieves attribute data along with aggregate utilization and savings data 1419// for a given time period. This doesn't support granular or grouped data (daily/monthly) 1420// in response. You can't retrieve data by dates in a single response similar 1421// to GetSavingsPlanUtilization, but you have the option to make multiple calls 1422// to GetSavingsPlanUtilizationDetails by providing individual dates. You can 1423// use GetDimensionValues in SAVINGS_PLANS to determine the possible dimension 1424// values. 1425// 1426// GetSavingsPlanUtilizationDetails internally groups data by SavingsPlansArn. 1427// 1428// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1429// with awserr.Error's Code and Message methods to get detailed information about 1430// the error. 1431// 1432// See the AWS API reference guide for AWS Cost Explorer Service's 1433// API operation GetSavingsPlansUtilizationDetails for usage and error information. 1434// 1435// Returned Error Types: 1436// * LimitExceededException 1437// You made too many calls in a short period of time. Try again later. 1438// 1439// * DataUnavailableException 1440// The requested data is unavailable. 1441// 1442// * InvalidNextTokenException 1443// The pagination token is invalid. Try again without a pagination token. 1444// 1445// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetSavingsPlansUtilizationDetails 1446func (c *CostExplorer) GetSavingsPlansUtilizationDetails(input *GetSavingsPlansUtilizationDetailsInput) (*GetSavingsPlansUtilizationDetailsOutput, error) { 1447 req, out := c.GetSavingsPlansUtilizationDetailsRequest(input) 1448 return out, req.Send() 1449} 1450 1451// GetSavingsPlansUtilizationDetailsWithContext is the same as GetSavingsPlansUtilizationDetails with the addition of 1452// the ability to pass a context and additional request options. 1453// 1454// See GetSavingsPlansUtilizationDetails for details on how to use this API operation. 1455// 1456// The context must be non-nil and will be used for request cancellation. If 1457// the context is nil a panic will occur. In the future the SDK may create 1458// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1459// for more information on using Contexts. 1460func (c *CostExplorer) GetSavingsPlansUtilizationDetailsWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationDetailsInput, opts ...request.Option) (*GetSavingsPlansUtilizationDetailsOutput, error) { 1461 req, out := c.GetSavingsPlansUtilizationDetailsRequest(input) 1462 req.SetContext(ctx) 1463 req.ApplyOptions(opts...) 1464 return out, req.Send() 1465} 1466 1467// GetSavingsPlansUtilizationDetailsPages iterates over the pages of a GetSavingsPlansUtilizationDetails operation, 1468// calling the "fn" function with the response data for each page. To stop 1469// iterating, return false from the fn function. 1470// 1471// See GetSavingsPlansUtilizationDetails method for more information on how to use this operation. 1472// 1473// Note: This operation can generate multiple requests to a service. 1474// 1475// // Example iterating over at most 3 pages of a GetSavingsPlansUtilizationDetails operation. 1476// pageNum := 0 1477// err := client.GetSavingsPlansUtilizationDetailsPages(params, 1478// func(page *costexplorer.GetSavingsPlansUtilizationDetailsOutput, lastPage bool) bool { 1479// pageNum++ 1480// fmt.Println(page) 1481// return pageNum <= 3 1482// }) 1483// 1484func (c *CostExplorer) GetSavingsPlansUtilizationDetailsPages(input *GetSavingsPlansUtilizationDetailsInput, fn func(*GetSavingsPlansUtilizationDetailsOutput, bool) bool) error { 1485 return c.GetSavingsPlansUtilizationDetailsPagesWithContext(aws.BackgroundContext(), input, fn) 1486} 1487 1488// GetSavingsPlansUtilizationDetailsPagesWithContext same as GetSavingsPlansUtilizationDetailsPages except 1489// it takes a Context and allows setting request options on the pages. 1490// 1491// The context must be non-nil and will be used for request cancellation. If 1492// the context is nil a panic will occur. In the future the SDK may create 1493// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1494// for more information on using Contexts. 1495func (c *CostExplorer) GetSavingsPlansUtilizationDetailsPagesWithContext(ctx aws.Context, input *GetSavingsPlansUtilizationDetailsInput, fn func(*GetSavingsPlansUtilizationDetailsOutput, bool) bool, opts ...request.Option) error { 1496 p := request.Pagination{ 1497 NewRequest: func() (*request.Request, error) { 1498 var inCpy *GetSavingsPlansUtilizationDetailsInput 1499 if input != nil { 1500 tmp := *input 1501 inCpy = &tmp 1502 } 1503 req, _ := c.GetSavingsPlansUtilizationDetailsRequest(inCpy) 1504 req.SetContext(ctx) 1505 req.ApplyOptions(opts...) 1506 return req, nil 1507 }, 1508 } 1509 1510 for p.Next() { 1511 if !fn(p.Page().(*GetSavingsPlansUtilizationDetailsOutput), !p.HasNextPage()) { 1512 break 1513 } 1514 } 1515 1516 return p.Err() 1517} 1518 1519const opGetTags = "GetTags" 1520 1521// GetTagsRequest generates a "aws/request.Request" representing the 1522// client's request for the GetTags operation. The "output" return 1523// value will be populated with the request's response once the request completes 1524// successfully. 1525// 1526// Use "Send" method on the returned Request to send the API call to the service. 1527// the "output" return value is not valid until after Send returns without error. 1528// 1529// See GetTags for more information on using the GetTags 1530// API call, and error handling. 1531// 1532// This method is useful when you want to inject custom logic or configuration 1533// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1534// 1535// 1536// // Example sending a request using the GetTagsRequest method. 1537// req, resp := client.GetTagsRequest(params) 1538// 1539// err := req.Send() 1540// if err == nil { // resp is now filled 1541// fmt.Println(resp) 1542// } 1543// 1544// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags 1545func (c *CostExplorer) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) { 1546 op := &request.Operation{ 1547 Name: opGetTags, 1548 HTTPMethod: "POST", 1549 HTTPPath: "/", 1550 } 1551 1552 if input == nil { 1553 input = &GetTagsInput{} 1554 } 1555 1556 output = &GetTagsOutput{} 1557 req = c.newRequest(op, input, output) 1558 return 1559} 1560 1561// GetTags API operation for AWS Cost Explorer Service. 1562// 1563// Queries for available tag keys and tag values for a specified period. You 1564// can search the tag values for an arbitrary string. 1565// 1566// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1567// with awserr.Error's Code and Message methods to get detailed information about 1568// the error. 1569// 1570// See the AWS API reference guide for AWS Cost Explorer Service's 1571// API operation GetTags for usage and error information. 1572// 1573// Returned Error Types: 1574// * LimitExceededException 1575// You made too many calls in a short period of time. Try again later. 1576// 1577// * BillExpirationException 1578// The requested report expired. Update the date interval and try again. 1579// 1580// * DataUnavailableException 1581// The requested data is unavailable. 1582// 1583// * InvalidNextTokenException 1584// The pagination token is invalid. Try again without a pagination token. 1585// 1586// * RequestChangedException 1587// Your request parameters changed between pages. Try again with the old parameters 1588// or without a pagination token. 1589// 1590// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags 1591func (c *CostExplorer) GetTags(input *GetTagsInput) (*GetTagsOutput, error) { 1592 req, out := c.GetTagsRequest(input) 1593 return out, req.Send() 1594} 1595 1596// GetTagsWithContext is the same as GetTags with the addition of 1597// the ability to pass a context and additional request options. 1598// 1599// See GetTags for details on how to use this API operation. 1600// 1601// The context must be non-nil and will be used for request cancellation. If 1602// the context is nil a panic will occur. In the future the SDK may create 1603// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1604// for more information on using Contexts. 1605func (c *CostExplorer) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) { 1606 req, out := c.GetTagsRequest(input) 1607 req.SetContext(ctx) 1608 req.ApplyOptions(opts...) 1609 return out, req.Send() 1610} 1611 1612const opGetUsageForecast = "GetUsageForecast" 1613 1614// GetUsageForecastRequest generates a "aws/request.Request" representing the 1615// client's request for the GetUsageForecast operation. The "output" return 1616// value will be populated with the request's response once the request completes 1617// successfully. 1618// 1619// Use "Send" method on the returned Request to send the API call to the service. 1620// the "output" return value is not valid until after Send returns without error. 1621// 1622// See GetUsageForecast for more information on using the GetUsageForecast 1623// API call, and error handling. 1624// 1625// This method is useful when you want to inject custom logic or configuration 1626// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1627// 1628// 1629// // Example sending a request using the GetUsageForecastRequest method. 1630// req, resp := client.GetUsageForecastRequest(params) 1631// 1632// err := req.Send() 1633// if err == nil { // resp is now filled 1634// fmt.Println(resp) 1635// } 1636// 1637// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast 1638func (c *CostExplorer) GetUsageForecastRequest(input *GetUsageForecastInput) (req *request.Request, output *GetUsageForecastOutput) { 1639 op := &request.Operation{ 1640 Name: opGetUsageForecast, 1641 HTTPMethod: "POST", 1642 HTTPPath: "/", 1643 } 1644 1645 if input == nil { 1646 input = &GetUsageForecastInput{} 1647 } 1648 1649 output = &GetUsageForecastOutput{} 1650 req = c.newRequest(op, input, output) 1651 return 1652} 1653 1654// GetUsageForecast API operation for AWS Cost Explorer Service. 1655// 1656// Retrieves a forecast for how much Amazon Web Services predicts that you will 1657// use over the forecast time period that you select, based on your past usage. 1658// 1659// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1660// with awserr.Error's Code and Message methods to get detailed information about 1661// the error. 1662// 1663// See the AWS API reference guide for AWS Cost Explorer Service's 1664// API operation GetUsageForecast for usage and error information. 1665// 1666// Returned Error Types: 1667// * LimitExceededException 1668// You made too many calls in a short period of time. Try again later. 1669// 1670// * DataUnavailableException 1671// The requested data is unavailable. 1672// 1673// * UnresolvableUsageUnitException 1674// Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup 1675// filter selections that contain matching units, for example: hours. 1676// 1677// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast 1678func (c *CostExplorer) GetUsageForecast(input *GetUsageForecastInput) (*GetUsageForecastOutput, error) { 1679 req, out := c.GetUsageForecastRequest(input) 1680 return out, req.Send() 1681} 1682 1683// GetUsageForecastWithContext is the same as GetUsageForecast with the addition of 1684// the ability to pass a context and additional request options. 1685// 1686// See GetUsageForecast for details on how to use this API operation. 1687// 1688// The context must be non-nil and will be used for request cancellation. If 1689// the context is nil a panic will occur. In the future the SDK may create 1690// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1691// for more information on using Contexts. 1692func (c *CostExplorer) GetUsageForecastWithContext(ctx aws.Context, input *GetUsageForecastInput, opts ...request.Option) (*GetUsageForecastOutput, error) { 1693 req, out := c.GetUsageForecastRequest(input) 1694 req.SetContext(ctx) 1695 req.ApplyOptions(opts...) 1696 return out, req.Send() 1697} 1698 1699const opListCostCategoryDefinitions = "ListCostCategoryDefinitions" 1700 1701// ListCostCategoryDefinitionsRequest generates a "aws/request.Request" representing the 1702// client's request for the ListCostCategoryDefinitions operation. The "output" return 1703// value will be populated with the request's response once the request completes 1704// successfully. 1705// 1706// Use "Send" method on the returned Request to send the API call to the service. 1707// the "output" return value is not valid until after Send returns without error. 1708// 1709// See ListCostCategoryDefinitions for more information on using the ListCostCategoryDefinitions 1710// API call, and error handling. 1711// 1712// This method is useful when you want to inject custom logic or configuration 1713// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1714// 1715// 1716// // Example sending a request using the ListCostCategoryDefinitionsRequest method. 1717// req, resp := client.ListCostCategoryDefinitionsRequest(params) 1718// 1719// err := req.Send() 1720// if err == nil { // resp is now filled 1721// fmt.Println(resp) 1722// } 1723// 1724// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions 1725func (c *CostExplorer) ListCostCategoryDefinitionsRequest(input *ListCostCategoryDefinitionsInput) (req *request.Request, output *ListCostCategoryDefinitionsOutput) { 1726 op := &request.Operation{ 1727 Name: opListCostCategoryDefinitions, 1728 HTTPMethod: "POST", 1729 HTTPPath: "/", 1730 Paginator: &request.Paginator{ 1731 InputTokens: []string{"NextToken"}, 1732 OutputTokens: []string{"NextToken"}, 1733 LimitToken: "MaxResults", 1734 TruncationToken: "", 1735 }, 1736 } 1737 1738 if input == nil { 1739 input = &ListCostCategoryDefinitionsInput{} 1740 } 1741 1742 output = &ListCostCategoryDefinitionsOutput{} 1743 req = c.newRequest(op, input, output) 1744 return 1745} 1746 1747// ListCostCategoryDefinitions API operation for AWS Cost Explorer Service. 1748// 1749// Returns the name, ARN, NumberOfRules and effective dates of all Cost Categories 1750// defined in the account. You have the option to use EffectiveOn to return 1751// a list of Cost Categories that were active on a specific date. If there is 1752// no EffectiveOn specified, you’ll see Cost Categories that are effective 1753// on the current date. If Cost Category is still effective, EffectiveEnd is 1754// omitted in the response. ListCostCategoryDefinitions supports pagination. 1755// The request can have a MaxResults range up to 100. 1756// 1757// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1758// with awserr.Error's Code and Message methods to get detailed information about 1759// the error. 1760// 1761// See the AWS API reference guide for AWS Cost Explorer Service's 1762// API operation ListCostCategoryDefinitions for usage and error information. 1763// 1764// Returned Error Types: 1765// * LimitExceededException 1766// You made too many calls in a short period of time. Try again later. 1767// 1768// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/ListCostCategoryDefinitions 1769func (c *CostExplorer) ListCostCategoryDefinitions(input *ListCostCategoryDefinitionsInput) (*ListCostCategoryDefinitionsOutput, error) { 1770 req, out := c.ListCostCategoryDefinitionsRequest(input) 1771 return out, req.Send() 1772} 1773 1774// ListCostCategoryDefinitionsWithContext is the same as ListCostCategoryDefinitions with the addition of 1775// the ability to pass a context and additional request options. 1776// 1777// See ListCostCategoryDefinitions for details on how to use this API operation. 1778// 1779// The context must be non-nil and will be used for request cancellation. If 1780// the context is nil a panic will occur. In the future the SDK may create 1781// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1782// for more information on using Contexts. 1783func (c *CostExplorer) ListCostCategoryDefinitionsWithContext(ctx aws.Context, input *ListCostCategoryDefinitionsInput, opts ...request.Option) (*ListCostCategoryDefinitionsOutput, error) { 1784 req, out := c.ListCostCategoryDefinitionsRequest(input) 1785 req.SetContext(ctx) 1786 req.ApplyOptions(opts...) 1787 return out, req.Send() 1788} 1789 1790// ListCostCategoryDefinitionsPages iterates over the pages of a ListCostCategoryDefinitions operation, 1791// calling the "fn" function with the response data for each page. To stop 1792// iterating, return false from the fn function. 1793// 1794// See ListCostCategoryDefinitions method for more information on how to use this operation. 1795// 1796// Note: This operation can generate multiple requests to a service. 1797// 1798// // Example iterating over at most 3 pages of a ListCostCategoryDefinitions operation. 1799// pageNum := 0 1800// err := client.ListCostCategoryDefinitionsPages(params, 1801// func(page *costexplorer.ListCostCategoryDefinitionsOutput, lastPage bool) bool { 1802// pageNum++ 1803// fmt.Println(page) 1804// return pageNum <= 3 1805// }) 1806// 1807func (c *CostExplorer) ListCostCategoryDefinitionsPages(input *ListCostCategoryDefinitionsInput, fn func(*ListCostCategoryDefinitionsOutput, bool) bool) error { 1808 return c.ListCostCategoryDefinitionsPagesWithContext(aws.BackgroundContext(), input, fn) 1809} 1810 1811// ListCostCategoryDefinitionsPagesWithContext same as ListCostCategoryDefinitionsPages except 1812// it takes a Context and allows setting request options on the pages. 1813// 1814// The context must be non-nil and will be used for request cancellation. If 1815// the context is nil a panic will occur. In the future the SDK may create 1816// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1817// for more information on using Contexts. 1818func (c *CostExplorer) ListCostCategoryDefinitionsPagesWithContext(ctx aws.Context, input *ListCostCategoryDefinitionsInput, fn func(*ListCostCategoryDefinitionsOutput, bool) bool, opts ...request.Option) error { 1819 p := request.Pagination{ 1820 NewRequest: func() (*request.Request, error) { 1821 var inCpy *ListCostCategoryDefinitionsInput 1822 if input != nil { 1823 tmp := *input 1824 inCpy = &tmp 1825 } 1826 req, _ := c.ListCostCategoryDefinitionsRequest(inCpy) 1827 req.SetContext(ctx) 1828 req.ApplyOptions(opts...) 1829 return req, nil 1830 }, 1831 } 1832 1833 for p.Next() { 1834 if !fn(p.Page().(*ListCostCategoryDefinitionsOutput), !p.HasNextPage()) { 1835 break 1836 } 1837 } 1838 1839 return p.Err() 1840} 1841 1842const opUpdateCostCategoryDefinition = "UpdateCostCategoryDefinition" 1843 1844// UpdateCostCategoryDefinitionRequest generates a "aws/request.Request" representing the 1845// client's request for the UpdateCostCategoryDefinition operation. The "output" return 1846// value will be populated with the request's response once the request completes 1847// successfully. 1848// 1849// Use "Send" method on the returned Request to send the API call to the service. 1850// the "output" return value is not valid until after Send returns without error. 1851// 1852// See UpdateCostCategoryDefinition for more information on using the UpdateCostCategoryDefinition 1853// API call, and error handling. 1854// 1855// This method is useful when you want to inject custom logic or configuration 1856// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1857// 1858// 1859// // Example sending a request using the UpdateCostCategoryDefinitionRequest method. 1860// req, resp := client.UpdateCostCategoryDefinitionRequest(params) 1861// 1862// err := req.Send() 1863// if err == nil { // resp is now filled 1864// fmt.Println(resp) 1865// } 1866// 1867// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition 1868func (c *CostExplorer) UpdateCostCategoryDefinitionRequest(input *UpdateCostCategoryDefinitionInput) (req *request.Request, output *UpdateCostCategoryDefinitionOutput) { 1869 op := &request.Operation{ 1870 Name: opUpdateCostCategoryDefinition, 1871 HTTPMethod: "POST", 1872 HTTPPath: "/", 1873 } 1874 1875 if input == nil { 1876 input = &UpdateCostCategoryDefinitionInput{} 1877 } 1878 1879 output = &UpdateCostCategoryDefinitionOutput{} 1880 req = c.newRequest(op, input, output) 1881 return 1882} 1883 1884// UpdateCostCategoryDefinition API operation for AWS Cost Explorer Service. 1885// 1886// Updates an existing Cost Category. Changes made to the Cost Category rules 1887// will be used to categorize the current month’s expenses and future expenses. 1888// This won’t change categorization for the previous months. 1889// 1890// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1891// with awserr.Error's Code and Message methods to get detailed information about 1892// the error. 1893// 1894// See the AWS API reference guide for AWS Cost Explorer Service's 1895// API operation UpdateCostCategoryDefinition for usage and error information. 1896// 1897// Returned Error Types: 1898// * ResourceNotFoundException 1899// The specified ARN in the request doesn't exist. 1900// 1901// * ServiceQuotaExceededException 1902// You've reached the limit on the number of resources you can create, or exceeded 1903// the size of an individual resources. 1904// 1905// * LimitExceededException 1906// You made too many calls in a short period of time. Try again later. 1907// 1908// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/UpdateCostCategoryDefinition 1909func (c *CostExplorer) UpdateCostCategoryDefinition(input *UpdateCostCategoryDefinitionInput) (*UpdateCostCategoryDefinitionOutput, error) { 1910 req, out := c.UpdateCostCategoryDefinitionRequest(input) 1911 return out, req.Send() 1912} 1913 1914// UpdateCostCategoryDefinitionWithContext is the same as UpdateCostCategoryDefinition with the addition of 1915// the ability to pass a context and additional request options. 1916// 1917// See UpdateCostCategoryDefinition for details on how to use this API operation. 1918// 1919// The context must be non-nil and will be used for request cancellation. If 1920// the context is nil a panic will occur. In the future the SDK may create 1921// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1922// for more information on using Contexts. 1923func (c *CostExplorer) UpdateCostCategoryDefinitionWithContext(ctx aws.Context, input *UpdateCostCategoryDefinitionInput, opts ...request.Option) (*UpdateCostCategoryDefinitionOutput, error) { 1924 req, out := c.UpdateCostCategoryDefinitionRequest(input) 1925 req.SetContext(ctx) 1926 req.ApplyOptions(opts...) 1927 return out, req.Send() 1928} 1929 1930// The requested report expired. Update the date interval and try again. 1931type BillExpirationException struct { 1932 _ struct{} `type:"structure"` 1933 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 1934 1935 Message_ *string `locationName:"Message" type:"string"` 1936} 1937 1938// String returns the string representation 1939func (s BillExpirationException) String() string { 1940 return awsutil.Prettify(s) 1941} 1942 1943// GoString returns the string representation 1944func (s BillExpirationException) GoString() string { 1945 return s.String() 1946} 1947 1948func newErrorBillExpirationException(v protocol.ResponseMetadata) error { 1949 return &BillExpirationException{ 1950 RespMetadata: v, 1951 } 1952} 1953 1954// Code returns the exception type name. 1955func (s *BillExpirationException) Code() string { 1956 return "BillExpirationException" 1957} 1958 1959// Message returns the exception's message. 1960func (s *BillExpirationException) Message() string { 1961 if s.Message_ != nil { 1962 return *s.Message_ 1963 } 1964 return "" 1965} 1966 1967// OrigErr always returns nil, satisfies awserr.Error interface. 1968func (s *BillExpirationException) OrigErr() error { 1969 return nil 1970} 1971 1972func (s *BillExpirationException) Error() string { 1973 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 1974} 1975 1976// Status code returns the HTTP status code for the request's response error. 1977func (s *BillExpirationException) StatusCode() int { 1978 return s.RespMetadata.StatusCode 1979} 1980 1981// RequestID returns the service's response RequestID for request. 1982func (s *BillExpirationException) RequestID() string { 1983 return s.RespMetadata.RequestID 1984} 1985 1986// The structure of Cost Categories. This includes detailed metadata and the 1987// set of rules for the CostCategory object. 1988type CostCategory struct { 1989 _ struct{} `type:"structure"` 1990 1991 // The unique identifier for your Cost Category. 1992 // 1993 // CostCategoryArn is a required field 1994 CostCategoryArn *string `min:"20" type:"string" required:"true"` 1995 1996 // The Cost Category's effective end date. 1997 EffectiveEnd *string `min:"20" type:"string"` 1998 1999 // The Cost Category's effective start date. 2000 // 2001 // EffectiveStart is a required field 2002 EffectiveStart *string `min:"20" type:"string" required:"true"` 2003 2004 // The unique name of the Cost Category. 2005 // 2006 // Name is a required field 2007 Name *string `min:"1" type:"string" required:"true"` 2008 2009 // The rule schema version in this particular Cost Category. 2010 // 2011 // RuleVersion is a required field 2012 RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` 2013 2014 // Rules are processed in order. If there are multiple rules that match the 2015 // line item, then the first rule to match is used to determine that Cost Category 2016 // value. 2017 // 2018 // Rules is a required field 2019 Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` 2020} 2021 2022// String returns the string representation 2023func (s CostCategory) String() string { 2024 return awsutil.Prettify(s) 2025} 2026 2027// GoString returns the string representation 2028func (s CostCategory) GoString() string { 2029 return s.String() 2030} 2031 2032// SetCostCategoryArn sets the CostCategoryArn field's value. 2033func (s *CostCategory) SetCostCategoryArn(v string) *CostCategory { 2034 s.CostCategoryArn = &v 2035 return s 2036} 2037 2038// SetEffectiveEnd sets the EffectiveEnd field's value. 2039func (s *CostCategory) SetEffectiveEnd(v string) *CostCategory { 2040 s.EffectiveEnd = &v 2041 return s 2042} 2043 2044// SetEffectiveStart sets the EffectiveStart field's value. 2045func (s *CostCategory) SetEffectiveStart(v string) *CostCategory { 2046 s.EffectiveStart = &v 2047 return s 2048} 2049 2050// SetName sets the Name field's value. 2051func (s *CostCategory) SetName(v string) *CostCategory { 2052 s.Name = &v 2053 return s 2054} 2055 2056// SetRuleVersion sets the RuleVersion field's value. 2057func (s *CostCategory) SetRuleVersion(v string) *CostCategory { 2058 s.RuleVersion = &v 2059 return s 2060} 2061 2062// SetRules sets the Rules field's value. 2063func (s *CostCategory) SetRules(v []*CostCategoryRule) *CostCategory { 2064 s.Rules = v 2065 return s 2066} 2067 2068// A reference to a Cost Category containing only enough information to identify 2069// the Cost Category. 2070// 2071// You can use this information to retrieve the full Cost Category information 2072// using DescribeCostCategory. 2073type CostCategoryReference struct { 2074 _ struct{} `type:"structure"` 2075 2076 // The unique identifier for your Cost Category. 2077 CostCategoryArn *string `min:"20" type:"string"` 2078 2079 // The Cost Category's effective end date. 2080 EffectiveEnd *string `min:"20" type:"string"` 2081 2082 // The Cost Category's effective start date. 2083 EffectiveStart *string `min:"20" type:"string"` 2084 2085 // The unique name of the Cost Category. 2086 Name *string `min:"1" type:"string"` 2087 2088 // The number of rules associated with a specific Cost Category. 2089 NumberOfRules *int64 `type:"integer"` 2090} 2091 2092// String returns the string representation 2093func (s CostCategoryReference) String() string { 2094 return awsutil.Prettify(s) 2095} 2096 2097// GoString returns the string representation 2098func (s CostCategoryReference) GoString() string { 2099 return s.String() 2100} 2101 2102// SetCostCategoryArn sets the CostCategoryArn field's value. 2103func (s *CostCategoryReference) SetCostCategoryArn(v string) *CostCategoryReference { 2104 s.CostCategoryArn = &v 2105 return s 2106} 2107 2108// SetEffectiveEnd sets the EffectiveEnd field's value. 2109func (s *CostCategoryReference) SetEffectiveEnd(v string) *CostCategoryReference { 2110 s.EffectiveEnd = &v 2111 return s 2112} 2113 2114// SetEffectiveStart sets the EffectiveStart field's value. 2115func (s *CostCategoryReference) SetEffectiveStart(v string) *CostCategoryReference { 2116 s.EffectiveStart = &v 2117 return s 2118} 2119 2120// SetName sets the Name field's value. 2121func (s *CostCategoryReference) SetName(v string) *CostCategoryReference { 2122 s.Name = &v 2123 return s 2124} 2125 2126// SetNumberOfRules sets the NumberOfRules field's value. 2127func (s *CostCategoryReference) SetNumberOfRules(v int64) *CostCategoryReference { 2128 s.NumberOfRules = &v 2129 return s 2130} 2131 2132// Rules are processed in order. If there are multiple rules that match the 2133// line item, then the first rule to match is used to determine that Cost Category 2134// value. 2135type CostCategoryRule struct { 2136 _ struct{} `type:"structure"` 2137 2138 // An Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) 2139 // object used to categorize costs. This supports dimensions, Tags, and nested 2140 // expressions. Currently the only dimensions supported are LINKED_ACCOUNT, 2141 // SERVICE_CODE, RECORD_TYPE, and LINKED_ACCOUNT_NAME. 2142 // 2143 // Root level OR is not supported. We recommend that you create a separate rule 2144 // instead. 2145 // 2146 // RECORD_TYPE is a dimension used for Cost Explorer APIs, and is also supported 2147 // for Cost Category expressions. This dimension uses different terms, depending 2148 // on whether you're using the console or API/JSON editor. For a detailed comparison, 2149 // see Term Comparisons (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms) 2150 // in the AWS Billing and Cost Management User Guide. 2151 // 2152 // Rule is a required field 2153 Rule *Expression `type:"structure" required:"true"` 2154 2155 // The value a line item will be categorized as, if it matches the rule. 2156 // 2157 // Value is a required field 2158 Value *string `min:"1" type:"string" required:"true"` 2159} 2160 2161// String returns the string representation 2162func (s CostCategoryRule) String() string { 2163 return awsutil.Prettify(s) 2164} 2165 2166// GoString returns the string representation 2167func (s CostCategoryRule) GoString() string { 2168 return s.String() 2169} 2170 2171// Validate inspects the fields of the type to determine if they are valid. 2172func (s *CostCategoryRule) Validate() error { 2173 invalidParams := request.ErrInvalidParams{Context: "CostCategoryRule"} 2174 if s.Rule == nil { 2175 invalidParams.Add(request.NewErrParamRequired("Rule")) 2176 } 2177 if s.Value == nil { 2178 invalidParams.Add(request.NewErrParamRequired("Value")) 2179 } 2180 if s.Value != nil && len(*s.Value) < 1 { 2181 invalidParams.Add(request.NewErrParamMinLen("Value", 1)) 2182 } 2183 if s.Rule != nil { 2184 if err := s.Rule.Validate(); err != nil { 2185 invalidParams.AddNested("Rule", err.(request.ErrInvalidParams)) 2186 } 2187 } 2188 2189 if invalidParams.Len() > 0 { 2190 return invalidParams 2191 } 2192 return nil 2193} 2194 2195// SetRule sets the Rule field's value. 2196func (s *CostCategoryRule) SetRule(v *Expression) *CostCategoryRule { 2197 s.Rule = v 2198 return s 2199} 2200 2201// SetValue sets the Value field's value. 2202func (s *CostCategoryRule) SetValue(v string) *CostCategoryRule { 2203 s.Value = &v 2204 return s 2205} 2206 2207// The Cost Categories values used for filtering the costs. 2208type CostCategoryValues struct { 2209 _ struct{} `type:"structure"` 2210 2211 // The unique name of the Cost Category. 2212 Key *string `min:"1" type:"string"` 2213 2214 // The specific value of the Cost Category. 2215 Values []*string `type:"list"` 2216} 2217 2218// String returns the string representation 2219func (s CostCategoryValues) String() string { 2220 return awsutil.Prettify(s) 2221} 2222 2223// GoString returns the string representation 2224func (s CostCategoryValues) GoString() string { 2225 return s.String() 2226} 2227 2228// Validate inspects the fields of the type to determine if they are valid. 2229func (s *CostCategoryValues) Validate() error { 2230 invalidParams := request.ErrInvalidParams{Context: "CostCategoryValues"} 2231 if s.Key != nil && len(*s.Key) < 1 { 2232 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 2233 } 2234 2235 if invalidParams.Len() > 0 { 2236 return invalidParams 2237 } 2238 return nil 2239} 2240 2241// SetKey sets the Key field's value. 2242func (s *CostCategoryValues) SetKey(v string) *CostCategoryValues { 2243 s.Key = &v 2244 return s 2245} 2246 2247// SetValues sets the Values field's value. 2248func (s *CostCategoryValues) SetValues(v []*string) *CostCategoryValues { 2249 s.Values = v 2250 return s 2251} 2252 2253// The amount of instance usage that a reservation covered. 2254type Coverage struct { 2255 _ struct{} `type:"structure"` 2256 2257 // The amount of cost that the reservation covered. 2258 CoverageCost *CoverageCost `type:"structure"` 2259 2260 // The amount of instance usage that the reservation covered, in hours. 2261 CoverageHours *CoverageHours `type:"structure"` 2262 2263 // The amount of instance usage that the reservation covered, in normalized 2264 // units. 2265 CoverageNormalizedUnits *CoverageNormalizedUnits `type:"structure"` 2266} 2267 2268// String returns the string representation 2269func (s Coverage) String() string { 2270 return awsutil.Prettify(s) 2271} 2272 2273// GoString returns the string representation 2274func (s Coverage) GoString() string { 2275 return s.String() 2276} 2277 2278// SetCoverageCost sets the CoverageCost field's value. 2279func (s *Coverage) SetCoverageCost(v *CoverageCost) *Coverage { 2280 s.CoverageCost = v 2281 return s 2282} 2283 2284// SetCoverageHours sets the CoverageHours field's value. 2285func (s *Coverage) SetCoverageHours(v *CoverageHours) *Coverage { 2286 s.CoverageHours = v 2287 return s 2288} 2289 2290// SetCoverageNormalizedUnits sets the CoverageNormalizedUnits field's value. 2291func (s *Coverage) SetCoverageNormalizedUnits(v *CoverageNormalizedUnits) *Coverage { 2292 s.CoverageNormalizedUnits = v 2293 return s 2294} 2295 2296// Reservation coverage for a specified period, in hours. 2297type CoverageByTime struct { 2298 _ struct{} `type:"structure"` 2299 2300 // The groups of instances that the reservation covered. 2301 Groups []*ReservationCoverageGroup `type:"list"` 2302 2303 // The period that this coverage was used over. 2304 TimePeriod *DateInterval `type:"structure"` 2305 2306 // The total reservation coverage, in hours. 2307 Total *Coverage `type:"structure"` 2308} 2309 2310// String returns the string representation 2311func (s CoverageByTime) String() string { 2312 return awsutil.Prettify(s) 2313} 2314 2315// GoString returns the string representation 2316func (s CoverageByTime) GoString() string { 2317 return s.String() 2318} 2319 2320// SetGroups sets the Groups field's value. 2321func (s *CoverageByTime) SetGroups(v []*ReservationCoverageGroup) *CoverageByTime { 2322 s.Groups = v 2323 return s 2324} 2325 2326// SetTimePeriod sets the TimePeriod field's value. 2327func (s *CoverageByTime) SetTimePeriod(v *DateInterval) *CoverageByTime { 2328 s.TimePeriod = v 2329 return s 2330} 2331 2332// SetTotal sets the Total field's value. 2333func (s *CoverageByTime) SetTotal(v *Coverage) *CoverageByTime { 2334 s.Total = v 2335 return s 2336} 2337 2338// How much it costs to run an instance. 2339type CoverageCost struct { 2340 _ struct{} `type:"structure"` 2341 2342 // How much an On-Demand Instance costs. 2343 OnDemandCost *string `type:"string"` 2344} 2345 2346// String returns the string representation 2347func (s CoverageCost) String() string { 2348 return awsutil.Prettify(s) 2349} 2350 2351// GoString returns the string representation 2352func (s CoverageCost) GoString() string { 2353 return s.String() 2354} 2355 2356// SetOnDemandCost sets the OnDemandCost field's value. 2357func (s *CoverageCost) SetOnDemandCost(v string) *CoverageCost { 2358 s.OnDemandCost = &v 2359 return s 2360} 2361 2362// How long a running instance either used a reservation or was On-Demand. 2363type CoverageHours struct { 2364 _ struct{} `type:"structure"` 2365 2366 // The percentage of instance hours that a reservation covered. 2367 CoverageHoursPercentage *string `type:"string"` 2368 2369 // The number of instance running hours that On-Demand Instances covered. 2370 OnDemandHours *string `type:"string"` 2371 2372 // The number of instance running hours that reservations covered. 2373 ReservedHours *string `type:"string"` 2374 2375 // The total instance usage, in hours. 2376 TotalRunningHours *string `type:"string"` 2377} 2378 2379// String returns the string representation 2380func (s CoverageHours) String() string { 2381 return awsutil.Prettify(s) 2382} 2383 2384// GoString returns the string representation 2385func (s CoverageHours) GoString() string { 2386 return s.String() 2387} 2388 2389// SetCoverageHoursPercentage sets the CoverageHoursPercentage field's value. 2390func (s *CoverageHours) SetCoverageHoursPercentage(v string) *CoverageHours { 2391 s.CoverageHoursPercentage = &v 2392 return s 2393} 2394 2395// SetOnDemandHours sets the OnDemandHours field's value. 2396func (s *CoverageHours) SetOnDemandHours(v string) *CoverageHours { 2397 s.OnDemandHours = &v 2398 return s 2399} 2400 2401// SetReservedHours sets the ReservedHours field's value. 2402func (s *CoverageHours) SetReservedHours(v string) *CoverageHours { 2403 s.ReservedHours = &v 2404 return s 2405} 2406 2407// SetTotalRunningHours sets the TotalRunningHours field's value. 2408func (s *CoverageHours) SetTotalRunningHours(v string) *CoverageHours { 2409 s.TotalRunningHours = &v 2410 return s 2411} 2412 2413// The amount of instance usage, in normalized units. Normalized units enable 2414// you to see your EC2 usage for multiple sizes of instances in a uniform way. 2415// For example, suppose you run an xlarge instance and a 2xlarge instance. If 2416// you run both instances for the same amount of time, the 2xlarge instance 2417// uses twice as much of your reservation as the xlarge instance, even though 2418// both instances show only one instance-hour. Using normalized units instead 2419// of instance-hours, the xlarge instance used 8 normalized units, and the 2xlarge 2420// instance used 16 normalized units. 2421// 2422// For more information, see Modifying Reserved Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) 2423// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. 2424type CoverageNormalizedUnits struct { 2425 _ struct{} `type:"structure"` 2426 2427 // The percentage of your used instance normalized units that a reservation 2428 // covers. 2429 CoverageNormalizedUnitsPercentage *string `type:"string"` 2430 2431 // The number of normalized units that are covered by On-Demand Instances instead 2432 // of a reservation. 2433 OnDemandNormalizedUnits *string `type:"string"` 2434 2435 // The number of normalized units that a reservation covers. 2436 ReservedNormalizedUnits *string `type:"string"` 2437 2438 // The total number of normalized units that you used. 2439 TotalRunningNormalizedUnits *string `type:"string"` 2440} 2441 2442// String returns the string representation 2443func (s CoverageNormalizedUnits) String() string { 2444 return awsutil.Prettify(s) 2445} 2446 2447// GoString returns the string representation 2448func (s CoverageNormalizedUnits) GoString() string { 2449 return s.String() 2450} 2451 2452// SetCoverageNormalizedUnitsPercentage sets the CoverageNormalizedUnitsPercentage field's value. 2453func (s *CoverageNormalizedUnits) SetCoverageNormalizedUnitsPercentage(v string) *CoverageNormalizedUnits { 2454 s.CoverageNormalizedUnitsPercentage = &v 2455 return s 2456} 2457 2458// SetOnDemandNormalizedUnits sets the OnDemandNormalizedUnits field's value. 2459func (s *CoverageNormalizedUnits) SetOnDemandNormalizedUnits(v string) *CoverageNormalizedUnits { 2460 s.OnDemandNormalizedUnits = &v 2461 return s 2462} 2463 2464// SetReservedNormalizedUnits sets the ReservedNormalizedUnits field's value. 2465func (s *CoverageNormalizedUnits) SetReservedNormalizedUnits(v string) *CoverageNormalizedUnits { 2466 s.ReservedNormalizedUnits = &v 2467 return s 2468} 2469 2470// SetTotalRunningNormalizedUnits sets the TotalRunningNormalizedUnits field's value. 2471func (s *CoverageNormalizedUnits) SetTotalRunningNormalizedUnits(v string) *CoverageNormalizedUnits { 2472 s.TotalRunningNormalizedUnits = &v 2473 return s 2474} 2475 2476type CreateCostCategoryDefinitionInput struct { 2477 _ struct{} `type:"structure"` 2478 2479 // The unique name of the Cost Category. 2480 // 2481 // Name is a required field 2482 Name *string `min:"1" type:"string" required:"true"` 2483 2484 // The rule schema version in this particular Cost Category. 2485 // 2486 // RuleVersion is a required field 2487 RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` 2488 2489 // The Cost Category rules used to categorize costs. For more information, see 2490 // CostCategoryRule (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html). 2491 // 2492 // Rules is a required field 2493 Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` 2494} 2495 2496// String returns the string representation 2497func (s CreateCostCategoryDefinitionInput) String() string { 2498 return awsutil.Prettify(s) 2499} 2500 2501// GoString returns the string representation 2502func (s CreateCostCategoryDefinitionInput) GoString() string { 2503 return s.String() 2504} 2505 2506// Validate inspects the fields of the type to determine if they are valid. 2507func (s *CreateCostCategoryDefinitionInput) Validate() error { 2508 invalidParams := request.ErrInvalidParams{Context: "CreateCostCategoryDefinitionInput"} 2509 if s.Name == nil { 2510 invalidParams.Add(request.NewErrParamRequired("Name")) 2511 } 2512 if s.Name != nil && len(*s.Name) < 1 { 2513 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 2514 } 2515 if s.RuleVersion == nil { 2516 invalidParams.Add(request.NewErrParamRequired("RuleVersion")) 2517 } 2518 if s.Rules == nil { 2519 invalidParams.Add(request.NewErrParamRequired("Rules")) 2520 } 2521 if s.Rules != nil && len(s.Rules) < 1 { 2522 invalidParams.Add(request.NewErrParamMinLen("Rules", 1)) 2523 } 2524 if s.Rules != nil { 2525 for i, v := range s.Rules { 2526 if v == nil { 2527 continue 2528 } 2529 if err := v.Validate(); err != nil { 2530 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 2531 } 2532 } 2533 } 2534 2535 if invalidParams.Len() > 0 { 2536 return invalidParams 2537 } 2538 return nil 2539} 2540 2541// SetName sets the Name field's value. 2542func (s *CreateCostCategoryDefinitionInput) SetName(v string) *CreateCostCategoryDefinitionInput { 2543 s.Name = &v 2544 return s 2545} 2546 2547// SetRuleVersion sets the RuleVersion field's value. 2548func (s *CreateCostCategoryDefinitionInput) SetRuleVersion(v string) *CreateCostCategoryDefinitionInput { 2549 s.RuleVersion = &v 2550 return s 2551} 2552 2553// SetRules sets the Rules field's value. 2554func (s *CreateCostCategoryDefinitionInput) SetRules(v []*CostCategoryRule) *CreateCostCategoryDefinitionInput { 2555 s.Rules = v 2556 return s 2557} 2558 2559type CreateCostCategoryDefinitionOutput struct { 2560 _ struct{} `type:"structure"` 2561 2562 // The unique identifier for your newly created Cost Category. 2563 CostCategoryArn *string `min:"20" type:"string"` 2564 2565 // The Cost Category's effective start date. 2566 EffectiveStart *string `min:"20" type:"string"` 2567} 2568 2569// String returns the string representation 2570func (s CreateCostCategoryDefinitionOutput) String() string { 2571 return awsutil.Prettify(s) 2572} 2573 2574// GoString returns the string representation 2575func (s CreateCostCategoryDefinitionOutput) GoString() string { 2576 return s.String() 2577} 2578 2579// SetCostCategoryArn sets the CostCategoryArn field's value. 2580func (s *CreateCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *CreateCostCategoryDefinitionOutput { 2581 s.CostCategoryArn = &v 2582 return s 2583} 2584 2585// SetEffectiveStart sets the EffectiveStart field's value. 2586func (s *CreateCostCategoryDefinitionOutput) SetEffectiveStart(v string) *CreateCostCategoryDefinitionOutput { 2587 s.EffectiveStart = &v 2588 return s 2589} 2590 2591// Context about the current instance. 2592type CurrentInstance struct { 2593 _ struct{} `type:"structure"` 2594 2595 // The currency code that Amazon Web Services used to calculate the costs for 2596 // this instance. 2597 CurrencyCode *string `type:"string"` 2598 2599 // The name you've given an instance. This field will show as blank if you haven't 2600 // given the instance a name. 2601 InstanceName *string `type:"string"` 2602 2603 // Current On Demand cost of operating this instance on a monthly basis. 2604 MonthlyCost *string `type:"string"` 2605 2606 // Number of hours during the lookback period billed at On Demand rates. 2607 OnDemandHoursInLookbackPeriod *string `type:"string"` 2608 2609 // Number of hours during the lookback period covered by reservations. 2610 ReservationCoveredHoursInLookbackPeriod *string `type:"string"` 2611 2612 // Details about the resource and utilization. 2613 ResourceDetails *ResourceDetails `type:"structure"` 2614 2615 // Resource ID of the current instance. 2616 ResourceId *string `type:"string"` 2617 2618 // Utilization information of the current instance during the lookback period. 2619 ResourceUtilization *ResourceUtilization `type:"structure"` 2620 2621 // Number of hours during the lookback period covered by Savings Plans. 2622 SavingsPlansCoveredHoursInLookbackPeriod *string `type:"string"` 2623 2624 // Cost allocation resource tags applied to the instance. 2625 Tags []*TagValues `type:"list"` 2626 2627 // The total number of hours the instance ran during the lookback period. 2628 TotalRunningHoursInLookbackPeriod *string `type:"string"` 2629} 2630 2631// String returns the string representation 2632func (s CurrentInstance) String() string { 2633 return awsutil.Prettify(s) 2634} 2635 2636// GoString returns the string representation 2637func (s CurrentInstance) GoString() string { 2638 return s.String() 2639} 2640 2641// SetCurrencyCode sets the CurrencyCode field's value. 2642func (s *CurrentInstance) SetCurrencyCode(v string) *CurrentInstance { 2643 s.CurrencyCode = &v 2644 return s 2645} 2646 2647// SetInstanceName sets the InstanceName field's value. 2648func (s *CurrentInstance) SetInstanceName(v string) *CurrentInstance { 2649 s.InstanceName = &v 2650 return s 2651} 2652 2653// SetMonthlyCost sets the MonthlyCost field's value. 2654func (s *CurrentInstance) SetMonthlyCost(v string) *CurrentInstance { 2655 s.MonthlyCost = &v 2656 return s 2657} 2658 2659// SetOnDemandHoursInLookbackPeriod sets the OnDemandHoursInLookbackPeriod field's value. 2660func (s *CurrentInstance) SetOnDemandHoursInLookbackPeriod(v string) *CurrentInstance { 2661 s.OnDemandHoursInLookbackPeriod = &v 2662 return s 2663} 2664 2665// SetReservationCoveredHoursInLookbackPeriod sets the ReservationCoveredHoursInLookbackPeriod field's value. 2666func (s *CurrentInstance) SetReservationCoveredHoursInLookbackPeriod(v string) *CurrentInstance { 2667 s.ReservationCoveredHoursInLookbackPeriod = &v 2668 return s 2669} 2670 2671// SetResourceDetails sets the ResourceDetails field's value. 2672func (s *CurrentInstance) SetResourceDetails(v *ResourceDetails) *CurrentInstance { 2673 s.ResourceDetails = v 2674 return s 2675} 2676 2677// SetResourceId sets the ResourceId field's value. 2678func (s *CurrentInstance) SetResourceId(v string) *CurrentInstance { 2679 s.ResourceId = &v 2680 return s 2681} 2682 2683// SetResourceUtilization sets the ResourceUtilization field's value. 2684func (s *CurrentInstance) SetResourceUtilization(v *ResourceUtilization) *CurrentInstance { 2685 s.ResourceUtilization = v 2686 return s 2687} 2688 2689// SetSavingsPlansCoveredHoursInLookbackPeriod sets the SavingsPlansCoveredHoursInLookbackPeriod field's value. 2690func (s *CurrentInstance) SetSavingsPlansCoveredHoursInLookbackPeriod(v string) *CurrentInstance { 2691 s.SavingsPlansCoveredHoursInLookbackPeriod = &v 2692 return s 2693} 2694 2695// SetTags sets the Tags field's value. 2696func (s *CurrentInstance) SetTags(v []*TagValues) *CurrentInstance { 2697 s.Tags = v 2698 return s 2699} 2700 2701// SetTotalRunningHoursInLookbackPeriod sets the TotalRunningHoursInLookbackPeriod field's value. 2702func (s *CurrentInstance) SetTotalRunningHoursInLookbackPeriod(v string) *CurrentInstance { 2703 s.TotalRunningHoursInLookbackPeriod = &v 2704 return s 2705} 2706 2707// The requested data is unavailable. 2708type DataUnavailableException struct { 2709 _ struct{} `type:"structure"` 2710 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 2711 2712 Message_ *string `locationName:"Message" type:"string"` 2713} 2714 2715// String returns the string representation 2716func (s DataUnavailableException) String() string { 2717 return awsutil.Prettify(s) 2718} 2719 2720// GoString returns the string representation 2721func (s DataUnavailableException) GoString() string { 2722 return s.String() 2723} 2724 2725func newErrorDataUnavailableException(v protocol.ResponseMetadata) error { 2726 return &DataUnavailableException{ 2727 RespMetadata: v, 2728 } 2729} 2730 2731// Code returns the exception type name. 2732func (s *DataUnavailableException) Code() string { 2733 return "DataUnavailableException" 2734} 2735 2736// Message returns the exception's message. 2737func (s *DataUnavailableException) Message() string { 2738 if s.Message_ != nil { 2739 return *s.Message_ 2740 } 2741 return "" 2742} 2743 2744// OrigErr always returns nil, satisfies awserr.Error interface. 2745func (s *DataUnavailableException) OrigErr() error { 2746 return nil 2747} 2748 2749func (s *DataUnavailableException) Error() string { 2750 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 2751} 2752 2753// Status code returns the HTTP status code for the request's response error. 2754func (s *DataUnavailableException) StatusCode() int { 2755 return s.RespMetadata.StatusCode 2756} 2757 2758// RequestID returns the service's response RequestID for request. 2759func (s *DataUnavailableException) RequestID() string { 2760 return s.RespMetadata.RequestID 2761} 2762 2763// The time period that you want the usage and costs for. 2764type DateInterval struct { 2765 _ struct{} `type:"structure"` 2766 2767 // The end of the time period that you want the usage and costs for. The end 2768 // date is exclusive. For example, if end is 2017-05-01, AWS retrieves cost 2769 // and usage data from the start date up to, but not including, 2017-05-01. 2770 // 2771 // End is a required field 2772 End *string `type:"string" required:"true"` 2773 2774 // The beginning of the time period that you want the usage and costs for. The 2775 // start date is inclusive. For example, if start is 2017-01-01, AWS retrieves 2776 // cost and usage data starting at 2017-01-01 up to the end date. 2777 // 2778 // Start is a required field 2779 Start *string `type:"string" required:"true"` 2780} 2781 2782// String returns the string representation 2783func (s DateInterval) String() string { 2784 return awsutil.Prettify(s) 2785} 2786 2787// GoString returns the string representation 2788func (s DateInterval) GoString() string { 2789 return s.String() 2790} 2791 2792// Validate inspects the fields of the type to determine if they are valid. 2793func (s *DateInterval) Validate() error { 2794 invalidParams := request.ErrInvalidParams{Context: "DateInterval"} 2795 if s.End == nil { 2796 invalidParams.Add(request.NewErrParamRequired("End")) 2797 } 2798 if s.Start == nil { 2799 invalidParams.Add(request.NewErrParamRequired("Start")) 2800 } 2801 2802 if invalidParams.Len() > 0 { 2803 return invalidParams 2804 } 2805 return nil 2806} 2807 2808// SetEnd sets the End field's value. 2809func (s *DateInterval) SetEnd(v string) *DateInterval { 2810 s.End = &v 2811 return s 2812} 2813 2814// SetStart sets the Start field's value. 2815func (s *DateInterval) SetStart(v string) *DateInterval { 2816 s.Start = &v 2817 return s 2818} 2819 2820type DeleteCostCategoryDefinitionInput struct { 2821 _ struct{} `type:"structure"` 2822 2823 // The unique identifier for your Cost Category. 2824 // 2825 // CostCategoryArn is a required field 2826 CostCategoryArn *string `min:"20" type:"string" required:"true"` 2827} 2828 2829// String returns the string representation 2830func (s DeleteCostCategoryDefinitionInput) String() string { 2831 return awsutil.Prettify(s) 2832} 2833 2834// GoString returns the string representation 2835func (s DeleteCostCategoryDefinitionInput) GoString() string { 2836 return s.String() 2837} 2838 2839// Validate inspects the fields of the type to determine if they are valid. 2840func (s *DeleteCostCategoryDefinitionInput) Validate() error { 2841 invalidParams := request.ErrInvalidParams{Context: "DeleteCostCategoryDefinitionInput"} 2842 if s.CostCategoryArn == nil { 2843 invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) 2844 } 2845 if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { 2846 invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) 2847 } 2848 2849 if invalidParams.Len() > 0 { 2850 return invalidParams 2851 } 2852 return nil 2853} 2854 2855// SetCostCategoryArn sets the CostCategoryArn field's value. 2856func (s *DeleteCostCategoryDefinitionInput) SetCostCategoryArn(v string) *DeleteCostCategoryDefinitionInput { 2857 s.CostCategoryArn = &v 2858 return s 2859} 2860 2861type DeleteCostCategoryDefinitionOutput struct { 2862 _ struct{} `type:"structure"` 2863 2864 // The unique identifier for your Cost Category. 2865 CostCategoryArn *string `min:"20" type:"string"` 2866 2867 // The effective end date of the Cost Category as a result of deleting it. No 2868 // costs after this date will be categorized by the deleted Cost Category. 2869 EffectiveEnd *string `min:"20" type:"string"` 2870} 2871 2872// String returns the string representation 2873func (s DeleteCostCategoryDefinitionOutput) String() string { 2874 return awsutil.Prettify(s) 2875} 2876 2877// GoString returns the string representation 2878func (s DeleteCostCategoryDefinitionOutput) GoString() string { 2879 return s.String() 2880} 2881 2882// SetCostCategoryArn sets the CostCategoryArn field's value. 2883func (s *DeleteCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *DeleteCostCategoryDefinitionOutput { 2884 s.CostCategoryArn = &v 2885 return s 2886} 2887 2888// SetEffectiveEnd sets the EffectiveEnd field's value. 2889func (s *DeleteCostCategoryDefinitionOutput) SetEffectiveEnd(v string) *DeleteCostCategoryDefinitionOutput { 2890 s.EffectiveEnd = &v 2891 return s 2892} 2893 2894type DescribeCostCategoryDefinitionInput struct { 2895 _ struct{} `type:"structure"` 2896 2897 // The unique identifier for your Cost Category. 2898 // 2899 // CostCategoryArn is a required field 2900 CostCategoryArn *string `min:"20" type:"string" required:"true"` 2901 2902 // The date when the Cost Category was effective. 2903 EffectiveOn *string `min:"20" type:"string"` 2904} 2905 2906// String returns the string representation 2907func (s DescribeCostCategoryDefinitionInput) String() string { 2908 return awsutil.Prettify(s) 2909} 2910 2911// GoString returns the string representation 2912func (s DescribeCostCategoryDefinitionInput) GoString() string { 2913 return s.String() 2914} 2915 2916// Validate inspects the fields of the type to determine if they are valid. 2917func (s *DescribeCostCategoryDefinitionInput) Validate() error { 2918 invalidParams := request.ErrInvalidParams{Context: "DescribeCostCategoryDefinitionInput"} 2919 if s.CostCategoryArn == nil { 2920 invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) 2921 } 2922 if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { 2923 invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) 2924 } 2925 if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { 2926 invalidParams.Add(request.NewErrParamMinLen("EffectiveOn", 20)) 2927 } 2928 2929 if invalidParams.Len() > 0 { 2930 return invalidParams 2931 } 2932 return nil 2933} 2934 2935// SetCostCategoryArn sets the CostCategoryArn field's value. 2936func (s *DescribeCostCategoryDefinitionInput) SetCostCategoryArn(v string) *DescribeCostCategoryDefinitionInput { 2937 s.CostCategoryArn = &v 2938 return s 2939} 2940 2941// SetEffectiveOn sets the EffectiveOn field's value. 2942func (s *DescribeCostCategoryDefinitionInput) SetEffectiveOn(v string) *DescribeCostCategoryDefinitionInput { 2943 s.EffectiveOn = &v 2944 return s 2945} 2946 2947type DescribeCostCategoryDefinitionOutput struct { 2948 _ struct{} `type:"structure"` 2949 2950 // The structure of Cost Categories. This includes detailed metadata and the 2951 // set of rules for the CostCategory object. 2952 CostCategory *CostCategory `type:"structure"` 2953} 2954 2955// String returns the string representation 2956func (s DescribeCostCategoryDefinitionOutput) String() string { 2957 return awsutil.Prettify(s) 2958} 2959 2960// GoString returns the string representation 2961func (s DescribeCostCategoryDefinitionOutput) GoString() string { 2962 return s.String() 2963} 2964 2965// SetCostCategory sets the CostCategory field's value. 2966func (s *DescribeCostCategoryDefinitionOutput) SetCostCategory(v *CostCategory) *DescribeCostCategoryDefinitionOutput { 2967 s.CostCategory = v 2968 return s 2969} 2970 2971// The metadata that you can use to filter and group your results. You can use 2972// GetDimensionValues to find specific values. 2973type DimensionValues struct { 2974 _ struct{} `type:"structure"` 2975 2976 // The names of the metadata types that you can use to filter and group your 2977 // results. For example, AZ returns a list of Availability Zones. 2978 Key *string `type:"string" enum:"Dimension"` 2979 2980 // The match options that you can use to filter your results. MatchOptions is 2981 // only applicable for actions related to Cost Category. The default values 2982 // for MatchOptions is EQUALS and CASE_SENSITIVE. 2983 MatchOptions []*string `type:"list"` 2984 2985 // The metadata values that you can use to filter and group your results. You 2986 // can use GetDimensionValues to find specific values. 2987 Values []*string `type:"list"` 2988} 2989 2990// String returns the string representation 2991func (s DimensionValues) String() string { 2992 return awsutil.Prettify(s) 2993} 2994 2995// GoString returns the string representation 2996func (s DimensionValues) GoString() string { 2997 return s.String() 2998} 2999 3000// SetKey sets the Key field's value. 3001func (s *DimensionValues) SetKey(v string) *DimensionValues { 3002 s.Key = &v 3003 return s 3004} 3005 3006// SetMatchOptions sets the MatchOptions field's value. 3007func (s *DimensionValues) SetMatchOptions(v []*string) *DimensionValues { 3008 s.MatchOptions = v 3009 return s 3010} 3011 3012// SetValues sets the Values field's value. 3013func (s *DimensionValues) SetValues(v []*string) *DimensionValues { 3014 s.Values = v 3015 return s 3016} 3017 3018// The metadata of a specific type that you can use to filter and group your 3019// results. You can use GetDimensionValues to find specific values. 3020type DimensionValuesWithAttributes struct { 3021 _ struct{} `type:"structure"` 3022 3023 // The attribute that applies to a specific Dimension. 3024 Attributes map[string]*string `type:"map"` 3025 3026 // The value of a dimension with a specific attribute. 3027 Value *string `type:"string"` 3028} 3029 3030// String returns the string representation 3031func (s DimensionValuesWithAttributes) String() string { 3032 return awsutil.Prettify(s) 3033} 3034 3035// GoString returns the string representation 3036func (s DimensionValuesWithAttributes) GoString() string { 3037 return s.String() 3038} 3039 3040// SetAttributes sets the Attributes field's value. 3041func (s *DimensionValuesWithAttributes) SetAttributes(v map[string]*string) *DimensionValuesWithAttributes { 3042 s.Attributes = v 3043 return s 3044} 3045 3046// SetValue sets the Value field's value. 3047func (s *DimensionValuesWithAttributes) SetValue(v string) *DimensionValuesWithAttributes { 3048 s.Value = &v 3049 return s 3050} 3051 3052// Details about the Amazon EC2 instances that AWS recommends that you purchase. 3053type EC2InstanceDetails struct { 3054 _ struct{} `type:"structure"` 3055 3056 // The Availability Zone of the recommended reservation. 3057 AvailabilityZone *string `type:"string"` 3058 3059 // Whether the recommendation is for a current-generation instance. 3060 CurrentGeneration *bool `type:"boolean"` 3061 3062 // The instance family of the recommended reservation. 3063 Family *string `type:"string"` 3064 3065 // The type of instance that AWS recommends. 3066 InstanceType *string `type:"string"` 3067 3068 // The platform of the recommended reservation. The platform is the specific 3069 // combination of operating system, license model, and software on an instance. 3070 Platform *string `type:"string"` 3071 3072 // The AWS Region of the recommended reservation. 3073 Region *string `type:"string"` 3074 3075 // Whether the recommended reservation is size flexible. 3076 SizeFlexEligible *bool `type:"boolean"` 3077 3078 // Whether the recommended reservation is dedicated or shared. 3079 Tenancy *string `type:"string"` 3080} 3081 3082// String returns the string representation 3083func (s EC2InstanceDetails) String() string { 3084 return awsutil.Prettify(s) 3085} 3086 3087// GoString returns the string representation 3088func (s EC2InstanceDetails) GoString() string { 3089 return s.String() 3090} 3091 3092// SetAvailabilityZone sets the AvailabilityZone field's value. 3093func (s *EC2InstanceDetails) SetAvailabilityZone(v string) *EC2InstanceDetails { 3094 s.AvailabilityZone = &v 3095 return s 3096} 3097 3098// SetCurrentGeneration sets the CurrentGeneration field's value. 3099func (s *EC2InstanceDetails) SetCurrentGeneration(v bool) *EC2InstanceDetails { 3100 s.CurrentGeneration = &v 3101 return s 3102} 3103 3104// SetFamily sets the Family field's value. 3105func (s *EC2InstanceDetails) SetFamily(v string) *EC2InstanceDetails { 3106 s.Family = &v 3107 return s 3108} 3109 3110// SetInstanceType sets the InstanceType field's value. 3111func (s *EC2InstanceDetails) SetInstanceType(v string) *EC2InstanceDetails { 3112 s.InstanceType = &v 3113 return s 3114} 3115 3116// SetPlatform sets the Platform field's value. 3117func (s *EC2InstanceDetails) SetPlatform(v string) *EC2InstanceDetails { 3118 s.Platform = &v 3119 return s 3120} 3121 3122// SetRegion sets the Region field's value. 3123func (s *EC2InstanceDetails) SetRegion(v string) *EC2InstanceDetails { 3124 s.Region = &v 3125 return s 3126} 3127 3128// SetSizeFlexEligible sets the SizeFlexEligible field's value. 3129func (s *EC2InstanceDetails) SetSizeFlexEligible(v bool) *EC2InstanceDetails { 3130 s.SizeFlexEligible = &v 3131 return s 3132} 3133 3134// SetTenancy sets the Tenancy field's value. 3135func (s *EC2InstanceDetails) SetTenancy(v string) *EC2InstanceDetails { 3136 s.Tenancy = &v 3137 return s 3138} 3139 3140// Details on the Amazon EC2 Resource. 3141type EC2ResourceDetails struct { 3142 _ struct{} `type:"structure"` 3143 3144 // Hourly public On Demand rate for the instance type. 3145 HourlyOnDemandRate *string `type:"string"` 3146 3147 // The type of Amazon Web Services instance. 3148 InstanceType *string `type:"string"` 3149 3150 // Memory capacity of Amazon Web Services instance. 3151 Memory *string `type:"string"` 3152 3153 // Network performance capacity of the Amazon Web Services instance. 3154 NetworkPerformance *string `type:"string"` 3155 3156 // The platform of the Amazon Web Services instance. The platform is the specific 3157 // combination of operating system, license model, and software on an instance. 3158 Platform *string `type:"string"` 3159 3160 // The Amazon Web Services Region of the instance. 3161 Region *string `type:"string"` 3162 3163 // The SKU of the product. 3164 Sku *string `type:"string"` 3165 3166 // The disk storage of the Amazon Web Services instance (Not EBS storage). 3167 Storage *string `type:"string"` 3168 3169 // Number of VCPU cores in the Amazon Web Services instance type. 3170 Vcpu *string `type:"string"` 3171} 3172 3173// String returns the string representation 3174func (s EC2ResourceDetails) String() string { 3175 return awsutil.Prettify(s) 3176} 3177 3178// GoString returns the string representation 3179func (s EC2ResourceDetails) GoString() string { 3180 return s.String() 3181} 3182 3183// SetHourlyOnDemandRate sets the HourlyOnDemandRate field's value. 3184func (s *EC2ResourceDetails) SetHourlyOnDemandRate(v string) *EC2ResourceDetails { 3185 s.HourlyOnDemandRate = &v 3186 return s 3187} 3188 3189// SetInstanceType sets the InstanceType field's value. 3190func (s *EC2ResourceDetails) SetInstanceType(v string) *EC2ResourceDetails { 3191 s.InstanceType = &v 3192 return s 3193} 3194 3195// SetMemory sets the Memory field's value. 3196func (s *EC2ResourceDetails) SetMemory(v string) *EC2ResourceDetails { 3197 s.Memory = &v 3198 return s 3199} 3200 3201// SetNetworkPerformance sets the NetworkPerformance field's value. 3202func (s *EC2ResourceDetails) SetNetworkPerformance(v string) *EC2ResourceDetails { 3203 s.NetworkPerformance = &v 3204 return s 3205} 3206 3207// SetPlatform sets the Platform field's value. 3208func (s *EC2ResourceDetails) SetPlatform(v string) *EC2ResourceDetails { 3209 s.Platform = &v 3210 return s 3211} 3212 3213// SetRegion sets the Region field's value. 3214func (s *EC2ResourceDetails) SetRegion(v string) *EC2ResourceDetails { 3215 s.Region = &v 3216 return s 3217} 3218 3219// SetSku sets the Sku field's value. 3220func (s *EC2ResourceDetails) SetSku(v string) *EC2ResourceDetails { 3221 s.Sku = &v 3222 return s 3223} 3224 3225// SetStorage sets the Storage field's value. 3226func (s *EC2ResourceDetails) SetStorage(v string) *EC2ResourceDetails { 3227 s.Storage = &v 3228 return s 3229} 3230 3231// SetVcpu sets the Vcpu field's value. 3232func (s *EC2ResourceDetails) SetVcpu(v string) *EC2ResourceDetails { 3233 s.Vcpu = &v 3234 return s 3235} 3236 3237// Utilization metrics of the instance. 3238type EC2ResourceUtilization struct { 3239 _ struct{} `type:"structure"` 3240 3241 // Maximum observed or expected CPU utilization of the instance. 3242 MaxCpuUtilizationPercentage *string `type:"string"` 3243 3244 // Maximum observed or expected memory utilization of the instance. 3245 MaxMemoryUtilizationPercentage *string `type:"string"` 3246 3247 // Maximum observed or expected storage utilization of the instance (does not 3248 // measure EBS storage). 3249 MaxStorageUtilizationPercentage *string `type:"string"` 3250} 3251 3252// String returns the string representation 3253func (s EC2ResourceUtilization) String() string { 3254 return awsutil.Prettify(s) 3255} 3256 3257// GoString returns the string representation 3258func (s EC2ResourceUtilization) GoString() string { 3259 return s.String() 3260} 3261 3262// SetMaxCpuUtilizationPercentage sets the MaxCpuUtilizationPercentage field's value. 3263func (s *EC2ResourceUtilization) SetMaxCpuUtilizationPercentage(v string) *EC2ResourceUtilization { 3264 s.MaxCpuUtilizationPercentage = &v 3265 return s 3266} 3267 3268// SetMaxMemoryUtilizationPercentage sets the MaxMemoryUtilizationPercentage field's value. 3269func (s *EC2ResourceUtilization) SetMaxMemoryUtilizationPercentage(v string) *EC2ResourceUtilization { 3270 s.MaxMemoryUtilizationPercentage = &v 3271 return s 3272} 3273 3274// SetMaxStorageUtilizationPercentage sets the MaxStorageUtilizationPercentage field's value. 3275func (s *EC2ResourceUtilization) SetMaxStorageUtilizationPercentage(v string) *EC2ResourceUtilization { 3276 s.MaxStorageUtilizationPercentage = &v 3277 return s 3278} 3279 3280// The Amazon EC2 hardware specifications that you want AWS to provide recommendations 3281// for. 3282type EC2Specification struct { 3283 _ struct{} `type:"structure"` 3284 3285 // Whether you want a recommendation for standard or convertible reservations. 3286 OfferingClass *string `type:"string" enum:"OfferingClass"` 3287} 3288 3289// String returns the string representation 3290func (s EC2Specification) String() string { 3291 return awsutil.Prettify(s) 3292} 3293 3294// GoString returns the string representation 3295func (s EC2Specification) GoString() string { 3296 return s.String() 3297} 3298 3299// SetOfferingClass sets the OfferingClass field's value. 3300func (s *EC2Specification) SetOfferingClass(v string) *EC2Specification { 3301 s.OfferingClass = &v 3302 return s 3303} 3304 3305// Details about the Amazon ES instances that AWS recommends that you purchase. 3306type ESInstanceDetails struct { 3307 _ struct{} `type:"structure"` 3308 3309 // Whether the recommendation is for a current-generation instance. 3310 CurrentGeneration *bool `type:"boolean"` 3311 3312 // The class of instance that AWS recommends. 3313 InstanceClass *string `type:"string"` 3314 3315 // The size of instance that AWS recommends. 3316 InstanceSize *string `type:"string"` 3317 3318 // The AWS Region of the recommended reservation. 3319 Region *string `type:"string"` 3320 3321 // Whether the recommended reservation is size flexible. 3322 SizeFlexEligible *bool `type:"boolean"` 3323} 3324 3325// String returns the string representation 3326func (s ESInstanceDetails) String() string { 3327 return awsutil.Prettify(s) 3328} 3329 3330// GoString returns the string representation 3331func (s ESInstanceDetails) GoString() string { 3332 return s.String() 3333} 3334 3335// SetCurrentGeneration sets the CurrentGeneration field's value. 3336func (s *ESInstanceDetails) SetCurrentGeneration(v bool) *ESInstanceDetails { 3337 s.CurrentGeneration = &v 3338 return s 3339} 3340 3341// SetInstanceClass sets the InstanceClass field's value. 3342func (s *ESInstanceDetails) SetInstanceClass(v string) *ESInstanceDetails { 3343 s.InstanceClass = &v 3344 return s 3345} 3346 3347// SetInstanceSize sets the InstanceSize field's value. 3348func (s *ESInstanceDetails) SetInstanceSize(v string) *ESInstanceDetails { 3349 s.InstanceSize = &v 3350 return s 3351} 3352 3353// SetRegion sets the Region field's value. 3354func (s *ESInstanceDetails) SetRegion(v string) *ESInstanceDetails { 3355 s.Region = &v 3356 return s 3357} 3358 3359// SetSizeFlexEligible sets the SizeFlexEligible field's value. 3360func (s *ESInstanceDetails) SetSizeFlexEligible(v bool) *ESInstanceDetails { 3361 s.SizeFlexEligible = &v 3362 return s 3363} 3364 3365// Details about the Amazon ElastiCache instances that AWS recommends that you 3366// purchase. 3367type ElastiCacheInstanceDetails struct { 3368 _ struct{} `type:"structure"` 3369 3370 // Whether the recommendation is for a current generation instance. 3371 CurrentGeneration *bool `type:"boolean"` 3372 3373 // The instance family of the recommended reservation. 3374 Family *string `type:"string"` 3375 3376 // The type of node that AWS recommends. 3377 NodeType *string `type:"string"` 3378 3379 // The description of the recommended reservation. 3380 ProductDescription *string `type:"string"` 3381 3382 // The AWS Region of the recommended reservation. 3383 Region *string `type:"string"` 3384 3385 // Whether the recommended reservation is size flexible. 3386 SizeFlexEligible *bool `type:"boolean"` 3387} 3388 3389// String returns the string representation 3390func (s ElastiCacheInstanceDetails) String() string { 3391 return awsutil.Prettify(s) 3392} 3393 3394// GoString returns the string representation 3395func (s ElastiCacheInstanceDetails) GoString() string { 3396 return s.String() 3397} 3398 3399// SetCurrentGeneration sets the CurrentGeneration field's value. 3400func (s *ElastiCacheInstanceDetails) SetCurrentGeneration(v bool) *ElastiCacheInstanceDetails { 3401 s.CurrentGeneration = &v 3402 return s 3403} 3404 3405// SetFamily sets the Family field's value. 3406func (s *ElastiCacheInstanceDetails) SetFamily(v string) *ElastiCacheInstanceDetails { 3407 s.Family = &v 3408 return s 3409} 3410 3411// SetNodeType sets the NodeType field's value. 3412func (s *ElastiCacheInstanceDetails) SetNodeType(v string) *ElastiCacheInstanceDetails { 3413 s.NodeType = &v 3414 return s 3415} 3416 3417// SetProductDescription sets the ProductDescription field's value. 3418func (s *ElastiCacheInstanceDetails) SetProductDescription(v string) *ElastiCacheInstanceDetails { 3419 s.ProductDescription = &v 3420 return s 3421} 3422 3423// SetRegion sets the Region field's value. 3424func (s *ElastiCacheInstanceDetails) SetRegion(v string) *ElastiCacheInstanceDetails { 3425 s.Region = &v 3426 return s 3427} 3428 3429// SetSizeFlexEligible sets the SizeFlexEligible field's value. 3430func (s *ElastiCacheInstanceDetails) SetSizeFlexEligible(v bool) *ElastiCacheInstanceDetails { 3431 s.SizeFlexEligible = &v 3432 return s 3433} 3434 3435// Use Expression to filter by cost or by usage. There are two patterns: 3436// 3437// * Simple dimension values - You can set the dimension name and values 3438// for the filters that you plan to use. For example, you can filter for 3439// REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks 3440// like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", 3441// “us-west-1” ] } } The list of dimension values are OR'd together to 3442// retrieve cost or usage data. You can create Expression and DimensionValues 3443// objects using either with* methods or set* methods in multiple lines. 3444// 3445// * Compound dimension values with logical operations - You can use multiple 3446// Expression types and the logical operators AND/OR/NOT to create a list 3447// of one or more Expression objects. This allows you to filter on more advanced 3448// options. For example, you can filter on ((REGION == us-east-1 OR REGION 3449// == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). 3450// The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": 3451// { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": 3452// { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": 3453// { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each 3454// Expression can have only one operator, the service returns an error if 3455// more than one is specified. The following example shows an Expression 3456// object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": 3457// "USAGE_TYPE", "Values": [ "DataTransfer" ] } } 3458// 3459// For GetRightsizingRecommendation action, a combination of OR and NOT is not 3460// supported. OR is not supported between different dimensions, or dimensions 3461// and tags. NOT operators aren't supported. Dimensions are also limited to 3462// LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. 3463type Expression struct { 3464 _ struct{} `type:"structure"` 3465 3466 // Return results that match both Dimension objects. 3467 And []*Expression `type:"list"` 3468 3469 // The filter based on CostCategory values. 3470 CostCategories *CostCategoryValues `type:"structure"` 3471 3472 // The specific Dimension to use for Expression. 3473 Dimensions *DimensionValues `type:"structure"` 3474 3475 // Return results that don't match a Dimension object. 3476 Not *Expression `type:"structure"` 3477 3478 // Return results that match either Dimension object. 3479 Or []*Expression `type:"list"` 3480 3481 // The specific Tag to use for Expression. 3482 Tags *TagValues `type:"structure"` 3483} 3484 3485// String returns the string representation 3486func (s Expression) String() string { 3487 return awsutil.Prettify(s) 3488} 3489 3490// GoString returns the string representation 3491func (s Expression) GoString() string { 3492 return s.String() 3493} 3494 3495// Validate inspects the fields of the type to determine if they are valid. 3496func (s *Expression) Validate() error { 3497 invalidParams := request.ErrInvalidParams{Context: "Expression"} 3498 if s.CostCategories != nil { 3499 if err := s.CostCategories.Validate(); err != nil { 3500 invalidParams.AddNested("CostCategories", err.(request.ErrInvalidParams)) 3501 } 3502 } 3503 if s.Not != nil { 3504 if err := s.Not.Validate(); err != nil { 3505 invalidParams.AddNested("Not", err.(request.ErrInvalidParams)) 3506 } 3507 } 3508 if s.Or != nil { 3509 for i, v := range s.Or { 3510 if v == nil { 3511 continue 3512 } 3513 if err := v.Validate(); err != nil { 3514 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Or", i), err.(request.ErrInvalidParams)) 3515 } 3516 } 3517 } 3518 3519 if invalidParams.Len() > 0 { 3520 return invalidParams 3521 } 3522 return nil 3523} 3524 3525// SetAnd sets the And field's value. 3526func (s *Expression) SetAnd(v []*Expression) *Expression { 3527 s.And = v 3528 return s 3529} 3530 3531// SetCostCategories sets the CostCategories field's value. 3532func (s *Expression) SetCostCategories(v *CostCategoryValues) *Expression { 3533 s.CostCategories = v 3534 return s 3535} 3536 3537// SetDimensions sets the Dimensions field's value. 3538func (s *Expression) SetDimensions(v *DimensionValues) *Expression { 3539 s.Dimensions = v 3540 return s 3541} 3542 3543// SetNot sets the Not field's value. 3544func (s *Expression) SetNot(v *Expression) *Expression { 3545 s.Not = v 3546 return s 3547} 3548 3549// SetOr sets the Or field's value. 3550func (s *Expression) SetOr(v []*Expression) *Expression { 3551 s.Or = v 3552 return s 3553} 3554 3555// SetTags sets the Tags field's value. 3556func (s *Expression) SetTags(v *TagValues) *Expression { 3557 s.Tags = v 3558 return s 3559} 3560 3561// The forecast created for your query. 3562type ForecastResult struct { 3563 _ struct{} `type:"structure"` 3564 3565 // The mean value of the forecast. 3566 MeanValue *string `type:"string"` 3567 3568 // The lower limit for the prediction interval. 3569 PredictionIntervalLowerBound *string `type:"string"` 3570 3571 // The upper limit for the prediction interval. 3572 PredictionIntervalUpperBound *string `type:"string"` 3573 3574 // The period of time that the forecast covers. 3575 TimePeriod *DateInterval `type:"structure"` 3576} 3577 3578// String returns the string representation 3579func (s ForecastResult) String() string { 3580 return awsutil.Prettify(s) 3581} 3582 3583// GoString returns the string representation 3584func (s ForecastResult) GoString() string { 3585 return s.String() 3586} 3587 3588// SetMeanValue sets the MeanValue field's value. 3589func (s *ForecastResult) SetMeanValue(v string) *ForecastResult { 3590 s.MeanValue = &v 3591 return s 3592} 3593 3594// SetPredictionIntervalLowerBound sets the PredictionIntervalLowerBound field's value. 3595func (s *ForecastResult) SetPredictionIntervalLowerBound(v string) *ForecastResult { 3596 s.PredictionIntervalLowerBound = &v 3597 return s 3598} 3599 3600// SetPredictionIntervalUpperBound sets the PredictionIntervalUpperBound field's value. 3601func (s *ForecastResult) SetPredictionIntervalUpperBound(v string) *ForecastResult { 3602 s.PredictionIntervalUpperBound = &v 3603 return s 3604} 3605 3606// SetTimePeriod sets the TimePeriod field's value. 3607func (s *ForecastResult) SetTimePeriod(v *DateInterval) *ForecastResult { 3608 s.TimePeriod = v 3609 return s 3610} 3611 3612type GetCostAndUsageInput struct { 3613 _ struct{} `type:"structure"` 3614 3615 // Filters AWS costs by different dimensions. For example, you can specify SERVICE 3616 // and LINKED_ACCOUNT and get the costs that are associated with that account's 3617 // usage of that service. You can nest Expression objects to define any combination 3618 // of dimension filters. For more information, see Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html). 3619 Filter *Expression `type:"structure"` 3620 3621 // Sets the AWS cost granularity to MONTHLY or DAILY, or HOURLY. If Granularity 3622 // isn't set, the response object doesn't include the Granularity, either MONTHLY 3623 // or DAILY, or HOURLY. 3624 Granularity *string `type:"string" enum:"Granularity"` 3625 3626 // You can group AWS costs using up to two different groups, either dimensions, 3627 // tag keys, or both. 3628 // 3629 // When you group by tag key, you get all tag values, including empty strings. 3630 // 3631 // Valid values are AZ, INSTANCE_TYPE, LEGAL_ENTITY_NAME, LINKED_ACCOUNT, OPERATION, 3632 // PLATFORM, PURCHASE_TYPE, SERVICE, TAGS, TENANCY, RECORD_TYPE, and USAGE_TYPE. 3633 GroupBy []*GroupDefinition `type:"list"` 3634 3635 // Which metrics are returned in the query. For more information about blended 3636 // and unblended rates, see Why does the "blended" annotation appear on some 3637 // line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). 3638 // 3639 // Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, 3640 // NormalizedUsageAmount, UnblendedCost, and UsageQuantity. 3641 // 3642 // If you return the UsageQuantity metric, the service aggregates all usage 3643 // numbers without taking into account the units. For example, if you aggregate 3644 // usageQuantity across all of Amazon EC2, the results aren't meaningful because 3645 // Amazon EC2 compute hours and data transfer are measured in different units 3646 // (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, 3647 // filter by UsageType or UsageTypeGroups. 3648 // 3649 // Metrics is required for GetCostAndUsage requests. 3650 Metrics []*string `type:"list"` 3651 3652 // The token to retrieve the next set of results. AWS provides the token when 3653 // the response from a previous call has more results than the maximum page 3654 // size. 3655 NextPageToken *string `type:"string"` 3656 3657 // Sets the start and end dates for retrieving AWS costs. The start date is 3658 // inclusive, but the end date is exclusive. For example, if start is 2017-01-01 3659 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 3660 // up to and including 2017-04-30 but not including 2017-05-01. 3661 // 3662 // TimePeriod is a required field 3663 TimePeriod *DateInterval `type:"structure" required:"true"` 3664} 3665 3666// String returns the string representation 3667func (s GetCostAndUsageInput) String() string { 3668 return awsutil.Prettify(s) 3669} 3670 3671// GoString returns the string representation 3672func (s GetCostAndUsageInput) GoString() string { 3673 return s.String() 3674} 3675 3676// Validate inspects the fields of the type to determine if they are valid. 3677func (s *GetCostAndUsageInput) Validate() error { 3678 invalidParams := request.ErrInvalidParams{Context: "GetCostAndUsageInput"} 3679 if s.TimePeriod == nil { 3680 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 3681 } 3682 if s.Filter != nil { 3683 if err := s.Filter.Validate(); err != nil { 3684 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 3685 } 3686 } 3687 if s.TimePeriod != nil { 3688 if err := s.TimePeriod.Validate(); err != nil { 3689 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 3690 } 3691 } 3692 3693 if invalidParams.Len() > 0 { 3694 return invalidParams 3695 } 3696 return nil 3697} 3698 3699// SetFilter sets the Filter field's value. 3700func (s *GetCostAndUsageInput) SetFilter(v *Expression) *GetCostAndUsageInput { 3701 s.Filter = v 3702 return s 3703} 3704 3705// SetGranularity sets the Granularity field's value. 3706func (s *GetCostAndUsageInput) SetGranularity(v string) *GetCostAndUsageInput { 3707 s.Granularity = &v 3708 return s 3709} 3710 3711// SetGroupBy sets the GroupBy field's value. 3712func (s *GetCostAndUsageInput) SetGroupBy(v []*GroupDefinition) *GetCostAndUsageInput { 3713 s.GroupBy = v 3714 return s 3715} 3716 3717// SetMetrics sets the Metrics field's value. 3718func (s *GetCostAndUsageInput) SetMetrics(v []*string) *GetCostAndUsageInput { 3719 s.Metrics = v 3720 return s 3721} 3722 3723// SetNextPageToken sets the NextPageToken field's value. 3724func (s *GetCostAndUsageInput) SetNextPageToken(v string) *GetCostAndUsageInput { 3725 s.NextPageToken = &v 3726 return s 3727} 3728 3729// SetTimePeriod sets the TimePeriod field's value. 3730func (s *GetCostAndUsageInput) SetTimePeriod(v *DateInterval) *GetCostAndUsageInput { 3731 s.TimePeriod = v 3732 return s 3733} 3734 3735type GetCostAndUsageOutput struct { 3736 _ struct{} `type:"structure"` 3737 3738 // The groups that are specified by the Filter or GroupBy parameters in the 3739 // request. 3740 GroupDefinitions []*GroupDefinition `type:"list"` 3741 3742 // The token for the next set of retrievable results. AWS provides the token 3743 // when the response from a previous call has more results than the maximum 3744 // page size. 3745 NextPageToken *string `type:"string"` 3746 3747 // The time period that is covered by the results in the response. 3748 ResultsByTime []*ResultByTime `type:"list"` 3749} 3750 3751// String returns the string representation 3752func (s GetCostAndUsageOutput) String() string { 3753 return awsutil.Prettify(s) 3754} 3755 3756// GoString returns the string representation 3757func (s GetCostAndUsageOutput) GoString() string { 3758 return s.String() 3759} 3760 3761// SetGroupDefinitions sets the GroupDefinitions field's value. 3762func (s *GetCostAndUsageOutput) SetGroupDefinitions(v []*GroupDefinition) *GetCostAndUsageOutput { 3763 s.GroupDefinitions = v 3764 return s 3765} 3766 3767// SetNextPageToken sets the NextPageToken field's value. 3768func (s *GetCostAndUsageOutput) SetNextPageToken(v string) *GetCostAndUsageOutput { 3769 s.NextPageToken = &v 3770 return s 3771} 3772 3773// SetResultsByTime sets the ResultsByTime field's value. 3774func (s *GetCostAndUsageOutput) SetResultsByTime(v []*ResultByTime) *GetCostAndUsageOutput { 3775 s.ResultsByTime = v 3776 return s 3777} 3778 3779type GetCostAndUsageWithResourcesInput struct { 3780 _ struct{} `type:"structure"` 3781 3782 // Filters Amazon Web Services costs by different dimensions. For example, you 3783 // can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated 3784 // with that account's usage of that service. You can nest Expression objects 3785 // to define any combination of dimension filters. For more information, see 3786 // Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html). 3787 // 3788 // The GetCostAndUsageWithResources operation requires that you either group 3789 // by or filter by a ResourceId. 3790 Filter *Expression `type:"structure"` 3791 3792 // Sets the AWS cost granularity to MONTHLY, DAILY, or HOURLY. If Granularity 3793 // isn't set, the response object doesn't include the Granularity, MONTHLY, 3794 // DAILY, or HOURLY. 3795 Granularity *string `type:"string" enum:"Granularity"` 3796 3797 // You can group Amazon Web Services costs using up to two different groups: 3798 // either dimensions, tag keys, or both. 3799 GroupBy []*GroupDefinition `type:"list"` 3800 3801 // Which metrics are returned in the query. For more information about blended 3802 // and unblended rates, see Why does the "blended" annotation appear on some 3803 // line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). 3804 // 3805 // Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, 3806 // NormalizedUsageAmount, UnblendedCost, and UsageQuantity. 3807 // 3808 // If you return the UsageQuantity metric, the service aggregates all usage 3809 // numbers without taking the units into account. For example, if you aggregate 3810 // usageQuantity across all of Amazon EC2, the results aren't meaningful because 3811 // Amazon EC2 compute hours and data transfer are measured in different units 3812 // (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, 3813 // filter by UsageType or UsageTypeGroups. 3814 // 3815 // Metrics is required for GetCostAndUsageWithResources requests. 3816 Metrics []*string `type:"list"` 3817 3818 // The token to retrieve the next set of results. AWS provides the token when 3819 // the response from a previous call has more results than the maximum page 3820 // size. 3821 NextPageToken *string `type:"string"` 3822 3823 // Sets the start and end dates for retrieving Amazon Web Services costs. The 3824 // range must be within the last 14 days (the start date cannot be earlier than 3825 // 14 days ago). The start date is inclusive, but the end date is exclusive. 3826 // For example, if start is 2017-01-01 and end is 2017-05-01, then the cost 3827 // and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 3828 // but not including 2017-05-01. 3829 // 3830 // TimePeriod is a required field 3831 TimePeriod *DateInterval `type:"structure" required:"true"` 3832} 3833 3834// String returns the string representation 3835func (s GetCostAndUsageWithResourcesInput) String() string { 3836 return awsutil.Prettify(s) 3837} 3838 3839// GoString returns the string representation 3840func (s GetCostAndUsageWithResourcesInput) GoString() string { 3841 return s.String() 3842} 3843 3844// Validate inspects the fields of the type to determine if they are valid. 3845func (s *GetCostAndUsageWithResourcesInput) Validate() error { 3846 invalidParams := request.ErrInvalidParams{Context: "GetCostAndUsageWithResourcesInput"} 3847 if s.TimePeriod == nil { 3848 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 3849 } 3850 if s.Filter != nil { 3851 if err := s.Filter.Validate(); err != nil { 3852 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 3853 } 3854 } 3855 if s.TimePeriod != nil { 3856 if err := s.TimePeriod.Validate(); err != nil { 3857 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 3858 } 3859 } 3860 3861 if invalidParams.Len() > 0 { 3862 return invalidParams 3863 } 3864 return nil 3865} 3866 3867// SetFilter sets the Filter field's value. 3868func (s *GetCostAndUsageWithResourcesInput) SetFilter(v *Expression) *GetCostAndUsageWithResourcesInput { 3869 s.Filter = v 3870 return s 3871} 3872 3873// SetGranularity sets the Granularity field's value. 3874func (s *GetCostAndUsageWithResourcesInput) SetGranularity(v string) *GetCostAndUsageWithResourcesInput { 3875 s.Granularity = &v 3876 return s 3877} 3878 3879// SetGroupBy sets the GroupBy field's value. 3880func (s *GetCostAndUsageWithResourcesInput) SetGroupBy(v []*GroupDefinition) *GetCostAndUsageWithResourcesInput { 3881 s.GroupBy = v 3882 return s 3883} 3884 3885// SetMetrics sets the Metrics field's value. 3886func (s *GetCostAndUsageWithResourcesInput) SetMetrics(v []*string) *GetCostAndUsageWithResourcesInput { 3887 s.Metrics = v 3888 return s 3889} 3890 3891// SetNextPageToken sets the NextPageToken field's value. 3892func (s *GetCostAndUsageWithResourcesInput) SetNextPageToken(v string) *GetCostAndUsageWithResourcesInput { 3893 s.NextPageToken = &v 3894 return s 3895} 3896 3897// SetTimePeriod sets the TimePeriod field's value. 3898func (s *GetCostAndUsageWithResourcesInput) SetTimePeriod(v *DateInterval) *GetCostAndUsageWithResourcesInput { 3899 s.TimePeriod = v 3900 return s 3901} 3902 3903type GetCostAndUsageWithResourcesOutput struct { 3904 _ struct{} `type:"structure"` 3905 3906 // The groups that are specified by the Filter or GroupBy parameters in the 3907 // request. 3908 GroupDefinitions []*GroupDefinition `type:"list"` 3909 3910 // The token for the next set of retrievable results. AWS provides the token 3911 // when the response from a previous call has more results than the maximum 3912 // page size. 3913 NextPageToken *string `type:"string"` 3914 3915 // The time period that is covered by the results in the response. 3916 ResultsByTime []*ResultByTime `type:"list"` 3917} 3918 3919// String returns the string representation 3920func (s GetCostAndUsageWithResourcesOutput) String() string { 3921 return awsutil.Prettify(s) 3922} 3923 3924// GoString returns the string representation 3925func (s GetCostAndUsageWithResourcesOutput) GoString() string { 3926 return s.String() 3927} 3928 3929// SetGroupDefinitions sets the GroupDefinitions field's value. 3930func (s *GetCostAndUsageWithResourcesOutput) SetGroupDefinitions(v []*GroupDefinition) *GetCostAndUsageWithResourcesOutput { 3931 s.GroupDefinitions = v 3932 return s 3933} 3934 3935// SetNextPageToken sets the NextPageToken field's value. 3936func (s *GetCostAndUsageWithResourcesOutput) SetNextPageToken(v string) *GetCostAndUsageWithResourcesOutput { 3937 s.NextPageToken = &v 3938 return s 3939} 3940 3941// SetResultsByTime sets the ResultsByTime field's value. 3942func (s *GetCostAndUsageWithResourcesOutput) SetResultsByTime(v []*ResultByTime) *GetCostAndUsageWithResourcesOutput { 3943 s.ResultsByTime = v 3944 return s 3945} 3946 3947type GetCostForecastInput struct { 3948 _ struct{} `type:"structure"` 3949 3950 // The filters that you want to use to filter your forecast. Cost Explorer API 3951 // supports all of the Cost Explorer filters. 3952 Filter *Expression `type:"structure"` 3953 3954 // How granular you want the forecast to be. You can get 3 months of DAILY forecasts 3955 // or 12 months of MONTHLY forecasts. 3956 // 3957 // The GetCostForecast operation supports only DAILY and MONTHLY granularities. 3958 // 3959 // Granularity is a required field 3960 Granularity *string `type:"string" required:"true" enum:"Granularity"` 3961 3962 // Which metric Cost Explorer uses to create your forecast. For more information 3963 // about blended and unblended rates, see Why does the "blended" annotation 3964 // appear on some line items in my bill? (http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). 3965 // 3966 // Valid values for a GetCostForecast call are the following: 3967 // 3968 // * AMORTIZED_COST 3969 // 3970 // * BLENDED_COST 3971 // 3972 // * NET_AMORTIZED_COST 3973 // 3974 // * NET_UNBLENDED_COST 3975 // 3976 // * UNBLENDED_COST 3977 // 3978 // Metric is a required field 3979 Metric *string `type:"string" required:"true" enum:"Metric"` 3980 3981 // Cost Explorer always returns the mean forecast as a single point. You can 3982 // request a prediction interval around the mean by specifying a confidence 3983 // level. The higher the confidence level, the more confident Cost Explorer 3984 // is about the actual value falling in the prediction interval. Higher confidence 3985 // levels result in wider prediction intervals. 3986 PredictionIntervalLevel *int64 `min:"51" type:"integer"` 3987 3988 // The period of time that you want the forecast to cover. 3989 // 3990 // TimePeriod is a required field 3991 TimePeriod *DateInterval `type:"structure" required:"true"` 3992} 3993 3994// String returns the string representation 3995func (s GetCostForecastInput) String() string { 3996 return awsutil.Prettify(s) 3997} 3998 3999// GoString returns the string representation 4000func (s GetCostForecastInput) GoString() string { 4001 return s.String() 4002} 4003 4004// Validate inspects the fields of the type to determine if they are valid. 4005func (s *GetCostForecastInput) Validate() error { 4006 invalidParams := request.ErrInvalidParams{Context: "GetCostForecastInput"} 4007 if s.Granularity == nil { 4008 invalidParams.Add(request.NewErrParamRequired("Granularity")) 4009 } 4010 if s.Metric == nil { 4011 invalidParams.Add(request.NewErrParamRequired("Metric")) 4012 } 4013 if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { 4014 invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) 4015 } 4016 if s.TimePeriod == nil { 4017 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 4018 } 4019 if s.Filter != nil { 4020 if err := s.Filter.Validate(); err != nil { 4021 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 4022 } 4023 } 4024 if s.TimePeriod != nil { 4025 if err := s.TimePeriod.Validate(); err != nil { 4026 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 4027 } 4028 } 4029 4030 if invalidParams.Len() > 0 { 4031 return invalidParams 4032 } 4033 return nil 4034} 4035 4036// SetFilter sets the Filter field's value. 4037func (s *GetCostForecastInput) SetFilter(v *Expression) *GetCostForecastInput { 4038 s.Filter = v 4039 return s 4040} 4041 4042// SetGranularity sets the Granularity field's value. 4043func (s *GetCostForecastInput) SetGranularity(v string) *GetCostForecastInput { 4044 s.Granularity = &v 4045 return s 4046} 4047 4048// SetMetric sets the Metric field's value. 4049func (s *GetCostForecastInput) SetMetric(v string) *GetCostForecastInput { 4050 s.Metric = &v 4051 return s 4052} 4053 4054// SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. 4055func (s *GetCostForecastInput) SetPredictionIntervalLevel(v int64) *GetCostForecastInput { 4056 s.PredictionIntervalLevel = &v 4057 return s 4058} 4059 4060// SetTimePeriod sets the TimePeriod field's value. 4061func (s *GetCostForecastInput) SetTimePeriod(v *DateInterval) *GetCostForecastInput { 4062 s.TimePeriod = v 4063 return s 4064} 4065 4066type GetCostForecastOutput struct { 4067 _ struct{} `type:"structure"` 4068 4069 // The forecasts for your query, in order. For DAILY forecasts, this is a list 4070 // of days. For MONTHLY forecasts, this is a list of months. 4071 ForecastResultsByTime []*ForecastResult `type:"list"` 4072 4073 // How much you are forecasted to spend over the forecast period, in USD. 4074 Total *MetricValue `type:"structure"` 4075} 4076 4077// String returns the string representation 4078func (s GetCostForecastOutput) String() string { 4079 return awsutil.Prettify(s) 4080} 4081 4082// GoString returns the string representation 4083func (s GetCostForecastOutput) GoString() string { 4084 return s.String() 4085} 4086 4087// SetForecastResultsByTime sets the ForecastResultsByTime field's value. 4088func (s *GetCostForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetCostForecastOutput { 4089 s.ForecastResultsByTime = v 4090 return s 4091} 4092 4093// SetTotal sets the Total field's value. 4094func (s *GetCostForecastOutput) SetTotal(v *MetricValue) *GetCostForecastOutput { 4095 s.Total = v 4096 return s 4097} 4098 4099type GetDimensionValuesInput struct { 4100 _ struct{} `type:"structure"` 4101 4102 // The context for the call to GetDimensionValues. This can be RESERVATIONS 4103 // or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is 4104 // set to RESERVATIONS, the resulting dimension values can be used in the GetReservationUtilization 4105 // operation. If the context is set to COST_AND_USAGE, the resulting dimension 4106 // values can be used in the GetCostAndUsage operation. 4107 // 4108 // If you set the context to COST_AND_USAGE, you can use the following dimensions 4109 // for searching: 4110 // 4111 // * AZ - The Availability Zone. An example is us-east-1a. 4112 // 4113 // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples 4114 // are Aurora or MySQL. 4115 // 4116 // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. 4117 // 4118 // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS 4119 // services, such as Amazon Web Services. 4120 // 4121 // * LINKED_ACCOUNT - The description in the attribute map that includes 4122 // the full name of the member account. The value field contains the AWS 4123 // ID of the member account. 4124 // 4125 // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. 4126 // 4127 // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. 4128 // 4129 // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or 4130 // Linux. 4131 // 4132 // * PURCHASE_TYPE - The reservation type of the purchase to which this usage 4133 // is related. Examples include On-Demand Instances and Standard Reserved 4134 // Instances. 4135 // 4136 // * SERVICE - The AWS service such as Amazon DynamoDB. 4137 // 4138 // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. 4139 // The response for the GetDimensionValues operation includes a unit attribute. 4140 // Examples include GB and Hrs. 4141 // 4142 // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is 4143 // Amazon EC2: CloudWatch – Alarms. The response for this operation includes 4144 // a unit attribute. 4145 // 4146 // * RECORD_TYPE - The different types of charges such as RI fees, usage 4147 // costs, tax refunds, and credits. 4148 // 4149 // * RESOURCE_ID - The unique identifier of the resource. ResourceId is an 4150 // opt-in feature only available for last 14 days for EC2-Compute Service. 4151 // 4152 // If you set the context to RESERVATIONS, you can use the following dimensions 4153 // for searching: 4154 // 4155 // * AZ - The Availability Zone. An example is us-east-1a. 4156 // 4157 // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are 4158 // Windows or Linux. 4159 // 4160 // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service 4161 // deployments. Valid values are SingleAZ and MultiAZ. 4162 // 4163 // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. 4164 // 4165 // * LINKED_ACCOUNT - The description in the attribute map that includes 4166 // the full name of the member account. The value field contains the AWS 4167 // ID of the member account. 4168 // 4169 // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or 4170 // Linux. 4171 // 4172 // * REGION - The AWS Region. 4173 // 4174 // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values 4175 // are regional or a single Availability Zone. 4176 // 4177 // * TAG (Coverage only) - The tags that are associated with a Reserved Instance 4178 // (RI). 4179 // 4180 // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. 4181 // 4182 // If you set the context to SAVINGS_PLANS, you can use the following dimensions 4183 // for searching: 4184 // 4185 // * SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) 4186 // 4187 // * PAYMENT_OPTION - Payment option for the given Savings Plans (for example, 4188 // All Upfront) 4189 // 4190 // * REGION - The AWS Region. 4191 // 4192 // * INSTANCE_TYPE_FAMILY - The family of instances (For example, m5) 4193 // 4194 // * LINKED_ACCOUNT - The description in the attribute map that includes 4195 // the full name of the member account. The value field contains the AWS 4196 // ID of the member account. 4197 // 4198 // * SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan 4199 Context *string `type:"string" enum:"Context"` 4200 4201 // The name of the dimension. Each Dimension is available for a different Context. 4202 // For more information, see Context. 4203 // 4204 // Dimension is a required field 4205 Dimension *string `type:"string" required:"true" enum:"Dimension"` 4206 4207 // The token to retrieve the next set of results. AWS provides the token when 4208 // the response from a previous call has more results than the maximum page 4209 // size. 4210 NextPageToken *string `type:"string"` 4211 4212 // The value that you want to search the filter values for. 4213 SearchString *string `type:"string"` 4214 4215 // The start and end dates for retrieving the dimension values. The start date 4216 // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 4217 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 4218 // up to and including 2017-04-30 but not including 2017-05-01. 4219 // 4220 // TimePeriod is a required field 4221 TimePeriod *DateInterval `type:"structure" required:"true"` 4222} 4223 4224// String returns the string representation 4225func (s GetDimensionValuesInput) String() string { 4226 return awsutil.Prettify(s) 4227} 4228 4229// GoString returns the string representation 4230func (s GetDimensionValuesInput) GoString() string { 4231 return s.String() 4232} 4233 4234// Validate inspects the fields of the type to determine if they are valid. 4235func (s *GetDimensionValuesInput) Validate() error { 4236 invalidParams := request.ErrInvalidParams{Context: "GetDimensionValuesInput"} 4237 if s.Dimension == nil { 4238 invalidParams.Add(request.NewErrParamRequired("Dimension")) 4239 } 4240 if s.TimePeriod == nil { 4241 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 4242 } 4243 if s.TimePeriod != nil { 4244 if err := s.TimePeriod.Validate(); err != nil { 4245 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 4246 } 4247 } 4248 4249 if invalidParams.Len() > 0 { 4250 return invalidParams 4251 } 4252 return nil 4253} 4254 4255// SetContext sets the Context field's value. 4256func (s *GetDimensionValuesInput) SetContext(v string) *GetDimensionValuesInput { 4257 s.Context = &v 4258 return s 4259} 4260 4261// SetDimension sets the Dimension field's value. 4262func (s *GetDimensionValuesInput) SetDimension(v string) *GetDimensionValuesInput { 4263 s.Dimension = &v 4264 return s 4265} 4266 4267// SetNextPageToken sets the NextPageToken field's value. 4268func (s *GetDimensionValuesInput) SetNextPageToken(v string) *GetDimensionValuesInput { 4269 s.NextPageToken = &v 4270 return s 4271} 4272 4273// SetSearchString sets the SearchString field's value. 4274func (s *GetDimensionValuesInput) SetSearchString(v string) *GetDimensionValuesInput { 4275 s.SearchString = &v 4276 return s 4277} 4278 4279// SetTimePeriod sets the TimePeriod field's value. 4280func (s *GetDimensionValuesInput) SetTimePeriod(v *DateInterval) *GetDimensionValuesInput { 4281 s.TimePeriod = v 4282 return s 4283} 4284 4285type GetDimensionValuesOutput struct { 4286 _ struct{} `type:"structure"` 4287 4288 // The filters that you used to filter your request. Some dimensions are available 4289 // only for a specific context. 4290 // 4291 // If you set the context to COST_AND_USAGE, you can use the following dimensions 4292 // for searching: 4293 // 4294 // * AZ - The Availability Zone. An example is us-east-1a. 4295 // 4296 // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples 4297 // are Aurora or MySQL. 4298 // 4299 // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. 4300 // 4301 // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS 4302 // services, such as Amazon Web Services. 4303 // 4304 // * LINKED_ACCOUNT - The description in the attribute map that includes 4305 // the full name of the member account. The value field contains the AWS 4306 // ID of the member account. 4307 // 4308 // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. 4309 // 4310 // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. 4311 // 4312 // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or 4313 // Linux. 4314 // 4315 // * PURCHASE_TYPE - The reservation type of the purchase to which this usage 4316 // is related. Examples include On-Demand Instances and Standard Reserved 4317 // Instances. 4318 // 4319 // * SERVICE - The AWS service such as Amazon DynamoDB. 4320 // 4321 // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. 4322 // The response for the GetDimensionValues operation includes a unit attribute. 4323 // Examples include GB and Hrs. 4324 // 4325 // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is 4326 // Amazon EC2: CloudWatch – Alarms. The response for this operation includes 4327 // a unit attribute. 4328 // 4329 // * RECORD_TYPE - The different types of charges such as RI fees, usage 4330 // costs, tax refunds, and credits. 4331 // 4332 // * RESOURCE_ID - The unique identifier of the resource. ResourceId is an 4333 // opt-in feature only available for last 14 days for EC2-Compute Service. 4334 // 4335 // If you set the context to RESERVATIONS, you can use the following dimensions 4336 // for searching: 4337 // 4338 // * AZ - The Availability Zone. An example is us-east-1a. 4339 // 4340 // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are 4341 // Windows or Linux. 4342 // 4343 // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service 4344 // deployments. Valid values are SingleAZ and MultiAZ. 4345 // 4346 // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. 4347 // 4348 // * LINKED_ACCOUNT - The description in the attribute map that includes 4349 // the full name of the member account. The value field contains the AWS 4350 // ID of the member account. 4351 // 4352 // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or 4353 // Linux. 4354 // 4355 // * REGION - The AWS Region. 4356 // 4357 // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values 4358 // are regional or a single Availability Zone. 4359 // 4360 // * TAG (Coverage only) - The tags that are associated with a Reserved Instance 4361 // (RI). 4362 // 4363 // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. 4364 // 4365 // If you set the context to SAVINGS_PLANS, you can use the following dimensions 4366 // for searching: 4367 // 4368 // * SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute) 4369 // 4370 // * PAYMENT_OPTION - Payment option for the given Savings Plans (for example, 4371 // All Upfront) 4372 // 4373 // * REGION - The AWS Region. 4374 // 4375 // * INSTANCE_TYPE_FAMILY - The family of instances (For example, m5) 4376 // 4377 // * LINKED_ACCOUNT - The description in the attribute map that includes 4378 // the full name of the member account. The value field contains the AWS 4379 // ID of the member account. 4380 // 4381 // * SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan 4382 // 4383 // DimensionValues is a required field 4384 DimensionValues []*DimensionValuesWithAttributes `type:"list" required:"true"` 4385 4386 // The token for the next set of retrievable results. AWS provides the token 4387 // when the response from a previous call has more results than the maximum 4388 // page size. 4389 NextPageToken *string `type:"string"` 4390 4391 // The number of results that AWS returned at one time. 4392 // 4393 // ReturnSize is a required field 4394 ReturnSize *int64 `type:"integer" required:"true"` 4395 4396 // The total number of search results. 4397 // 4398 // TotalSize is a required field 4399 TotalSize *int64 `type:"integer" required:"true"` 4400} 4401 4402// String returns the string representation 4403func (s GetDimensionValuesOutput) String() string { 4404 return awsutil.Prettify(s) 4405} 4406 4407// GoString returns the string representation 4408func (s GetDimensionValuesOutput) GoString() string { 4409 return s.String() 4410} 4411 4412// SetDimensionValues sets the DimensionValues field's value. 4413func (s *GetDimensionValuesOutput) SetDimensionValues(v []*DimensionValuesWithAttributes) *GetDimensionValuesOutput { 4414 s.DimensionValues = v 4415 return s 4416} 4417 4418// SetNextPageToken sets the NextPageToken field's value. 4419func (s *GetDimensionValuesOutput) SetNextPageToken(v string) *GetDimensionValuesOutput { 4420 s.NextPageToken = &v 4421 return s 4422} 4423 4424// SetReturnSize sets the ReturnSize field's value. 4425func (s *GetDimensionValuesOutput) SetReturnSize(v int64) *GetDimensionValuesOutput { 4426 s.ReturnSize = &v 4427 return s 4428} 4429 4430// SetTotalSize sets the TotalSize field's value. 4431func (s *GetDimensionValuesOutput) SetTotalSize(v int64) *GetDimensionValuesOutput { 4432 s.TotalSize = &v 4433 return s 4434} 4435 4436// You can use the following request parameters to query for how much of your 4437// instance usage a reservation covered. 4438type GetReservationCoverageInput struct { 4439 _ struct{} `type:"structure"` 4440 4441 // Filters utilization data by dimensions. You can filter by the following dimensions: 4442 // 4443 // * AZ 4444 // 4445 // * CACHE_ENGINE 4446 // 4447 // * DATABASE_ENGINE 4448 // 4449 // * DEPLOYMENT_OPTION 4450 // 4451 // * INSTANCE_TYPE 4452 // 4453 // * LINKED_ACCOUNT 4454 // 4455 // * OPERATING_SYSTEM 4456 // 4457 // * PLATFORM 4458 // 4459 // * REGION 4460 // 4461 // * SERVICE 4462 // 4463 // * TAG 4464 // 4465 // * TENANCY 4466 // 4467 // GetReservationCoverage uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) 4468 // object as the other operations, but only AND is supported among each dimension. 4469 // You can nest only one level deep. If there are multiple values for a dimension, 4470 // they are OR'd together. 4471 // 4472 // If you don't provide a SERVICE filter, Cost Explorer defaults to EC2. 4473 // 4474 // Cost category is also supported. 4475 Filter *Expression `type:"structure"` 4476 4477 // The granularity of the AWS cost data for the reservation. Valid values are 4478 // MONTHLY and DAILY. 4479 // 4480 // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the 4481 // response object doesn't include Granularity, either MONTHLY or DAILY. 4482 // 4483 // The GetReservationCoverage operation supports only DAILY and MONTHLY granularities. 4484 Granularity *string `type:"string" enum:"Granularity"` 4485 4486 // You can group the data by the following attributes: 4487 // 4488 // * AZ 4489 // 4490 // * CACHE_ENGINE 4491 // 4492 // * DATABASE_ENGINE 4493 // 4494 // * DEPLOYMENT_OPTION 4495 // 4496 // * INSTANCE_TYPE 4497 // 4498 // * LINKED_ACCOUNT 4499 // 4500 // * OPERATING_SYSTEM 4501 // 4502 // * PLATFORM 4503 // 4504 // * REGION 4505 // 4506 // * TENANCY 4507 GroupBy []*GroupDefinition `type:"list"` 4508 4509 // The measurement that you want your reservation coverage reported in. 4510 // 4511 // Valid values are Hour, Unit, and Cost. You can use multiple values in a request. 4512 Metrics []*string `type:"list"` 4513 4514 // The token to retrieve the next set of results. AWS provides the token when 4515 // the response from a previous call has more results than the maximum page 4516 // size. 4517 NextPageToken *string `type:"string"` 4518 4519 // The start and end dates of the period that you want to retrieve data about 4520 // reservation coverage for. You can retrieve data for a maximum of 13 months: 4521 // the last 12 months and the current month. The start date is inclusive, but 4522 // the end date is exclusive. For example, if start is 2017-01-01 and end is 4523 // 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up 4524 // to and including 2017-04-30 but not including 2017-05-01. 4525 // 4526 // TimePeriod is a required field 4527 TimePeriod *DateInterval `type:"structure" required:"true"` 4528} 4529 4530// String returns the string representation 4531func (s GetReservationCoverageInput) String() string { 4532 return awsutil.Prettify(s) 4533} 4534 4535// GoString returns the string representation 4536func (s GetReservationCoverageInput) GoString() string { 4537 return s.String() 4538} 4539 4540// Validate inspects the fields of the type to determine if they are valid. 4541func (s *GetReservationCoverageInput) Validate() error { 4542 invalidParams := request.ErrInvalidParams{Context: "GetReservationCoverageInput"} 4543 if s.TimePeriod == nil { 4544 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 4545 } 4546 if s.Filter != nil { 4547 if err := s.Filter.Validate(); err != nil { 4548 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 4549 } 4550 } 4551 if s.TimePeriod != nil { 4552 if err := s.TimePeriod.Validate(); err != nil { 4553 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 4554 } 4555 } 4556 4557 if invalidParams.Len() > 0 { 4558 return invalidParams 4559 } 4560 return nil 4561} 4562 4563// SetFilter sets the Filter field's value. 4564func (s *GetReservationCoverageInput) SetFilter(v *Expression) *GetReservationCoverageInput { 4565 s.Filter = v 4566 return s 4567} 4568 4569// SetGranularity sets the Granularity field's value. 4570func (s *GetReservationCoverageInput) SetGranularity(v string) *GetReservationCoverageInput { 4571 s.Granularity = &v 4572 return s 4573} 4574 4575// SetGroupBy sets the GroupBy field's value. 4576func (s *GetReservationCoverageInput) SetGroupBy(v []*GroupDefinition) *GetReservationCoverageInput { 4577 s.GroupBy = v 4578 return s 4579} 4580 4581// SetMetrics sets the Metrics field's value. 4582func (s *GetReservationCoverageInput) SetMetrics(v []*string) *GetReservationCoverageInput { 4583 s.Metrics = v 4584 return s 4585} 4586 4587// SetNextPageToken sets the NextPageToken field's value. 4588func (s *GetReservationCoverageInput) SetNextPageToken(v string) *GetReservationCoverageInput { 4589 s.NextPageToken = &v 4590 return s 4591} 4592 4593// SetTimePeriod sets the TimePeriod field's value. 4594func (s *GetReservationCoverageInput) SetTimePeriod(v *DateInterval) *GetReservationCoverageInput { 4595 s.TimePeriod = v 4596 return s 4597} 4598 4599type GetReservationCoverageOutput struct { 4600 _ struct{} `type:"structure"` 4601 4602 // The amount of time that your reservations covered. 4603 // 4604 // CoveragesByTime is a required field 4605 CoveragesByTime []*CoverageByTime `type:"list" required:"true"` 4606 4607 // The token for the next set of retrievable results. AWS provides the token 4608 // when the response from a previous call has more results than the maximum 4609 // page size. 4610 NextPageToken *string `type:"string"` 4611 4612 // The total amount of instance usage that a reservation covered. 4613 Total *Coverage `type:"structure"` 4614} 4615 4616// String returns the string representation 4617func (s GetReservationCoverageOutput) String() string { 4618 return awsutil.Prettify(s) 4619} 4620 4621// GoString returns the string representation 4622func (s GetReservationCoverageOutput) GoString() string { 4623 return s.String() 4624} 4625 4626// SetCoveragesByTime sets the CoveragesByTime field's value. 4627func (s *GetReservationCoverageOutput) SetCoveragesByTime(v []*CoverageByTime) *GetReservationCoverageOutput { 4628 s.CoveragesByTime = v 4629 return s 4630} 4631 4632// SetNextPageToken sets the NextPageToken field's value. 4633func (s *GetReservationCoverageOutput) SetNextPageToken(v string) *GetReservationCoverageOutput { 4634 s.NextPageToken = &v 4635 return s 4636} 4637 4638// SetTotal sets the Total field's value. 4639func (s *GetReservationCoverageOutput) SetTotal(v *Coverage) *GetReservationCoverageOutput { 4640 s.Total = v 4641 return s 4642} 4643 4644type GetReservationPurchaseRecommendationInput struct { 4645 _ struct{} `type:"structure"` 4646 4647 // The account ID that is associated with the recommendation. 4648 AccountId *string `type:"string"` 4649 4650 // The account scope that you want your recommendations for. Amazon Web Services 4651 // calculates recommendations including the payer account and linked accounts 4652 // if the value is set to PAYER. If the value is LINKED, recommendations are 4653 // calculated for individual linked accounts only. 4654 AccountScope *string `type:"string" enum:"AccountScope"` 4655 4656 // The number of previous days that you want AWS to consider when it calculates 4657 // your recommendations. 4658 LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` 4659 4660 // The pagination token that indicates the next set of results that you want 4661 // to retrieve. 4662 NextPageToken *string `type:"string"` 4663 4664 // The number of recommendations that you want returned in a single response 4665 // object. 4666 PageSize *int64 `type:"integer"` 4667 4668 // The reservation purchase option that you want recommendations for. 4669 PaymentOption *string `type:"string" enum:"PaymentOption"` 4670 4671 // The specific service that you want recommendations for. 4672 // 4673 // Service is a required field 4674 Service *string `type:"string" required:"true"` 4675 4676 // The hardware specifications for the service instances that you want recommendations 4677 // for, such as standard or convertible Amazon EC2 instances. 4678 ServiceSpecification *ServiceSpecification `type:"structure"` 4679 4680 // The reservation term that you want recommendations for. 4681 TermInYears *string `type:"string" enum:"TermInYears"` 4682} 4683 4684// String returns the string representation 4685func (s GetReservationPurchaseRecommendationInput) String() string { 4686 return awsutil.Prettify(s) 4687} 4688 4689// GoString returns the string representation 4690func (s GetReservationPurchaseRecommendationInput) GoString() string { 4691 return s.String() 4692} 4693 4694// Validate inspects the fields of the type to determine if they are valid. 4695func (s *GetReservationPurchaseRecommendationInput) Validate() error { 4696 invalidParams := request.ErrInvalidParams{Context: "GetReservationPurchaseRecommendationInput"} 4697 if s.Service == nil { 4698 invalidParams.Add(request.NewErrParamRequired("Service")) 4699 } 4700 4701 if invalidParams.Len() > 0 { 4702 return invalidParams 4703 } 4704 return nil 4705} 4706 4707// SetAccountId sets the AccountId field's value. 4708func (s *GetReservationPurchaseRecommendationInput) SetAccountId(v string) *GetReservationPurchaseRecommendationInput { 4709 s.AccountId = &v 4710 return s 4711} 4712 4713// SetAccountScope sets the AccountScope field's value. 4714func (s *GetReservationPurchaseRecommendationInput) SetAccountScope(v string) *GetReservationPurchaseRecommendationInput { 4715 s.AccountScope = &v 4716 return s 4717} 4718 4719// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. 4720func (s *GetReservationPurchaseRecommendationInput) SetLookbackPeriodInDays(v string) *GetReservationPurchaseRecommendationInput { 4721 s.LookbackPeriodInDays = &v 4722 return s 4723} 4724 4725// SetNextPageToken sets the NextPageToken field's value. 4726func (s *GetReservationPurchaseRecommendationInput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationInput { 4727 s.NextPageToken = &v 4728 return s 4729} 4730 4731// SetPageSize sets the PageSize field's value. 4732func (s *GetReservationPurchaseRecommendationInput) SetPageSize(v int64) *GetReservationPurchaseRecommendationInput { 4733 s.PageSize = &v 4734 return s 4735} 4736 4737// SetPaymentOption sets the PaymentOption field's value. 4738func (s *GetReservationPurchaseRecommendationInput) SetPaymentOption(v string) *GetReservationPurchaseRecommendationInput { 4739 s.PaymentOption = &v 4740 return s 4741} 4742 4743// SetService sets the Service field's value. 4744func (s *GetReservationPurchaseRecommendationInput) SetService(v string) *GetReservationPurchaseRecommendationInput { 4745 s.Service = &v 4746 return s 4747} 4748 4749// SetServiceSpecification sets the ServiceSpecification field's value. 4750func (s *GetReservationPurchaseRecommendationInput) SetServiceSpecification(v *ServiceSpecification) *GetReservationPurchaseRecommendationInput { 4751 s.ServiceSpecification = v 4752 return s 4753} 4754 4755// SetTermInYears sets the TermInYears field's value. 4756func (s *GetReservationPurchaseRecommendationInput) SetTermInYears(v string) *GetReservationPurchaseRecommendationInput { 4757 s.TermInYears = &v 4758 return s 4759} 4760 4761type GetReservationPurchaseRecommendationOutput struct { 4762 _ struct{} `type:"structure"` 4763 4764 // Information about this specific recommendation call, such as the time stamp 4765 // for when Cost Explorer generated this recommendation. 4766 Metadata *ReservationPurchaseRecommendationMetadata `type:"structure"` 4767 4768 // The pagination token for the next set of retrievable results. 4769 NextPageToken *string `type:"string"` 4770 4771 // Recommendations for reservations to purchase. 4772 Recommendations []*ReservationPurchaseRecommendation `type:"list"` 4773} 4774 4775// String returns the string representation 4776func (s GetReservationPurchaseRecommendationOutput) String() string { 4777 return awsutil.Prettify(s) 4778} 4779 4780// GoString returns the string representation 4781func (s GetReservationPurchaseRecommendationOutput) GoString() string { 4782 return s.String() 4783} 4784 4785// SetMetadata sets the Metadata field's value. 4786func (s *GetReservationPurchaseRecommendationOutput) SetMetadata(v *ReservationPurchaseRecommendationMetadata) *GetReservationPurchaseRecommendationOutput { 4787 s.Metadata = v 4788 return s 4789} 4790 4791// SetNextPageToken sets the NextPageToken field's value. 4792func (s *GetReservationPurchaseRecommendationOutput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationOutput { 4793 s.NextPageToken = &v 4794 return s 4795} 4796 4797// SetRecommendations sets the Recommendations field's value. 4798func (s *GetReservationPurchaseRecommendationOutput) SetRecommendations(v []*ReservationPurchaseRecommendation) *GetReservationPurchaseRecommendationOutput { 4799 s.Recommendations = v 4800 return s 4801} 4802 4803type GetReservationUtilizationInput struct { 4804 _ struct{} `type:"structure"` 4805 4806 // Filters utilization data by dimensions. You can filter by the following dimensions: 4807 // 4808 // * AZ 4809 // 4810 // * CACHE_ENGINE 4811 // 4812 // * DEPLOYMENT_OPTION 4813 // 4814 // * INSTANCE_TYPE 4815 // 4816 // * LINKED_ACCOUNT 4817 // 4818 // * OPERATING_SYSTEM 4819 // 4820 // * PLATFORM 4821 // 4822 // * REGION 4823 // 4824 // * SERVICE 4825 // 4826 // * SCOPE 4827 // 4828 // * TENANCY 4829 // 4830 // GetReservationUtilization uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) 4831 // object as the other operations, but only AND is supported among each dimension, 4832 // and nesting is supported up to only one level deep. If there are multiple 4833 // values for a dimension, they are OR'd together. 4834 Filter *Expression `type:"structure"` 4835 4836 // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the 4837 // response object doesn't include Granularity, either MONTHLY or DAILY. If 4838 // both GroupBy and Granularity aren't set, GetReservationUtilization defaults 4839 // to DAILY. 4840 // 4841 // The GetReservationUtilization operation supports only DAILY and MONTHLY granularities. 4842 Granularity *string `type:"string" enum:"Granularity"` 4843 4844 // Groups only by SUBSCRIPTION_ID. Metadata is included. 4845 GroupBy []*GroupDefinition `type:"list"` 4846 4847 // The token to retrieve the next set of results. AWS provides the token when 4848 // the response from a previous call has more results than the maximum page 4849 // size. 4850 NextPageToken *string `type:"string"` 4851 4852 // Sets the start and end dates for retrieving RI utilization. The start date 4853 // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 4854 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 4855 // up to and including 2017-04-30 but not including 2017-05-01. 4856 // 4857 // TimePeriod is a required field 4858 TimePeriod *DateInterval `type:"structure" required:"true"` 4859} 4860 4861// String returns the string representation 4862func (s GetReservationUtilizationInput) String() string { 4863 return awsutil.Prettify(s) 4864} 4865 4866// GoString returns the string representation 4867func (s GetReservationUtilizationInput) GoString() string { 4868 return s.String() 4869} 4870 4871// Validate inspects the fields of the type to determine if they are valid. 4872func (s *GetReservationUtilizationInput) Validate() error { 4873 invalidParams := request.ErrInvalidParams{Context: "GetReservationUtilizationInput"} 4874 if s.TimePeriod == nil { 4875 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 4876 } 4877 if s.Filter != nil { 4878 if err := s.Filter.Validate(); err != nil { 4879 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 4880 } 4881 } 4882 if s.TimePeriod != nil { 4883 if err := s.TimePeriod.Validate(); err != nil { 4884 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 4885 } 4886 } 4887 4888 if invalidParams.Len() > 0 { 4889 return invalidParams 4890 } 4891 return nil 4892} 4893 4894// SetFilter sets the Filter field's value. 4895func (s *GetReservationUtilizationInput) SetFilter(v *Expression) *GetReservationUtilizationInput { 4896 s.Filter = v 4897 return s 4898} 4899 4900// SetGranularity sets the Granularity field's value. 4901func (s *GetReservationUtilizationInput) SetGranularity(v string) *GetReservationUtilizationInput { 4902 s.Granularity = &v 4903 return s 4904} 4905 4906// SetGroupBy sets the GroupBy field's value. 4907func (s *GetReservationUtilizationInput) SetGroupBy(v []*GroupDefinition) *GetReservationUtilizationInput { 4908 s.GroupBy = v 4909 return s 4910} 4911 4912// SetNextPageToken sets the NextPageToken field's value. 4913func (s *GetReservationUtilizationInput) SetNextPageToken(v string) *GetReservationUtilizationInput { 4914 s.NextPageToken = &v 4915 return s 4916} 4917 4918// SetTimePeriod sets the TimePeriod field's value. 4919func (s *GetReservationUtilizationInput) SetTimePeriod(v *DateInterval) *GetReservationUtilizationInput { 4920 s.TimePeriod = v 4921 return s 4922} 4923 4924type GetReservationUtilizationOutput struct { 4925 _ struct{} `type:"structure"` 4926 4927 // The token for the next set of retrievable results. AWS provides the token 4928 // when the response from a previous call has more results than the maximum 4929 // page size. 4930 NextPageToken *string `type:"string"` 4931 4932 // The total amount of time that you used your RIs. 4933 Total *ReservationAggregates `type:"structure"` 4934 4935 // The amount of time that you used your RIs. 4936 // 4937 // UtilizationsByTime is a required field 4938 UtilizationsByTime []*UtilizationByTime `type:"list" required:"true"` 4939} 4940 4941// String returns the string representation 4942func (s GetReservationUtilizationOutput) String() string { 4943 return awsutil.Prettify(s) 4944} 4945 4946// GoString returns the string representation 4947func (s GetReservationUtilizationOutput) GoString() string { 4948 return s.String() 4949} 4950 4951// SetNextPageToken sets the NextPageToken field's value. 4952func (s *GetReservationUtilizationOutput) SetNextPageToken(v string) *GetReservationUtilizationOutput { 4953 s.NextPageToken = &v 4954 return s 4955} 4956 4957// SetTotal sets the Total field's value. 4958func (s *GetReservationUtilizationOutput) SetTotal(v *ReservationAggregates) *GetReservationUtilizationOutput { 4959 s.Total = v 4960 return s 4961} 4962 4963// SetUtilizationsByTime sets the UtilizationsByTime field's value. 4964func (s *GetReservationUtilizationOutput) SetUtilizationsByTime(v []*UtilizationByTime) *GetReservationUtilizationOutput { 4965 s.UtilizationsByTime = v 4966 return s 4967} 4968 4969type GetRightsizingRecommendationInput struct { 4970 _ struct{} `type:"structure"` 4971 4972 // Enables you to customize recommendations across two attributes. You can choose 4973 // to view recommendations for instances within the same instance families or 4974 // across different instance families. You can also choose to view your estimated 4975 // savings associated with recommendations with consideration of existing Savings 4976 // Plans or RI benefits, or neither. 4977 Configuration *RightsizingRecommendationConfiguration `type:"structure"` 4978 4979 // Use Expression to filter by cost or by usage. There are two patterns: 4980 // 4981 // * Simple dimension values - You can set the dimension name and values 4982 // for the filters that you plan to use. For example, you can filter for 4983 // REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks 4984 // like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", 4985 // “us-west-1” ] } } The list of dimension values are OR'd together to 4986 // retrieve cost or usage data. You can create Expression and DimensionValues 4987 // objects using either with* methods or set* methods in multiple lines. 4988 // 4989 // * Compound dimension values with logical operations - You can use multiple 4990 // Expression types and the logical operators AND/OR/NOT to create a list 4991 // of one or more Expression objects. This allows you to filter on more advanced 4992 // options. For example, you can filter on ((REGION == us-east-1 OR REGION 4993 // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). 4994 // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": 4995 // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": 4996 // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": 4997 // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each 4998 // Expression can have only one operator, the service returns an error if 4999 // more than one is specified. The following example shows an Expression 5000 // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": 5001 // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } 5002 // 5003 // For GetRightsizingRecommendation action, a combination of OR and NOT is not 5004 // supported. OR is not supported between different dimensions, or dimensions 5005 // and tags. NOT operators aren't supported. Dimensions are also limited to 5006 // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. 5007 Filter *Expression `type:"structure"` 5008 5009 // The pagination token that indicates the next set of results that you want 5010 // to retrieve. 5011 NextPageToken *string `type:"string"` 5012 5013 // The number of recommendations that you want returned in a single response 5014 // object. 5015 PageSize *int64 `type:"integer"` 5016 5017 // The specific service that you want recommendations for. The only valid value 5018 // for GetRightsizingRecommendation is "AmazonEC2". 5019 // 5020 // Service is a required field 5021 Service *string `type:"string" required:"true"` 5022} 5023 5024// String returns the string representation 5025func (s GetRightsizingRecommendationInput) String() string { 5026 return awsutil.Prettify(s) 5027} 5028 5029// GoString returns the string representation 5030func (s GetRightsizingRecommendationInput) GoString() string { 5031 return s.String() 5032} 5033 5034// Validate inspects the fields of the type to determine if they are valid. 5035func (s *GetRightsizingRecommendationInput) Validate() error { 5036 invalidParams := request.ErrInvalidParams{Context: "GetRightsizingRecommendationInput"} 5037 if s.Service == nil { 5038 invalidParams.Add(request.NewErrParamRequired("Service")) 5039 } 5040 if s.Configuration != nil { 5041 if err := s.Configuration.Validate(); err != nil { 5042 invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams)) 5043 } 5044 } 5045 if s.Filter != nil { 5046 if err := s.Filter.Validate(); err != nil { 5047 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 5048 } 5049 } 5050 5051 if invalidParams.Len() > 0 { 5052 return invalidParams 5053 } 5054 return nil 5055} 5056 5057// SetConfiguration sets the Configuration field's value. 5058func (s *GetRightsizingRecommendationInput) SetConfiguration(v *RightsizingRecommendationConfiguration) *GetRightsizingRecommendationInput { 5059 s.Configuration = v 5060 return s 5061} 5062 5063// SetFilter sets the Filter field's value. 5064func (s *GetRightsizingRecommendationInput) SetFilter(v *Expression) *GetRightsizingRecommendationInput { 5065 s.Filter = v 5066 return s 5067} 5068 5069// SetNextPageToken sets the NextPageToken field's value. 5070func (s *GetRightsizingRecommendationInput) SetNextPageToken(v string) *GetRightsizingRecommendationInput { 5071 s.NextPageToken = &v 5072 return s 5073} 5074 5075// SetPageSize sets the PageSize field's value. 5076func (s *GetRightsizingRecommendationInput) SetPageSize(v int64) *GetRightsizingRecommendationInput { 5077 s.PageSize = &v 5078 return s 5079} 5080 5081// SetService sets the Service field's value. 5082func (s *GetRightsizingRecommendationInput) SetService(v string) *GetRightsizingRecommendationInput { 5083 s.Service = &v 5084 return s 5085} 5086 5087type GetRightsizingRecommendationOutput struct { 5088 _ struct{} `type:"structure"` 5089 5090 // Enables you to customize recommendations across two attributes. You can choose 5091 // to view recommendations for instances within the same instance families or 5092 // across different instance families. You can also choose to view your estimated 5093 // savings associated with recommendations with consideration of existing Savings 5094 // Plans or RI benefits, or neither. 5095 Configuration *RightsizingRecommendationConfiguration `type:"structure"` 5096 5097 // Information regarding this specific recommendation set. 5098 Metadata *RightsizingRecommendationMetadata `type:"structure"` 5099 5100 // The token to retrieve the next set of results. 5101 NextPageToken *string `type:"string"` 5102 5103 // Recommendations to rightsize resources. 5104 RightsizingRecommendations []*RightsizingRecommendation `type:"list"` 5105 5106 // Summary of this recommendation set. 5107 Summary *RightsizingRecommendationSummary `type:"structure"` 5108} 5109 5110// String returns the string representation 5111func (s GetRightsizingRecommendationOutput) String() string { 5112 return awsutil.Prettify(s) 5113} 5114 5115// GoString returns the string representation 5116func (s GetRightsizingRecommendationOutput) GoString() string { 5117 return s.String() 5118} 5119 5120// SetConfiguration sets the Configuration field's value. 5121func (s *GetRightsizingRecommendationOutput) SetConfiguration(v *RightsizingRecommendationConfiguration) *GetRightsizingRecommendationOutput { 5122 s.Configuration = v 5123 return s 5124} 5125 5126// SetMetadata sets the Metadata field's value. 5127func (s *GetRightsizingRecommendationOutput) SetMetadata(v *RightsizingRecommendationMetadata) *GetRightsizingRecommendationOutput { 5128 s.Metadata = v 5129 return s 5130} 5131 5132// SetNextPageToken sets the NextPageToken field's value. 5133func (s *GetRightsizingRecommendationOutput) SetNextPageToken(v string) *GetRightsizingRecommendationOutput { 5134 s.NextPageToken = &v 5135 return s 5136} 5137 5138// SetRightsizingRecommendations sets the RightsizingRecommendations field's value. 5139func (s *GetRightsizingRecommendationOutput) SetRightsizingRecommendations(v []*RightsizingRecommendation) *GetRightsizingRecommendationOutput { 5140 s.RightsizingRecommendations = v 5141 return s 5142} 5143 5144// SetSummary sets the Summary field's value. 5145func (s *GetRightsizingRecommendationOutput) SetSummary(v *RightsizingRecommendationSummary) *GetRightsizingRecommendationOutput { 5146 s.Summary = v 5147 return s 5148} 5149 5150type GetSavingsPlansCoverageInput struct { 5151 _ struct{} `type:"structure"` 5152 5153 // Filters Savings Plans coverage data by dimensions. You can filter data for 5154 // Savings Plans usage with the following dimensions: 5155 // 5156 // * LINKED_ACCOUNT 5157 // 5158 // * REGION 5159 // 5160 // * SERVICE 5161 // 5162 // * INSTANCE_FAMILY 5163 // 5164 // GetSavingsPlansCoverage uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) 5165 // object as the other operations, but only AND is supported among each dimension. 5166 // If there are multiple values for a dimension, they are OR'd together. 5167 // 5168 // Cost category is also supported. 5169 Filter *Expression `type:"structure"` 5170 5171 // The granularity of the Amazon Web Services cost data for your Savings Plans. 5172 // Granularity can't be set if GroupBy is set. 5173 // 5174 // The GetSavingsPlansCoverage operation supports only DAILY and MONTHLY granularities. 5175 Granularity *string `type:"string" enum:"Granularity"` 5176 5177 // You can group the data using the attributes INSTANCE_FAMILY, REGION, or SERVICE. 5178 GroupBy []*GroupDefinition `type:"list"` 5179 5180 // The number of items to be returned in a response. The default is 20, with 5181 // a minimum value of 1. 5182 MaxResults *int64 `min:"1" type:"integer"` 5183 5184 // The measurement that you want your Savings Plans coverage reported in. The 5185 // only valid value is SpendCoveredBySavingsPlans. 5186 Metrics []*string `type:"list"` 5187 5188 // The token to retrieve the next set of results. Amazon Web Services provides 5189 // the token when the response from a previous call has more results than the 5190 // maximum page size. 5191 NextToken *string `type:"string"` 5192 5193 // The time period that you want the usage and costs for. The Start date must 5194 // be within 13 months. The End date must be after the Start date, and before 5195 // the current date. Future dates can't be used as an End date. 5196 // 5197 // TimePeriod is a required field 5198 TimePeriod *DateInterval `type:"structure" required:"true"` 5199} 5200 5201// String returns the string representation 5202func (s GetSavingsPlansCoverageInput) String() string { 5203 return awsutil.Prettify(s) 5204} 5205 5206// GoString returns the string representation 5207func (s GetSavingsPlansCoverageInput) GoString() string { 5208 return s.String() 5209} 5210 5211// Validate inspects the fields of the type to determine if they are valid. 5212func (s *GetSavingsPlansCoverageInput) Validate() error { 5213 invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansCoverageInput"} 5214 if s.MaxResults != nil && *s.MaxResults < 1 { 5215 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) 5216 } 5217 if s.TimePeriod == nil { 5218 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 5219 } 5220 if s.Filter != nil { 5221 if err := s.Filter.Validate(); err != nil { 5222 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 5223 } 5224 } 5225 if s.TimePeriod != nil { 5226 if err := s.TimePeriod.Validate(); err != nil { 5227 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 5228 } 5229 } 5230 5231 if invalidParams.Len() > 0 { 5232 return invalidParams 5233 } 5234 return nil 5235} 5236 5237// SetFilter sets the Filter field's value. 5238func (s *GetSavingsPlansCoverageInput) SetFilter(v *Expression) *GetSavingsPlansCoverageInput { 5239 s.Filter = v 5240 return s 5241} 5242 5243// SetGranularity sets the Granularity field's value. 5244func (s *GetSavingsPlansCoverageInput) SetGranularity(v string) *GetSavingsPlansCoverageInput { 5245 s.Granularity = &v 5246 return s 5247} 5248 5249// SetGroupBy sets the GroupBy field's value. 5250func (s *GetSavingsPlansCoverageInput) SetGroupBy(v []*GroupDefinition) *GetSavingsPlansCoverageInput { 5251 s.GroupBy = v 5252 return s 5253} 5254 5255// SetMaxResults sets the MaxResults field's value. 5256func (s *GetSavingsPlansCoverageInput) SetMaxResults(v int64) *GetSavingsPlansCoverageInput { 5257 s.MaxResults = &v 5258 return s 5259} 5260 5261// SetMetrics sets the Metrics field's value. 5262func (s *GetSavingsPlansCoverageInput) SetMetrics(v []*string) *GetSavingsPlansCoverageInput { 5263 s.Metrics = v 5264 return s 5265} 5266 5267// SetNextToken sets the NextToken field's value. 5268func (s *GetSavingsPlansCoverageInput) SetNextToken(v string) *GetSavingsPlansCoverageInput { 5269 s.NextToken = &v 5270 return s 5271} 5272 5273// SetTimePeriod sets the TimePeriod field's value. 5274func (s *GetSavingsPlansCoverageInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansCoverageInput { 5275 s.TimePeriod = v 5276 return s 5277} 5278 5279type GetSavingsPlansCoverageOutput struct { 5280 _ struct{} `type:"structure"` 5281 5282 // The token to retrieve the next set of results. Amazon Web Services provides 5283 // the token when the response from a previous call has more results than the 5284 // maximum page size. 5285 NextToken *string `type:"string"` 5286 5287 // The amount of spend that your Savings Plans covered. 5288 // 5289 // SavingsPlansCoverages is a required field 5290 SavingsPlansCoverages []*SavingsPlansCoverage `type:"list" required:"true"` 5291} 5292 5293// String returns the string representation 5294func (s GetSavingsPlansCoverageOutput) String() string { 5295 return awsutil.Prettify(s) 5296} 5297 5298// GoString returns the string representation 5299func (s GetSavingsPlansCoverageOutput) GoString() string { 5300 return s.String() 5301} 5302 5303// SetNextToken sets the NextToken field's value. 5304func (s *GetSavingsPlansCoverageOutput) SetNextToken(v string) *GetSavingsPlansCoverageOutput { 5305 s.NextToken = &v 5306 return s 5307} 5308 5309// SetSavingsPlansCoverages sets the SavingsPlansCoverages field's value. 5310func (s *GetSavingsPlansCoverageOutput) SetSavingsPlansCoverages(v []*SavingsPlansCoverage) *GetSavingsPlansCoverageOutput { 5311 s.SavingsPlansCoverages = v 5312 return s 5313} 5314 5315type GetSavingsPlansPurchaseRecommendationInput struct { 5316 _ struct{} `type:"structure"` 5317 5318 // The account scope that you want your recommendations for. Amazon Web Services 5319 // calculates recommendations including the payer account and linked accounts 5320 // if the value is set to PAYER. If the value is LINKED, recommendations are 5321 // calculated for individual linked accounts only. 5322 AccountScope *string `type:"string" enum:"AccountScope"` 5323 5324 // You can filter your recommendations by Account ID with the LINKED_ACCOUNT 5325 // dimension. To filter your recommendations by Account ID, specify Key as LINKED_ACCOUNT 5326 // and Value as the comma-separated Acount ID(s) for which you want to see Savings 5327 // Plans purchase recommendations. 5328 // 5329 // For GetSavingsPlansPurchaseRecommendation, the Filter does not include CostCategories 5330 // or Tags. It only includes Dimensions. With Dimensions, Key must be LINKED_ACCOUNT 5331 // and Value can be a single Account ID or multiple comma-separated Account 5332 // IDs for which you want to see Savings Plans Purchase Recommendations. AND 5333 // and OR operators are not supported. 5334 Filter *Expression `type:"structure"` 5335 5336 // The lookback period used to generate the recommendation. 5337 // 5338 // LookbackPeriodInDays is a required field 5339 LookbackPeriodInDays *string `type:"string" required:"true" enum:"LookbackPeriodInDays"` 5340 5341 // The token to retrieve the next set of results. Amazon Web Services provides 5342 // the token when the response from a previous call has more results than the 5343 // maximum page size. 5344 NextPageToken *string `type:"string"` 5345 5346 // The number of recommendations that you want returned in a single response 5347 // object. 5348 PageSize *int64 `type:"integer"` 5349 5350 // The payment option used to generate these recommendations. 5351 // 5352 // PaymentOption is a required field 5353 PaymentOption *string `type:"string" required:"true" enum:"PaymentOption"` 5354 5355 // The Savings Plans recommendation type requested. 5356 // 5357 // SavingsPlansType is a required field 5358 SavingsPlansType *string `type:"string" required:"true" enum:"SupportedSavingsPlansType"` 5359 5360 // The savings plan recommendation term used to generate these recommendations. 5361 // 5362 // TermInYears is a required field 5363 TermInYears *string `type:"string" required:"true" enum:"TermInYears"` 5364} 5365 5366// String returns the string representation 5367func (s GetSavingsPlansPurchaseRecommendationInput) String() string { 5368 return awsutil.Prettify(s) 5369} 5370 5371// GoString returns the string representation 5372func (s GetSavingsPlansPurchaseRecommendationInput) GoString() string { 5373 return s.String() 5374} 5375 5376// Validate inspects the fields of the type to determine if they are valid. 5377func (s *GetSavingsPlansPurchaseRecommendationInput) Validate() error { 5378 invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansPurchaseRecommendationInput"} 5379 if s.LookbackPeriodInDays == nil { 5380 invalidParams.Add(request.NewErrParamRequired("LookbackPeriodInDays")) 5381 } 5382 if s.PaymentOption == nil { 5383 invalidParams.Add(request.NewErrParamRequired("PaymentOption")) 5384 } 5385 if s.SavingsPlansType == nil { 5386 invalidParams.Add(request.NewErrParamRequired("SavingsPlansType")) 5387 } 5388 if s.TermInYears == nil { 5389 invalidParams.Add(request.NewErrParamRequired("TermInYears")) 5390 } 5391 if s.Filter != nil { 5392 if err := s.Filter.Validate(); err != nil { 5393 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 5394 } 5395 } 5396 5397 if invalidParams.Len() > 0 { 5398 return invalidParams 5399 } 5400 return nil 5401} 5402 5403// SetAccountScope sets the AccountScope field's value. 5404func (s *GetSavingsPlansPurchaseRecommendationInput) SetAccountScope(v string) *GetSavingsPlansPurchaseRecommendationInput { 5405 s.AccountScope = &v 5406 return s 5407} 5408 5409// SetFilter sets the Filter field's value. 5410func (s *GetSavingsPlansPurchaseRecommendationInput) SetFilter(v *Expression) *GetSavingsPlansPurchaseRecommendationInput { 5411 s.Filter = v 5412 return s 5413} 5414 5415// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. 5416func (s *GetSavingsPlansPurchaseRecommendationInput) SetLookbackPeriodInDays(v string) *GetSavingsPlansPurchaseRecommendationInput { 5417 s.LookbackPeriodInDays = &v 5418 return s 5419} 5420 5421// SetNextPageToken sets the NextPageToken field's value. 5422func (s *GetSavingsPlansPurchaseRecommendationInput) SetNextPageToken(v string) *GetSavingsPlansPurchaseRecommendationInput { 5423 s.NextPageToken = &v 5424 return s 5425} 5426 5427// SetPageSize sets the PageSize field's value. 5428func (s *GetSavingsPlansPurchaseRecommendationInput) SetPageSize(v int64) *GetSavingsPlansPurchaseRecommendationInput { 5429 s.PageSize = &v 5430 return s 5431} 5432 5433// SetPaymentOption sets the PaymentOption field's value. 5434func (s *GetSavingsPlansPurchaseRecommendationInput) SetPaymentOption(v string) *GetSavingsPlansPurchaseRecommendationInput { 5435 s.PaymentOption = &v 5436 return s 5437} 5438 5439// SetSavingsPlansType sets the SavingsPlansType field's value. 5440func (s *GetSavingsPlansPurchaseRecommendationInput) SetSavingsPlansType(v string) *GetSavingsPlansPurchaseRecommendationInput { 5441 s.SavingsPlansType = &v 5442 return s 5443} 5444 5445// SetTermInYears sets the TermInYears field's value. 5446func (s *GetSavingsPlansPurchaseRecommendationInput) SetTermInYears(v string) *GetSavingsPlansPurchaseRecommendationInput { 5447 s.TermInYears = &v 5448 return s 5449} 5450 5451type GetSavingsPlansPurchaseRecommendationOutput struct { 5452 _ struct{} `type:"structure"` 5453 5454 // Information regarding this specific recommendation set. 5455 Metadata *SavingsPlansPurchaseRecommendationMetadata `type:"structure"` 5456 5457 // The token for the next set of retrievable results. AWS provides the token 5458 // when the response from a previous call has more results than the maximum 5459 // page size. 5460 NextPageToken *string `type:"string"` 5461 5462 // Contains your request parameters, Savings Plan Recommendations Summary, and 5463 // Details. 5464 SavingsPlansPurchaseRecommendation *SavingsPlansPurchaseRecommendation `type:"structure"` 5465} 5466 5467// String returns the string representation 5468func (s GetSavingsPlansPurchaseRecommendationOutput) String() string { 5469 return awsutil.Prettify(s) 5470} 5471 5472// GoString returns the string representation 5473func (s GetSavingsPlansPurchaseRecommendationOutput) GoString() string { 5474 return s.String() 5475} 5476 5477// SetMetadata sets the Metadata field's value. 5478func (s *GetSavingsPlansPurchaseRecommendationOutput) SetMetadata(v *SavingsPlansPurchaseRecommendationMetadata) *GetSavingsPlansPurchaseRecommendationOutput { 5479 s.Metadata = v 5480 return s 5481} 5482 5483// SetNextPageToken sets the NextPageToken field's value. 5484func (s *GetSavingsPlansPurchaseRecommendationOutput) SetNextPageToken(v string) *GetSavingsPlansPurchaseRecommendationOutput { 5485 s.NextPageToken = &v 5486 return s 5487} 5488 5489// SetSavingsPlansPurchaseRecommendation sets the SavingsPlansPurchaseRecommendation field's value. 5490func (s *GetSavingsPlansPurchaseRecommendationOutput) SetSavingsPlansPurchaseRecommendation(v *SavingsPlansPurchaseRecommendation) *GetSavingsPlansPurchaseRecommendationOutput { 5491 s.SavingsPlansPurchaseRecommendation = v 5492 return s 5493} 5494 5495type GetSavingsPlansUtilizationDetailsInput struct { 5496 _ struct{} `type:"structure"` 5497 5498 // Filters Savings Plans utilization coverage data for active Savings Plans 5499 // dimensions. You can filter data with the following dimensions: 5500 // 5501 // * LINKED_ACCOUNT 5502 // 5503 // * SAVINGS_PLAN_ARN 5504 // 5505 // * REGION 5506 // 5507 // * PAYMENT_OPTION 5508 // 5509 // * INSTANCE_TYPE_FAMILY 5510 // 5511 // GetSavingsPlansUtilizationDetails uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) 5512 // object as the other operations, but only AND is supported among each dimension. 5513 Filter *Expression `type:"structure"` 5514 5515 // The number of items to be returned in a response. The default is 20, with 5516 // a minimum value of 1. 5517 MaxResults *int64 `min:"1" type:"integer"` 5518 5519 // The token to retrieve the next set of results. Amazon Web Services provides 5520 // the token when the response from a previous call has more results than the 5521 // maximum page size. 5522 NextToken *string `type:"string"` 5523 5524 // The time period that you want the usage and costs for. The Start date must 5525 // be within 13 months. The End date must be after the Start date, and before 5526 // the current date. Future dates can't be used as an End date. 5527 // 5528 // TimePeriod is a required field 5529 TimePeriod *DateInterval `type:"structure" required:"true"` 5530} 5531 5532// String returns the string representation 5533func (s GetSavingsPlansUtilizationDetailsInput) String() string { 5534 return awsutil.Prettify(s) 5535} 5536 5537// GoString returns the string representation 5538func (s GetSavingsPlansUtilizationDetailsInput) GoString() string { 5539 return s.String() 5540} 5541 5542// Validate inspects the fields of the type to determine if they are valid. 5543func (s *GetSavingsPlansUtilizationDetailsInput) Validate() error { 5544 invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansUtilizationDetailsInput"} 5545 if s.MaxResults != nil && *s.MaxResults < 1 { 5546 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) 5547 } 5548 if s.TimePeriod == nil { 5549 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 5550 } 5551 if s.Filter != nil { 5552 if err := s.Filter.Validate(); err != nil { 5553 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 5554 } 5555 } 5556 if s.TimePeriod != nil { 5557 if err := s.TimePeriod.Validate(); err != nil { 5558 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 5559 } 5560 } 5561 5562 if invalidParams.Len() > 0 { 5563 return invalidParams 5564 } 5565 return nil 5566} 5567 5568// SetFilter sets the Filter field's value. 5569func (s *GetSavingsPlansUtilizationDetailsInput) SetFilter(v *Expression) *GetSavingsPlansUtilizationDetailsInput { 5570 s.Filter = v 5571 return s 5572} 5573 5574// SetMaxResults sets the MaxResults field's value. 5575func (s *GetSavingsPlansUtilizationDetailsInput) SetMaxResults(v int64) *GetSavingsPlansUtilizationDetailsInput { 5576 s.MaxResults = &v 5577 return s 5578} 5579 5580// SetNextToken sets the NextToken field's value. 5581func (s *GetSavingsPlansUtilizationDetailsInput) SetNextToken(v string) *GetSavingsPlansUtilizationDetailsInput { 5582 s.NextToken = &v 5583 return s 5584} 5585 5586// SetTimePeriod sets the TimePeriod field's value. 5587func (s *GetSavingsPlansUtilizationDetailsInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationDetailsInput { 5588 s.TimePeriod = v 5589 return s 5590} 5591 5592type GetSavingsPlansUtilizationDetailsOutput struct { 5593 _ struct{} `type:"structure"` 5594 5595 // The token to retrieve the next set of results. Amazon Web Services provides 5596 // the token when the response from a previous call has more results than the 5597 // maximum page size. 5598 NextToken *string `type:"string"` 5599 5600 // Retrieves a single daily or monthly Savings Plans utilization rate and details 5601 // for your account. 5602 // 5603 // SavingsPlansUtilizationDetails is a required field 5604 SavingsPlansUtilizationDetails []*SavingsPlansUtilizationDetail `type:"list" required:"true"` 5605 5606 // The time period that you want the usage and costs for. 5607 // 5608 // TimePeriod is a required field 5609 TimePeriod *DateInterval `type:"structure" required:"true"` 5610 5611 // The total Savings Plans utilization, regardless of time period. 5612 Total *SavingsPlansUtilizationAggregates `type:"structure"` 5613} 5614 5615// String returns the string representation 5616func (s GetSavingsPlansUtilizationDetailsOutput) String() string { 5617 return awsutil.Prettify(s) 5618} 5619 5620// GoString returns the string representation 5621func (s GetSavingsPlansUtilizationDetailsOutput) GoString() string { 5622 return s.String() 5623} 5624 5625// SetNextToken sets the NextToken field's value. 5626func (s *GetSavingsPlansUtilizationDetailsOutput) SetNextToken(v string) *GetSavingsPlansUtilizationDetailsOutput { 5627 s.NextToken = &v 5628 return s 5629} 5630 5631// SetSavingsPlansUtilizationDetails sets the SavingsPlansUtilizationDetails field's value. 5632func (s *GetSavingsPlansUtilizationDetailsOutput) SetSavingsPlansUtilizationDetails(v []*SavingsPlansUtilizationDetail) *GetSavingsPlansUtilizationDetailsOutput { 5633 s.SavingsPlansUtilizationDetails = v 5634 return s 5635} 5636 5637// SetTimePeriod sets the TimePeriod field's value. 5638func (s *GetSavingsPlansUtilizationDetailsOutput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationDetailsOutput { 5639 s.TimePeriod = v 5640 return s 5641} 5642 5643// SetTotal sets the Total field's value. 5644func (s *GetSavingsPlansUtilizationDetailsOutput) SetTotal(v *SavingsPlansUtilizationAggregates) *GetSavingsPlansUtilizationDetailsOutput { 5645 s.Total = v 5646 return s 5647} 5648 5649type GetSavingsPlansUtilizationInput struct { 5650 _ struct{} `type:"structure"` 5651 5652 // Filters Savings Plans utilization coverage data for active Savings Plans 5653 // dimensions. You can filter data with the following dimensions: 5654 // 5655 // * LINKED_ACCOUNT 5656 // 5657 // * SAVINGS_PLAN_ARN 5658 // 5659 // * SAVINGS_PLANS_TYPE 5660 // 5661 // * REGION 5662 // 5663 // * PAYMENT_OPTION 5664 // 5665 // * INSTANCE_TYPE_FAMILY 5666 // 5667 // GetSavingsPlansUtilization uses the same Expression (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) 5668 // object as the other operations, but only AND is supported among each dimension. 5669 Filter *Expression `type:"structure"` 5670 5671 // The granularity of the Amazon Web Services utillization data for your Savings 5672 // Plans. 5673 // 5674 // The GetSavingsPlansUtilization operation supports only DAILY and MONTHLY 5675 // granularities. 5676 Granularity *string `type:"string" enum:"Granularity"` 5677 5678 // The time period that you want the usage and costs for. The Start date must 5679 // be within 13 months. The End date must be after the Start date, and before 5680 // the current date. Future dates can't be used as an End date. 5681 // 5682 // TimePeriod is a required field 5683 TimePeriod *DateInterval `type:"structure" required:"true"` 5684} 5685 5686// String returns the string representation 5687func (s GetSavingsPlansUtilizationInput) String() string { 5688 return awsutil.Prettify(s) 5689} 5690 5691// GoString returns the string representation 5692func (s GetSavingsPlansUtilizationInput) GoString() string { 5693 return s.String() 5694} 5695 5696// Validate inspects the fields of the type to determine if they are valid. 5697func (s *GetSavingsPlansUtilizationInput) Validate() error { 5698 invalidParams := request.ErrInvalidParams{Context: "GetSavingsPlansUtilizationInput"} 5699 if s.TimePeriod == nil { 5700 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 5701 } 5702 if s.Filter != nil { 5703 if err := s.Filter.Validate(); err != nil { 5704 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 5705 } 5706 } 5707 if s.TimePeriod != nil { 5708 if err := s.TimePeriod.Validate(); err != nil { 5709 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 5710 } 5711 } 5712 5713 if invalidParams.Len() > 0 { 5714 return invalidParams 5715 } 5716 return nil 5717} 5718 5719// SetFilter sets the Filter field's value. 5720func (s *GetSavingsPlansUtilizationInput) SetFilter(v *Expression) *GetSavingsPlansUtilizationInput { 5721 s.Filter = v 5722 return s 5723} 5724 5725// SetGranularity sets the Granularity field's value. 5726func (s *GetSavingsPlansUtilizationInput) SetGranularity(v string) *GetSavingsPlansUtilizationInput { 5727 s.Granularity = &v 5728 return s 5729} 5730 5731// SetTimePeriod sets the TimePeriod field's value. 5732func (s *GetSavingsPlansUtilizationInput) SetTimePeriod(v *DateInterval) *GetSavingsPlansUtilizationInput { 5733 s.TimePeriod = v 5734 return s 5735} 5736 5737type GetSavingsPlansUtilizationOutput struct { 5738 _ struct{} `type:"structure"` 5739 5740 // The amount of cost/commitment you used your Savings Plans. This allows you 5741 // to specify date ranges. 5742 SavingsPlansUtilizationsByTime []*SavingsPlansUtilizationByTime `type:"list"` 5743 5744 // The total amount of cost/commitment that you used your Savings Plans, regardless 5745 // of date ranges. 5746 // 5747 // Total is a required field 5748 Total *SavingsPlansUtilizationAggregates `type:"structure" required:"true"` 5749} 5750 5751// String returns the string representation 5752func (s GetSavingsPlansUtilizationOutput) String() string { 5753 return awsutil.Prettify(s) 5754} 5755 5756// GoString returns the string representation 5757func (s GetSavingsPlansUtilizationOutput) GoString() string { 5758 return s.String() 5759} 5760 5761// SetSavingsPlansUtilizationsByTime sets the SavingsPlansUtilizationsByTime field's value. 5762func (s *GetSavingsPlansUtilizationOutput) SetSavingsPlansUtilizationsByTime(v []*SavingsPlansUtilizationByTime) *GetSavingsPlansUtilizationOutput { 5763 s.SavingsPlansUtilizationsByTime = v 5764 return s 5765} 5766 5767// SetTotal sets the Total field's value. 5768func (s *GetSavingsPlansUtilizationOutput) SetTotal(v *SavingsPlansUtilizationAggregates) *GetSavingsPlansUtilizationOutput { 5769 s.Total = v 5770 return s 5771} 5772 5773type GetTagsInput struct { 5774 _ struct{} `type:"structure"` 5775 5776 // The token to retrieve the next set of results. AWS provides the token when 5777 // the response from a previous call has more results than the maximum page 5778 // size. 5779 NextPageToken *string `type:"string"` 5780 5781 // The value that you want to search for. 5782 SearchString *string `type:"string"` 5783 5784 // The key of the tag that you want to return values for. 5785 TagKey *string `type:"string"` 5786 5787 // The start and end dates for retrieving the dimension values. The start date 5788 // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 5789 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 5790 // up to and including 2017-04-30 but not including 2017-05-01. 5791 // 5792 // TimePeriod is a required field 5793 TimePeriod *DateInterval `type:"structure" required:"true"` 5794} 5795 5796// String returns the string representation 5797func (s GetTagsInput) String() string { 5798 return awsutil.Prettify(s) 5799} 5800 5801// GoString returns the string representation 5802func (s GetTagsInput) GoString() string { 5803 return s.String() 5804} 5805 5806// Validate inspects the fields of the type to determine if they are valid. 5807func (s *GetTagsInput) Validate() error { 5808 invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"} 5809 if s.TimePeriod == nil { 5810 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 5811 } 5812 if s.TimePeriod != nil { 5813 if err := s.TimePeriod.Validate(); err != nil { 5814 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 5815 } 5816 } 5817 5818 if invalidParams.Len() > 0 { 5819 return invalidParams 5820 } 5821 return nil 5822} 5823 5824// SetNextPageToken sets the NextPageToken field's value. 5825func (s *GetTagsInput) SetNextPageToken(v string) *GetTagsInput { 5826 s.NextPageToken = &v 5827 return s 5828} 5829 5830// SetSearchString sets the SearchString field's value. 5831func (s *GetTagsInput) SetSearchString(v string) *GetTagsInput { 5832 s.SearchString = &v 5833 return s 5834} 5835 5836// SetTagKey sets the TagKey field's value. 5837func (s *GetTagsInput) SetTagKey(v string) *GetTagsInput { 5838 s.TagKey = &v 5839 return s 5840} 5841 5842// SetTimePeriod sets the TimePeriod field's value. 5843func (s *GetTagsInput) SetTimePeriod(v *DateInterval) *GetTagsInput { 5844 s.TimePeriod = v 5845 return s 5846} 5847 5848type GetTagsOutput struct { 5849 _ struct{} `type:"structure"` 5850 5851 // The token for the next set of retrievable results. AWS provides the token 5852 // when the response from a previous call has more results than the maximum 5853 // page size. 5854 NextPageToken *string `type:"string"` 5855 5856 // The number of query results that AWS returns at a time. 5857 // 5858 // ReturnSize is a required field 5859 ReturnSize *int64 `type:"integer" required:"true"` 5860 5861 // The tags that match your request. 5862 // 5863 // Tags is a required field 5864 Tags []*string `type:"list" required:"true"` 5865 5866 // The total number of query results. 5867 // 5868 // TotalSize is a required field 5869 TotalSize *int64 `type:"integer" required:"true"` 5870} 5871 5872// String returns the string representation 5873func (s GetTagsOutput) String() string { 5874 return awsutil.Prettify(s) 5875} 5876 5877// GoString returns the string representation 5878func (s GetTagsOutput) GoString() string { 5879 return s.String() 5880} 5881 5882// SetNextPageToken sets the NextPageToken field's value. 5883func (s *GetTagsOutput) SetNextPageToken(v string) *GetTagsOutput { 5884 s.NextPageToken = &v 5885 return s 5886} 5887 5888// SetReturnSize sets the ReturnSize field's value. 5889func (s *GetTagsOutput) SetReturnSize(v int64) *GetTagsOutput { 5890 s.ReturnSize = &v 5891 return s 5892} 5893 5894// SetTags sets the Tags field's value. 5895func (s *GetTagsOutput) SetTags(v []*string) *GetTagsOutput { 5896 s.Tags = v 5897 return s 5898} 5899 5900// SetTotalSize sets the TotalSize field's value. 5901func (s *GetTagsOutput) SetTotalSize(v int64) *GetTagsOutput { 5902 s.TotalSize = &v 5903 return s 5904} 5905 5906type GetUsageForecastInput struct { 5907 _ struct{} `type:"structure"` 5908 5909 // The filters that you want to use to filter your forecast. Cost Explorer API 5910 // supports all of the Cost Explorer filters. 5911 Filter *Expression `type:"structure"` 5912 5913 // How granular you want the forecast to be. You can get 3 months of DAILY forecasts 5914 // or 12 months of MONTHLY forecasts. 5915 // 5916 // The GetUsageForecast operation supports only DAILY and MONTHLY granularities. 5917 // 5918 // Granularity is a required field 5919 Granularity *string `type:"string" required:"true" enum:"Granularity"` 5920 5921 // Which metric Cost Explorer uses to create your forecast. 5922 // 5923 // Valid values for a GetUsageForecast call are the following: 5924 // 5925 // * USAGE_QUANTITY 5926 // 5927 // * NORMALIZED_USAGE_AMOUNT 5928 // 5929 // Metric is a required field 5930 Metric *string `type:"string" required:"true" enum:"Metric"` 5931 5932 // Cost Explorer always returns the mean forecast as a single point. You can 5933 // request a prediction interval around the mean by specifying a confidence 5934 // level. The higher the confidence level, the more confident Cost Explorer 5935 // is about the actual value falling in the prediction interval. Higher confidence 5936 // levels result in wider prediction intervals. 5937 PredictionIntervalLevel *int64 `min:"51" type:"integer"` 5938 5939 // The start and end dates of the period that you want to retrieve usage forecast 5940 // for. The start date is inclusive, but the end date is exclusive. For example, 5941 // if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data 5942 // is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 5943 // 2017-05-01. 5944 // 5945 // TimePeriod is a required field 5946 TimePeriod *DateInterval `type:"structure" required:"true"` 5947} 5948 5949// String returns the string representation 5950func (s GetUsageForecastInput) String() string { 5951 return awsutil.Prettify(s) 5952} 5953 5954// GoString returns the string representation 5955func (s GetUsageForecastInput) GoString() string { 5956 return s.String() 5957} 5958 5959// Validate inspects the fields of the type to determine if they are valid. 5960func (s *GetUsageForecastInput) Validate() error { 5961 invalidParams := request.ErrInvalidParams{Context: "GetUsageForecastInput"} 5962 if s.Granularity == nil { 5963 invalidParams.Add(request.NewErrParamRequired("Granularity")) 5964 } 5965 if s.Metric == nil { 5966 invalidParams.Add(request.NewErrParamRequired("Metric")) 5967 } 5968 if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { 5969 invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) 5970 } 5971 if s.TimePeriod == nil { 5972 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 5973 } 5974 if s.Filter != nil { 5975 if err := s.Filter.Validate(); err != nil { 5976 invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) 5977 } 5978 } 5979 if s.TimePeriod != nil { 5980 if err := s.TimePeriod.Validate(); err != nil { 5981 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 5982 } 5983 } 5984 5985 if invalidParams.Len() > 0 { 5986 return invalidParams 5987 } 5988 return nil 5989} 5990 5991// SetFilter sets the Filter field's value. 5992func (s *GetUsageForecastInput) SetFilter(v *Expression) *GetUsageForecastInput { 5993 s.Filter = v 5994 return s 5995} 5996 5997// SetGranularity sets the Granularity field's value. 5998func (s *GetUsageForecastInput) SetGranularity(v string) *GetUsageForecastInput { 5999 s.Granularity = &v 6000 return s 6001} 6002 6003// SetMetric sets the Metric field's value. 6004func (s *GetUsageForecastInput) SetMetric(v string) *GetUsageForecastInput { 6005 s.Metric = &v 6006 return s 6007} 6008 6009// SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. 6010func (s *GetUsageForecastInput) SetPredictionIntervalLevel(v int64) *GetUsageForecastInput { 6011 s.PredictionIntervalLevel = &v 6012 return s 6013} 6014 6015// SetTimePeriod sets the TimePeriod field's value. 6016func (s *GetUsageForecastInput) SetTimePeriod(v *DateInterval) *GetUsageForecastInput { 6017 s.TimePeriod = v 6018 return s 6019} 6020 6021type GetUsageForecastOutput struct { 6022 _ struct{} `type:"structure"` 6023 6024 // The forecasts for your query, in order. For DAILY forecasts, this is a list 6025 // of days. For MONTHLY forecasts, this is a list of months. 6026 ForecastResultsByTime []*ForecastResult `type:"list"` 6027 6028 // How much you're forecasted to use over the forecast period. 6029 Total *MetricValue `type:"structure"` 6030} 6031 6032// String returns the string representation 6033func (s GetUsageForecastOutput) String() string { 6034 return awsutil.Prettify(s) 6035} 6036 6037// GoString returns the string representation 6038func (s GetUsageForecastOutput) GoString() string { 6039 return s.String() 6040} 6041 6042// SetForecastResultsByTime sets the ForecastResultsByTime field's value. 6043func (s *GetUsageForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetUsageForecastOutput { 6044 s.ForecastResultsByTime = v 6045 return s 6046} 6047 6048// SetTotal sets the Total field's value. 6049func (s *GetUsageForecastOutput) SetTotal(v *MetricValue) *GetUsageForecastOutput { 6050 s.Total = v 6051 return s 6052} 6053 6054// One level of grouped data in the results. 6055type Group struct { 6056 _ struct{} `type:"structure"` 6057 6058 // The keys that are included in this group. 6059 Keys []*string `type:"list"` 6060 6061 // The metrics that are included in this group. 6062 Metrics map[string]*MetricValue `type:"map"` 6063} 6064 6065// String returns the string representation 6066func (s Group) String() string { 6067 return awsutil.Prettify(s) 6068} 6069 6070// GoString returns the string representation 6071func (s Group) GoString() string { 6072 return s.String() 6073} 6074 6075// SetKeys sets the Keys field's value. 6076func (s *Group) SetKeys(v []*string) *Group { 6077 s.Keys = v 6078 return s 6079} 6080 6081// SetMetrics sets the Metrics field's value. 6082func (s *Group) SetMetrics(v map[string]*MetricValue) *Group { 6083 s.Metrics = v 6084 return s 6085} 6086 6087// Represents a group when you specify a group by criteria or in the response 6088// to a query with a specific grouping. 6089type GroupDefinition struct { 6090 _ struct{} `type:"structure"` 6091 6092 // The string that represents a key for a specified group. 6093 Key *string `type:"string"` 6094 6095 // The string that represents the type of group. 6096 Type *string `type:"string" enum:"GroupDefinitionType"` 6097} 6098 6099// String returns the string representation 6100func (s GroupDefinition) String() string { 6101 return awsutil.Prettify(s) 6102} 6103 6104// GoString returns the string representation 6105func (s GroupDefinition) GoString() string { 6106 return s.String() 6107} 6108 6109// SetKey sets the Key field's value. 6110func (s *GroupDefinition) SetKey(v string) *GroupDefinition { 6111 s.Key = &v 6112 return s 6113} 6114 6115// SetType sets the Type field's value. 6116func (s *GroupDefinition) SetType(v string) *GroupDefinition { 6117 s.Type = &v 6118 return s 6119} 6120 6121// Details about the instances that AWS recommends that you purchase. 6122type InstanceDetails struct { 6123 _ struct{} `type:"structure"` 6124 6125 // The Amazon EC2 instances that AWS recommends that you purchase. 6126 EC2InstanceDetails *EC2InstanceDetails `type:"structure"` 6127 6128 // The Amazon ES instances that AWS recommends that you purchase. 6129 ESInstanceDetails *ESInstanceDetails `type:"structure"` 6130 6131 // The ElastiCache instances that AWS recommends that you purchase. 6132 ElastiCacheInstanceDetails *ElastiCacheInstanceDetails `type:"structure"` 6133 6134 // The Amazon RDS instances that AWS recommends that you purchase. 6135 RDSInstanceDetails *RDSInstanceDetails `type:"structure"` 6136 6137 // The Amazon Redshift instances that AWS recommends that you purchase. 6138 RedshiftInstanceDetails *RedshiftInstanceDetails `type:"structure"` 6139} 6140 6141// String returns the string representation 6142func (s InstanceDetails) String() string { 6143 return awsutil.Prettify(s) 6144} 6145 6146// GoString returns the string representation 6147func (s InstanceDetails) GoString() string { 6148 return s.String() 6149} 6150 6151// SetEC2InstanceDetails sets the EC2InstanceDetails field's value. 6152func (s *InstanceDetails) SetEC2InstanceDetails(v *EC2InstanceDetails) *InstanceDetails { 6153 s.EC2InstanceDetails = v 6154 return s 6155} 6156 6157// SetESInstanceDetails sets the ESInstanceDetails field's value. 6158func (s *InstanceDetails) SetESInstanceDetails(v *ESInstanceDetails) *InstanceDetails { 6159 s.ESInstanceDetails = v 6160 return s 6161} 6162 6163// SetElastiCacheInstanceDetails sets the ElastiCacheInstanceDetails field's value. 6164func (s *InstanceDetails) SetElastiCacheInstanceDetails(v *ElastiCacheInstanceDetails) *InstanceDetails { 6165 s.ElastiCacheInstanceDetails = v 6166 return s 6167} 6168 6169// SetRDSInstanceDetails sets the RDSInstanceDetails field's value. 6170func (s *InstanceDetails) SetRDSInstanceDetails(v *RDSInstanceDetails) *InstanceDetails { 6171 s.RDSInstanceDetails = v 6172 return s 6173} 6174 6175// SetRedshiftInstanceDetails sets the RedshiftInstanceDetails field's value. 6176func (s *InstanceDetails) SetRedshiftInstanceDetails(v *RedshiftInstanceDetails) *InstanceDetails { 6177 s.RedshiftInstanceDetails = v 6178 return s 6179} 6180 6181// The pagination token is invalid. Try again without a pagination token. 6182type InvalidNextTokenException struct { 6183 _ struct{} `type:"structure"` 6184 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6185 6186 Message_ *string `locationName:"Message" type:"string"` 6187} 6188 6189// String returns the string representation 6190func (s InvalidNextTokenException) String() string { 6191 return awsutil.Prettify(s) 6192} 6193 6194// GoString returns the string representation 6195func (s InvalidNextTokenException) GoString() string { 6196 return s.String() 6197} 6198 6199func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error { 6200 return &InvalidNextTokenException{ 6201 RespMetadata: v, 6202 } 6203} 6204 6205// Code returns the exception type name. 6206func (s *InvalidNextTokenException) Code() string { 6207 return "InvalidNextTokenException" 6208} 6209 6210// Message returns the exception's message. 6211func (s *InvalidNextTokenException) Message() string { 6212 if s.Message_ != nil { 6213 return *s.Message_ 6214 } 6215 return "" 6216} 6217 6218// OrigErr always returns nil, satisfies awserr.Error interface. 6219func (s *InvalidNextTokenException) OrigErr() error { 6220 return nil 6221} 6222 6223func (s *InvalidNextTokenException) Error() string { 6224 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 6225} 6226 6227// Status code returns the HTTP status code for the request's response error. 6228func (s *InvalidNextTokenException) StatusCode() int { 6229 return s.RespMetadata.StatusCode 6230} 6231 6232// RequestID returns the service's response RequestID for request. 6233func (s *InvalidNextTokenException) RequestID() string { 6234 return s.RespMetadata.RequestID 6235} 6236 6237// You made too many calls in a short period of time. Try again later. 6238type LimitExceededException struct { 6239 _ struct{} `type:"structure"` 6240 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6241 6242 Message_ *string `locationName:"Message" type:"string"` 6243} 6244 6245// String returns the string representation 6246func (s LimitExceededException) String() string { 6247 return awsutil.Prettify(s) 6248} 6249 6250// GoString returns the string representation 6251func (s LimitExceededException) GoString() string { 6252 return s.String() 6253} 6254 6255func newErrorLimitExceededException(v protocol.ResponseMetadata) error { 6256 return &LimitExceededException{ 6257 RespMetadata: v, 6258 } 6259} 6260 6261// Code returns the exception type name. 6262func (s *LimitExceededException) Code() string { 6263 return "LimitExceededException" 6264} 6265 6266// Message returns the exception's message. 6267func (s *LimitExceededException) Message() string { 6268 if s.Message_ != nil { 6269 return *s.Message_ 6270 } 6271 return "" 6272} 6273 6274// OrigErr always returns nil, satisfies awserr.Error interface. 6275func (s *LimitExceededException) OrigErr() error { 6276 return nil 6277} 6278 6279func (s *LimitExceededException) Error() string { 6280 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 6281} 6282 6283// Status code returns the HTTP status code for the request's response error. 6284func (s *LimitExceededException) StatusCode() int { 6285 return s.RespMetadata.StatusCode 6286} 6287 6288// RequestID returns the service's response RequestID for request. 6289func (s *LimitExceededException) RequestID() string { 6290 return s.RespMetadata.RequestID 6291} 6292 6293type ListCostCategoryDefinitionsInput struct { 6294 _ struct{} `type:"structure"` 6295 6296 // The date when the Cost Category was effective. 6297 EffectiveOn *string `min:"20" type:"string"` 6298 6299 // The number of entries a paginated response contains. 6300 MaxResults *int64 `min:"1" type:"integer"` 6301 6302 // The token to retrieve the next set of results. Amazon Web Services provides 6303 // the token when the response from a previous call has more results than the 6304 // maximum page size. 6305 NextToken *string `type:"string"` 6306} 6307 6308// String returns the string representation 6309func (s ListCostCategoryDefinitionsInput) String() string { 6310 return awsutil.Prettify(s) 6311} 6312 6313// GoString returns the string representation 6314func (s ListCostCategoryDefinitionsInput) GoString() string { 6315 return s.String() 6316} 6317 6318// Validate inspects the fields of the type to determine if they are valid. 6319func (s *ListCostCategoryDefinitionsInput) Validate() error { 6320 invalidParams := request.ErrInvalidParams{Context: "ListCostCategoryDefinitionsInput"} 6321 if s.EffectiveOn != nil && len(*s.EffectiveOn) < 20 { 6322 invalidParams.Add(request.NewErrParamMinLen("EffectiveOn", 20)) 6323 } 6324 if s.MaxResults != nil && *s.MaxResults < 1 { 6325 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) 6326 } 6327 6328 if invalidParams.Len() > 0 { 6329 return invalidParams 6330 } 6331 return nil 6332} 6333 6334// SetEffectiveOn sets the EffectiveOn field's value. 6335func (s *ListCostCategoryDefinitionsInput) SetEffectiveOn(v string) *ListCostCategoryDefinitionsInput { 6336 s.EffectiveOn = &v 6337 return s 6338} 6339 6340// SetMaxResults sets the MaxResults field's value. 6341func (s *ListCostCategoryDefinitionsInput) SetMaxResults(v int64) *ListCostCategoryDefinitionsInput { 6342 s.MaxResults = &v 6343 return s 6344} 6345 6346// SetNextToken sets the NextToken field's value. 6347func (s *ListCostCategoryDefinitionsInput) SetNextToken(v string) *ListCostCategoryDefinitionsInput { 6348 s.NextToken = &v 6349 return s 6350} 6351 6352type ListCostCategoryDefinitionsOutput struct { 6353 _ struct{} `type:"structure"` 6354 6355 // A reference to a Cost Category containing enough information to identify 6356 // the Cost Category. 6357 CostCategoryReferences []*CostCategoryReference `type:"list"` 6358 6359 // The token to retrieve the next set of results. Amazon Web Services provides 6360 // the token when the response from a previous call has more results than the 6361 // maximum page size. 6362 NextToken *string `type:"string"` 6363} 6364 6365// String returns the string representation 6366func (s ListCostCategoryDefinitionsOutput) String() string { 6367 return awsutil.Prettify(s) 6368} 6369 6370// GoString returns the string representation 6371func (s ListCostCategoryDefinitionsOutput) GoString() string { 6372 return s.String() 6373} 6374 6375// SetCostCategoryReferences sets the CostCategoryReferences field's value. 6376func (s *ListCostCategoryDefinitionsOutput) SetCostCategoryReferences(v []*CostCategoryReference) *ListCostCategoryDefinitionsOutput { 6377 s.CostCategoryReferences = v 6378 return s 6379} 6380 6381// SetNextToken sets the NextToken field's value. 6382func (s *ListCostCategoryDefinitionsOutput) SetNextToken(v string) *ListCostCategoryDefinitionsOutput { 6383 s.NextToken = &v 6384 return s 6385} 6386 6387// The aggregated value for a metric. 6388type MetricValue struct { 6389 _ struct{} `type:"structure"` 6390 6391 // The actual number that represents the metric. 6392 Amount *string `type:"string"` 6393 6394 // The unit that the metric is given in. 6395 Unit *string `type:"string"` 6396} 6397 6398// String returns the string representation 6399func (s MetricValue) String() string { 6400 return awsutil.Prettify(s) 6401} 6402 6403// GoString returns the string representation 6404func (s MetricValue) GoString() string { 6405 return s.String() 6406} 6407 6408// SetAmount sets the Amount field's value. 6409func (s *MetricValue) SetAmount(v string) *MetricValue { 6410 s.Amount = &v 6411 return s 6412} 6413 6414// SetUnit sets the Unit field's value. 6415func (s *MetricValue) SetUnit(v string) *MetricValue { 6416 s.Unit = &v 6417 return s 6418} 6419 6420// Details on the modification recommendation. 6421type ModifyRecommendationDetail struct { 6422 _ struct{} `type:"structure"` 6423 6424 // Identifies whether this instance type is the Amazon Web Services default 6425 // recommendation. 6426 TargetInstances []*TargetInstance `type:"list"` 6427} 6428 6429// String returns the string representation 6430func (s ModifyRecommendationDetail) String() string { 6431 return awsutil.Prettify(s) 6432} 6433 6434// GoString returns the string representation 6435func (s ModifyRecommendationDetail) GoString() string { 6436 return s.String() 6437} 6438 6439// SetTargetInstances sets the TargetInstances field's value. 6440func (s *ModifyRecommendationDetail) SetTargetInstances(v []*TargetInstance) *ModifyRecommendationDetail { 6441 s.TargetInstances = v 6442 return s 6443} 6444 6445// Details about the Amazon RDS instances that AWS recommends that you purchase. 6446type RDSInstanceDetails struct { 6447 _ struct{} `type:"structure"` 6448 6449 // Whether the recommendation is for a current-generation instance. 6450 CurrentGeneration *bool `type:"boolean"` 6451 6452 // The database edition that the recommended reservation supports. 6453 DatabaseEdition *string `type:"string"` 6454 6455 // The database engine that the recommended reservation supports. 6456 DatabaseEngine *string `type:"string"` 6457 6458 // Whether the recommendation is for a reservation in a single Availability 6459 // Zone or a reservation with a backup in a second Availability Zone. 6460 DeploymentOption *string `type:"string"` 6461 6462 // The instance family of the recommended reservation. 6463 Family *string `type:"string"` 6464 6465 // The type of instance that AWS recommends. 6466 InstanceType *string `type:"string"` 6467 6468 // The license model that the recommended reservation supports. 6469 LicenseModel *string `type:"string"` 6470 6471 // The AWS Region of the recommended reservation. 6472 Region *string `type:"string"` 6473 6474 // Whether the recommended reservation is size flexible. 6475 SizeFlexEligible *bool `type:"boolean"` 6476} 6477 6478// String returns the string representation 6479func (s RDSInstanceDetails) String() string { 6480 return awsutil.Prettify(s) 6481} 6482 6483// GoString returns the string representation 6484func (s RDSInstanceDetails) GoString() string { 6485 return s.String() 6486} 6487 6488// SetCurrentGeneration sets the CurrentGeneration field's value. 6489func (s *RDSInstanceDetails) SetCurrentGeneration(v bool) *RDSInstanceDetails { 6490 s.CurrentGeneration = &v 6491 return s 6492} 6493 6494// SetDatabaseEdition sets the DatabaseEdition field's value. 6495func (s *RDSInstanceDetails) SetDatabaseEdition(v string) *RDSInstanceDetails { 6496 s.DatabaseEdition = &v 6497 return s 6498} 6499 6500// SetDatabaseEngine sets the DatabaseEngine field's value. 6501func (s *RDSInstanceDetails) SetDatabaseEngine(v string) *RDSInstanceDetails { 6502 s.DatabaseEngine = &v 6503 return s 6504} 6505 6506// SetDeploymentOption sets the DeploymentOption field's value. 6507func (s *RDSInstanceDetails) SetDeploymentOption(v string) *RDSInstanceDetails { 6508 s.DeploymentOption = &v 6509 return s 6510} 6511 6512// SetFamily sets the Family field's value. 6513func (s *RDSInstanceDetails) SetFamily(v string) *RDSInstanceDetails { 6514 s.Family = &v 6515 return s 6516} 6517 6518// SetInstanceType sets the InstanceType field's value. 6519func (s *RDSInstanceDetails) SetInstanceType(v string) *RDSInstanceDetails { 6520 s.InstanceType = &v 6521 return s 6522} 6523 6524// SetLicenseModel sets the LicenseModel field's value. 6525func (s *RDSInstanceDetails) SetLicenseModel(v string) *RDSInstanceDetails { 6526 s.LicenseModel = &v 6527 return s 6528} 6529 6530// SetRegion sets the Region field's value. 6531func (s *RDSInstanceDetails) SetRegion(v string) *RDSInstanceDetails { 6532 s.Region = &v 6533 return s 6534} 6535 6536// SetSizeFlexEligible sets the SizeFlexEligible field's value. 6537func (s *RDSInstanceDetails) SetSizeFlexEligible(v bool) *RDSInstanceDetails { 6538 s.SizeFlexEligible = &v 6539 return s 6540} 6541 6542// Details about the Amazon Redshift instances that AWS recommends that you 6543// purchase. 6544type RedshiftInstanceDetails struct { 6545 _ struct{} `type:"structure"` 6546 6547 // Whether the recommendation is for a current-generation instance. 6548 CurrentGeneration *bool `type:"boolean"` 6549 6550 // The instance family of the recommended reservation. 6551 Family *string `type:"string"` 6552 6553 // The type of node that AWS recommends. 6554 NodeType *string `type:"string"` 6555 6556 // The AWS Region of the recommended reservation. 6557 Region *string `type:"string"` 6558 6559 // Whether the recommended reservation is size flexible. 6560 SizeFlexEligible *bool `type:"boolean"` 6561} 6562 6563// String returns the string representation 6564func (s RedshiftInstanceDetails) String() string { 6565 return awsutil.Prettify(s) 6566} 6567 6568// GoString returns the string representation 6569func (s RedshiftInstanceDetails) GoString() string { 6570 return s.String() 6571} 6572 6573// SetCurrentGeneration sets the CurrentGeneration field's value. 6574func (s *RedshiftInstanceDetails) SetCurrentGeneration(v bool) *RedshiftInstanceDetails { 6575 s.CurrentGeneration = &v 6576 return s 6577} 6578 6579// SetFamily sets the Family field's value. 6580func (s *RedshiftInstanceDetails) SetFamily(v string) *RedshiftInstanceDetails { 6581 s.Family = &v 6582 return s 6583} 6584 6585// SetNodeType sets the NodeType field's value. 6586func (s *RedshiftInstanceDetails) SetNodeType(v string) *RedshiftInstanceDetails { 6587 s.NodeType = &v 6588 return s 6589} 6590 6591// SetRegion sets the Region field's value. 6592func (s *RedshiftInstanceDetails) SetRegion(v string) *RedshiftInstanceDetails { 6593 s.Region = &v 6594 return s 6595} 6596 6597// SetSizeFlexEligible sets the SizeFlexEligible field's value. 6598func (s *RedshiftInstanceDetails) SetSizeFlexEligible(v bool) *RedshiftInstanceDetails { 6599 s.SizeFlexEligible = &v 6600 return s 6601} 6602 6603// Your request parameters changed between pages. Try again with the old parameters 6604// or without a pagination token. 6605type RequestChangedException struct { 6606 _ struct{} `type:"structure"` 6607 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 6608 6609 Message_ *string `locationName:"Message" type:"string"` 6610} 6611 6612// String returns the string representation 6613func (s RequestChangedException) String() string { 6614 return awsutil.Prettify(s) 6615} 6616 6617// GoString returns the string representation 6618func (s RequestChangedException) GoString() string { 6619 return s.String() 6620} 6621 6622func newErrorRequestChangedException(v protocol.ResponseMetadata) error { 6623 return &RequestChangedException{ 6624 RespMetadata: v, 6625 } 6626} 6627 6628// Code returns the exception type name. 6629func (s *RequestChangedException) Code() string { 6630 return "RequestChangedException" 6631} 6632 6633// Message returns the exception's message. 6634func (s *RequestChangedException) Message() string { 6635 if s.Message_ != nil { 6636 return *s.Message_ 6637 } 6638 return "" 6639} 6640 6641// OrigErr always returns nil, satisfies awserr.Error interface. 6642func (s *RequestChangedException) OrigErr() error { 6643 return nil 6644} 6645 6646func (s *RequestChangedException) Error() string { 6647 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 6648} 6649 6650// Status code returns the HTTP status code for the request's response error. 6651func (s *RequestChangedException) StatusCode() int { 6652 return s.RespMetadata.StatusCode 6653} 6654 6655// RequestID returns the service's response RequestID for request. 6656func (s *RequestChangedException) RequestID() string { 6657 return s.RespMetadata.RequestID 6658} 6659 6660// The aggregated numbers for your reservation usage. 6661type ReservationAggregates struct { 6662 _ struct{} `type:"structure"` 6663 6664 // The monthly cost of your reservation, amortized over the reservation period. 6665 AmortizedRecurringFee *string `type:"string"` 6666 6667 // The upfront cost of your reservation, amortized over the reservation period. 6668 AmortizedUpfrontFee *string `type:"string"` 6669 6670 // How much you saved due to purchasing and utilizing reservation. AWS calculates 6671 // this by subtracting TotalAmortizedFee from OnDemandCostOfRIHoursUsed. 6672 NetRISavings *string `type:"string"` 6673 6674 // How much your reservation would cost if charged On-Demand rates. 6675 OnDemandCostOfRIHoursUsed *string `type:"string"` 6676 6677 // How many reservation hours that you purchased. 6678 PurchasedHours *string `type:"string"` 6679 6680 // How many Amazon EC2 reservation hours that you purchased, converted to normalized 6681 // units. Normalized units are available only for Amazon EC2 usage after November 6682 // 11, 2017. 6683 PurchasedUnits *string `type:"string"` 6684 6685 // The total number of reservation hours that you used. 6686 TotalActualHours *string `type:"string"` 6687 6688 // The total number of Amazon EC2 reservation hours that you used, converted 6689 // to normalized units. Normalized units are available only for Amazon EC2 usage 6690 // after November 11, 2017. 6691 TotalActualUnits *string `type:"string"` 6692 6693 // The total cost of your reservation, amortized over the reservation period. 6694 TotalAmortizedFee *string `type:"string"` 6695 6696 // How much you could save if you use your entire reservation. 6697 TotalPotentialRISavings *string `type:"string"` 6698 6699 // The number of reservation hours that you didn't use. 6700 UnusedHours *string `type:"string"` 6701 6702 // The number of Amazon EC2 reservation hours that you didn't use, converted 6703 // to normalized units. Normalized units are available only for Amazon EC2 usage 6704 // after November 11, 2017. 6705 UnusedUnits *string `type:"string"` 6706 6707 // The percentage of reservation time that you used. 6708 UtilizationPercentage *string `type:"string"` 6709 6710 // The percentage of Amazon EC2 reservation time that you used, converted to 6711 // normalized units. Normalized units are available only for Amazon EC2 usage 6712 // after November 11, 2017. 6713 UtilizationPercentageInUnits *string `type:"string"` 6714} 6715 6716// String returns the string representation 6717func (s ReservationAggregates) String() string { 6718 return awsutil.Prettify(s) 6719} 6720 6721// GoString returns the string representation 6722func (s ReservationAggregates) GoString() string { 6723 return s.String() 6724} 6725 6726// SetAmortizedRecurringFee sets the AmortizedRecurringFee field's value. 6727func (s *ReservationAggregates) SetAmortizedRecurringFee(v string) *ReservationAggregates { 6728 s.AmortizedRecurringFee = &v 6729 return s 6730} 6731 6732// SetAmortizedUpfrontFee sets the AmortizedUpfrontFee field's value. 6733func (s *ReservationAggregates) SetAmortizedUpfrontFee(v string) *ReservationAggregates { 6734 s.AmortizedUpfrontFee = &v 6735 return s 6736} 6737 6738// SetNetRISavings sets the NetRISavings field's value. 6739func (s *ReservationAggregates) SetNetRISavings(v string) *ReservationAggregates { 6740 s.NetRISavings = &v 6741 return s 6742} 6743 6744// SetOnDemandCostOfRIHoursUsed sets the OnDemandCostOfRIHoursUsed field's value. 6745func (s *ReservationAggregates) SetOnDemandCostOfRIHoursUsed(v string) *ReservationAggregates { 6746 s.OnDemandCostOfRIHoursUsed = &v 6747 return s 6748} 6749 6750// SetPurchasedHours sets the PurchasedHours field's value. 6751func (s *ReservationAggregates) SetPurchasedHours(v string) *ReservationAggregates { 6752 s.PurchasedHours = &v 6753 return s 6754} 6755 6756// SetPurchasedUnits sets the PurchasedUnits field's value. 6757func (s *ReservationAggregates) SetPurchasedUnits(v string) *ReservationAggregates { 6758 s.PurchasedUnits = &v 6759 return s 6760} 6761 6762// SetTotalActualHours sets the TotalActualHours field's value. 6763func (s *ReservationAggregates) SetTotalActualHours(v string) *ReservationAggregates { 6764 s.TotalActualHours = &v 6765 return s 6766} 6767 6768// SetTotalActualUnits sets the TotalActualUnits field's value. 6769func (s *ReservationAggregates) SetTotalActualUnits(v string) *ReservationAggregates { 6770 s.TotalActualUnits = &v 6771 return s 6772} 6773 6774// SetTotalAmortizedFee sets the TotalAmortizedFee field's value. 6775func (s *ReservationAggregates) SetTotalAmortizedFee(v string) *ReservationAggregates { 6776 s.TotalAmortizedFee = &v 6777 return s 6778} 6779 6780// SetTotalPotentialRISavings sets the TotalPotentialRISavings field's value. 6781func (s *ReservationAggregates) SetTotalPotentialRISavings(v string) *ReservationAggregates { 6782 s.TotalPotentialRISavings = &v 6783 return s 6784} 6785 6786// SetUnusedHours sets the UnusedHours field's value. 6787func (s *ReservationAggregates) SetUnusedHours(v string) *ReservationAggregates { 6788 s.UnusedHours = &v 6789 return s 6790} 6791 6792// SetUnusedUnits sets the UnusedUnits field's value. 6793func (s *ReservationAggregates) SetUnusedUnits(v string) *ReservationAggregates { 6794 s.UnusedUnits = &v 6795 return s 6796} 6797 6798// SetUtilizationPercentage sets the UtilizationPercentage field's value. 6799func (s *ReservationAggregates) SetUtilizationPercentage(v string) *ReservationAggregates { 6800 s.UtilizationPercentage = &v 6801 return s 6802} 6803 6804// SetUtilizationPercentageInUnits sets the UtilizationPercentageInUnits field's value. 6805func (s *ReservationAggregates) SetUtilizationPercentageInUnits(v string) *ReservationAggregates { 6806 s.UtilizationPercentageInUnits = &v 6807 return s 6808} 6809 6810// A group of reservations that share a set of attributes. 6811type ReservationCoverageGroup struct { 6812 _ struct{} `type:"structure"` 6813 6814 // The attributes for this group of reservations. 6815 Attributes map[string]*string `type:"map"` 6816 6817 // How much instance usage this group of reservations covered. 6818 Coverage *Coverage `type:"structure"` 6819} 6820 6821// String returns the string representation 6822func (s ReservationCoverageGroup) String() string { 6823 return awsutil.Prettify(s) 6824} 6825 6826// GoString returns the string representation 6827func (s ReservationCoverageGroup) GoString() string { 6828 return s.String() 6829} 6830 6831// SetAttributes sets the Attributes field's value. 6832func (s *ReservationCoverageGroup) SetAttributes(v map[string]*string) *ReservationCoverageGroup { 6833 s.Attributes = v 6834 return s 6835} 6836 6837// SetCoverage sets the Coverage field's value. 6838func (s *ReservationCoverageGroup) SetCoverage(v *Coverage) *ReservationCoverageGroup { 6839 s.Coverage = v 6840 return s 6841} 6842 6843// A specific reservation that AWS recommends for purchase. 6844type ReservationPurchaseRecommendation struct { 6845 _ struct{} `type:"structure"` 6846 6847 // The account scope that AWS recommends that you purchase this instance for. 6848 // For example, you can purchase this reservation for an entire organization 6849 // in AWS Organizations. 6850 AccountScope *string `type:"string" enum:"AccountScope"` 6851 6852 // How many days of previous usage that AWS considers when making this recommendation. 6853 LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` 6854 6855 // The payment option for the reservation. For example, AllUpfront or NoUpfront. 6856 PaymentOption *string `type:"string" enum:"PaymentOption"` 6857 6858 // Details about the recommended purchases. 6859 RecommendationDetails []*ReservationPurchaseRecommendationDetail `type:"list"` 6860 6861 // A summary about the recommended purchase. 6862 RecommendationSummary *ReservationPurchaseRecommendationSummary `type:"structure"` 6863 6864 // Hardware specifications for the service that you want recommendations for. 6865 ServiceSpecification *ServiceSpecification `type:"structure"` 6866 6867 // The term of the reservation that you want recommendations for, in years. 6868 TermInYears *string `type:"string" enum:"TermInYears"` 6869} 6870 6871// String returns the string representation 6872func (s ReservationPurchaseRecommendation) String() string { 6873 return awsutil.Prettify(s) 6874} 6875 6876// GoString returns the string representation 6877func (s ReservationPurchaseRecommendation) GoString() string { 6878 return s.String() 6879} 6880 6881// SetAccountScope sets the AccountScope field's value. 6882func (s *ReservationPurchaseRecommendation) SetAccountScope(v string) *ReservationPurchaseRecommendation { 6883 s.AccountScope = &v 6884 return s 6885} 6886 6887// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. 6888func (s *ReservationPurchaseRecommendation) SetLookbackPeriodInDays(v string) *ReservationPurchaseRecommendation { 6889 s.LookbackPeriodInDays = &v 6890 return s 6891} 6892 6893// SetPaymentOption sets the PaymentOption field's value. 6894func (s *ReservationPurchaseRecommendation) SetPaymentOption(v string) *ReservationPurchaseRecommendation { 6895 s.PaymentOption = &v 6896 return s 6897} 6898 6899// SetRecommendationDetails sets the RecommendationDetails field's value. 6900func (s *ReservationPurchaseRecommendation) SetRecommendationDetails(v []*ReservationPurchaseRecommendationDetail) *ReservationPurchaseRecommendation { 6901 s.RecommendationDetails = v 6902 return s 6903} 6904 6905// SetRecommendationSummary sets the RecommendationSummary field's value. 6906func (s *ReservationPurchaseRecommendation) SetRecommendationSummary(v *ReservationPurchaseRecommendationSummary) *ReservationPurchaseRecommendation { 6907 s.RecommendationSummary = v 6908 return s 6909} 6910 6911// SetServiceSpecification sets the ServiceSpecification field's value. 6912func (s *ReservationPurchaseRecommendation) SetServiceSpecification(v *ServiceSpecification) *ReservationPurchaseRecommendation { 6913 s.ServiceSpecification = v 6914 return s 6915} 6916 6917// SetTermInYears sets the TermInYears field's value. 6918func (s *ReservationPurchaseRecommendation) SetTermInYears(v string) *ReservationPurchaseRecommendation { 6919 s.TermInYears = &v 6920 return s 6921} 6922 6923// Details about your recommended reservation purchase. 6924type ReservationPurchaseRecommendationDetail struct { 6925 _ struct{} `type:"structure"` 6926 6927 // The account that this RI recommendation is for. 6928 AccountId *string `type:"string"` 6929 6930 // The average number of normalized units that you used in an hour during the 6931 // historical period. AWS uses this to calculate your recommended reservation 6932 // purchases. 6933 AverageNormalizedUnitsUsedPerHour *string `type:"string"` 6934 6935 // The average number of instances that you used in an hour during the historical 6936 // period. AWS uses this to calculate your recommended reservation purchases. 6937 AverageNumberOfInstancesUsedPerHour *string `type:"string"` 6938 6939 // The average utilization of your instances. AWS uses this to calculate your 6940 // recommended reservation purchases. 6941 AverageUtilization *string `type:"string"` 6942 6943 // The currency code that AWS used to calculate the costs for this instance. 6944 CurrencyCode *string `type:"string"` 6945 6946 // How long AWS estimates that it takes for this instance to start saving you 6947 // money, in months. 6948 EstimatedBreakEvenInMonths *string `type:"string"` 6949 6950 // How much AWS estimates that you spend on On-Demand Instances in a month. 6951 EstimatedMonthlyOnDemandCost *string `type:"string"` 6952 6953 // How much AWS estimates that this specific recommendation could save you in 6954 // a month. 6955 EstimatedMonthlySavingsAmount *string `type:"string"` 6956 6957 // How much AWS estimates that this specific recommendation could save you in 6958 // a month, as a percentage of your overall costs. 6959 EstimatedMonthlySavingsPercentage *string `type:"string"` 6960 6961 // How much AWS estimates that you would have spent for all usage during the 6962 // specified historical period if you had a reservation. 6963 EstimatedReservationCostForLookbackPeriod *string `type:"string"` 6964 6965 // Details about the instances that AWS recommends that you purchase. 6966 InstanceDetails *InstanceDetails `type:"structure"` 6967 6968 // The maximum number of normalized units that you used in an hour during the 6969 // historical period. AWS uses this to calculate your recommended reservation 6970 // purchases. 6971 MaximumNormalizedUnitsUsedPerHour *string `type:"string"` 6972 6973 // The maximum number of instances that you used in an hour during the historical 6974 // period. AWS uses this to calculate your recommended reservation purchases. 6975 MaximumNumberOfInstancesUsedPerHour *string `type:"string"` 6976 6977 // The minimum number of normalized units that you used in an hour during the 6978 // historical period. AWS uses this to calculate your recommended reservation 6979 // purchases. 6980 MinimumNormalizedUnitsUsedPerHour *string `type:"string"` 6981 6982 // The minimum number of instances that you used in an hour during the historical 6983 // period. AWS uses this to calculate your recommended reservation purchases. 6984 MinimumNumberOfInstancesUsedPerHour *string `type:"string"` 6985 6986 // The number of normalized units that AWS recommends that you purchase. 6987 RecommendedNormalizedUnitsToPurchase *string `type:"string"` 6988 6989 // The number of instances that AWS recommends that you purchase. 6990 RecommendedNumberOfInstancesToPurchase *string `type:"string"` 6991 6992 // How much purchasing this instance costs you on a monthly basis. 6993 RecurringStandardMonthlyCost *string `type:"string"` 6994 6995 // How much purchasing this instance costs you upfront. 6996 UpfrontCost *string `type:"string"` 6997} 6998 6999// String returns the string representation 7000func (s ReservationPurchaseRecommendationDetail) String() string { 7001 return awsutil.Prettify(s) 7002} 7003 7004// GoString returns the string representation 7005func (s ReservationPurchaseRecommendationDetail) GoString() string { 7006 return s.String() 7007} 7008 7009// SetAccountId sets the AccountId field's value. 7010func (s *ReservationPurchaseRecommendationDetail) SetAccountId(v string) *ReservationPurchaseRecommendationDetail { 7011 s.AccountId = &v 7012 return s 7013} 7014 7015// SetAverageNormalizedUnitsUsedPerHour sets the AverageNormalizedUnitsUsedPerHour field's value. 7016func (s *ReservationPurchaseRecommendationDetail) SetAverageNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 7017 s.AverageNormalizedUnitsUsedPerHour = &v 7018 return s 7019} 7020 7021// SetAverageNumberOfInstancesUsedPerHour sets the AverageNumberOfInstancesUsedPerHour field's value. 7022func (s *ReservationPurchaseRecommendationDetail) SetAverageNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 7023 s.AverageNumberOfInstancesUsedPerHour = &v 7024 return s 7025} 7026 7027// SetAverageUtilization sets the AverageUtilization field's value. 7028func (s *ReservationPurchaseRecommendationDetail) SetAverageUtilization(v string) *ReservationPurchaseRecommendationDetail { 7029 s.AverageUtilization = &v 7030 return s 7031} 7032 7033// SetCurrencyCode sets the CurrencyCode field's value. 7034func (s *ReservationPurchaseRecommendationDetail) SetCurrencyCode(v string) *ReservationPurchaseRecommendationDetail { 7035 s.CurrencyCode = &v 7036 return s 7037} 7038 7039// SetEstimatedBreakEvenInMonths sets the EstimatedBreakEvenInMonths field's value. 7040func (s *ReservationPurchaseRecommendationDetail) SetEstimatedBreakEvenInMonths(v string) *ReservationPurchaseRecommendationDetail { 7041 s.EstimatedBreakEvenInMonths = &v 7042 return s 7043} 7044 7045// SetEstimatedMonthlyOnDemandCost sets the EstimatedMonthlyOnDemandCost field's value. 7046func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlyOnDemandCost(v string) *ReservationPurchaseRecommendationDetail { 7047 s.EstimatedMonthlyOnDemandCost = &v 7048 return s 7049} 7050 7051// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. 7052func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationDetail { 7053 s.EstimatedMonthlySavingsAmount = &v 7054 return s 7055} 7056 7057// SetEstimatedMonthlySavingsPercentage sets the EstimatedMonthlySavingsPercentage field's value. 7058func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationDetail { 7059 s.EstimatedMonthlySavingsPercentage = &v 7060 return s 7061} 7062 7063// SetEstimatedReservationCostForLookbackPeriod sets the EstimatedReservationCostForLookbackPeriod field's value. 7064func (s *ReservationPurchaseRecommendationDetail) SetEstimatedReservationCostForLookbackPeriod(v string) *ReservationPurchaseRecommendationDetail { 7065 s.EstimatedReservationCostForLookbackPeriod = &v 7066 return s 7067} 7068 7069// SetInstanceDetails sets the InstanceDetails field's value. 7070func (s *ReservationPurchaseRecommendationDetail) SetInstanceDetails(v *InstanceDetails) *ReservationPurchaseRecommendationDetail { 7071 s.InstanceDetails = v 7072 return s 7073} 7074 7075// SetMaximumNormalizedUnitsUsedPerHour sets the MaximumNormalizedUnitsUsedPerHour field's value. 7076func (s *ReservationPurchaseRecommendationDetail) SetMaximumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 7077 s.MaximumNormalizedUnitsUsedPerHour = &v 7078 return s 7079} 7080 7081// SetMaximumNumberOfInstancesUsedPerHour sets the MaximumNumberOfInstancesUsedPerHour field's value. 7082func (s *ReservationPurchaseRecommendationDetail) SetMaximumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 7083 s.MaximumNumberOfInstancesUsedPerHour = &v 7084 return s 7085} 7086 7087// SetMinimumNormalizedUnitsUsedPerHour sets the MinimumNormalizedUnitsUsedPerHour field's value. 7088func (s *ReservationPurchaseRecommendationDetail) SetMinimumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 7089 s.MinimumNormalizedUnitsUsedPerHour = &v 7090 return s 7091} 7092 7093// SetMinimumNumberOfInstancesUsedPerHour sets the MinimumNumberOfInstancesUsedPerHour field's value. 7094func (s *ReservationPurchaseRecommendationDetail) SetMinimumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 7095 s.MinimumNumberOfInstancesUsedPerHour = &v 7096 return s 7097} 7098 7099// SetRecommendedNormalizedUnitsToPurchase sets the RecommendedNormalizedUnitsToPurchase field's value. 7100func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNormalizedUnitsToPurchase(v string) *ReservationPurchaseRecommendationDetail { 7101 s.RecommendedNormalizedUnitsToPurchase = &v 7102 return s 7103} 7104 7105// SetRecommendedNumberOfInstancesToPurchase sets the RecommendedNumberOfInstancesToPurchase field's value. 7106func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNumberOfInstancesToPurchase(v string) *ReservationPurchaseRecommendationDetail { 7107 s.RecommendedNumberOfInstancesToPurchase = &v 7108 return s 7109} 7110 7111// SetRecurringStandardMonthlyCost sets the RecurringStandardMonthlyCost field's value. 7112func (s *ReservationPurchaseRecommendationDetail) SetRecurringStandardMonthlyCost(v string) *ReservationPurchaseRecommendationDetail { 7113 s.RecurringStandardMonthlyCost = &v 7114 return s 7115} 7116 7117// SetUpfrontCost sets the UpfrontCost field's value. 7118func (s *ReservationPurchaseRecommendationDetail) SetUpfrontCost(v string) *ReservationPurchaseRecommendationDetail { 7119 s.UpfrontCost = &v 7120 return s 7121} 7122 7123// Information about this specific recommendation, such as the timestamp for 7124// when AWS made a specific recommendation. 7125type ReservationPurchaseRecommendationMetadata struct { 7126 _ struct{} `type:"structure"` 7127 7128 // The timestamp for when AWS made this recommendation. 7129 GenerationTimestamp *string `type:"string"` 7130 7131 // The ID for this specific recommendation. 7132 RecommendationId *string `type:"string"` 7133} 7134 7135// String returns the string representation 7136func (s ReservationPurchaseRecommendationMetadata) String() string { 7137 return awsutil.Prettify(s) 7138} 7139 7140// GoString returns the string representation 7141func (s ReservationPurchaseRecommendationMetadata) GoString() string { 7142 return s.String() 7143} 7144 7145// SetGenerationTimestamp sets the GenerationTimestamp field's value. 7146func (s *ReservationPurchaseRecommendationMetadata) SetGenerationTimestamp(v string) *ReservationPurchaseRecommendationMetadata { 7147 s.GenerationTimestamp = &v 7148 return s 7149} 7150 7151// SetRecommendationId sets the RecommendationId field's value. 7152func (s *ReservationPurchaseRecommendationMetadata) SetRecommendationId(v string) *ReservationPurchaseRecommendationMetadata { 7153 s.RecommendationId = &v 7154 return s 7155} 7156 7157// A summary about this recommendation, such as the currency code, the amount 7158// that AWS estimates that you could save, and the total amount of reservation 7159// to purchase. 7160type ReservationPurchaseRecommendationSummary struct { 7161 _ struct{} `type:"structure"` 7162 7163 // The currency code used for this recommendation. 7164 CurrencyCode *string `type:"string"` 7165 7166 // The total amount that AWS estimates that this recommendation could save you 7167 // in a month. 7168 TotalEstimatedMonthlySavingsAmount *string `type:"string"` 7169 7170 // The total amount that AWS estimates that this recommendation could save you 7171 // in a month, as a percentage of your costs. 7172 TotalEstimatedMonthlySavingsPercentage *string `type:"string"` 7173} 7174 7175// String returns the string representation 7176func (s ReservationPurchaseRecommendationSummary) String() string { 7177 return awsutil.Prettify(s) 7178} 7179 7180// GoString returns the string representation 7181func (s ReservationPurchaseRecommendationSummary) GoString() string { 7182 return s.String() 7183} 7184 7185// SetCurrencyCode sets the CurrencyCode field's value. 7186func (s *ReservationPurchaseRecommendationSummary) SetCurrencyCode(v string) *ReservationPurchaseRecommendationSummary { 7187 s.CurrencyCode = &v 7188 return s 7189} 7190 7191// SetTotalEstimatedMonthlySavingsAmount sets the TotalEstimatedMonthlySavingsAmount field's value. 7192func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationSummary { 7193 s.TotalEstimatedMonthlySavingsAmount = &v 7194 return s 7195} 7196 7197// SetTotalEstimatedMonthlySavingsPercentage sets the TotalEstimatedMonthlySavingsPercentage field's value. 7198func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationSummary { 7199 s.TotalEstimatedMonthlySavingsPercentage = &v 7200 return s 7201} 7202 7203// A group of reservations that share a set of attributes. 7204type ReservationUtilizationGroup struct { 7205 _ struct{} `type:"structure"` 7206 7207 // The attributes for this group of reservations. 7208 Attributes map[string]*string `type:"map"` 7209 7210 // The key for a specific reservation attribute. 7211 Key *string `type:"string"` 7212 7213 // How much you used this group of reservations. 7214 Utilization *ReservationAggregates `type:"structure"` 7215 7216 // The value of a specific reservation attribute. 7217 Value *string `type:"string"` 7218} 7219 7220// String returns the string representation 7221func (s ReservationUtilizationGroup) String() string { 7222 return awsutil.Prettify(s) 7223} 7224 7225// GoString returns the string representation 7226func (s ReservationUtilizationGroup) GoString() string { 7227 return s.String() 7228} 7229 7230// SetAttributes sets the Attributes field's value. 7231func (s *ReservationUtilizationGroup) SetAttributes(v map[string]*string) *ReservationUtilizationGroup { 7232 s.Attributes = v 7233 return s 7234} 7235 7236// SetKey sets the Key field's value. 7237func (s *ReservationUtilizationGroup) SetKey(v string) *ReservationUtilizationGroup { 7238 s.Key = &v 7239 return s 7240} 7241 7242// SetUtilization sets the Utilization field's value. 7243func (s *ReservationUtilizationGroup) SetUtilization(v *ReservationAggregates) *ReservationUtilizationGroup { 7244 s.Utilization = v 7245 return s 7246} 7247 7248// SetValue sets the Value field's value. 7249func (s *ReservationUtilizationGroup) SetValue(v string) *ReservationUtilizationGroup { 7250 s.Value = &v 7251 return s 7252} 7253 7254// Details on the resource. 7255type ResourceDetails struct { 7256 _ struct{} `type:"structure"` 7257 7258 // Details on the Amazon EC2 resource. 7259 EC2ResourceDetails *EC2ResourceDetails `type:"structure"` 7260} 7261 7262// String returns the string representation 7263func (s ResourceDetails) String() string { 7264 return awsutil.Prettify(s) 7265} 7266 7267// GoString returns the string representation 7268func (s ResourceDetails) GoString() string { 7269 return s.String() 7270} 7271 7272// SetEC2ResourceDetails sets the EC2ResourceDetails field's value. 7273func (s *ResourceDetails) SetEC2ResourceDetails(v *EC2ResourceDetails) *ResourceDetails { 7274 s.EC2ResourceDetails = v 7275 return s 7276} 7277 7278// The specified ARN in the request doesn't exist. 7279type ResourceNotFoundException struct { 7280 _ struct{} `type:"structure"` 7281 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 7282 7283 Message_ *string `locationName:"Message" type:"string"` 7284} 7285 7286// String returns the string representation 7287func (s ResourceNotFoundException) String() string { 7288 return awsutil.Prettify(s) 7289} 7290 7291// GoString returns the string representation 7292func (s ResourceNotFoundException) GoString() string { 7293 return s.String() 7294} 7295 7296func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { 7297 return &ResourceNotFoundException{ 7298 RespMetadata: v, 7299 } 7300} 7301 7302// Code returns the exception type name. 7303func (s *ResourceNotFoundException) Code() string { 7304 return "ResourceNotFoundException" 7305} 7306 7307// Message returns the exception's message. 7308func (s *ResourceNotFoundException) Message() string { 7309 if s.Message_ != nil { 7310 return *s.Message_ 7311 } 7312 return "" 7313} 7314 7315// OrigErr always returns nil, satisfies awserr.Error interface. 7316func (s *ResourceNotFoundException) OrigErr() error { 7317 return nil 7318} 7319 7320func (s *ResourceNotFoundException) Error() string { 7321 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 7322} 7323 7324// Status code returns the HTTP status code for the request's response error. 7325func (s *ResourceNotFoundException) StatusCode() int { 7326 return s.RespMetadata.StatusCode 7327} 7328 7329// RequestID returns the service's response RequestID for request. 7330func (s *ResourceNotFoundException) RequestID() string { 7331 return s.RespMetadata.RequestID 7332} 7333 7334// Resource utilization of current resource. 7335type ResourceUtilization struct { 7336 _ struct{} `type:"structure"` 7337 7338 // Utilization of current Amazon EC2 Instance 7339 EC2ResourceUtilization *EC2ResourceUtilization `type:"structure"` 7340} 7341 7342// String returns the string representation 7343func (s ResourceUtilization) String() string { 7344 return awsutil.Prettify(s) 7345} 7346 7347// GoString returns the string representation 7348func (s ResourceUtilization) GoString() string { 7349 return s.String() 7350} 7351 7352// SetEC2ResourceUtilization sets the EC2ResourceUtilization field's value. 7353func (s *ResourceUtilization) SetEC2ResourceUtilization(v *EC2ResourceUtilization) *ResourceUtilization { 7354 s.EC2ResourceUtilization = v 7355 return s 7356} 7357 7358// The result that is associated with a time period. 7359type ResultByTime struct { 7360 _ struct{} `type:"structure"` 7361 7362 // Whether the result is estimated. 7363 Estimated *bool `type:"boolean"` 7364 7365 // The groups that this time period includes. 7366 Groups []*Group `type:"list"` 7367 7368 // The time period that the result covers. 7369 TimePeriod *DateInterval `type:"structure"` 7370 7371 // The total amount of cost or usage accrued during the time period. 7372 Total map[string]*MetricValue `type:"map"` 7373} 7374 7375// String returns the string representation 7376func (s ResultByTime) String() string { 7377 return awsutil.Prettify(s) 7378} 7379 7380// GoString returns the string representation 7381func (s ResultByTime) GoString() string { 7382 return s.String() 7383} 7384 7385// SetEstimated sets the Estimated field's value. 7386func (s *ResultByTime) SetEstimated(v bool) *ResultByTime { 7387 s.Estimated = &v 7388 return s 7389} 7390 7391// SetGroups sets the Groups field's value. 7392func (s *ResultByTime) SetGroups(v []*Group) *ResultByTime { 7393 s.Groups = v 7394 return s 7395} 7396 7397// SetTimePeriod sets the TimePeriod field's value. 7398func (s *ResultByTime) SetTimePeriod(v *DateInterval) *ResultByTime { 7399 s.TimePeriod = v 7400 return s 7401} 7402 7403// SetTotal sets the Total field's value. 7404func (s *ResultByTime) SetTotal(v map[string]*MetricValue) *ResultByTime { 7405 s.Total = v 7406 return s 7407} 7408 7409// Recommendations to rightsize resources. 7410type RightsizingRecommendation struct { 7411 _ struct{} `type:"structure"` 7412 7413 // The account that this recommendation is for. 7414 AccountId *string `type:"string"` 7415 7416 // Context regarding the current instance. 7417 CurrentInstance *CurrentInstance `type:"structure"` 7418 7419 // Details for modification recommendations. 7420 ModifyRecommendationDetail *ModifyRecommendationDetail `type:"structure"` 7421 7422 // Recommendation to either terminate or modify the resource. 7423 RightsizingType *string `type:"string" enum:"RightsizingType"` 7424 7425 // Details for termination recommendations. 7426 TerminateRecommendationDetail *TerminateRecommendationDetail `type:"structure"` 7427} 7428 7429// String returns the string representation 7430func (s RightsizingRecommendation) String() string { 7431 return awsutil.Prettify(s) 7432} 7433 7434// GoString returns the string representation 7435func (s RightsizingRecommendation) GoString() string { 7436 return s.String() 7437} 7438 7439// SetAccountId sets the AccountId field's value. 7440func (s *RightsizingRecommendation) SetAccountId(v string) *RightsizingRecommendation { 7441 s.AccountId = &v 7442 return s 7443} 7444 7445// SetCurrentInstance sets the CurrentInstance field's value. 7446func (s *RightsizingRecommendation) SetCurrentInstance(v *CurrentInstance) *RightsizingRecommendation { 7447 s.CurrentInstance = v 7448 return s 7449} 7450 7451// SetModifyRecommendationDetail sets the ModifyRecommendationDetail field's value. 7452func (s *RightsizingRecommendation) SetModifyRecommendationDetail(v *ModifyRecommendationDetail) *RightsizingRecommendation { 7453 s.ModifyRecommendationDetail = v 7454 return s 7455} 7456 7457// SetRightsizingType sets the RightsizingType field's value. 7458func (s *RightsizingRecommendation) SetRightsizingType(v string) *RightsizingRecommendation { 7459 s.RightsizingType = &v 7460 return s 7461} 7462 7463// SetTerminateRecommendationDetail sets the TerminateRecommendationDetail field's value. 7464func (s *RightsizingRecommendation) SetTerminateRecommendationDetail(v *TerminateRecommendationDetail) *RightsizingRecommendation { 7465 s.TerminateRecommendationDetail = v 7466 return s 7467} 7468 7469// Enables you to customize recommendations across two attributes. You can choose 7470// to view recommendations for instances within the same instance families or 7471// across different instance families. You can also choose to view your estimated 7472// savings associated with recommendations with consideration of existing Savings 7473// Plans or RI benefits, or neither. 7474type RightsizingRecommendationConfiguration struct { 7475 _ struct{} `type:"structure"` 7476 7477 // The option to consider RI or Savings Plans discount benefits in your savings 7478 // calculation. The default value is TRUE. 7479 // 7480 // BenefitsConsidered is a required field 7481 BenefitsConsidered *bool `type:"boolean" required:"true"` 7482 7483 // The option to see recommendations within the same instance family, or recommendations 7484 // for instances across other families. The default value is SAME_INSTANCE_FAMILY. 7485 // 7486 // RecommendationTarget is a required field 7487 RecommendationTarget *string `type:"string" required:"true" enum:"RecommendationTarget"` 7488} 7489 7490// String returns the string representation 7491func (s RightsizingRecommendationConfiguration) String() string { 7492 return awsutil.Prettify(s) 7493} 7494 7495// GoString returns the string representation 7496func (s RightsizingRecommendationConfiguration) GoString() string { 7497 return s.String() 7498} 7499 7500// Validate inspects the fields of the type to determine if they are valid. 7501func (s *RightsizingRecommendationConfiguration) Validate() error { 7502 invalidParams := request.ErrInvalidParams{Context: "RightsizingRecommendationConfiguration"} 7503 if s.BenefitsConsidered == nil { 7504 invalidParams.Add(request.NewErrParamRequired("BenefitsConsidered")) 7505 } 7506 if s.RecommendationTarget == nil { 7507 invalidParams.Add(request.NewErrParamRequired("RecommendationTarget")) 7508 } 7509 7510 if invalidParams.Len() > 0 { 7511 return invalidParams 7512 } 7513 return nil 7514} 7515 7516// SetBenefitsConsidered sets the BenefitsConsidered field's value. 7517func (s *RightsizingRecommendationConfiguration) SetBenefitsConsidered(v bool) *RightsizingRecommendationConfiguration { 7518 s.BenefitsConsidered = &v 7519 return s 7520} 7521 7522// SetRecommendationTarget sets the RecommendationTarget field's value. 7523func (s *RightsizingRecommendationConfiguration) SetRecommendationTarget(v string) *RightsizingRecommendationConfiguration { 7524 s.RecommendationTarget = &v 7525 return s 7526} 7527 7528// Metadata for this recommendation set. 7529type RightsizingRecommendationMetadata struct { 7530 _ struct{} `type:"structure"` 7531 7532 // The timestamp for when Amazon Web Services made this recommendation. 7533 GenerationTimestamp *string `type:"string"` 7534 7535 // How many days of previous usage that Amazon Web Services considers when making 7536 // this recommendation. 7537 LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` 7538 7539 // The ID for this specific recommendation. 7540 RecommendationId *string `type:"string"` 7541} 7542 7543// String returns the string representation 7544func (s RightsizingRecommendationMetadata) String() string { 7545 return awsutil.Prettify(s) 7546} 7547 7548// GoString returns the string representation 7549func (s RightsizingRecommendationMetadata) GoString() string { 7550 return s.String() 7551} 7552 7553// SetGenerationTimestamp sets the GenerationTimestamp field's value. 7554func (s *RightsizingRecommendationMetadata) SetGenerationTimestamp(v string) *RightsizingRecommendationMetadata { 7555 s.GenerationTimestamp = &v 7556 return s 7557} 7558 7559// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. 7560func (s *RightsizingRecommendationMetadata) SetLookbackPeriodInDays(v string) *RightsizingRecommendationMetadata { 7561 s.LookbackPeriodInDays = &v 7562 return s 7563} 7564 7565// SetRecommendationId sets the RecommendationId field's value. 7566func (s *RightsizingRecommendationMetadata) SetRecommendationId(v string) *RightsizingRecommendationMetadata { 7567 s.RecommendationId = &v 7568 return s 7569} 7570 7571// Summary of rightsizing recommendations 7572type RightsizingRecommendationSummary struct { 7573 _ struct{} `type:"structure"` 7574 7575 // Estimated total savings resulting from modifications, on a monthly basis. 7576 EstimatedTotalMonthlySavingsAmount *string `type:"string"` 7577 7578 // The currency code that Amazon Web Services used to calculate the savings. 7579 SavingsCurrencyCode *string `type:"string"` 7580 7581 // Savings percentage based on the recommended modifications, relative to the 7582 // total On-Demand costs associated with these instances. 7583 SavingsPercentage *string `type:"string"` 7584 7585 // Total number of instance recommendations. 7586 TotalRecommendationCount *string `type:"string"` 7587} 7588 7589// String returns the string representation 7590func (s RightsizingRecommendationSummary) String() string { 7591 return awsutil.Prettify(s) 7592} 7593 7594// GoString returns the string representation 7595func (s RightsizingRecommendationSummary) GoString() string { 7596 return s.String() 7597} 7598 7599// SetEstimatedTotalMonthlySavingsAmount sets the EstimatedTotalMonthlySavingsAmount field's value. 7600func (s *RightsizingRecommendationSummary) SetEstimatedTotalMonthlySavingsAmount(v string) *RightsizingRecommendationSummary { 7601 s.EstimatedTotalMonthlySavingsAmount = &v 7602 return s 7603} 7604 7605// SetSavingsCurrencyCode sets the SavingsCurrencyCode field's value. 7606func (s *RightsizingRecommendationSummary) SetSavingsCurrencyCode(v string) *RightsizingRecommendationSummary { 7607 s.SavingsCurrencyCode = &v 7608 return s 7609} 7610 7611// SetSavingsPercentage sets the SavingsPercentage field's value. 7612func (s *RightsizingRecommendationSummary) SetSavingsPercentage(v string) *RightsizingRecommendationSummary { 7613 s.SavingsPercentage = &v 7614 return s 7615} 7616 7617// SetTotalRecommendationCount sets the TotalRecommendationCount field's value. 7618func (s *RightsizingRecommendationSummary) SetTotalRecommendationCount(v string) *RightsizingRecommendationSummary { 7619 s.TotalRecommendationCount = &v 7620 return s 7621} 7622 7623// The amortized amount of Savings Plans purchased in a specific account during 7624// a specific time interval. 7625type SavingsPlansAmortizedCommitment struct { 7626 _ struct{} `type:"structure"` 7627 7628 // The amortized amount of your Savings Plans commitment that was purchased 7629 // with either a Partial or a NoUpfront. 7630 AmortizedRecurringCommitment *string `type:"string"` 7631 7632 // The amortized amount of your Savings Plans commitment that was purchased 7633 // with an Upfront or PartialUpfront Savings Plans. 7634 AmortizedUpfrontCommitment *string `type:"string"` 7635 7636 // The total amortized amount of your Savings Plans commitment, regardless of 7637 // your Savings Plans purchase method. 7638 TotalAmortizedCommitment *string `type:"string"` 7639} 7640 7641// String returns the string representation 7642func (s SavingsPlansAmortizedCommitment) String() string { 7643 return awsutil.Prettify(s) 7644} 7645 7646// GoString returns the string representation 7647func (s SavingsPlansAmortizedCommitment) GoString() string { 7648 return s.String() 7649} 7650 7651// SetAmortizedRecurringCommitment sets the AmortizedRecurringCommitment field's value. 7652func (s *SavingsPlansAmortizedCommitment) SetAmortizedRecurringCommitment(v string) *SavingsPlansAmortizedCommitment { 7653 s.AmortizedRecurringCommitment = &v 7654 return s 7655} 7656 7657// SetAmortizedUpfrontCommitment sets the AmortizedUpfrontCommitment field's value. 7658func (s *SavingsPlansAmortizedCommitment) SetAmortizedUpfrontCommitment(v string) *SavingsPlansAmortizedCommitment { 7659 s.AmortizedUpfrontCommitment = &v 7660 return s 7661} 7662 7663// SetTotalAmortizedCommitment sets the TotalAmortizedCommitment field's value. 7664func (s *SavingsPlansAmortizedCommitment) SetTotalAmortizedCommitment(v string) *SavingsPlansAmortizedCommitment { 7665 s.TotalAmortizedCommitment = &v 7666 return s 7667} 7668 7669// The amount of Savings Plans eligible usage that is covered by Savings Plans. 7670// All calculations consider the On-Demand equivalent of your Savings Plans 7671// usage. 7672type SavingsPlansCoverage struct { 7673 _ struct{} `type:"structure"` 7674 7675 // The attribute that applies to a specific Dimension. 7676 Attributes map[string]*string `type:"map"` 7677 7678 // The amount of Savings Plans eligible usage that the Savings Plans covered. 7679 Coverage *SavingsPlansCoverageData `type:"structure"` 7680 7681 // The time period that you want the usage and costs for. 7682 TimePeriod *DateInterval `type:"structure"` 7683} 7684 7685// String returns the string representation 7686func (s SavingsPlansCoverage) String() string { 7687 return awsutil.Prettify(s) 7688} 7689 7690// GoString returns the string representation 7691func (s SavingsPlansCoverage) GoString() string { 7692 return s.String() 7693} 7694 7695// SetAttributes sets the Attributes field's value. 7696func (s *SavingsPlansCoverage) SetAttributes(v map[string]*string) *SavingsPlansCoverage { 7697 s.Attributes = v 7698 return s 7699} 7700 7701// SetCoverage sets the Coverage field's value. 7702func (s *SavingsPlansCoverage) SetCoverage(v *SavingsPlansCoverageData) *SavingsPlansCoverage { 7703 s.Coverage = v 7704 return s 7705} 7706 7707// SetTimePeriod sets the TimePeriod field's value. 7708func (s *SavingsPlansCoverage) SetTimePeriod(v *DateInterval) *SavingsPlansCoverage { 7709 s.TimePeriod = v 7710 return s 7711} 7712 7713// Specific coverage percentage, On-Demand costs, and spend covered by Savings 7714// Plans, and total Savings Plans costs for an account. 7715type SavingsPlansCoverageData struct { 7716 _ struct{} `type:"structure"` 7717 7718 // The percentage of your existing Savings Plans covered usage, divided by all 7719 // of your eligible Savings Plans usage in an account(or set of accounts). 7720 CoveragePercentage *string `type:"string"` 7721 7722 // The cost of your Amazon Web Services usage at the public On-Demand rate. 7723 OnDemandCost *string `type:"string"` 7724 7725 // The amount of your Amazon Web Services usage that is covered by a Savings 7726 // Plans. 7727 SpendCoveredBySavingsPlans *string `type:"string"` 7728 7729 // The total cost of your Amazon Web Services usage, regardless of your purchase 7730 // option. 7731 TotalCost *string `type:"string"` 7732} 7733 7734// String returns the string representation 7735func (s SavingsPlansCoverageData) String() string { 7736 return awsutil.Prettify(s) 7737} 7738 7739// GoString returns the string representation 7740func (s SavingsPlansCoverageData) GoString() string { 7741 return s.String() 7742} 7743 7744// SetCoveragePercentage sets the CoveragePercentage field's value. 7745func (s *SavingsPlansCoverageData) SetCoveragePercentage(v string) *SavingsPlansCoverageData { 7746 s.CoveragePercentage = &v 7747 return s 7748} 7749 7750// SetOnDemandCost sets the OnDemandCost field's value. 7751func (s *SavingsPlansCoverageData) SetOnDemandCost(v string) *SavingsPlansCoverageData { 7752 s.OnDemandCost = &v 7753 return s 7754} 7755 7756// SetSpendCoveredBySavingsPlans sets the SpendCoveredBySavingsPlans field's value. 7757func (s *SavingsPlansCoverageData) SetSpendCoveredBySavingsPlans(v string) *SavingsPlansCoverageData { 7758 s.SpendCoveredBySavingsPlans = &v 7759 return s 7760} 7761 7762// SetTotalCost sets the TotalCost field's value. 7763func (s *SavingsPlansCoverageData) SetTotalCost(v string) *SavingsPlansCoverageData { 7764 s.TotalCost = &v 7765 return s 7766} 7767 7768// Attribute details on a specific Savings Plan. 7769type SavingsPlansDetails struct { 7770 _ struct{} `type:"structure"` 7771 7772 // A group of instance types that Savings Plans applies to. 7773 InstanceFamily *string `type:"string"` 7774 7775 // The unique ID used to distinguish Savings Plans from one another. 7776 OfferingId *string `type:"string"` 7777 7778 // A collection of AWS resources in a geographic area. Each AWS Region is isolated 7779 // and independent of the other Regions. 7780 Region *string `type:"string"` 7781} 7782 7783// String returns the string representation 7784func (s SavingsPlansDetails) String() string { 7785 return awsutil.Prettify(s) 7786} 7787 7788// GoString returns the string representation 7789func (s SavingsPlansDetails) GoString() string { 7790 return s.String() 7791} 7792 7793// SetInstanceFamily sets the InstanceFamily field's value. 7794func (s *SavingsPlansDetails) SetInstanceFamily(v string) *SavingsPlansDetails { 7795 s.InstanceFamily = &v 7796 return s 7797} 7798 7799// SetOfferingId sets the OfferingId field's value. 7800func (s *SavingsPlansDetails) SetOfferingId(v string) *SavingsPlansDetails { 7801 s.OfferingId = &v 7802 return s 7803} 7804 7805// SetRegion sets the Region field's value. 7806func (s *SavingsPlansDetails) SetRegion(v string) *SavingsPlansDetails { 7807 s.Region = &v 7808 return s 7809} 7810 7811// Contains your request parameters, Savings Plan Recommendations Summary, and 7812// Details. 7813type SavingsPlansPurchaseRecommendation struct { 7814 _ struct{} `type:"structure"` 7815 7816 // The account scope that you want your recommendations for. Amazon Web Services 7817 // calculates recommendations including the payer account and linked accounts 7818 // if the value is set to PAYER. If the value is LINKED, recommendations are 7819 // calculated for individual linked accounts only. 7820 AccountScope *string `type:"string" enum:"AccountScope"` 7821 7822 // The lookback period in days, used to generate the recommendation. 7823 LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` 7824 7825 // The payment option used to generate the recommendation. 7826 PaymentOption *string `type:"string" enum:"PaymentOption"` 7827 7828 // Details for the Savings Plans we recommend that you purchase to cover existing 7829 // Savings Plans eligible workloads. 7830 SavingsPlansPurchaseRecommendationDetails []*SavingsPlansPurchaseRecommendationDetail `type:"list"` 7831 7832 // Summary metrics for your Savings Plans Recommendations. 7833 SavingsPlansPurchaseRecommendationSummary *SavingsPlansPurchaseRecommendationSummary `type:"structure"` 7834 7835 // The requested Savings Plans recommendation type. 7836 SavingsPlansType *string `type:"string" enum:"SupportedSavingsPlansType"` 7837 7838 // The Savings Plans recommendation term in years, used to generate the recommendation. 7839 TermInYears *string `type:"string" enum:"TermInYears"` 7840} 7841 7842// String returns the string representation 7843func (s SavingsPlansPurchaseRecommendation) String() string { 7844 return awsutil.Prettify(s) 7845} 7846 7847// GoString returns the string representation 7848func (s SavingsPlansPurchaseRecommendation) GoString() string { 7849 return s.String() 7850} 7851 7852// SetAccountScope sets the AccountScope field's value. 7853func (s *SavingsPlansPurchaseRecommendation) SetAccountScope(v string) *SavingsPlansPurchaseRecommendation { 7854 s.AccountScope = &v 7855 return s 7856} 7857 7858// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. 7859func (s *SavingsPlansPurchaseRecommendation) SetLookbackPeriodInDays(v string) *SavingsPlansPurchaseRecommendation { 7860 s.LookbackPeriodInDays = &v 7861 return s 7862} 7863 7864// SetPaymentOption sets the PaymentOption field's value. 7865func (s *SavingsPlansPurchaseRecommendation) SetPaymentOption(v string) *SavingsPlansPurchaseRecommendation { 7866 s.PaymentOption = &v 7867 return s 7868} 7869 7870// SetSavingsPlansPurchaseRecommendationDetails sets the SavingsPlansPurchaseRecommendationDetails field's value. 7871func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansPurchaseRecommendationDetails(v []*SavingsPlansPurchaseRecommendationDetail) *SavingsPlansPurchaseRecommendation { 7872 s.SavingsPlansPurchaseRecommendationDetails = v 7873 return s 7874} 7875 7876// SetSavingsPlansPurchaseRecommendationSummary sets the SavingsPlansPurchaseRecommendationSummary field's value. 7877func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansPurchaseRecommendationSummary(v *SavingsPlansPurchaseRecommendationSummary) *SavingsPlansPurchaseRecommendation { 7878 s.SavingsPlansPurchaseRecommendationSummary = v 7879 return s 7880} 7881 7882// SetSavingsPlansType sets the SavingsPlansType field's value. 7883func (s *SavingsPlansPurchaseRecommendation) SetSavingsPlansType(v string) *SavingsPlansPurchaseRecommendation { 7884 s.SavingsPlansType = &v 7885 return s 7886} 7887 7888// SetTermInYears sets the TermInYears field's value. 7889func (s *SavingsPlansPurchaseRecommendation) SetTermInYears(v string) *SavingsPlansPurchaseRecommendation { 7890 s.TermInYears = &v 7891 return s 7892} 7893 7894// Details for your recommended Savings Plans. 7895type SavingsPlansPurchaseRecommendationDetail struct { 7896 _ struct{} `type:"structure"` 7897 7898 // The AccountID the recommendation is generated for. 7899 AccountId *string `type:"string"` 7900 7901 // The currency code Amazon Web Services used to generate the recommendations 7902 // and present potential savings. 7903 CurrencyCode *string `type:"string"` 7904 7905 // The average value of hourly On-Demand spend over the lookback period of the 7906 // applicable usage type. 7907 CurrentAverageHourlyOnDemandSpend *string `type:"string"` 7908 7909 // The highest value of hourly On-Demand spend over the lookback period of the 7910 // applicable usage type. 7911 CurrentMaximumHourlyOnDemandSpend *string `type:"string"` 7912 7913 // The lowest value of hourly On-Demand spend over the lookback period of the 7914 // applicable usage type. 7915 CurrentMinimumHourlyOnDemandSpend *string `type:"string"` 7916 7917 // The estimated utilization of the recommended Savings Plans. 7918 EstimatedAverageUtilization *string `type:"string"` 7919 7920 // The estimated monthly savings amount, based on the recommended Savings Plans. 7921 EstimatedMonthlySavingsAmount *string `type:"string"` 7922 7923 // The remaining On-Demand cost estimated to not be covered by the recommended 7924 // Savings Plans, over the length of the lookback period. 7925 EstimatedOnDemandCost *string `type:"string"` 7926 7927 // The estimated On-Demand costs you would expect with no additional commitment, 7928 // based on your usage of the selected time period and the Savings Plans you 7929 // own. 7930 EstimatedOnDemandCostWithCurrentCommitment *string `type:"string"` 7931 7932 // The estimated return on investment based on the recommended Savings Plans 7933 // purchased. This is calculated as estimatedSavingsAmount/ estimatedSPCost*100. 7934 EstimatedROI *string `type:"string"` 7935 7936 // The cost of the recommended Savings Plans over the length of the lookback 7937 // period. 7938 EstimatedSPCost *string `type:"string"` 7939 7940 // The estimated savings amount based on the recommended Savings Plans over 7941 // the length of the lookback period. 7942 EstimatedSavingsAmount *string `type:"string"` 7943 7944 // The estimated savings percentage relative to the total cost of applicable 7945 // On-Demand usage over the lookback period. 7946 EstimatedSavingsPercentage *string `type:"string"` 7947 7948 // The recommended hourly commitment level for the Savings Plans type, and configuration 7949 // based on the usage during the lookback period. 7950 HourlyCommitmentToPurchase *string `type:"string"` 7951 7952 // Details for your recommended Savings Plans. 7953 SavingsPlansDetails *SavingsPlansDetails `type:"structure"` 7954 7955 // The upfront cost of the recommended Savings Plans, based on the selected 7956 // payment option. 7957 UpfrontCost *string `type:"string"` 7958} 7959 7960// String returns the string representation 7961func (s SavingsPlansPurchaseRecommendationDetail) String() string { 7962 return awsutil.Prettify(s) 7963} 7964 7965// GoString returns the string representation 7966func (s SavingsPlansPurchaseRecommendationDetail) GoString() string { 7967 return s.String() 7968} 7969 7970// SetAccountId sets the AccountId field's value. 7971func (s *SavingsPlansPurchaseRecommendationDetail) SetAccountId(v string) *SavingsPlansPurchaseRecommendationDetail { 7972 s.AccountId = &v 7973 return s 7974} 7975 7976// SetCurrencyCode sets the CurrencyCode field's value. 7977func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrencyCode(v string) *SavingsPlansPurchaseRecommendationDetail { 7978 s.CurrencyCode = &v 7979 return s 7980} 7981 7982// SetCurrentAverageHourlyOnDemandSpend sets the CurrentAverageHourlyOnDemandSpend field's value. 7983func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentAverageHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { 7984 s.CurrentAverageHourlyOnDemandSpend = &v 7985 return s 7986} 7987 7988// SetCurrentMaximumHourlyOnDemandSpend sets the CurrentMaximumHourlyOnDemandSpend field's value. 7989func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentMaximumHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { 7990 s.CurrentMaximumHourlyOnDemandSpend = &v 7991 return s 7992} 7993 7994// SetCurrentMinimumHourlyOnDemandSpend sets the CurrentMinimumHourlyOnDemandSpend field's value. 7995func (s *SavingsPlansPurchaseRecommendationDetail) SetCurrentMinimumHourlyOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationDetail { 7996 s.CurrentMinimumHourlyOnDemandSpend = &v 7997 return s 7998} 7999 8000// SetEstimatedAverageUtilization sets the EstimatedAverageUtilization field's value. 8001func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedAverageUtilization(v string) *SavingsPlansPurchaseRecommendationDetail { 8002 s.EstimatedAverageUtilization = &v 8003 return s 8004} 8005 8006// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. 8007func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedMonthlySavingsAmount(v string) *SavingsPlansPurchaseRecommendationDetail { 8008 s.EstimatedMonthlySavingsAmount = &v 8009 return s 8010} 8011 8012// SetEstimatedOnDemandCost sets the EstimatedOnDemandCost field's value. 8013func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedOnDemandCost(v string) *SavingsPlansPurchaseRecommendationDetail { 8014 s.EstimatedOnDemandCost = &v 8015 return s 8016} 8017 8018// SetEstimatedOnDemandCostWithCurrentCommitment sets the EstimatedOnDemandCostWithCurrentCommitment field's value. 8019func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedOnDemandCostWithCurrentCommitment(v string) *SavingsPlansPurchaseRecommendationDetail { 8020 s.EstimatedOnDemandCostWithCurrentCommitment = &v 8021 return s 8022} 8023 8024// SetEstimatedROI sets the EstimatedROI field's value. 8025func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedROI(v string) *SavingsPlansPurchaseRecommendationDetail { 8026 s.EstimatedROI = &v 8027 return s 8028} 8029 8030// SetEstimatedSPCost sets the EstimatedSPCost field's value. 8031func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSPCost(v string) *SavingsPlansPurchaseRecommendationDetail { 8032 s.EstimatedSPCost = &v 8033 return s 8034} 8035 8036// SetEstimatedSavingsAmount sets the EstimatedSavingsAmount field's value. 8037func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSavingsAmount(v string) *SavingsPlansPurchaseRecommendationDetail { 8038 s.EstimatedSavingsAmount = &v 8039 return s 8040} 8041 8042// SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. 8043func (s *SavingsPlansPurchaseRecommendationDetail) SetEstimatedSavingsPercentage(v string) *SavingsPlansPurchaseRecommendationDetail { 8044 s.EstimatedSavingsPercentage = &v 8045 return s 8046} 8047 8048// SetHourlyCommitmentToPurchase sets the HourlyCommitmentToPurchase field's value. 8049func (s *SavingsPlansPurchaseRecommendationDetail) SetHourlyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationDetail { 8050 s.HourlyCommitmentToPurchase = &v 8051 return s 8052} 8053 8054// SetSavingsPlansDetails sets the SavingsPlansDetails field's value. 8055func (s *SavingsPlansPurchaseRecommendationDetail) SetSavingsPlansDetails(v *SavingsPlansDetails) *SavingsPlansPurchaseRecommendationDetail { 8056 s.SavingsPlansDetails = v 8057 return s 8058} 8059 8060// SetUpfrontCost sets the UpfrontCost field's value. 8061func (s *SavingsPlansPurchaseRecommendationDetail) SetUpfrontCost(v string) *SavingsPlansPurchaseRecommendationDetail { 8062 s.UpfrontCost = &v 8063 return s 8064} 8065 8066// Metadata about your Savings Plans Purchase Recommendations. 8067type SavingsPlansPurchaseRecommendationMetadata struct { 8068 _ struct{} `type:"structure"` 8069 8070 // The timestamp showing when the recommendations were generated. 8071 GenerationTimestamp *string `type:"string"` 8072 8073 // The unique identifier for the recommendation set. 8074 RecommendationId *string `type:"string"` 8075} 8076 8077// String returns the string representation 8078func (s SavingsPlansPurchaseRecommendationMetadata) String() string { 8079 return awsutil.Prettify(s) 8080} 8081 8082// GoString returns the string representation 8083func (s SavingsPlansPurchaseRecommendationMetadata) GoString() string { 8084 return s.String() 8085} 8086 8087// SetGenerationTimestamp sets the GenerationTimestamp field's value. 8088func (s *SavingsPlansPurchaseRecommendationMetadata) SetGenerationTimestamp(v string) *SavingsPlansPurchaseRecommendationMetadata { 8089 s.GenerationTimestamp = &v 8090 return s 8091} 8092 8093// SetRecommendationId sets the RecommendationId field's value. 8094func (s *SavingsPlansPurchaseRecommendationMetadata) SetRecommendationId(v string) *SavingsPlansPurchaseRecommendationMetadata { 8095 s.RecommendationId = &v 8096 return s 8097} 8098 8099// Summary metrics for your Savings Plans Purchase Recommendations. 8100type SavingsPlansPurchaseRecommendationSummary struct { 8101 _ struct{} `type:"structure"` 8102 8103 // The currency code Amazon Web Services used to generate the recommendations 8104 // and present potential savings. 8105 CurrencyCode *string `type:"string"` 8106 8107 // The current total on demand spend of the applicable usage types over the 8108 // lookback period. 8109 CurrentOnDemandSpend *string `type:"string"` 8110 8111 // The recommended Savings Plans cost on a daily (24 hourly) basis. 8112 DailyCommitmentToPurchase *string `type:"string"` 8113 8114 // The estimated monthly savings amount, based on the recommended Savings Plans 8115 // purchase. 8116 EstimatedMonthlySavingsAmount *string `type:"string"` 8117 8118 // The estimated On-Demand costs you would expect with no additional commitment, 8119 // based on your usage of the selected time period and the Savings Plans you 8120 // own. 8121 EstimatedOnDemandCostWithCurrentCommitment *string `type:"string"` 8122 8123 // The estimated return on investment based on the recommended Savings Plans 8124 // and estimated savings. 8125 EstimatedROI *string `type:"string"` 8126 8127 // The estimated total savings over the lookback period, based on the purchase 8128 // of the recommended Savings Plans. 8129 EstimatedSavingsAmount *string `type:"string"` 8130 8131 // The estimated savings relative to the total cost of On-Demand usage, over 8132 // the lookback period. This is calculated as estimatedSavingsAmount/ CurrentOnDemandSpend*100. 8133 EstimatedSavingsPercentage *string `type:"string"` 8134 8135 // The estimated total cost of the usage after purchasing the recommended Savings 8136 // Plans. This is a sum of the cost of Savings Plans during this term, and the 8137 // remaining On-Demand usage. 8138 EstimatedTotalCost *string `type:"string"` 8139 8140 // The recommended hourly commitment based on the recommendation parameters. 8141 HourlyCommitmentToPurchase *string `type:"string"` 8142 8143 // The aggregate number of Savings Plans recommendations that exist for your 8144 // account. 8145 TotalRecommendationCount *string `type:"string"` 8146} 8147 8148// String returns the string representation 8149func (s SavingsPlansPurchaseRecommendationSummary) String() string { 8150 return awsutil.Prettify(s) 8151} 8152 8153// GoString returns the string representation 8154func (s SavingsPlansPurchaseRecommendationSummary) GoString() string { 8155 return s.String() 8156} 8157 8158// SetCurrencyCode sets the CurrencyCode field's value. 8159func (s *SavingsPlansPurchaseRecommendationSummary) SetCurrencyCode(v string) *SavingsPlansPurchaseRecommendationSummary { 8160 s.CurrencyCode = &v 8161 return s 8162} 8163 8164// SetCurrentOnDemandSpend sets the CurrentOnDemandSpend field's value. 8165func (s *SavingsPlansPurchaseRecommendationSummary) SetCurrentOnDemandSpend(v string) *SavingsPlansPurchaseRecommendationSummary { 8166 s.CurrentOnDemandSpend = &v 8167 return s 8168} 8169 8170// SetDailyCommitmentToPurchase sets the DailyCommitmentToPurchase field's value. 8171func (s *SavingsPlansPurchaseRecommendationSummary) SetDailyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationSummary { 8172 s.DailyCommitmentToPurchase = &v 8173 return s 8174} 8175 8176// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. 8177func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedMonthlySavingsAmount(v string) *SavingsPlansPurchaseRecommendationSummary { 8178 s.EstimatedMonthlySavingsAmount = &v 8179 return s 8180} 8181 8182// SetEstimatedOnDemandCostWithCurrentCommitment sets the EstimatedOnDemandCostWithCurrentCommitment field's value. 8183func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedOnDemandCostWithCurrentCommitment(v string) *SavingsPlansPurchaseRecommendationSummary { 8184 s.EstimatedOnDemandCostWithCurrentCommitment = &v 8185 return s 8186} 8187 8188// SetEstimatedROI sets the EstimatedROI field's value. 8189func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedROI(v string) *SavingsPlansPurchaseRecommendationSummary { 8190 s.EstimatedROI = &v 8191 return s 8192} 8193 8194// SetEstimatedSavingsAmount sets the EstimatedSavingsAmount field's value. 8195func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedSavingsAmount(v string) *SavingsPlansPurchaseRecommendationSummary { 8196 s.EstimatedSavingsAmount = &v 8197 return s 8198} 8199 8200// SetEstimatedSavingsPercentage sets the EstimatedSavingsPercentage field's value. 8201func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedSavingsPercentage(v string) *SavingsPlansPurchaseRecommendationSummary { 8202 s.EstimatedSavingsPercentage = &v 8203 return s 8204} 8205 8206// SetEstimatedTotalCost sets the EstimatedTotalCost field's value. 8207func (s *SavingsPlansPurchaseRecommendationSummary) SetEstimatedTotalCost(v string) *SavingsPlansPurchaseRecommendationSummary { 8208 s.EstimatedTotalCost = &v 8209 return s 8210} 8211 8212// SetHourlyCommitmentToPurchase sets the HourlyCommitmentToPurchase field's value. 8213func (s *SavingsPlansPurchaseRecommendationSummary) SetHourlyCommitmentToPurchase(v string) *SavingsPlansPurchaseRecommendationSummary { 8214 s.HourlyCommitmentToPurchase = &v 8215 return s 8216} 8217 8218// SetTotalRecommendationCount sets the TotalRecommendationCount field's value. 8219func (s *SavingsPlansPurchaseRecommendationSummary) SetTotalRecommendationCount(v string) *SavingsPlansPurchaseRecommendationSummary { 8220 s.TotalRecommendationCount = &v 8221 return s 8222} 8223 8224// The amount of savings you're accumulating, against the public On-Demand rate 8225// of the usage accrued in an account. 8226type SavingsPlansSavings struct { 8227 _ struct{} `type:"structure"` 8228 8229 // The savings amount that you are accumulating for the usage that is covered 8230 // by a Savings Plans, when compared to the On-Demand equivalent of the same 8231 // usage. 8232 NetSavings *string `type:"string"` 8233 8234 // How much the amount that the usage would have cost if it was accrued at the 8235 // On-Demand rate. 8236 OnDemandCostEquivalent *string `type:"string"` 8237} 8238 8239// String returns the string representation 8240func (s SavingsPlansSavings) String() string { 8241 return awsutil.Prettify(s) 8242} 8243 8244// GoString returns the string representation 8245func (s SavingsPlansSavings) GoString() string { 8246 return s.String() 8247} 8248 8249// SetNetSavings sets the NetSavings field's value. 8250func (s *SavingsPlansSavings) SetNetSavings(v string) *SavingsPlansSavings { 8251 s.NetSavings = &v 8252 return s 8253} 8254 8255// SetOnDemandCostEquivalent sets the OnDemandCostEquivalent field's value. 8256func (s *SavingsPlansSavings) SetOnDemandCostEquivalent(v string) *SavingsPlansSavings { 8257 s.OnDemandCostEquivalent = &v 8258 return s 8259} 8260 8261// The measurement of how well you are using your existing Savings Plans. 8262type SavingsPlansUtilization struct { 8263 _ struct{} `type:"structure"` 8264 8265 // The total amount of Savings Plans commitment that's been purchased in an 8266 // account (or set of accounts). 8267 TotalCommitment *string `type:"string"` 8268 8269 // The amount of your Savings Plans commitment that was not consumed from Savings 8270 // Plans eligible usage in a specific period. 8271 UnusedCommitment *string `type:"string"` 8272 8273 // The amount of your Savings Plans commitment that was consumed from Savings 8274 // Plans eligible usage in a specific period. 8275 UsedCommitment *string `type:"string"` 8276 8277 // The amount of UsedCommitment divided by the TotalCommitment for your Savings 8278 // Plans. 8279 UtilizationPercentage *string `type:"string"` 8280} 8281 8282// String returns the string representation 8283func (s SavingsPlansUtilization) String() string { 8284 return awsutil.Prettify(s) 8285} 8286 8287// GoString returns the string representation 8288func (s SavingsPlansUtilization) GoString() string { 8289 return s.String() 8290} 8291 8292// SetTotalCommitment sets the TotalCommitment field's value. 8293func (s *SavingsPlansUtilization) SetTotalCommitment(v string) *SavingsPlansUtilization { 8294 s.TotalCommitment = &v 8295 return s 8296} 8297 8298// SetUnusedCommitment sets the UnusedCommitment field's value. 8299func (s *SavingsPlansUtilization) SetUnusedCommitment(v string) *SavingsPlansUtilization { 8300 s.UnusedCommitment = &v 8301 return s 8302} 8303 8304// SetUsedCommitment sets the UsedCommitment field's value. 8305func (s *SavingsPlansUtilization) SetUsedCommitment(v string) *SavingsPlansUtilization { 8306 s.UsedCommitment = &v 8307 return s 8308} 8309 8310// SetUtilizationPercentage sets the UtilizationPercentage field's value. 8311func (s *SavingsPlansUtilization) SetUtilizationPercentage(v string) *SavingsPlansUtilization { 8312 s.UtilizationPercentage = &v 8313 return s 8314} 8315 8316// The aggregated utilization metrics for your Savings Plans usage. 8317type SavingsPlansUtilizationAggregates struct { 8318 _ struct{} `type:"structure"` 8319 8320 // The total amortized commitment for a Savings Plans. This includes the sum 8321 // of the upfront and recurring Savings Plans fees. 8322 AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` 8323 8324 // The amount saved by using existing Savings Plans. Savings returns both net 8325 // savings from Savings Plans, as well as the onDemandCostEquivalent of the 8326 // Savings Plans when considering the utilization rate. 8327 Savings *SavingsPlansSavings `type:"structure"` 8328 8329 // A ratio of your effectiveness of using existing Savings Plans to apply to 8330 // workloads that are Savings Plans eligible. 8331 // 8332 // Utilization is a required field 8333 Utilization *SavingsPlansUtilization `type:"structure" required:"true"` 8334} 8335 8336// String returns the string representation 8337func (s SavingsPlansUtilizationAggregates) String() string { 8338 return awsutil.Prettify(s) 8339} 8340 8341// GoString returns the string representation 8342func (s SavingsPlansUtilizationAggregates) GoString() string { 8343 return s.String() 8344} 8345 8346// SetAmortizedCommitment sets the AmortizedCommitment field's value. 8347func (s *SavingsPlansUtilizationAggregates) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationAggregates { 8348 s.AmortizedCommitment = v 8349 return s 8350} 8351 8352// SetSavings sets the Savings field's value. 8353func (s *SavingsPlansUtilizationAggregates) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationAggregates { 8354 s.Savings = v 8355 return s 8356} 8357 8358// SetUtilization sets the Utilization field's value. 8359func (s *SavingsPlansUtilizationAggregates) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationAggregates { 8360 s.Utilization = v 8361 return s 8362} 8363 8364// The amount of Savings Plans utilization, in hours. 8365type SavingsPlansUtilizationByTime struct { 8366 _ struct{} `type:"structure"` 8367 8368 // The total amortized commitment for a Savings Plans. This includes the sum 8369 // of the upfront and recurring Savings Plans fees. 8370 AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` 8371 8372 // The amount saved by using existing Savings Plans. Savings returns both net 8373 // savings from Savings Plans as well as the onDemandCostEquivalent of the Savings 8374 // Plans when considering the utilization rate. 8375 Savings *SavingsPlansSavings `type:"structure"` 8376 8377 // The time period that you want the usage and costs for. 8378 // 8379 // TimePeriod is a required field 8380 TimePeriod *DateInterval `type:"structure" required:"true"` 8381 8382 // A ratio of your effectiveness of using existing Savings Plans to apply to 8383 // workloads that are Savings Plans eligible. 8384 // 8385 // Utilization is a required field 8386 Utilization *SavingsPlansUtilization `type:"structure" required:"true"` 8387} 8388 8389// String returns the string representation 8390func (s SavingsPlansUtilizationByTime) String() string { 8391 return awsutil.Prettify(s) 8392} 8393 8394// GoString returns the string representation 8395func (s SavingsPlansUtilizationByTime) GoString() string { 8396 return s.String() 8397} 8398 8399// SetAmortizedCommitment sets the AmortizedCommitment field's value. 8400func (s *SavingsPlansUtilizationByTime) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationByTime { 8401 s.AmortizedCommitment = v 8402 return s 8403} 8404 8405// SetSavings sets the Savings field's value. 8406func (s *SavingsPlansUtilizationByTime) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationByTime { 8407 s.Savings = v 8408 return s 8409} 8410 8411// SetTimePeriod sets the TimePeriod field's value. 8412func (s *SavingsPlansUtilizationByTime) SetTimePeriod(v *DateInterval) *SavingsPlansUtilizationByTime { 8413 s.TimePeriod = v 8414 return s 8415} 8416 8417// SetUtilization sets the Utilization field's value. 8418func (s *SavingsPlansUtilizationByTime) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationByTime { 8419 s.Utilization = v 8420 return s 8421} 8422 8423// A single daily or monthly Savings Plans utilization rate, and details for 8424// your account. Master accounts in an organization have access to member accounts. 8425// You can use GetDimensionValues to determine the possible dimension values. 8426type SavingsPlansUtilizationDetail struct { 8427 _ struct{} `type:"structure"` 8428 8429 // The total amortized commitment for a Savings Plans. Includes the sum of the 8430 // upfront and recurring Savings Plans fees. 8431 AmortizedCommitment *SavingsPlansAmortizedCommitment `type:"structure"` 8432 8433 // The attribute that applies to a specific Dimension. 8434 Attributes map[string]*string `type:"map"` 8435 8436 // The amount saved by using existing Savings Plans. Savings returns both net 8437 // savings from savings plans as well as the onDemandCostEquivalent of the Savings 8438 // Plans when considering the utilization rate. 8439 Savings *SavingsPlansSavings `type:"structure"` 8440 8441 // The unique Amazon Resource Name (ARN) for a particular Savings Plan. 8442 SavingsPlanArn *string `type:"string"` 8443 8444 // A ratio of your effectiveness of using existing Savings Plans to apply to 8445 // workloads that are Savings Plans eligible. 8446 Utilization *SavingsPlansUtilization `type:"structure"` 8447} 8448 8449// String returns the string representation 8450func (s SavingsPlansUtilizationDetail) String() string { 8451 return awsutil.Prettify(s) 8452} 8453 8454// GoString returns the string representation 8455func (s SavingsPlansUtilizationDetail) GoString() string { 8456 return s.String() 8457} 8458 8459// SetAmortizedCommitment sets the AmortizedCommitment field's value. 8460func (s *SavingsPlansUtilizationDetail) SetAmortizedCommitment(v *SavingsPlansAmortizedCommitment) *SavingsPlansUtilizationDetail { 8461 s.AmortizedCommitment = v 8462 return s 8463} 8464 8465// SetAttributes sets the Attributes field's value. 8466func (s *SavingsPlansUtilizationDetail) SetAttributes(v map[string]*string) *SavingsPlansUtilizationDetail { 8467 s.Attributes = v 8468 return s 8469} 8470 8471// SetSavings sets the Savings field's value. 8472func (s *SavingsPlansUtilizationDetail) SetSavings(v *SavingsPlansSavings) *SavingsPlansUtilizationDetail { 8473 s.Savings = v 8474 return s 8475} 8476 8477// SetSavingsPlanArn sets the SavingsPlanArn field's value. 8478func (s *SavingsPlansUtilizationDetail) SetSavingsPlanArn(v string) *SavingsPlansUtilizationDetail { 8479 s.SavingsPlanArn = &v 8480 return s 8481} 8482 8483// SetUtilization sets the Utilization field's value. 8484func (s *SavingsPlansUtilizationDetail) SetUtilization(v *SavingsPlansUtilization) *SavingsPlansUtilizationDetail { 8485 s.Utilization = v 8486 return s 8487} 8488 8489// You've reached the limit on the number of resources you can create, or exceeded 8490// the size of an individual resources. 8491type ServiceQuotaExceededException struct { 8492 _ struct{} `type:"structure"` 8493 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 8494 8495 Message_ *string `locationName:"Message" type:"string"` 8496} 8497 8498// String returns the string representation 8499func (s ServiceQuotaExceededException) String() string { 8500 return awsutil.Prettify(s) 8501} 8502 8503// GoString returns the string representation 8504func (s ServiceQuotaExceededException) GoString() string { 8505 return s.String() 8506} 8507 8508func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { 8509 return &ServiceQuotaExceededException{ 8510 RespMetadata: v, 8511 } 8512} 8513 8514// Code returns the exception type name. 8515func (s *ServiceQuotaExceededException) Code() string { 8516 return "ServiceQuotaExceededException" 8517} 8518 8519// Message returns the exception's message. 8520func (s *ServiceQuotaExceededException) Message() string { 8521 if s.Message_ != nil { 8522 return *s.Message_ 8523 } 8524 return "" 8525} 8526 8527// OrigErr always returns nil, satisfies awserr.Error interface. 8528func (s *ServiceQuotaExceededException) OrigErr() error { 8529 return nil 8530} 8531 8532func (s *ServiceQuotaExceededException) Error() string { 8533 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 8534} 8535 8536// Status code returns the HTTP status code for the request's response error. 8537func (s *ServiceQuotaExceededException) StatusCode() int { 8538 return s.RespMetadata.StatusCode 8539} 8540 8541// RequestID returns the service's response RequestID for request. 8542func (s *ServiceQuotaExceededException) RequestID() string { 8543 return s.RespMetadata.RequestID 8544} 8545 8546// Hardware specifications for the service that you want recommendations for. 8547type ServiceSpecification struct { 8548 _ struct{} `type:"structure"` 8549 8550 // The Amazon EC2 hardware specifications that you want AWS to provide recommendations 8551 // for. 8552 EC2Specification *EC2Specification `type:"structure"` 8553} 8554 8555// String returns the string representation 8556func (s ServiceSpecification) String() string { 8557 return awsutil.Prettify(s) 8558} 8559 8560// GoString returns the string representation 8561func (s ServiceSpecification) GoString() string { 8562 return s.String() 8563} 8564 8565// SetEC2Specification sets the EC2Specification field's value. 8566func (s *ServiceSpecification) SetEC2Specification(v *EC2Specification) *ServiceSpecification { 8567 s.EC2Specification = v 8568 return s 8569} 8570 8571// The values that are available for a tag. 8572type TagValues struct { 8573 _ struct{} `type:"structure"` 8574 8575 // The key for the tag. 8576 Key *string `type:"string"` 8577 8578 // The match options that you can use to filter your results. MatchOptions is 8579 // only applicable for only applicable for actions related to Cost Category. 8580 // The default values for MatchOptions is EQUALS and CASE_SENSITIVE. 8581 MatchOptions []*string `type:"list"` 8582 8583 // The specific value of the tag. 8584 Values []*string `type:"list"` 8585} 8586 8587// String returns the string representation 8588func (s TagValues) String() string { 8589 return awsutil.Prettify(s) 8590} 8591 8592// GoString returns the string representation 8593func (s TagValues) GoString() string { 8594 return s.String() 8595} 8596 8597// SetKey sets the Key field's value. 8598func (s *TagValues) SetKey(v string) *TagValues { 8599 s.Key = &v 8600 return s 8601} 8602 8603// SetMatchOptions sets the MatchOptions field's value. 8604func (s *TagValues) SetMatchOptions(v []*string) *TagValues { 8605 s.MatchOptions = v 8606 return s 8607} 8608 8609// SetValues sets the Values field's value. 8610func (s *TagValues) SetValues(v []*string) *TagValues { 8611 s.Values = v 8612 return s 8613} 8614 8615// Details on recommended instance. 8616type TargetInstance struct { 8617 _ struct{} `type:"structure"` 8618 8619 // The currency code that Amazon Web Services used to calculate the costs for 8620 // this instance. 8621 CurrencyCode *string `type:"string"` 8622 8623 // Indicates whether or not this recommendation is the defaulted Amazon Web 8624 // Services recommendation. 8625 DefaultTargetInstance *bool `type:"boolean"` 8626 8627 // Expected cost to operate this instance type on a monthly basis. 8628 EstimatedMonthlyCost *string `type:"string"` 8629 8630 // Estimated savings resulting from modification, on a monthly basis. 8631 EstimatedMonthlySavings *string `type:"string"` 8632 8633 // Expected utilization metrics for target instance type. 8634 ExpectedResourceUtilization *ResourceUtilization `type:"structure"` 8635 8636 // Details on the target instance type. 8637 ResourceDetails *ResourceDetails `type:"structure"` 8638} 8639 8640// String returns the string representation 8641func (s TargetInstance) String() string { 8642 return awsutil.Prettify(s) 8643} 8644 8645// GoString returns the string representation 8646func (s TargetInstance) GoString() string { 8647 return s.String() 8648} 8649 8650// SetCurrencyCode sets the CurrencyCode field's value. 8651func (s *TargetInstance) SetCurrencyCode(v string) *TargetInstance { 8652 s.CurrencyCode = &v 8653 return s 8654} 8655 8656// SetDefaultTargetInstance sets the DefaultTargetInstance field's value. 8657func (s *TargetInstance) SetDefaultTargetInstance(v bool) *TargetInstance { 8658 s.DefaultTargetInstance = &v 8659 return s 8660} 8661 8662// SetEstimatedMonthlyCost sets the EstimatedMonthlyCost field's value. 8663func (s *TargetInstance) SetEstimatedMonthlyCost(v string) *TargetInstance { 8664 s.EstimatedMonthlyCost = &v 8665 return s 8666} 8667 8668// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. 8669func (s *TargetInstance) SetEstimatedMonthlySavings(v string) *TargetInstance { 8670 s.EstimatedMonthlySavings = &v 8671 return s 8672} 8673 8674// SetExpectedResourceUtilization sets the ExpectedResourceUtilization field's value. 8675func (s *TargetInstance) SetExpectedResourceUtilization(v *ResourceUtilization) *TargetInstance { 8676 s.ExpectedResourceUtilization = v 8677 return s 8678} 8679 8680// SetResourceDetails sets the ResourceDetails field's value. 8681func (s *TargetInstance) SetResourceDetails(v *ResourceDetails) *TargetInstance { 8682 s.ResourceDetails = v 8683 return s 8684} 8685 8686// Details on termination recommendation. 8687type TerminateRecommendationDetail struct { 8688 _ struct{} `type:"structure"` 8689 8690 // The currency code that Amazon Web Services used to calculate the costs for 8691 // this instance. 8692 CurrencyCode *string `type:"string"` 8693 8694 // Estimated savings resulting from modification, on a monthly basis. 8695 EstimatedMonthlySavings *string `type:"string"` 8696} 8697 8698// String returns the string representation 8699func (s TerminateRecommendationDetail) String() string { 8700 return awsutil.Prettify(s) 8701} 8702 8703// GoString returns the string representation 8704func (s TerminateRecommendationDetail) GoString() string { 8705 return s.String() 8706} 8707 8708// SetCurrencyCode sets the CurrencyCode field's value. 8709func (s *TerminateRecommendationDetail) SetCurrencyCode(v string) *TerminateRecommendationDetail { 8710 s.CurrencyCode = &v 8711 return s 8712} 8713 8714// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. 8715func (s *TerminateRecommendationDetail) SetEstimatedMonthlySavings(v string) *TerminateRecommendationDetail { 8716 s.EstimatedMonthlySavings = &v 8717 return s 8718} 8719 8720// Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup 8721// filter selections that contain matching units, for example: hours. 8722type UnresolvableUsageUnitException struct { 8723 _ struct{} `type:"structure"` 8724 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 8725 8726 Message_ *string `locationName:"Message" type:"string"` 8727} 8728 8729// String returns the string representation 8730func (s UnresolvableUsageUnitException) String() string { 8731 return awsutil.Prettify(s) 8732} 8733 8734// GoString returns the string representation 8735func (s UnresolvableUsageUnitException) GoString() string { 8736 return s.String() 8737} 8738 8739func newErrorUnresolvableUsageUnitException(v protocol.ResponseMetadata) error { 8740 return &UnresolvableUsageUnitException{ 8741 RespMetadata: v, 8742 } 8743} 8744 8745// Code returns the exception type name. 8746func (s *UnresolvableUsageUnitException) Code() string { 8747 return "UnresolvableUsageUnitException" 8748} 8749 8750// Message returns the exception's message. 8751func (s *UnresolvableUsageUnitException) Message() string { 8752 if s.Message_ != nil { 8753 return *s.Message_ 8754 } 8755 return "" 8756} 8757 8758// OrigErr always returns nil, satisfies awserr.Error interface. 8759func (s *UnresolvableUsageUnitException) OrigErr() error { 8760 return nil 8761} 8762 8763func (s *UnresolvableUsageUnitException) Error() string { 8764 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 8765} 8766 8767// Status code returns the HTTP status code for the request's response error. 8768func (s *UnresolvableUsageUnitException) StatusCode() int { 8769 return s.RespMetadata.StatusCode 8770} 8771 8772// RequestID returns the service's response RequestID for request. 8773func (s *UnresolvableUsageUnitException) RequestID() string { 8774 return s.RespMetadata.RequestID 8775} 8776 8777type UpdateCostCategoryDefinitionInput struct { 8778 _ struct{} `type:"structure"` 8779 8780 // The unique identifier for your Cost Category. 8781 // 8782 // CostCategoryArn is a required field 8783 CostCategoryArn *string `min:"20" type:"string" required:"true"` 8784 8785 // The rule schema version in this particular Cost Category. 8786 // 8787 // RuleVersion is a required field 8788 RuleVersion *string `type:"string" required:"true" enum:"CostCategoryRuleVersion"` 8789 8790 // The Expression object used to categorize costs. For more information, see 8791 // CostCategoryRule (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html). 8792 // 8793 // Rules is a required field 8794 Rules []*CostCategoryRule `min:"1" type:"list" required:"true"` 8795} 8796 8797// String returns the string representation 8798func (s UpdateCostCategoryDefinitionInput) String() string { 8799 return awsutil.Prettify(s) 8800} 8801 8802// GoString returns the string representation 8803func (s UpdateCostCategoryDefinitionInput) GoString() string { 8804 return s.String() 8805} 8806 8807// Validate inspects the fields of the type to determine if they are valid. 8808func (s *UpdateCostCategoryDefinitionInput) Validate() error { 8809 invalidParams := request.ErrInvalidParams{Context: "UpdateCostCategoryDefinitionInput"} 8810 if s.CostCategoryArn == nil { 8811 invalidParams.Add(request.NewErrParamRequired("CostCategoryArn")) 8812 } 8813 if s.CostCategoryArn != nil && len(*s.CostCategoryArn) < 20 { 8814 invalidParams.Add(request.NewErrParamMinLen("CostCategoryArn", 20)) 8815 } 8816 if s.RuleVersion == nil { 8817 invalidParams.Add(request.NewErrParamRequired("RuleVersion")) 8818 } 8819 if s.Rules == nil { 8820 invalidParams.Add(request.NewErrParamRequired("Rules")) 8821 } 8822 if s.Rules != nil && len(s.Rules) < 1 { 8823 invalidParams.Add(request.NewErrParamMinLen("Rules", 1)) 8824 } 8825 if s.Rules != nil { 8826 for i, v := range s.Rules { 8827 if v == nil { 8828 continue 8829 } 8830 if err := v.Validate(); err != nil { 8831 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 8832 } 8833 } 8834 } 8835 8836 if invalidParams.Len() > 0 { 8837 return invalidParams 8838 } 8839 return nil 8840} 8841 8842// SetCostCategoryArn sets the CostCategoryArn field's value. 8843func (s *UpdateCostCategoryDefinitionInput) SetCostCategoryArn(v string) *UpdateCostCategoryDefinitionInput { 8844 s.CostCategoryArn = &v 8845 return s 8846} 8847 8848// SetRuleVersion sets the RuleVersion field's value. 8849func (s *UpdateCostCategoryDefinitionInput) SetRuleVersion(v string) *UpdateCostCategoryDefinitionInput { 8850 s.RuleVersion = &v 8851 return s 8852} 8853 8854// SetRules sets the Rules field's value. 8855func (s *UpdateCostCategoryDefinitionInput) SetRules(v []*CostCategoryRule) *UpdateCostCategoryDefinitionInput { 8856 s.Rules = v 8857 return s 8858} 8859 8860type UpdateCostCategoryDefinitionOutput struct { 8861 _ struct{} `type:"structure"` 8862 8863 // The unique identifier for your Cost Category. 8864 CostCategoryArn *string `min:"20" type:"string"` 8865 8866 // The Cost Category's effective start date. 8867 EffectiveStart *string `min:"20" type:"string"` 8868} 8869 8870// String returns the string representation 8871func (s UpdateCostCategoryDefinitionOutput) String() string { 8872 return awsutil.Prettify(s) 8873} 8874 8875// GoString returns the string representation 8876func (s UpdateCostCategoryDefinitionOutput) GoString() string { 8877 return s.String() 8878} 8879 8880// SetCostCategoryArn sets the CostCategoryArn field's value. 8881func (s *UpdateCostCategoryDefinitionOutput) SetCostCategoryArn(v string) *UpdateCostCategoryDefinitionOutput { 8882 s.CostCategoryArn = &v 8883 return s 8884} 8885 8886// SetEffectiveStart sets the EffectiveStart field's value. 8887func (s *UpdateCostCategoryDefinitionOutput) SetEffectiveStart(v string) *UpdateCostCategoryDefinitionOutput { 8888 s.EffectiveStart = &v 8889 return s 8890} 8891 8892// The amount of utilization, in hours. 8893type UtilizationByTime struct { 8894 _ struct{} `type:"structure"` 8895 8896 // The groups that this utilization result uses. 8897 Groups []*ReservationUtilizationGroup `type:"list"` 8898 8899 // The period of time that this utilization was used for. 8900 TimePeriod *DateInterval `type:"structure"` 8901 8902 // The total number of reservation hours that were used. 8903 Total *ReservationAggregates `type:"structure"` 8904} 8905 8906// String returns the string representation 8907func (s UtilizationByTime) String() string { 8908 return awsutil.Prettify(s) 8909} 8910 8911// GoString returns the string representation 8912func (s UtilizationByTime) GoString() string { 8913 return s.String() 8914} 8915 8916// SetGroups sets the Groups field's value. 8917func (s *UtilizationByTime) SetGroups(v []*ReservationUtilizationGroup) *UtilizationByTime { 8918 s.Groups = v 8919 return s 8920} 8921 8922// SetTimePeriod sets the TimePeriod field's value. 8923func (s *UtilizationByTime) SetTimePeriod(v *DateInterval) *UtilizationByTime { 8924 s.TimePeriod = v 8925 return s 8926} 8927 8928// SetTotal sets the Total field's value. 8929func (s *UtilizationByTime) SetTotal(v *ReservationAggregates) *UtilizationByTime { 8930 s.Total = v 8931 return s 8932} 8933 8934const ( 8935 // AccountScopePayer is a AccountScope enum value 8936 AccountScopePayer = "PAYER" 8937 8938 // AccountScopeLinked is a AccountScope enum value 8939 AccountScopeLinked = "LINKED" 8940) 8941 8942const ( 8943 // ContextCostAndUsage is a Context enum value 8944 ContextCostAndUsage = "COST_AND_USAGE" 8945 8946 // ContextReservations is a Context enum value 8947 ContextReservations = "RESERVATIONS" 8948 8949 // ContextSavingsPlans is a Context enum value 8950 ContextSavingsPlans = "SAVINGS_PLANS" 8951) 8952 8953// The rule schema version in this particular Cost Category. 8954const ( 8955 // CostCategoryRuleVersionCostCategoryExpressionV1 is a CostCategoryRuleVersion enum value 8956 CostCategoryRuleVersionCostCategoryExpressionV1 = "CostCategoryExpression.v1" 8957) 8958 8959const ( 8960 // DimensionAz is a Dimension enum value 8961 DimensionAz = "AZ" 8962 8963 // DimensionInstanceType is a Dimension enum value 8964 DimensionInstanceType = "INSTANCE_TYPE" 8965 8966 // DimensionLinkedAccount is a Dimension enum value 8967 DimensionLinkedAccount = "LINKED_ACCOUNT" 8968 8969 // DimensionLinkedAccountName is a Dimension enum value 8970 DimensionLinkedAccountName = "LINKED_ACCOUNT_NAME" 8971 8972 // DimensionOperation is a Dimension enum value 8973 DimensionOperation = "OPERATION" 8974 8975 // DimensionPurchaseType is a Dimension enum value 8976 DimensionPurchaseType = "PURCHASE_TYPE" 8977 8978 // DimensionRegion is a Dimension enum value 8979 DimensionRegion = "REGION" 8980 8981 // DimensionService is a Dimension enum value 8982 DimensionService = "SERVICE" 8983 8984 // DimensionServiceCode is a Dimension enum value 8985 DimensionServiceCode = "SERVICE_CODE" 8986 8987 // DimensionUsageType is a Dimension enum value 8988 DimensionUsageType = "USAGE_TYPE" 8989 8990 // DimensionUsageTypeGroup is a Dimension enum value 8991 DimensionUsageTypeGroup = "USAGE_TYPE_GROUP" 8992 8993 // DimensionRecordType is a Dimension enum value 8994 DimensionRecordType = "RECORD_TYPE" 8995 8996 // DimensionOperatingSystem is a Dimension enum value 8997 DimensionOperatingSystem = "OPERATING_SYSTEM" 8998 8999 // DimensionTenancy is a Dimension enum value 9000 DimensionTenancy = "TENANCY" 9001 9002 // DimensionScope is a Dimension enum value 9003 DimensionScope = "SCOPE" 9004 9005 // DimensionPlatform is a Dimension enum value 9006 DimensionPlatform = "PLATFORM" 9007 9008 // DimensionSubscriptionId is a Dimension enum value 9009 DimensionSubscriptionId = "SUBSCRIPTION_ID" 9010 9011 // DimensionLegalEntityName is a Dimension enum value 9012 DimensionLegalEntityName = "LEGAL_ENTITY_NAME" 9013 9014 // DimensionDeploymentOption is a Dimension enum value 9015 DimensionDeploymentOption = "DEPLOYMENT_OPTION" 9016 9017 // DimensionDatabaseEngine is a Dimension enum value 9018 DimensionDatabaseEngine = "DATABASE_ENGINE" 9019 9020 // DimensionCacheEngine is a Dimension enum value 9021 DimensionCacheEngine = "CACHE_ENGINE" 9022 9023 // DimensionInstanceTypeFamily is a Dimension enum value 9024 DimensionInstanceTypeFamily = "INSTANCE_TYPE_FAMILY" 9025 9026 // DimensionBillingEntity is a Dimension enum value 9027 DimensionBillingEntity = "BILLING_ENTITY" 9028 9029 // DimensionReservationId is a Dimension enum value 9030 DimensionReservationId = "RESERVATION_ID" 9031 9032 // DimensionResourceId is a Dimension enum value 9033 DimensionResourceId = "RESOURCE_ID" 9034 9035 // DimensionRightsizingType is a Dimension enum value 9036 DimensionRightsizingType = "RIGHTSIZING_TYPE" 9037 9038 // DimensionSavingsPlansType is a Dimension enum value 9039 DimensionSavingsPlansType = "SAVINGS_PLANS_TYPE" 9040 9041 // DimensionSavingsPlanArn is a Dimension enum value 9042 DimensionSavingsPlanArn = "SAVINGS_PLAN_ARN" 9043 9044 // DimensionPaymentOption is a Dimension enum value 9045 DimensionPaymentOption = "PAYMENT_OPTION" 9046) 9047 9048const ( 9049 // GranularityDaily is a Granularity enum value 9050 GranularityDaily = "DAILY" 9051 9052 // GranularityMonthly is a Granularity enum value 9053 GranularityMonthly = "MONTHLY" 9054 9055 // GranularityHourly is a Granularity enum value 9056 GranularityHourly = "HOURLY" 9057) 9058 9059const ( 9060 // GroupDefinitionTypeDimension is a GroupDefinitionType enum value 9061 GroupDefinitionTypeDimension = "DIMENSION" 9062 9063 // GroupDefinitionTypeTag is a GroupDefinitionType enum value 9064 GroupDefinitionTypeTag = "TAG" 9065 9066 // GroupDefinitionTypeCostCategory is a GroupDefinitionType enum value 9067 GroupDefinitionTypeCostCategory = "COST_CATEGORY" 9068) 9069 9070const ( 9071 // LookbackPeriodInDaysSevenDays is a LookbackPeriodInDays enum value 9072 LookbackPeriodInDaysSevenDays = "SEVEN_DAYS" 9073 9074 // LookbackPeriodInDaysThirtyDays is a LookbackPeriodInDays enum value 9075 LookbackPeriodInDaysThirtyDays = "THIRTY_DAYS" 9076 9077 // LookbackPeriodInDaysSixtyDays is a LookbackPeriodInDays enum value 9078 LookbackPeriodInDaysSixtyDays = "SIXTY_DAYS" 9079) 9080 9081const ( 9082 // MatchOptionEquals is a MatchOption enum value 9083 MatchOptionEquals = "EQUALS" 9084 9085 // MatchOptionStartsWith is a MatchOption enum value 9086 MatchOptionStartsWith = "STARTS_WITH" 9087 9088 // MatchOptionEndsWith is a MatchOption enum value 9089 MatchOptionEndsWith = "ENDS_WITH" 9090 9091 // MatchOptionContains is a MatchOption enum value 9092 MatchOptionContains = "CONTAINS" 9093 9094 // MatchOptionCaseSensitive is a MatchOption enum value 9095 MatchOptionCaseSensitive = "CASE_SENSITIVE" 9096 9097 // MatchOptionCaseInsensitive is a MatchOption enum value 9098 MatchOptionCaseInsensitive = "CASE_INSENSITIVE" 9099) 9100 9101const ( 9102 // MetricBlendedCost is a Metric enum value 9103 MetricBlendedCost = "BLENDED_COST" 9104 9105 // MetricUnblendedCost is a Metric enum value 9106 MetricUnblendedCost = "UNBLENDED_COST" 9107 9108 // MetricAmortizedCost is a Metric enum value 9109 MetricAmortizedCost = "AMORTIZED_COST" 9110 9111 // MetricNetUnblendedCost is a Metric enum value 9112 MetricNetUnblendedCost = "NET_UNBLENDED_COST" 9113 9114 // MetricNetAmortizedCost is a Metric enum value 9115 MetricNetAmortizedCost = "NET_AMORTIZED_COST" 9116 9117 // MetricUsageQuantity is a Metric enum value 9118 MetricUsageQuantity = "USAGE_QUANTITY" 9119 9120 // MetricNormalizedUsageAmount is a Metric enum value 9121 MetricNormalizedUsageAmount = "NORMALIZED_USAGE_AMOUNT" 9122) 9123 9124const ( 9125 // OfferingClassStandard is a OfferingClass enum value 9126 OfferingClassStandard = "STANDARD" 9127 9128 // OfferingClassConvertible is a OfferingClass enum value 9129 OfferingClassConvertible = "CONVERTIBLE" 9130) 9131 9132const ( 9133 // PaymentOptionNoUpfront is a PaymentOption enum value 9134 PaymentOptionNoUpfront = "NO_UPFRONT" 9135 9136 // PaymentOptionPartialUpfront is a PaymentOption enum value 9137 PaymentOptionPartialUpfront = "PARTIAL_UPFRONT" 9138 9139 // PaymentOptionAllUpfront is a PaymentOption enum value 9140 PaymentOptionAllUpfront = "ALL_UPFRONT" 9141 9142 // PaymentOptionLightUtilization is a PaymentOption enum value 9143 PaymentOptionLightUtilization = "LIGHT_UTILIZATION" 9144 9145 // PaymentOptionMediumUtilization is a PaymentOption enum value 9146 PaymentOptionMediumUtilization = "MEDIUM_UTILIZATION" 9147 9148 // PaymentOptionHeavyUtilization is a PaymentOption enum value 9149 PaymentOptionHeavyUtilization = "HEAVY_UTILIZATION" 9150) 9151 9152const ( 9153 // RecommendationTargetSameInstanceFamily is a RecommendationTarget enum value 9154 RecommendationTargetSameInstanceFamily = "SAME_INSTANCE_FAMILY" 9155 9156 // RecommendationTargetCrossInstanceFamily is a RecommendationTarget enum value 9157 RecommendationTargetCrossInstanceFamily = "CROSS_INSTANCE_FAMILY" 9158) 9159 9160const ( 9161 // RightsizingTypeTerminate is a RightsizingType enum value 9162 RightsizingTypeTerminate = "TERMINATE" 9163 9164 // RightsizingTypeModify is a RightsizingType enum value 9165 RightsizingTypeModify = "MODIFY" 9166) 9167 9168const ( 9169 // SupportedSavingsPlansTypeComputeSp is a SupportedSavingsPlansType enum value 9170 SupportedSavingsPlansTypeComputeSp = "COMPUTE_SP" 9171 9172 // SupportedSavingsPlansTypeEc2InstanceSp is a SupportedSavingsPlansType enum value 9173 SupportedSavingsPlansTypeEc2InstanceSp = "EC2_INSTANCE_SP" 9174) 9175 9176const ( 9177 // TermInYearsOneYear is a TermInYears enum value 9178 TermInYearsOneYear = "ONE_YEAR" 9179 9180 // TermInYearsThreeYears is a TermInYears enum value 9181 TermInYearsThreeYears = "THREE_YEARS" 9182) 9183