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