1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3package costexplorer 4 5import ( 6 "github.com/aws/aws-sdk-go/aws" 7 "github.com/aws/aws-sdk-go/aws/awsutil" 8 "github.com/aws/aws-sdk-go/aws/request" 9) 10 11const opGetCostAndUsage = "GetCostAndUsage" 12 13// GetCostAndUsageRequest generates a "aws/request.Request" representing the 14// client's request for the GetCostAndUsage operation. The "output" return 15// value will be populated with the request's response once the request completes 16// successfully. 17// 18// Use "Send" method on the returned Request to send the API call to the service. 19// the "output" return value is not valid until after Send returns without error. 20// 21// See GetCostAndUsage for more information on using the GetCostAndUsage 22// API call, and error handling. 23// 24// This method is useful when you want to inject custom logic or configuration 25// into the SDK's request lifecycle. Such as custom headers, or retry logic. 26// 27// 28// // Example sending a request using the GetCostAndUsageRequest method. 29// req, resp := client.GetCostAndUsageRequest(params) 30// 31// err := req.Send() 32// if err == nil { // resp is now filled 33// fmt.Println(resp) 34// } 35// 36// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage 37func (c *CostExplorer) GetCostAndUsageRequest(input *GetCostAndUsageInput) (req *request.Request, output *GetCostAndUsageOutput) { 38 op := &request.Operation{ 39 Name: opGetCostAndUsage, 40 HTTPMethod: "POST", 41 HTTPPath: "/", 42 } 43 44 if input == nil { 45 input = &GetCostAndUsageInput{} 46 } 47 48 output = &GetCostAndUsageOutput{} 49 req = c.newRequest(op, input, output) 50 return 51} 52 53// GetCostAndUsage API operation for AWS Cost Explorer Service. 54// 55// Retrieves cost and usage metrics for your account. You can specify which 56// cost and usage-related metric, such as BlendedCosts or UsageQuantity, that 57// you want the request to return. You can also filter and group your data by 58// various dimensions, such as SERVICE or AZ, in a specific time range. For 59// a complete list of valid dimensions, see the GetDimensionValues (http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html) 60// operation. Master accounts in an organization in AWS Organizations have access 61// to all member accounts. 62// 63// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 64// with awserr.Error's Code and Message methods to get detailed information about 65// the error. 66// 67// See the AWS API reference guide for AWS Cost Explorer Service's 68// API operation GetCostAndUsage for usage and error information. 69// 70// Returned Error Codes: 71// * ErrCodeLimitExceededException "LimitExceededException" 72// You made too many calls in a short period of time. Try again later. 73// 74// * ErrCodeBillExpirationException "BillExpirationException" 75// The requested report expired. Update the date interval and try again. 76// 77// * ErrCodeDataUnavailableException "DataUnavailableException" 78// The requested data is unavailable. 79// 80// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" 81// The pagination token is invalid. Try again without a pagination token. 82// 83// * ErrCodeRequestChangedException "RequestChangedException" 84// Your request parameters changed between pages. Try again with the old parameters 85// or without a pagination token. 86// 87// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostAndUsage 88func (c *CostExplorer) GetCostAndUsage(input *GetCostAndUsageInput) (*GetCostAndUsageOutput, error) { 89 req, out := c.GetCostAndUsageRequest(input) 90 return out, req.Send() 91} 92 93// GetCostAndUsageWithContext is the same as GetCostAndUsage with the addition of 94// the ability to pass a context and additional request options. 95// 96// See GetCostAndUsage for details on how to use this API operation. 97// 98// The context must be non-nil and will be used for request cancellation. If 99// the context is nil a panic will occur. In the future the SDK may create 100// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 101// for more information on using Contexts. 102func (c *CostExplorer) GetCostAndUsageWithContext(ctx aws.Context, input *GetCostAndUsageInput, opts ...request.Option) (*GetCostAndUsageOutput, error) { 103 req, out := c.GetCostAndUsageRequest(input) 104 req.SetContext(ctx) 105 req.ApplyOptions(opts...) 106 return out, req.Send() 107} 108 109const opGetCostForecast = "GetCostForecast" 110 111// GetCostForecastRequest generates a "aws/request.Request" representing the 112// client's request for the GetCostForecast operation. The "output" return 113// value will be populated with the request's response once the request completes 114// successfully. 115// 116// Use "Send" method on the returned Request to send the API call to the service. 117// the "output" return value is not valid until after Send returns without error. 118// 119// See GetCostForecast for more information on using the GetCostForecast 120// API call, and error handling. 121// 122// This method is useful when you want to inject custom logic or configuration 123// into the SDK's request lifecycle. Such as custom headers, or retry logic. 124// 125// 126// // Example sending a request using the GetCostForecastRequest method. 127// req, resp := client.GetCostForecastRequest(params) 128// 129// err := req.Send() 130// if err == nil { // resp is now filled 131// fmt.Println(resp) 132// } 133// 134// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast 135func (c *CostExplorer) GetCostForecastRequest(input *GetCostForecastInput) (req *request.Request, output *GetCostForecastOutput) { 136 op := &request.Operation{ 137 Name: opGetCostForecast, 138 HTTPMethod: "POST", 139 HTTPPath: "/", 140 } 141 142 if input == nil { 143 input = &GetCostForecastInput{} 144 } 145 146 output = &GetCostForecastOutput{} 147 req = c.newRequest(op, input, output) 148 return 149} 150 151// GetCostForecast API operation for AWS Cost Explorer Service. 152// 153// Retrieves a forecast for how much Amazon Web Services predicts that you will 154// spend over the forecast time period that you select, based on your past costs. 155// 156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 157// with awserr.Error's Code and Message methods to get detailed information about 158// the error. 159// 160// See the AWS API reference guide for AWS Cost Explorer Service's 161// API operation GetCostForecast for usage and error information. 162// 163// Returned Error Codes: 164// * ErrCodeLimitExceededException "LimitExceededException" 165// You made too many calls in a short period of time. Try again later. 166// 167// * ErrCodeDataUnavailableException "DataUnavailableException" 168// The requested data is unavailable. 169// 170// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetCostForecast 171func (c *CostExplorer) GetCostForecast(input *GetCostForecastInput) (*GetCostForecastOutput, error) { 172 req, out := c.GetCostForecastRequest(input) 173 return out, req.Send() 174} 175 176// GetCostForecastWithContext is the same as GetCostForecast with the addition of 177// the ability to pass a context and additional request options. 178// 179// See GetCostForecast for details on how to use this API operation. 180// 181// The context must be non-nil and will be used for request cancellation. If 182// the context is nil a panic will occur. In the future the SDK may create 183// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 184// for more information on using Contexts. 185func (c *CostExplorer) GetCostForecastWithContext(ctx aws.Context, input *GetCostForecastInput, opts ...request.Option) (*GetCostForecastOutput, error) { 186 req, out := c.GetCostForecastRequest(input) 187 req.SetContext(ctx) 188 req.ApplyOptions(opts...) 189 return out, req.Send() 190} 191 192const opGetDimensionValues = "GetDimensionValues" 193 194// GetDimensionValuesRequest generates a "aws/request.Request" representing the 195// client's request for the GetDimensionValues operation. The "output" return 196// value will be populated with the request's response once the request completes 197// successfully. 198// 199// Use "Send" method on the returned Request to send the API call to the service. 200// the "output" return value is not valid until after Send returns without error. 201// 202// See GetDimensionValues for more information on using the GetDimensionValues 203// API call, and error handling. 204// 205// This method is useful when you want to inject custom logic or configuration 206// into the SDK's request lifecycle. Such as custom headers, or retry logic. 207// 208// 209// // Example sending a request using the GetDimensionValuesRequest method. 210// req, resp := client.GetDimensionValuesRequest(params) 211// 212// err := req.Send() 213// if err == nil { // resp is now filled 214// fmt.Println(resp) 215// } 216// 217// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues 218func (c *CostExplorer) GetDimensionValuesRequest(input *GetDimensionValuesInput) (req *request.Request, output *GetDimensionValuesOutput) { 219 op := &request.Operation{ 220 Name: opGetDimensionValues, 221 HTTPMethod: "POST", 222 HTTPPath: "/", 223 } 224 225 if input == nil { 226 input = &GetDimensionValuesInput{} 227 } 228 229 output = &GetDimensionValuesOutput{} 230 req = c.newRequest(op, input, output) 231 return 232} 233 234// GetDimensionValues API operation for AWS Cost Explorer Service. 235// 236// Retrieves all available filter values for a specified filter over a period 237// of time. You can search the dimension values for an arbitrary string. 238// 239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 240// with awserr.Error's Code and Message methods to get detailed information about 241// the error. 242// 243// See the AWS API reference guide for AWS Cost Explorer Service's 244// API operation GetDimensionValues for usage and error information. 245// 246// Returned Error Codes: 247// * ErrCodeLimitExceededException "LimitExceededException" 248// You made too many calls in a short period of time. Try again later. 249// 250// * ErrCodeBillExpirationException "BillExpirationException" 251// The requested report expired. Update the date interval and try again. 252// 253// * ErrCodeDataUnavailableException "DataUnavailableException" 254// The requested data is unavailable. 255// 256// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" 257// The pagination token is invalid. Try again without a pagination token. 258// 259// * ErrCodeRequestChangedException "RequestChangedException" 260// Your request parameters changed between pages. Try again with the old parameters 261// or without a pagination token. 262// 263// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetDimensionValues 264func (c *CostExplorer) GetDimensionValues(input *GetDimensionValuesInput) (*GetDimensionValuesOutput, error) { 265 req, out := c.GetDimensionValuesRequest(input) 266 return out, req.Send() 267} 268 269// GetDimensionValuesWithContext is the same as GetDimensionValues with the addition of 270// the ability to pass a context and additional request options. 271// 272// See GetDimensionValues for details on how to use this API operation. 273// 274// The context must be non-nil and will be used for request cancellation. If 275// the context is nil a panic will occur. In the future the SDK may create 276// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 277// for more information on using Contexts. 278func (c *CostExplorer) GetDimensionValuesWithContext(ctx aws.Context, input *GetDimensionValuesInput, opts ...request.Option) (*GetDimensionValuesOutput, error) { 279 req, out := c.GetDimensionValuesRequest(input) 280 req.SetContext(ctx) 281 req.ApplyOptions(opts...) 282 return out, req.Send() 283} 284 285const opGetReservationCoverage = "GetReservationCoverage" 286 287// GetReservationCoverageRequest generates a "aws/request.Request" representing the 288// client's request for the GetReservationCoverage operation. The "output" return 289// value will be populated with the request's response once the request completes 290// successfully. 291// 292// Use "Send" method on the returned Request to send the API call to the service. 293// the "output" return value is not valid until after Send returns without error. 294// 295// See GetReservationCoverage for more information on using the GetReservationCoverage 296// API call, and error handling. 297// 298// This method is useful when you want to inject custom logic or configuration 299// into the SDK's request lifecycle. Such as custom headers, or retry logic. 300// 301// 302// // Example sending a request using the GetReservationCoverageRequest method. 303// req, resp := client.GetReservationCoverageRequest(params) 304// 305// err := req.Send() 306// if err == nil { // resp is now filled 307// fmt.Println(resp) 308// } 309// 310// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage 311func (c *CostExplorer) GetReservationCoverageRequest(input *GetReservationCoverageInput) (req *request.Request, output *GetReservationCoverageOutput) { 312 op := &request.Operation{ 313 Name: opGetReservationCoverage, 314 HTTPMethod: "POST", 315 HTTPPath: "/", 316 } 317 318 if input == nil { 319 input = &GetReservationCoverageInput{} 320 } 321 322 output = &GetReservationCoverageOutput{} 323 req = c.newRequest(op, input, output) 324 return 325} 326 327// GetReservationCoverage API operation for AWS Cost Explorer Service. 328// 329// Retrieves the reservation coverage for your account. This enables you to 330// see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon 331// Relational Database Service, or Amazon Redshift usage is covered by a reservation. 332// An organization's master account can see the coverage of the associated member 333// accounts. For any time period, you can filter data about reservation usage 334// by the following dimensions: 335// 336// * AZ 337// 338// * CACHE_ENGINE 339// 340// * DATABASE_ENGINE 341// 342// * DEPLOYMENT_OPTION 343// 344// * INSTANCE_TYPE 345// 346// * LINKED_ACCOUNT 347// 348// * OPERATING_SYSTEM 349// 350// * PLATFORM 351// 352// * REGION 353// 354// * SERVICE 355// 356// * TAG 357// 358// * TENANCY 359// 360// To determine valid values for a dimension, use the GetDimensionValues operation. 361// 362// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 363// with awserr.Error's Code and Message methods to get detailed information about 364// the error. 365// 366// See the AWS API reference guide for AWS Cost Explorer Service's 367// API operation GetReservationCoverage for usage and error information. 368// 369// Returned Error Codes: 370// * ErrCodeLimitExceededException "LimitExceededException" 371// You made too many calls in a short period of time. Try again later. 372// 373// * ErrCodeDataUnavailableException "DataUnavailableException" 374// The requested data is unavailable. 375// 376// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" 377// The pagination token is invalid. Try again without a pagination token. 378// 379// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationCoverage 380func (c *CostExplorer) GetReservationCoverage(input *GetReservationCoverageInput) (*GetReservationCoverageOutput, error) { 381 req, out := c.GetReservationCoverageRequest(input) 382 return out, req.Send() 383} 384 385// GetReservationCoverageWithContext is the same as GetReservationCoverage with the addition of 386// the ability to pass a context and additional request options. 387// 388// See GetReservationCoverage for details on how to use this API operation. 389// 390// The context must be non-nil and will be used for request cancellation. If 391// the context is nil a panic will occur. In the future the SDK may create 392// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 393// for more information on using Contexts. 394func (c *CostExplorer) GetReservationCoverageWithContext(ctx aws.Context, input *GetReservationCoverageInput, opts ...request.Option) (*GetReservationCoverageOutput, error) { 395 req, out := c.GetReservationCoverageRequest(input) 396 req.SetContext(ctx) 397 req.ApplyOptions(opts...) 398 return out, req.Send() 399} 400 401const opGetReservationPurchaseRecommendation = "GetReservationPurchaseRecommendation" 402 403// GetReservationPurchaseRecommendationRequest generates a "aws/request.Request" representing the 404// client's request for the GetReservationPurchaseRecommendation operation. The "output" return 405// value will be populated with the request's response once the request completes 406// successfully. 407// 408// Use "Send" method on the returned Request to send the API call to the service. 409// the "output" return value is not valid until after Send returns without error. 410// 411// See GetReservationPurchaseRecommendation for more information on using the GetReservationPurchaseRecommendation 412// API call, and error handling. 413// 414// This method is useful when you want to inject custom logic or configuration 415// into the SDK's request lifecycle. Such as custom headers, or retry logic. 416// 417// 418// // Example sending a request using the GetReservationPurchaseRecommendationRequest method. 419// req, resp := client.GetReservationPurchaseRecommendationRequest(params) 420// 421// err := req.Send() 422// if err == nil { // resp is now filled 423// fmt.Println(resp) 424// } 425// 426// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation 427func (c *CostExplorer) GetReservationPurchaseRecommendationRequest(input *GetReservationPurchaseRecommendationInput) (req *request.Request, output *GetReservationPurchaseRecommendationOutput) { 428 op := &request.Operation{ 429 Name: opGetReservationPurchaseRecommendation, 430 HTTPMethod: "POST", 431 HTTPPath: "/", 432 } 433 434 if input == nil { 435 input = &GetReservationPurchaseRecommendationInput{} 436 } 437 438 output = &GetReservationPurchaseRecommendationOutput{} 439 req = c.newRequest(op, input, output) 440 return 441} 442 443// GetReservationPurchaseRecommendation API operation for AWS Cost Explorer Service. 444// 445// Gets recommendations for which reservations to purchase. These recommendations 446// could help you reduce your costs. Reservations provide a discounted hourly 447// rate (up to 75%) compared to On-Demand pricing. 448// 449// AWS generates your recommendations by identifying your On-Demand usage during 450// a specific time period and collecting your usage into categories that are 451// eligible for a reservation. After AWS has these categories, it simulates 452// every combination of reservations in each category of usage to identify the 453// best number of each type of RI to purchase to maximize your estimated savings. 454// 455// For example, AWS automatically aggregates your Amazon EC2 Linux, shared tenancy, 456// and c4 family usage in the US West (Oregon) Region and recommends that you 457// buy size-flexible regional reservations to apply to the c4 family usage. 458// AWS recommends the smallest size instance in an instance family. This makes 459// it easier to purchase a size-flexible RI. AWS also shows the equal number 460// of normalized units so that you can purchase any instance size that you want. 461// For this example, your RI recommendation would be for c4.large because that 462// is the smallest size instance in the c4 instance family. 463// 464// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 465// with awserr.Error's Code and Message methods to get detailed information about 466// the error. 467// 468// See the AWS API reference guide for AWS Cost Explorer Service's 469// API operation GetReservationPurchaseRecommendation for usage and error information. 470// 471// Returned Error Codes: 472// * ErrCodeLimitExceededException "LimitExceededException" 473// You made too many calls in a short period of time. Try again later. 474// 475// * ErrCodeDataUnavailableException "DataUnavailableException" 476// The requested data is unavailable. 477// 478// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" 479// The pagination token is invalid. Try again without a pagination token. 480// 481// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationPurchaseRecommendation 482func (c *CostExplorer) GetReservationPurchaseRecommendation(input *GetReservationPurchaseRecommendationInput) (*GetReservationPurchaseRecommendationOutput, error) { 483 req, out := c.GetReservationPurchaseRecommendationRequest(input) 484 return out, req.Send() 485} 486 487// GetReservationPurchaseRecommendationWithContext is the same as GetReservationPurchaseRecommendation with the addition of 488// the ability to pass a context and additional request options. 489// 490// See GetReservationPurchaseRecommendation for details on how to use this API operation. 491// 492// The context must be non-nil and will be used for request cancellation. If 493// the context is nil a panic will occur. In the future the SDK may create 494// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 495// for more information on using Contexts. 496func (c *CostExplorer) GetReservationPurchaseRecommendationWithContext(ctx aws.Context, input *GetReservationPurchaseRecommendationInput, opts ...request.Option) (*GetReservationPurchaseRecommendationOutput, error) { 497 req, out := c.GetReservationPurchaseRecommendationRequest(input) 498 req.SetContext(ctx) 499 req.ApplyOptions(opts...) 500 return out, req.Send() 501} 502 503const opGetReservationUtilization = "GetReservationUtilization" 504 505// GetReservationUtilizationRequest generates a "aws/request.Request" representing the 506// client's request for the GetReservationUtilization operation. The "output" return 507// value will be populated with the request's response once the request completes 508// successfully. 509// 510// Use "Send" method on the returned Request to send the API call to the service. 511// the "output" return value is not valid until after Send returns without error. 512// 513// See GetReservationUtilization for more information on using the GetReservationUtilization 514// API call, and error handling. 515// 516// This method is useful when you want to inject custom logic or configuration 517// into the SDK's request lifecycle. Such as custom headers, or retry logic. 518// 519// 520// // Example sending a request using the GetReservationUtilizationRequest method. 521// req, resp := client.GetReservationUtilizationRequest(params) 522// 523// err := req.Send() 524// if err == nil { // resp is now filled 525// fmt.Println(resp) 526// } 527// 528// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization 529func (c *CostExplorer) GetReservationUtilizationRequest(input *GetReservationUtilizationInput) (req *request.Request, output *GetReservationUtilizationOutput) { 530 op := &request.Operation{ 531 Name: opGetReservationUtilization, 532 HTTPMethod: "POST", 533 HTTPPath: "/", 534 } 535 536 if input == nil { 537 input = &GetReservationUtilizationInput{} 538 } 539 540 output = &GetReservationUtilizationOutput{} 541 req = c.newRequest(op, input, output) 542 return 543} 544 545// GetReservationUtilization API operation for AWS Cost Explorer Service. 546// 547// Retrieves the reservation utilization for your account. Master accounts in 548// an organization have access to member accounts. You can filter data by dimensions 549// in a time period. You can use GetDimensionValues to determine the possible 550// dimension values. Currently, you can group only by SUBSCRIPTION_ID. 551// 552// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 553// with awserr.Error's Code and Message methods to get detailed information about 554// the error. 555// 556// See the AWS API reference guide for AWS Cost Explorer Service's 557// API operation GetReservationUtilization for usage and error information. 558// 559// Returned Error Codes: 560// * ErrCodeLimitExceededException "LimitExceededException" 561// You made too many calls in a short period of time. Try again later. 562// 563// * ErrCodeDataUnavailableException "DataUnavailableException" 564// The requested data is unavailable. 565// 566// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" 567// The pagination token is invalid. Try again without a pagination token. 568// 569// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetReservationUtilization 570func (c *CostExplorer) GetReservationUtilization(input *GetReservationUtilizationInput) (*GetReservationUtilizationOutput, error) { 571 req, out := c.GetReservationUtilizationRequest(input) 572 return out, req.Send() 573} 574 575// GetReservationUtilizationWithContext is the same as GetReservationUtilization with the addition of 576// the ability to pass a context and additional request options. 577// 578// See GetReservationUtilization for details on how to use this API operation. 579// 580// The context must be non-nil and will be used for request cancellation. If 581// the context is nil a panic will occur. In the future the SDK may create 582// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 583// for more information on using Contexts. 584func (c *CostExplorer) GetReservationUtilizationWithContext(ctx aws.Context, input *GetReservationUtilizationInput, opts ...request.Option) (*GetReservationUtilizationOutput, error) { 585 req, out := c.GetReservationUtilizationRequest(input) 586 req.SetContext(ctx) 587 req.ApplyOptions(opts...) 588 return out, req.Send() 589} 590 591const opGetRightsizingRecommendation = "GetRightsizingRecommendation" 592 593// GetRightsizingRecommendationRequest generates a "aws/request.Request" representing the 594// client's request for the GetRightsizingRecommendation operation. The "output" return 595// value will be populated with the request's response once the request completes 596// successfully. 597// 598// Use "Send" method on the returned Request to send the API call to the service. 599// the "output" return value is not valid until after Send returns without error. 600// 601// See GetRightsizingRecommendation for more information on using the GetRightsizingRecommendation 602// API call, and error handling. 603// 604// This method is useful when you want to inject custom logic or configuration 605// into the SDK's request lifecycle. Such as custom headers, or retry logic. 606// 607// 608// // Example sending a request using the GetRightsizingRecommendationRequest method. 609// req, resp := client.GetRightsizingRecommendationRequest(params) 610// 611// err := req.Send() 612// if err == nil { // resp is now filled 613// fmt.Println(resp) 614// } 615// 616// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation 617func (c *CostExplorer) GetRightsizingRecommendationRequest(input *GetRightsizingRecommendationInput) (req *request.Request, output *GetRightsizingRecommendationOutput) { 618 op := &request.Operation{ 619 Name: opGetRightsizingRecommendation, 620 HTTPMethod: "POST", 621 HTTPPath: "/", 622 } 623 624 if input == nil { 625 input = &GetRightsizingRecommendationInput{} 626 } 627 628 output = &GetRightsizingRecommendationOutput{} 629 req = c.newRequest(op, input, output) 630 return 631} 632 633// GetRightsizingRecommendation API operation for AWS Cost Explorer Service. 634// 635// Creates recommendations that helps you save cost by identifying idle and 636// underutilized Amazon EC2 instances. 637// 638// Recommendations are generated to either downsize or terminate instances, 639// along with providing savings detail and metrics. For details on calculation 640// and function, see Optimizing Your Cost with Rightsizing Recommendations (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-what-is.html). 641// 642// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 643// with awserr.Error's Code and Message methods to get detailed information about 644// the error. 645// 646// See the AWS API reference guide for AWS Cost Explorer Service's 647// API operation GetRightsizingRecommendation for usage and error information. 648// 649// Returned Error Codes: 650// * ErrCodeLimitExceededException "LimitExceededException" 651// You made too many calls in a short period of time. Try again later. 652// 653// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" 654// The pagination token is invalid. Try again without a pagination token. 655// 656// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetRightsizingRecommendation 657func (c *CostExplorer) GetRightsizingRecommendation(input *GetRightsizingRecommendationInput) (*GetRightsizingRecommendationOutput, error) { 658 req, out := c.GetRightsizingRecommendationRequest(input) 659 return out, req.Send() 660} 661 662// GetRightsizingRecommendationWithContext is the same as GetRightsizingRecommendation with the addition of 663// the ability to pass a context and additional request options. 664// 665// See GetRightsizingRecommendation for details on how to use this API operation. 666// 667// The context must be non-nil and will be used for request cancellation. If 668// the context is nil a panic will occur. In the future the SDK may create 669// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 670// for more information on using Contexts. 671func (c *CostExplorer) GetRightsizingRecommendationWithContext(ctx aws.Context, input *GetRightsizingRecommendationInput, opts ...request.Option) (*GetRightsizingRecommendationOutput, error) { 672 req, out := c.GetRightsizingRecommendationRequest(input) 673 req.SetContext(ctx) 674 req.ApplyOptions(opts...) 675 return out, req.Send() 676} 677 678const opGetTags = "GetTags" 679 680// GetTagsRequest generates a "aws/request.Request" representing the 681// client's request for the GetTags operation. The "output" return 682// value will be populated with the request's response once the request completes 683// successfully. 684// 685// Use "Send" method on the returned Request to send the API call to the service. 686// the "output" return value is not valid until after Send returns without error. 687// 688// See GetTags for more information on using the GetTags 689// API call, and error handling. 690// 691// This method is useful when you want to inject custom logic or configuration 692// into the SDK's request lifecycle. Such as custom headers, or retry logic. 693// 694// 695// // Example sending a request using the GetTagsRequest method. 696// req, resp := client.GetTagsRequest(params) 697// 698// err := req.Send() 699// if err == nil { // resp is now filled 700// fmt.Println(resp) 701// } 702// 703// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags 704func (c *CostExplorer) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) { 705 op := &request.Operation{ 706 Name: opGetTags, 707 HTTPMethod: "POST", 708 HTTPPath: "/", 709 } 710 711 if input == nil { 712 input = &GetTagsInput{} 713 } 714 715 output = &GetTagsOutput{} 716 req = c.newRequest(op, input, output) 717 return 718} 719 720// GetTags API operation for AWS Cost Explorer Service. 721// 722// Queries for available tag keys and tag values for a specified period. You 723// can search the tag values for an arbitrary string. 724// 725// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 726// with awserr.Error's Code and Message methods to get detailed information about 727// the error. 728// 729// See the AWS API reference guide for AWS Cost Explorer Service's 730// API operation GetTags for usage and error information. 731// 732// Returned Error Codes: 733// * ErrCodeLimitExceededException "LimitExceededException" 734// You made too many calls in a short period of time. Try again later. 735// 736// * ErrCodeBillExpirationException "BillExpirationException" 737// The requested report expired. Update the date interval and try again. 738// 739// * ErrCodeDataUnavailableException "DataUnavailableException" 740// The requested data is unavailable. 741// 742// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" 743// The pagination token is invalid. Try again without a pagination token. 744// 745// * ErrCodeRequestChangedException "RequestChangedException" 746// Your request parameters changed between pages. Try again with the old parameters 747// or without a pagination token. 748// 749// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetTags 750func (c *CostExplorer) GetTags(input *GetTagsInput) (*GetTagsOutput, error) { 751 req, out := c.GetTagsRequest(input) 752 return out, req.Send() 753} 754 755// GetTagsWithContext is the same as GetTags with the addition of 756// the ability to pass a context and additional request options. 757// 758// See GetTags for details on how to use this API operation. 759// 760// The context must be non-nil and will be used for request cancellation. If 761// the context is nil a panic will occur. In the future the SDK may create 762// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 763// for more information on using Contexts. 764func (c *CostExplorer) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) { 765 req, out := c.GetTagsRequest(input) 766 req.SetContext(ctx) 767 req.ApplyOptions(opts...) 768 return out, req.Send() 769} 770 771const opGetUsageForecast = "GetUsageForecast" 772 773// GetUsageForecastRequest generates a "aws/request.Request" representing the 774// client's request for the GetUsageForecast operation. The "output" return 775// value will be populated with the request's response once the request completes 776// successfully. 777// 778// Use "Send" method on the returned Request to send the API call to the service. 779// the "output" return value is not valid until after Send returns without error. 780// 781// See GetUsageForecast for more information on using the GetUsageForecast 782// API call, and error handling. 783// 784// This method is useful when you want to inject custom logic or configuration 785// into the SDK's request lifecycle. Such as custom headers, or retry logic. 786// 787// 788// // Example sending a request using the GetUsageForecastRequest method. 789// req, resp := client.GetUsageForecastRequest(params) 790// 791// err := req.Send() 792// if err == nil { // resp is now filled 793// fmt.Println(resp) 794// } 795// 796// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast 797func (c *CostExplorer) GetUsageForecastRequest(input *GetUsageForecastInput) (req *request.Request, output *GetUsageForecastOutput) { 798 op := &request.Operation{ 799 Name: opGetUsageForecast, 800 HTTPMethod: "POST", 801 HTTPPath: "/", 802 } 803 804 if input == nil { 805 input = &GetUsageForecastInput{} 806 } 807 808 output = &GetUsageForecastOutput{} 809 req = c.newRequest(op, input, output) 810 return 811} 812 813// GetUsageForecast API operation for AWS Cost Explorer Service. 814// 815// Retrieves a forecast for how much Amazon Web Services predicts that you will 816// use over the forecast time period that you select, based on your past usage. 817// 818// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 819// with awserr.Error's Code and Message methods to get detailed information about 820// the error. 821// 822// See the AWS API reference guide for AWS Cost Explorer Service's 823// API operation GetUsageForecast for usage and error information. 824// 825// Returned Error Codes: 826// * ErrCodeLimitExceededException "LimitExceededException" 827// You made too many calls in a short period of time. Try again later. 828// 829// * ErrCodeDataUnavailableException "DataUnavailableException" 830// The requested data is unavailable. 831// 832// * ErrCodeUnresolvableUsageUnitException "UnresolvableUsageUnitException" 833// Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup 834// filter selections that contain matching units, for example: hours. 835// 836// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast 837func (c *CostExplorer) GetUsageForecast(input *GetUsageForecastInput) (*GetUsageForecastOutput, error) { 838 req, out := c.GetUsageForecastRequest(input) 839 return out, req.Send() 840} 841 842// GetUsageForecastWithContext is the same as GetUsageForecast with the addition of 843// the ability to pass a context and additional request options. 844// 845// See GetUsageForecast for details on how to use this API operation. 846// 847// The context must be non-nil and will be used for request cancellation. If 848// the context is nil a panic will occur. In the future the SDK may create 849// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 850// for more information on using Contexts. 851func (c *CostExplorer) GetUsageForecastWithContext(ctx aws.Context, input *GetUsageForecastInput, opts ...request.Option) (*GetUsageForecastOutput, error) { 852 req, out := c.GetUsageForecastRequest(input) 853 req.SetContext(ctx) 854 req.ApplyOptions(opts...) 855 return out, req.Send() 856} 857 858// The amount of instance usage that a reservation covered. 859type Coverage struct { 860 _ struct{} `type:"structure"` 861 862 // The amount of cost that the reservation covered. 863 CoverageCost *CoverageCost `type:"structure"` 864 865 // The amount of instance usage that the reservation covered, in hours. 866 CoverageHours *CoverageHours `type:"structure"` 867 868 // The amount of instance usage that the reservation covered, in normalized 869 // units. 870 CoverageNormalizedUnits *CoverageNormalizedUnits `type:"structure"` 871} 872 873// String returns the string representation 874func (s Coverage) String() string { 875 return awsutil.Prettify(s) 876} 877 878// GoString returns the string representation 879func (s Coverage) GoString() string { 880 return s.String() 881} 882 883// SetCoverageCost sets the CoverageCost field's value. 884func (s *Coverage) SetCoverageCost(v *CoverageCost) *Coverage { 885 s.CoverageCost = v 886 return s 887} 888 889// SetCoverageHours sets the CoverageHours field's value. 890func (s *Coverage) SetCoverageHours(v *CoverageHours) *Coverage { 891 s.CoverageHours = v 892 return s 893} 894 895// SetCoverageNormalizedUnits sets the CoverageNormalizedUnits field's value. 896func (s *Coverage) SetCoverageNormalizedUnits(v *CoverageNormalizedUnits) *Coverage { 897 s.CoverageNormalizedUnits = v 898 return s 899} 900 901// Reservation coverage for a specified period, in hours. 902type CoverageByTime struct { 903 _ struct{} `type:"structure"` 904 905 // The groups of instances that the reservation covered. 906 Groups []*ReservationCoverageGroup `type:"list"` 907 908 // The period that this coverage was used over. 909 TimePeriod *DateInterval `type:"structure"` 910 911 // The total reservation coverage, in hours. 912 Total *Coverage `type:"structure"` 913} 914 915// String returns the string representation 916func (s CoverageByTime) String() string { 917 return awsutil.Prettify(s) 918} 919 920// GoString returns the string representation 921func (s CoverageByTime) GoString() string { 922 return s.String() 923} 924 925// SetGroups sets the Groups field's value. 926func (s *CoverageByTime) SetGroups(v []*ReservationCoverageGroup) *CoverageByTime { 927 s.Groups = v 928 return s 929} 930 931// SetTimePeriod sets the TimePeriod field's value. 932func (s *CoverageByTime) SetTimePeriod(v *DateInterval) *CoverageByTime { 933 s.TimePeriod = v 934 return s 935} 936 937// SetTotal sets the Total field's value. 938func (s *CoverageByTime) SetTotal(v *Coverage) *CoverageByTime { 939 s.Total = v 940 return s 941} 942 943// How much it cost to run an instance. 944type CoverageCost struct { 945 _ struct{} `type:"structure"` 946 947 // How much an On-Demand instance cost. 948 OnDemandCost *string `type:"string"` 949} 950 951// String returns the string representation 952func (s CoverageCost) String() string { 953 return awsutil.Prettify(s) 954} 955 956// GoString returns the string representation 957func (s CoverageCost) GoString() string { 958 return s.String() 959} 960 961// SetOnDemandCost sets the OnDemandCost field's value. 962func (s *CoverageCost) SetOnDemandCost(v string) *CoverageCost { 963 s.OnDemandCost = &v 964 return s 965} 966 967// How long a running instance either used a reservation or was On-Demand. 968type CoverageHours struct { 969 _ struct{} `type:"structure"` 970 971 // The percentage of instance hours that a reservation covered. 972 CoverageHoursPercentage *string `type:"string"` 973 974 // The number of instance running hours that On-Demand Instances covered. 975 OnDemandHours *string `type:"string"` 976 977 // The number of instance running hours that reservations covered. 978 ReservedHours *string `type:"string"` 979 980 // The total instance usage, in hours. 981 TotalRunningHours *string `type:"string"` 982} 983 984// String returns the string representation 985func (s CoverageHours) String() string { 986 return awsutil.Prettify(s) 987} 988 989// GoString returns the string representation 990func (s CoverageHours) GoString() string { 991 return s.String() 992} 993 994// SetCoverageHoursPercentage sets the CoverageHoursPercentage field's value. 995func (s *CoverageHours) SetCoverageHoursPercentage(v string) *CoverageHours { 996 s.CoverageHoursPercentage = &v 997 return s 998} 999 1000// SetOnDemandHours sets the OnDemandHours field's value. 1001func (s *CoverageHours) SetOnDemandHours(v string) *CoverageHours { 1002 s.OnDemandHours = &v 1003 return s 1004} 1005 1006// SetReservedHours sets the ReservedHours field's value. 1007func (s *CoverageHours) SetReservedHours(v string) *CoverageHours { 1008 s.ReservedHours = &v 1009 return s 1010} 1011 1012// SetTotalRunningHours sets the TotalRunningHours field's value. 1013func (s *CoverageHours) SetTotalRunningHours(v string) *CoverageHours { 1014 s.TotalRunningHours = &v 1015 return s 1016} 1017 1018// The amount of instance usage, in normalized units. Normalized units enable 1019// you to see your EC2 usage for multiple sizes of instances in a uniform way. 1020// For example, suppose you run an xlarge instance and a 2xlarge instance. If 1021// you run both instances for the same amount of time, the 2xlarge instance 1022// uses twice as much of your reservation as the xlarge instance, even though 1023// both instances show only one instance-hour. Using normalized units instead 1024// of instance-hours, the xlarge instance used 8 normalized units, and the 2xlarge 1025// instance used 16 normalized units. 1026// 1027// For more information, see Modifying Reserved Instances (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html) 1028// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. 1029type CoverageNormalizedUnits struct { 1030 _ struct{} `type:"structure"` 1031 1032 // The percentage of your used instance normalized units that a reservation 1033 // covers. 1034 CoverageNormalizedUnitsPercentage *string `type:"string"` 1035 1036 // The number of normalized units that are covered by On-Demand Instances instead 1037 // of a reservation. 1038 OnDemandNormalizedUnits *string `type:"string"` 1039 1040 // The number of normalized units that a reservation covers. 1041 ReservedNormalizedUnits *string `type:"string"` 1042 1043 // The total number of normalized units that you used. 1044 TotalRunningNormalizedUnits *string `type:"string"` 1045} 1046 1047// String returns the string representation 1048func (s CoverageNormalizedUnits) String() string { 1049 return awsutil.Prettify(s) 1050} 1051 1052// GoString returns the string representation 1053func (s CoverageNormalizedUnits) GoString() string { 1054 return s.String() 1055} 1056 1057// SetCoverageNormalizedUnitsPercentage sets the CoverageNormalizedUnitsPercentage field's value. 1058func (s *CoverageNormalizedUnits) SetCoverageNormalizedUnitsPercentage(v string) *CoverageNormalizedUnits { 1059 s.CoverageNormalizedUnitsPercentage = &v 1060 return s 1061} 1062 1063// SetOnDemandNormalizedUnits sets the OnDemandNormalizedUnits field's value. 1064func (s *CoverageNormalizedUnits) SetOnDemandNormalizedUnits(v string) *CoverageNormalizedUnits { 1065 s.OnDemandNormalizedUnits = &v 1066 return s 1067} 1068 1069// SetReservedNormalizedUnits sets the ReservedNormalizedUnits field's value. 1070func (s *CoverageNormalizedUnits) SetReservedNormalizedUnits(v string) *CoverageNormalizedUnits { 1071 s.ReservedNormalizedUnits = &v 1072 return s 1073} 1074 1075// SetTotalRunningNormalizedUnits sets the TotalRunningNormalizedUnits field's value. 1076func (s *CoverageNormalizedUnits) SetTotalRunningNormalizedUnits(v string) *CoverageNormalizedUnits { 1077 s.TotalRunningNormalizedUnits = &v 1078 return s 1079} 1080 1081// Context about the current instance. 1082type CurrentInstance struct { 1083 _ struct{} `type:"structure"` 1084 1085 // The currency code that Amazon Web Services used to calculate the costs for 1086 // this instance. 1087 CurrencyCode *string `type:"string"` 1088 1089 // Current On Demand cost of operating this instance on a monthly basis. 1090 MonthlyCost *string `type:"string"` 1091 1092 // Number of hours during the lookback period billed at On Demand rates. 1093 OnDemandHoursInLookbackPeriod *string `type:"string"` 1094 1095 // Number of hours during the lookback period covered by reservations. 1096 ReservationCoveredHoursInLookbackPeriod *string `type:"string"` 1097 1098 // Details about the resource and utilization. 1099 ResourceDetails *ResourceDetails `type:"structure"` 1100 1101 // Resource ID of the current instance. 1102 ResourceId *string `type:"string"` 1103 1104 // Utilization information of the current instance during the lookback period. 1105 ResourceUtilization *ResourceUtilization `type:"structure"` 1106 1107 // Cost allocation resource tags applied to the instance. 1108 Tags []*TagValues `type:"list"` 1109 1110 // The total number of hours the instance ran during the lookback period. 1111 TotalRunningHoursInLookbackPeriod *string `type:"string"` 1112} 1113 1114// String returns the string representation 1115func (s CurrentInstance) String() string { 1116 return awsutil.Prettify(s) 1117} 1118 1119// GoString returns the string representation 1120func (s CurrentInstance) GoString() string { 1121 return s.String() 1122} 1123 1124// SetCurrencyCode sets the CurrencyCode field's value. 1125func (s *CurrentInstance) SetCurrencyCode(v string) *CurrentInstance { 1126 s.CurrencyCode = &v 1127 return s 1128} 1129 1130// SetMonthlyCost sets the MonthlyCost field's value. 1131func (s *CurrentInstance) SetMonthlyCost(v string) *CurrentInstance { 1132 s.MonthlyCost = &v 1133 return s 1134} 1135 1136// SetOnDemandHoursInLookbackPeriod sets the OnDemandHoursInLookbackPeriod field's value. 1137func (s *CurrentInstance) SetOnDemandHoursInLookbackPeriod(v string) *CurrentInstance { 1138 s.OnDemandHoursInLookbackPeriod = &v 1139 return s 1140} 1141 1142// SetReservationCoveredHoursInLookbackPeriod sets the ReservationCoveredHoursInLookbackPeriod field's value. 1143func (s *CurrentInstance) SetReservationCoveredHoursInLookbackPeriod(v string) *CurrentInstance { 1144 s.ReservationCoveredHoursInLookbackPeriod = &v 1145 return s 1146} 1147 1148// SetResourceDetails sets the ResourceDetails field's value. 1149func (s *CurrentInstance) SetResourceDetails(v *ResourceDetails) *CurrentInstance { 1150 s.ResourceDetails = v 1151 return s 1152} 1153 1154// SetResourceId sets the ResourceId field's value. 1155func (s *CurrentInstance) SetResourceId(v string) *CurrentInstance { 1156 s.ResourceId = &v 1157 return s 1158} 1159 1160// SetResourceUtilization sets the ResourceUtilization field's value. 1161func (s *CurrentInstance) SetResourceUtilization(v *ResourceUtilization) *CurrentInstance { 1162 s.ResourceUtilization = v 1163 return s 1164} 1165 1166// SetTags sets the Tags field's value. 1167func (s *CurrentInstance) SetTags(v []*TagValues) *CurrentInstance { 1168 s.Tags = v 1169 return s 1170} 1171 1172// SetTotalRunningHoursInLookbackPeriod sets the TotalRunningHoursInLookbackPeriod field's value. 1173func (s *CurrentInstance) SetTotalRunningHoursInLookbackPeriod(v string) *CurrentInstance { 1174 s.TotalRunningHoursInLookbackPeriod = &v 1175 return s 1176} 1177 1178// The time period that you want the usage and costs for. 1179type DateInterval struct { 1180 _ struct{} `type:"structure"` 1181 1182 // The end of the time period that you want the usage and costs for. The end 1183 // date is exclusive. For example, if end is 2017-05-01, AWS retrieves cost 1184 // and usage data from the start date up to, but not including, 2017-05-01. 1185 // 1186 // End is a required field 1187 End *string `type:"string" required:"true"` 1188 1189 // The beginning of the time period that you want the usage and costs for. The 1190 // start date is inclusive. For example, if start is 2017-01-01, AWS retrieves 1191 // cost and usage data starting at 2017-01-01 up to the end date. 1192 // 1193 // Start is a required field 1194 Start *string `type:"string" required:"true"` 1195} 1196 1197// String returns the string representation 1198func (s DateInterval) String() string { 1199 return awsutil.Prettify(s) 1200} 1201 1202// GoString returns the string representation 1203func (s DateInterval) GoString() string { 1204 return s.String() 1205} 1206 1207// Validate inspects the fields of the type to determine if they are valid. 1208func (s *DateInterval) Validate() error { 1209 invalidParams := request.ErrInvalidParams{Context: "DateInterval"} 1210 if s.End == nil { 1211 invalidParams.Add(request.NewErrParamRequired("End")) 1212 } 1213 if s.Start == nil { 1214 invalidParams.Add(request.NewErrParamRequired("Start")) 1215 } 1216 1217 if invalidParams.Len() > 0 { 1218 return invalidParams 1219 } 1220 return nil 1221} 1222 1223// SetEnd sets the End field's value. 1224func (s *DateInterval) SetEnd(v string) *DateInterval { 1225 s.End = &v 1226 return s 1227} 1228 1229// SetStart sets the Start field's value. 1230func (s *DateInterval) SetStart(v string) *DateInterval { 1231 s.Start = &v 1232 return s 1233} 1234 1235// The metadata that you can use to filter and group your results. You can use 1236// GetDimensionValues to find specific values. 1237type DimensionValues struct { 1238 _ struct{} `type:"structure"` 1239 1240 // The names of the metadata types that you can use to filter and group your 1241 // results. For example, AZ returns a list of Availability Zones. 1242 Key *string `type:"string" enum:"Dimension"` 1243 1244 // The metadata values that you can use to filter and group your results. You 1245 // can use GetDimensionValues to find specific values. 1246 // 1247 // Valid values for the SERVICE dimension are Amazon Elastic Compute Cloud - 1248 // Compute, Amazon Elasticsearch Service, Amazon ElastiCache, Amazon Redshift, 1249 // and Amazon Relational Database Service. 1250 Values []*string `type:"list"` 1251} 1252 1253// String returns the string representation 1254func (s DimensionValues) String() string { 1255 return awsutil.Prettify(s) 1256} 1257 1258// GoString returns the string representation 1259func (s DimensionValues) GoString() string { 1260 return s.String() 1261} 1262 1263// SetKey sets the Key field's value. 1264func (s *DimensionValues) SetKey(v string) *DimensionValues { 1265 s.Key = &v 1266 return s 1267} 1268 1269// SetValues sets the Values field's value. 1270func (s *DimensionValues) SetValues(v []*string) *DimensionValues { 1271 s.Values = v 1272 return s 1273} 1274 1275// The metadata of a specific type that you can use to filter and group your 1276// results. You can use GetDimensionValues to find specific values. 1277type DimensionValuesWithAttributes struct { 1278 _ struct{} `type:"structure"` 1279 1280 // The attribute that applies to a specific Dimension. 1281 Attributes map[string]*string `type:"map"` 1282 1283 // The value of a dimension with a specific attribute. 1284 Value *string `type:"string"` 1285} 1286 1287// String returns the string representation 1288func (s DimensionValuesWithAttributes) String() string { 1289 return awsutil.Prettify(s) 1290} 1291 1292// GoString returns the string representation 1293func (s DimensionValuesWithAttributes) GoString() string { 1294 return s.String() 1295} 1296 1297// SetAttributes sets the Attributes field's value. 1298func (s *DimensionValuesWithAttributes) SetAttributes(v map[string]*string) *DimensionValuesWithAttributes { 1299 s.Attributes = v 1300 return s 1301} 1302 1303// SetValue sets the Value field's value. 1304func (s *DimensionValuesWithAttributes) SetValue(v string) *DimensionValuesWithAttributes { 1305 s.Value = &v 1306 return s 1307} 1308 1309// Details about the Amazon EC2 instances that AWS recommends that you purchase. 1310type EC2InstanceDetails struct { 1311 _ struct{} `type:"structure"` 1312 1313 // The Availability Zone of the recommended reservation. 1314 AvailabilityZone *string `type:"string"` 1315 1316 // Whether the recommendation is for a current-generation instance. 1317 CurrentGeneration *bool `type:"boolean"` 1318 1319 // The instance family of the recommended reservation. 1320 Family *string `type:"string"` 1321 1322 // The type of instance that AWS recommends. 1323 InstanceType *string `type:"string"` 1324 1325 // The platform of the recommended reservation. The platform is the specific 1326 // combination of operating system, license model, and software on an instance. 1327 Platform *string `type:"string"` 1328 1329 // The AWS Region of the recommended reservation. 1330 Region *string `type:"string"` 1331 1332 // Whether the recommended reservation is size flexible. 1333 SizeFlexEligible *bool `type:"boolean"` 1334 1335 // Whether the recommended reservation is dedicated or shared. 1336 Tenancy *string `type:"string"` 1337} 1338 1339// String returns the string representation 1340func (s EC2InstanceDetails) String() string { 1341 return awsutil.Prettify(s) 1342} 1343 1344// GoString returns the string representation 1345func (s EC2InstanceDetails) GoString() string { 1346 return s.String() 1347} 1348 1349// SetAvailabilityZone sets the AvailabilityZone field's value. 1350func (s *EC2InstanceDetails) SetAvailabilityZone(v string) *EC2InstanceDetails { 1351 s.AvailabilityZone = &v 1352 return s 1353} 1354 1355// SetCurrentGeneration sets the CurrentGeneration field's value. 1356func (s *EC2InstanceDetails) SetCurrentGeneration(v bool) *EC2InstanceDetails { 1357 s.CurrentGeneration = &v 1358 return s 1359} 1360 1361// SetFamily sets the Family field's value. 1362func (s *EC2InstanceDetails) SetFamily(v string) *EC2InstanceDetails { 1363 s.Family = &v 1364 return s 1365} 1366 1367// SetInstanceType sets the InstanceType field's value. 1368func (s *EC2InstanceDetails) SetInstanceType(v string) *EC2InstanceDetails { 1369 s.InstanceType = &v 1370 return s 1371} 1372 1373// SetPlatform sets the Platform field's value. 1374func (s *EC2InstanceDetails) SetPlatform(v string) *EC2InstanceDetails { 1375 s.Platform = &v 1376 return s 1377} 1378 1379// SetRegion sets the Region field's value. 1380func (s *EC2InstanceDetails) SetRegion(v string) *EC2InstanceDetails { 1381 s.Region = &v 1382 return s 1383} 1384 1385// SetSizeFlexEligible sets the SizeFlexEligible field's value. 1386func (s *EC2InstanceDetails) SetSizeFlexEligible(v bool) *EC2InstanceDetails { 1387 s.SizeFlexEligible = &v 1388 return s 1389} 1390 1391// SetTenancy sets the Tenancy field's value. 1392func (s *EC2InstanceDetails) SetTenancy(v string) *EC2InstanceDetails { 1393 s.Tenancy = &v 1394 return s 1395} 1396 1397// Details on the Amazon EC2 Resource. 1398type EC2ResourceDetails struct { 1399 _ struct{} `type:"structure"` 1400 1401 // Hourly public On Demand rate for the instance type. 1402 HourlyOnDemandRate *string `type:"string"` 1403 1404 // The type of Amazon Web Services instance. 1405 InstanceType *string `type:"string"` 1406 1407 // Memory capacity of Amazon Web Services instance. 1408 Memory *string `type:"string"` 1409 1410 // Network performance capacity of the Amazon Web Services instance. 1411 NetworkPerformance *string `type:"string"` 1412 1413 // The platform of the Amazon Web Services instance. The platform is the specific 1414 // combination of operating system, license model, and software on an instance. 1415 Platform *string `type:"string"` 1416 1417 // The Amazon Web Services Region of the instance. 1418 Region *string `type:"string"` 1419 1420 // The SKU of the product. 1421 Sku *string `type:"string"` 1422 1423 // The disk storage of the Amazon Web Services instance (Not EBS storage). 1424 Storage *string `type:"string"` 1425 1426 // Number of VCPU cores in the Amazon Web Services instance type. 1427 Vcpu *string `type:"string"` 1428} 1429 1430// String returns the string representation 1431func (s EC2ResourceDetails) String() string { 1432 return awsutil.Prettify(s) 1433} 1434 1435// GoString returns the string representation 1436func (s EC2ResourceDetails) GoString() string { 1437 return s.String() 1438} 1439 1440// SetHourlyOnDemandRate sets the HourlyOnDemandRate field's value. 1441func (s *EC2ResourceDetails) SetHourlyOnDemandRate(v string) *EC2ResourceDetails { 1442 s.HourlyOnDemandRate = &v 1443 return s 1444} 1445 1446// SetInstanceType sets the InstanceType field's value. 1447func (s *EC2ResourceDetails) SetInstanceType(v string) *EC2ResourceDetails { 1448 s.InstanceType = &v 1449 return s 1450} 1451 1452// SetMemory sets the Memory field's value. 1453func (s *EC2ResourceDetails) SetMemory(v string) *EC2ResourceDetails { 1454 s.Memory = &v 1455 return s 1456} 1457 1458// SetNetworkPerformance sets the NetworkPerformance field's value. 1459func (s *EC2ResourceDetails) SetNetworkPerformance(v string) *EC2ResourceDetails { 1460 s.NetworkPerformance = &v 1461 return s 1462} 1463 1464// SetPlatform sets the Platform field's value. 1465func (s *EC2ResourceDetails) SetPlatform(v string) *EC2ResourceDetails { 1466 s.Platform = &v 1467 return s 1468} 1469 1470// SetRegion sets the Region field's value. 1471func (s *EC2ResourceDetails) SetRegion(v string) *EC2ResourceDetails { 1472 s.Region = &v 1473 return s 1474} 1475 1476// SetSku sets the Sku field's value. 1477func (s *EC2ResourceDetails) SetSku(v string) *EC2ResourceDetails { 1478 s.Sku = &v 1479 return s 1480} 1481 1482// SetStorage sets the Storage field's value. 1483func (s *EC2ResourceDetails) SetStorage(v string) *EC2ResourceDetails { 1484 s.Storage = &v 1485 return s 1486} 1487 1488// SetVcpu sets the Vcpu field's value. 1489func (s *EC2ResourceDetails) SetVcpu(v string) *EC2ResourceDetails { 1490 s.Vcpu = &v 1491 return s 1492} 1493 1494// Utilization metrics of the instance. 1495type EC2ResourceUtilization struct { 1496 _ struct{} `type:"structure"` 1497 1498 // Maximum observed or expected CPU utilization of the instance. 1499 MaxCpuUtilizationPercentage *string `type:"string"` 1500 1501 // Maximum observed or expected memory utilization of the instance. 1502 MaxMemoryUtilizationPercentage *string `type:"string"` 1503 1504 // Maximum observed or expected storage utilization of the instance (does not 1505 // measure EBS storage). 1506 MaxStorageUtilizationPercentage *string `type:"string"` 1507} 1508 1509// String returns the string representation 1510func (s EC2ResourceUtilization) String() string { 1511 return awsutil.Prettify(s) 1512} 1513 1514// GoString returns the string representation 1515func (s EC2ResourceUtilization) GoString() string { 1516 return s.String() 1517} 1518 1519// SetMaxCpuUtilizationPercentage sets the MaxCpuUtilizationPercentage field's value. 1520func (s *EC2ResourceUtilization) SetMaxCpuUtilizationPercentage(v string) *EC2ResourceUtilization { 1521 s.MaxCpuUtilizationPercentage = &v 1522 return s 1523} 1524 1525// SetMaxMemoryUtilizationPercentage sets the MaxMemoryUtilizationPercentage field's value. 1526func (s *EC2ResourceUtilization) SetMaxMemoryUtilizationPercentage(v string) *EC2ResourceUtilization { 1527 s.MaxMemoryUtilizationPercentage = &v 1528 return s 1529} 1530 1531// SetMaxStorageUtilizationPercentage sets the MaxStorageUtilizationPercentage field's value. 1532func (s *EC2ResourceUtilization) SetMaxStorageUtilizationPercentage(v string) *EC2ResourceUtilization { 1533 s.MaxStorageUtilizationPercentage = &v 1534 return s 1535} 1536 1537// The Amazon EC2 hardware specifications that you want AWS to provide recommendations 1538// for. 1539type EC2Specification struct { 1540 _ struct{} `type:"structure"` 1541 1542 // Whether you want a recommendation for standard or convertible reservations. 1543 OfferingClass *string `type:"string" enum:"OfferingClass"` 1544} 1545 1546// String returns the string representation 1547func (s EC2Specification) String() string { 1548 return awsutil.Prettify(s) 1549} 1550 1551// GoString returns the string representation 1552func (s EC2Specification) GoString() string { 1553 return s.String() 1554} 1555 1556// SetOfferingClass sets the OfferingClass field's value. 1557func (s *EC2Specification) SetOfferingClass(v string) *EC2Specification { 1558 s.OfferingClass = &v 1559 return s 1560} 1561 1562// Details about the Amazon ES instances that AWS recommends that you purchase. 1563type ESInstanceDetails struct { 1564 _ struct{} `type:"structure"` 1565 1566 // Whether the recommendation is for a current-generation instance. 1567 CurrentGeneration *bool `type:"boolean"` 1568 1569 // The class of instance that AWS recommends. 1570 InstanceClass *string `type:"string"` 1571 1572 // The size of instance that AWS recommends. 1573 InstanceSize *string `type:"string"` 1574 1575 // The AWS Region of the recommended reservation. 1576 Region *string `type:"string"` 1577 1578 // Whether the recommended reservation is size flexible. 1579 SizeFlexEligible *bool `type:"boolean"` 1580} 1581 1582// String returns the string representation 1583func (s ESInstanceDetails) String() string { 1584 return awsutil.Prettify(s) 1585} 1586 1587// GoString returns the string representation 1588func (s ESInstanceDetails) GoString() string { 1589 return s.String() 1590} 1591 1592// SetCurrentGeneration sets the CurrentGeneration field's value. 1593func (s *ESInstanceDetails) SetCurrentGeneration(v bool) *ESInstanceDetails { 1594 s.CurrentGeneration = &v 1595 return s 1596} 1597 1598// SetInstanceClass sets the InstanceClass field's value. 1599func (s *ESInstanceDetails) SetInstanceClass(v string) *ESInstanceDetails { 1600 s.InstanceClass = &v 1601 return s 1602} 1603 1604// SetInstanceSize sets the InstanceSize field's value. 1605func (s *ESInstanceDetails) SetInstanceSize(v string) *ESInstanceDetails { 1606 s.InstanceSize = &v 1607 return s 1608} 1609 1610// SetRegion sets the Region field's value. 1611func (s *ESInstanceDetails) SetRegion(v string) *ESInstanceDetails { 1612 s.Region = &v 1613 return s 1614} 1615 1616// SetSizeFlexEligible sets the SizeFlexEligible field's value. 1617func (s *ESInstanceDetails) SetSizeFlexEligible(v bool) *ESInstanceDetails { 1618 s.SizeFlexEligible = &v 1619 return s 1620} 1621 1622// Details about the Amazon ElastiCache instances that AWS recommends that you 1623// purchase. 1624type ElastiCacheInstanceDetails struct { 1625 _ struct{} `type:"structure"` 1626 1627 // Whether the recommendation is for a current generation instance. 1628 CurrentGeneration *bool `type:"boolean"` 1629 1630 // The instance family of the recommended reservation. 1631 Family *string `type:"string"` 1632 1633 // The type of node that AWS recommends. 1634 NodeType *string `type:"string"` 1635 1636 // The description of the recommended reservation. 1637 ProductDescription *string `type:"string"` 1638 1639 // The AWS Region of the recommended reservation. 1640 Region *string `type:"string"` 1641 1642 // Whether the recommended reservation is size flexible. 1643 SizeFlexEligible *bool `type:"boolean"` 1644} 1645 1646// String returns the string representation 1647func (s ElastiCacheInstanceDetails) String() string { 1648 return awsutil.Prettify(s) 1649} 1650 1651// GoString returns the string representation 1652func (s ElastiCacheInstanceDetails) GoString() string { 1653 return s.String() 1654} 1655 1656// SetCurrentGeneration sets the CurrentGeneration field's value. 1657func (s *ElastiCacheInstanceDetails) SetCurrentGeneration(v bool) *ElastiCacheInstanceDetails { 1658 s.CurrentGeneration = &v 1659 return s 1660} 1661 1662// SetFamily sets the Family field's value. 1663func (s *ElastiCacheInstanceDetails) SetFamily(v string) *ElastiCacheInstanceDetails { 1664 s.Family = &v 1665 return s 1666} 1667 1668// SetNodeType sets the NodeType field's value. 1669func (s *ElastiCacheInstanceDetails) SetNodeType(v string) *ElastiCacheInstanceDetails { 1670 s.NodeType = &v 1671 return s 1672} 1673 1674// SetProductDescription sets the ProductDescription field's value. 1675func (s *ElastiCacheInstanceDetails) SetProductDescription(v string) *ElastiCacheInstanceDetails { 1676 s.ProductDescription = &v 1677 return s 1678} 1679 1680// SetRegion sets the Region field's value. 1681func (s *ElastiCacheInstanceDetails) SetRegion(v string) *ElastiCacheInstanceDetails { 1682 s.Region = &v 1683 return s 1684} 1685 1686// SetSizeFlexEligible sets the SizeFlexEligible field's value. 1687func (s *ElastiCacheInstanceDetails) SetSizeFlexEligible(v bool) *ElastiCacheInstanceDetails { 1688 s.SizeFlexEligible = &v 1689 return s 1690} 1691 1692// Use Expression to filter by cost or by usage. There are two patterns: 1693// 1694// * Simple dimension values - You can set the dimension name and values 1695// for the filters that you plan to use. For example, you can filter for 1696// REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks 1697// like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", 1698// “us-west-1” ] } } The list of dimension values are OR'd together to 1699// retrieve cost or usage data. You can create Expression and DimensionValues 1700// objects using either with* methods or set* methods in multiple lines. 1701// 1702// * Compound dimension values with logical operations - You can use multiple 1703// Expression types and the logical operators AND/OR/NOT to create a list 1704// of one or more Expression objects. This allows you to filter on more advanced 1705// options. For example, you can filter on ((REGION == us-east-1 OR REGION 1706// == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). 1707// The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": 1708// { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": 1709// { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": 1710// { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each 1711// Expression can have only one operator, the service returns an error if 1712// more than one is specified. The following example shows an Expression 1713// object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": 1714// "USAGE_TYPE", "Values": [ "DataTransfer" ] } } 1715// 1716// For GetRightsizingRecommendation action, a combination of OR and NOT is not 1717// supported. OR is not supported between different dimensions, or dimensions 1718// and tags. NOT operators aren't supported. Dimentions are also limited to 1719// LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. 1720type Expression struct { 1721 _ struct{} `type:"structure"` 1722 1723 // Return results that match both Dimension objects. 1724 And []*Expression `type:"list"` 1725 1726 // The specific Dimension to use for Expression. 1727 Dimensions *DimensionValues `type:"structure"` 1728 1729 // Return results that don't match a Dimension object. 1730 Not *Expression `type:"structure"` 1731 1732 // Return results that match either Dimension object. 1733 Or []*Expression `type:"list"` 1734 1735 // The specific Tag to use for Expression. 1736 Tags *TagValues `type:"structure"` 1737} 1738 1739// String returns the string representation 1740func (s Expression) String() string { 1741 return awsutil.Prettify(s) 1742} 1743 1744// GoString returns the string representation 1745func (s Expression) GoString() string { 1746 return s.String() 1747} 1748 1749// SetAnd sets the And field's value. 1750func (s *Expression) SetAnd(v []*Expression) *Expression { 1751 s.And = v 1752 return s 1753} 1754 1755// SetDimensions sets the Dimensions field's value. 1756func (s *Expression) SetDimensions(v *DimensionValues) *Expression { 1757 s.Dimensions = v 1758 return s 1759} 1760 1761// SetNot sets the Not field's value. 1762func (s *Expression) SetNot(v *Expression) *Expression { 1763 s.Not = v 1764 return s 1765} 1766 1767// SetOr sets the Or field's value. 1768func (s *Expression) SetOr(v []*Expression) *Expression { 1769 s.Or = v 1770 return s 1771} 1772 1773// SetTags sets the Tags field's value. 1774func (s *Expression) SetTags(v *TagValues) *Expression { 1775 s.Tags = v 1776 return s 1777} 1778 1779// The forecast created for your query. 1780type ForecastResult struct { 1781 _ struct{} `type:"structure"` 1782 1783 // The mean value of the forecast. 1784 MeanValue *string `type:"string"` 1785 1786 // The lower limit for the prediction interval. 1787 PredictionIntervalLowerBound *string `type:"string"` 1788 1789 // The upper limit for the prediction interval. 1790 PredictionIntervalUpperBound *string `type:"string"` 1791 1792 // The period of time that the forecast covers. 1793 TimePeriod *DateInterval `type:"structure"` 1794} 1795 1796// String returns the string representation 1797func (s ForecastResult) String() string { 1798 return awsutil.Prettify(s) 1799} 1800 1801// GoString returns the string representation 1802func (s ForecastResult) GoString() string { 1803 return s.String() 1804} 1805 1806// SetMeanValue sets the MeanValue field's value. 1807func (s *ForecastResult) SetMeanValue(v string) *ForecastResult { 1808 s.MeanValue = &v 1809 return s 1810} 1811 1812// SetPredictionIntervalLowerBound sets the PredictionIntervalLowerBound field's value. 1813func (s *ForecastResult) SetPredictionIntervalLowerBound(v string) *ForecastResult { 1814 s.PredictionIntervalLowerBound = &v 1815 return s 1816} 1817 1818// SetPredictionIntervalUpperBound sets the PredictionIntervalUpperBound field's value. 1819func (s *ForecastResult) SetPredictionIntervalUpperBound(v string) *ForecastResult { 1820 s.PredictionIntervalUpperBound = &v 1821 return s 1822} 1823 1824// SetTimePeriod sets the TimePeriod field's value. 1825func (s *ForecastResult) SetTimePeriod(v *DateInterval) *ForecastResult { 1826 s.TimePeriod = v 1827 return s 1828} 1829 1830type GetCostAndUsageInput struct { 1831 _ struct{} `type:"structure"` 1832 1833 // Filters AWS costs by different dimensions. For example, you can specify SERVICE 1834 // and LINKED_ACCOUNT and get the costs that are associated with that account's 1835 // usage of that service. You can nest Expression objects to define any combination 1836 // of dimension filters. For more information, see Expression (http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html). 1837 Filter *Expression `type:"structure"` 1838 1839 // Sets the AWS cost granularity to MONTHLY or DAILY. If Granularity isn't set, 1840 // the response object doesn't include the Granularity, either MONTHLY or DAILY. 1841 // 1842 // The GetCostAndUsageRequest operation supports only DAILY and MONTHLY granularities. 1843 Granularity *string `type:"string" enum:"Granularity"` 1844 1845 // You can group AWS costs using up to two different groups, either dimensions, 1846 // tag keys, or both. 1847 // 1848 // When you group by tag key, you get all tag values, including empty strings. 1849 // 1850 // Valid values are AZ, INSTANCE_TYPE, LEGAL_ENTITY_NAME, LINKED_ACCOUNT, OPERATION, 1851 // PLATFORM, PURCHASE_TYPE, SERVICE, TAGS, TENANCY, and USAGE_TYPE. 1852 GroupBy []*GroupDefinition `type:"list"` 1853 1854 // Which metrics are returned in the query. For more information about blended 1855 // and unblended rates, see Why does the "blended" annotation appear on some 1856 // line items in my bill? (https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). 1857 // 1858 // Valid values are AmortizedCost, BlendedCost, NetAmortizedCost, NetUnblendedCost, 1859 // NormalizedUsageAmount, UnblendedCost, and UsageQuantity. 1860 // 1861 // If you return the UsageQuantity metric, the service aggregates all usage 1862 // numbers without taking into account the units. For example, if you aggregate 1863 // usageQuantity across all of Amazon EC2, the results aren't meaningful because 1864 // Amazon EC2 compute hours and data transfer are measured in different units 1865 // (for example, hours vs. GB). To get more meaningful UsageQuantity metrics, 1866 // filter by UsageType or UsageTypeGroups. 1867 // 1868 // Metrics is required for GetCostAndUsage requests. 1869 Metrics []*string `type:"list"` 1870 1871 // The token to retrieve the next set of results. AWS provides the token when 1872 // the response from a previous call has more results than the maximum page 1873 // size. 1874 NextPageToken *string `type:"string"` 1875 1876 // Sets the start and end dates for retrieving AWS costs. The start date is 1877 // inclusive, but the end date is exclusive. For example, if start is 2017-01-01 1878 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 1879 // up to and including 2017-04-30 but not including 2017-05-01. 1880 // 1881 // TimePeriod is a required field 1882 TimePeriod *DateInterval `type:"structure" required:"true"` 1883} 1884 1885// String returns the string representation 1886func (s GetCostAndUsageInput) String() string { 1887 return awsutil.Prettify(s) 1888} 1889 1890// GoString returns the string representation 1891func (s GetCostAndUsageInput) GoString() string { 1892 return s.String() 1893} 1894 1895// Validate inspects the fields of the type to determine if they are valid. 1896func (s *GetCostAndUsageInput) Validate() error { 1897 invalidParams := request.ErrInvalidParams{Context: "GetCostAndUsageInput"} 1898 if s.TimePeriod == nil { 1899 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 1900 } 1901 if s.TimePeriod != nil { 1902 if err := s.TimePeriod.Validate(); err != nil { 1903 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 1904 } 1905 } 1906 1907 if invalidParams.Len() > 0 { 1908 return invalidParams 1909 } 1910 return nil 1911} 1912 1913// SetFilter sets the Filter field's value. 1914func (s *GetCostAndUsageInput) SetFilter(v *Expression) *GetCostAndUsageInput { 1915 s.Filter = v 1916 return s 1917} 1918 1919// SetGranularity sets the Granularity field's value. 1920func (s *GetCostAndUsageInput) SetGranularity(v string) *GetCostAndUsageInput { 1921 s.Granularity = &v 1922 return s 1923} 1924 1925// SetGroupBy sets the GroupBy field's value. 1926func (s *GetCostAndUsageInput) SetGroupBy(v []*GroupDefinition) *GetCostAndUsageInput { 1927 s.GroupBy = v 1928 return s 1929} 1930 1931// SetMetrics sets the Metrics field's value. 1932func (s *GetCostAndUsageInput) SetMetrics(v []*string) *GetCostAndUsageInput { 1933 s.Metrics = v 1934 return s 1935} 1936 1937// SetNextPageToken sets the NextPageToken field's value. 1938func (s *GetCostAndUsageInput) SetNextPageToken(v string) *GetCostAndUsageInput { 1939 s.NextPageToken = &v 1940 return s 1941} 1942 1943// SetTimePeriod sets the TimePeriod field's value. 1944func (s *GetCostAndUsageInput) SetTimePeriod(v *DateInterval) *GetCostAndUsageInput { 1945 s.TimePeriod = v 1946 return s 1947} 1948 1949type GetCostAndUsageOutput struct { 1950 _ struct{} `type:"structure"` 1951 1952 // The groups that are specified by the Filter or GroupBy parameters in the 1953 // request. 1954 GroupDefinitions []*GroupDefinition `type:"list"` 1955 1956 // The token for the next set of retrievable results. AWS provides the token 1957 // when the response from a previous call has more results than the maximum 1958 // page size. 1959 NextPageToken *string `type:"string"` 1960 1961 // The time period that is covered by the results in the response. 1962 ResultsByTime []*ResultByTime `type:"list"` 1963} 1964 1965// String returns the string representation 1966func (s GetCostAndUsageOutput) String() string { 1967 return awsutil.Prettify(s) 1968} 1969 1970// GoString returns the string representation 1971func (s GetCostAndUsageOutput) GoString() string { 1972 return s.String() 1973} 1974 1975// SetGroupDefinitions sets the GroupDefinitions field's value. 1976func (s *GetCostAndUsageOutput) SetGroupDefinitions(v []*GroupDefinition) *GetCostAndUsageOutput { 1977 s.GroupDefinitions = v 1978 return s 1979} 1980 1981// SetNextPageToken sets the NextPageToken field's value. 1982func (s *GetCostAndUsageOutput) SetNextPageToken(v string) *GetCostAndUsageOutput { 1983 s.NextPageToken = &v 1984 return s 1985} 1986 1987// SetResultsByTime sets the ResultsByTime field's value. 1988func (s *GetCostAndUsageOutput) SetResultsByTime(v []*ResultByTime) *GetCostAndUsageOutput { 1989 s.ResultsByTime = v 1990 return s 1991} 1992 1993type GetCostForecastInput struct { 1994 _ struct{} `type:"structure"` 1995 1996 // The filters that you want to use to filter your forecast. Cost Explorer API 1997 // supports all of the Cost Explorer filters. 1998 Filter *Expression `type:"structure"` 1999 2000 // How granular you want the forecast to be. You can get 3 months of DAILY forecasts 2001 // or 12 months of MONTHLY forecasts. 2002 // 2003 // The GetCostForecast operation supports only DAILY and MONTHLY granularities. 2004 // 2005 // Granularity is a required field 2006 Granularity *string `type:"string" required:"true" enum:"Granularity"` 2007 2008 // Which metric Cost Explorer uses to create your forecast. For more information 2009 // about blended and unblended rates, see Why does the "blended" annotation 2010 // appear on some line items in my bill? (https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/). 2011 // 2012 // Valid values for a GetCostForecast call are the following: 2013 // 2014 // * AMORTIZED_COST 2015 // 2016 // * BLENDED_COST 2017 // 2018 // * NET_AMORTIZED_COST 2019 // 2020 // * NET_UNBLENDED_COST 2021 // 2022 // * UNBLENDED_COST 2023 // 2024 // Metric is a required field 2025 Metric *string `type:"string" required:"true" enum:"Metric"` 2026 2027 // Cost Explorer always returns the mean forecast as a single point. You can 2028 // request a prediction interval around the mean by specifying a confidence 2029 // level. The higher the confidence level, the more confident Cost Explorer 2030 // is about the actual value falling in the prediction interval. Higher confidence 2031 // levels result in wider prediction intervals. 2032 PredictionIntervalLevel *int64 `min:"51" type:"integer"` 2033 2034 // The period of time that you want the forecast to cover. 2035 // 2036 // TimePeriod is a required field 2037 TimePeriod *DateInterval `type:"structure" required:"true"` 2038} 2039 2040// String returns the string representation 2041func (s GetCostForecastInput) String() string { 2042 return awsutil.Prettify(s) 2043} 2044 2045// GoString returns the string representation 2046func (s GetCostForecastInput) GoString() string { 2047 return s.String() 2048} 2049 2050// Validate inspects the fields of the type to determine if they are valid. 2051func (s *GetCostForecastInput) Validate() error { 2052 invalidParams := request.ErrInvalidParams{Context: "GetCostForecastInput"} 2053 if s.Granularity == nil { 2054 invalidParams.Add(request.NewErrParamRequired("Granularity")) 2055 } 2056 if s.Metric == nil { 2057 invalidParams.Add(request.NewErrParamRequired("Metric")) 2058 } 2059 if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { 2060 invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) 2061 } 2062 if s.TimePeriod == nil { 2063 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 2064 } 2065 if s.TimePeriod != nil { 2066 if err := s.TimePeriod.Validate(); err != nil { 2067 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 2068 } 2069 } 2070 2071 if invalidParams.Len() > 0 { 2072 return invalidParams 2073 } 2074 return nil 2075} 2076 2077// SetFilter sets the Filter field's value. 2078func (s *GetCostForecastInput) SetFilter(v *Expression) *GetCostForecastInput { 2079 s.Filter = v 2080 return s 2081} 2082 2083// SetGranularity sets the Granularity field's value. 2084func (s *GetCostForecastInput) SetGranularity(v string) *GetCostForecastInput { 2085 s.Granularity = &v 2086 return s 2087} 2088 2089// SetMetric sets the Metric field's value. 2090func (s *GetCostForecastInput) SetMetric(v string) *GetCostForecastInput { 2091 s.Metric = &v 2092 return s 2093} 2094 2095// SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. 2096func (s *GetCostForecastInput) SetPredictionIntervalLevel(v int64) *GetCostForecastInput { 2097 s.PredictionIntervalLevel = &v 2098 return s 2099} 2100 2101// SetTimePeriod sets the TimePeriod field's value. 2102func (s *GetCostForecastInput) SetTimePeriod(v *DateInterval) *GetCostForecastInput { 2103 s.TimePeriod = v 2104 return s 2105} 2106 2107type GetCostForecastOutput struct { 2108 _ struct{} `type:"structure"` 2109 2110 // The forecasts for your query, in order. For DAILY forecasts, this is a list 2111 // of days. For MONTHLY forecasts, this is a list of months. 2112 ForecastResultsByTime []*ForecastResult `type:"list"` 2113 2114 // How much you are forecasted to spend over the forecast period, in USD. 2115 Total *MetricValue `type:"structure"` 2116} 2117 2118// String returns the string representation 2119func (s GetCostForecastOutput) String() string { 2120 return awsutil.Prettify(s) 2121} 2122 2123// GoString returns the string representation 2124func (s GetCostForecastOutput) GoString() string { 2125 return s.String() 2126} 2127 2128// SetForecastResultsByTime sets the ForecastResultsByTime field's value. 2129func (s *GetCostForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetCostForecastOutput { 2130 s.ForecastResultsByTime = v 2131 return s 2132} 2133 2134// SetTotal sets the Total field's value. 2135func (s *GetCostForecastOutput) SetTotal(v *MetricValue) *GetCostForecastOutput { 2136 s.Total = v 2137 return s 2138} 2139 2140type GetDimensionValuesInput struct { 2141 _ struct{} `type:"structure"` 2142 2143 // The context for the call to GetDimensionValues. This can be RESERVATIONS 2144 // or COST_AND_USAGE. The default value is COST_AND_USAGE. If the context is 2145 // set to RESERVATIONS, the resulting dimension values can be used in the GetReservationUtilization 2146 // operation. If the context is set to COST_AND_USAGE, the resulting dimension 2147 // values can be used in the GetCostAndUsage operation. 2148 // 2149 // If you set the context to COST_AND_USAGE, you can use the following dimensions 2150 // for searching: 2151 // 2152 // * AZ - The Availability Zone. An example is us-east-1a. 2153 // 2154 // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples 2155 // are Aurora or MySQL. 2156 // 2157 // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. 2158 // 2159 // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS 2160 // services, such as Amazon Web Services. 2161 // 2162 // * LINKED_ACCOUNT - The description in the attribute map that includes 2163 // the full name of the member account. The value field contains the AWS 2164 // ID of the member account. 2165 // 2166 // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. 2167 // 2168 // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. 2169 // 2170 // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or 2171 // Linux. 2172 // 2173 // * PURCHASE_TYPE - The reservation type of the purchase to which this usage 2174 // is related. Examples include On-Demand Instances and Standard Reserved 2175 // Instances. 2176 // 2177 // * SERVICE - The AWS service such as Amazon DynamoDB. 2178 // 2179 // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. 2180 // The response for the GetDimensionValues operation includes a unit attribute. 2181 // Examples include GB and Hrs. 2182 // 2183 // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is 2184 // Amazon EC2: CloudWatch – Alarms. The response for this operation includes 2185 // a unit attribute. 2186 // 2187 // * RECORD_TYPE - The different types of charges such as RI fees, usage 2188 // costs, tax refunds, and credits. 2189 // 2190 // If you set the context to RESERVATIONS, you can use the following dimensions 2191 // for searching: 2192 // 2193 // * AZ - The Availability Zone. An example is us-east-1a. 2194 // 2195 // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are 2196 // Windows or Linux. 2197 // 2198 // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service 2199 // deployments. Valid values are SingleAZ and MultiAZ. 2200 // 2201 // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. 2202 // 2203 // * LINKED_ACCOUNT - The description in the attribute map that includes 2204 // the full name of the member account. The value field contains the AWS 2205 // ID of the member account. 2206 // 2207 // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or 2208 // Linux. 2209 // 2210 // * REGION - The AWS Region. 2211 // 2212 // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values 2213 // are regional or a single Availability Zone. 2214 // 2215 // * TAG (Coverage only) - The tags that are associated with a Reserved Instance 2216 // (RI). 2217 // 2218 // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. 2219 Context *string `type:"string" enum:"Context"` 2220 2221 // The name of the dimension. Each Dimension is available for a different Context. 2222 // For more information, see Context. 2223 // 2224 // Dimension is a required field 2225 Dimension *string `type:"string" required:"true" enum:"Dimension"` 2226 2227 // The token to retrieve the next set of results. AWS provides the token when 2228 // the response from a previous call has more results than the maximum page 2229 // size. 2230 NextPageToken *string `type:"string"` 2231 2232 // The value that you want to search the filter values for. 2233 SearchString *string `type:"string"` 2234 2235 // The start and end dates for retrieving the dimension values. The start date 2236 // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 2237 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 2238 // up to and including 2017-04-30 but not including 2017-05-01. 2239 // 2240 // TimePeriod is a required field 2241 TimePeriod *DateInterval `type:"structure" required:"true"` 2242} 2243 2244// String returns the string representation 2245func (s GetDimensionValuesInput) String() string { 2246 return awsutil.Prettify(s) 2247} 2248 2249// GoString returns the string representation 2250func (s GetDimensionValuesInput) GoString() string { 2251 return s.String() 2252} 2253 2254// Validate inspects the fields of the type to determine if they are valid. 2255func (s *GetDimensionValuesInput) Validate() error { 2256 invalidParams := request.ErrInvalidParams{Context: "GetDimensionValuesInput"} 2257 if s.Dimension == nil { 2258 invalidParams.Add(request.NewErrParamRequired("Dimension")) 2259 } 2260 if s.TimePeriod == nil { 2261 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 2262 } 2263 if s.TimePeriod != nil { 2264 if err := s.TimePeriod.Validate(); err != nil { 2265 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 2266 } 2267 } 2268 2269 if invalidParams.Len() > 0 { 2270 return invalidParams 2271 } 2272 return nil 2273} 2274 2275// SetContext sets the Context field's value. 2276func (s *GetDimensionValuesInput) SetContext(v string) *GetDimensionValuesInput { 2277 s.Context = &v 2278 return s 2279} 2280 2281// SetDimension sets the Dimension field's value. 2282func (s *GetDimensionValuesInput) SetDimension(v string) *GetDimensionValuesInput { 2283 s.Dimension = &v 2284 return s 2285} 2286 2287// SetNextPageToken sets the NextPageToken field's value. 2288func (s *GetDimensionValuesInput) SetNextPageToken(v string) *GetDimensionValuesInput { 2289 s.NextPageToken = &v 2290 return s 2291} 2292 2293// SetSearchString sets the SearchString field's value. 2294func (s *GetDimensionValuesInput) SetSearchString(v string) *GetDimensionValuesInput { 2295 s.SearchString = &v 2296 return s 2297} 2298 2299// SetTimePeriod sets the TimePeriod field's value. 2300func (s *GetDimensionValuesInput) SetTimePeriod(v *DateInterval) *GetDimensionValuesInput { 2301 s.TimePeriod = v 2302 return s 2303} 2304 2305type GetDimensionValuesOutput struct { 2306 _ struct{} `type:"structure"` 2307 2308 // The filters that you used to filter your request. Some dimensions are available 2309 // only for a specific context. 2310 // 2311 // If you set the context to COST_AND_USAGE, you can use the following dimensions 2312 // for searching: 2313 // 2314 // * AZ - The Availability Zone. An example is us-east-1a. 2315 // 2316 // * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples 2317 // are Aurora or MySQL. 2318 // 2319 // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. 2320 // 2321 // * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS 2322 // services, such as Amazon Web Services. 2323 // 2324 // * LINKED_ACCOUNT - The description in the attribute map that includes 2325 // the full name of the member account. The value field contains the AWS 2326 // ID of the member account. 2327 // 2328 // * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux. 2329 // 2330 // * OPERATION - The action performed. Examples include RunInstance and CreateBucket. 2331 // 2332 // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or 2333 // Linux. 2334 // 2335 // * PURCHASE_TYPE - The reservation type of the purchase to which this usage 2336 // is related. Examples include On-Demand Instances and Standard Reserved 2337 // Instances. 2338 // 2339 // * SERVICE - The AWS service such as Amazon DynamoDB. 2340 // 2341 // * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. 2342 // The response for the GetDimensionValues operation includes a unit attribute. 2343 // Examples include GB and Hrs. 2344 // 2345 // * USAGE_TYPE_GROUP - The grouping of common usage types. An example is 2346 // Amazon EC2: CloudWatch – Alarms. The response for this operation includes 2347 // a unit attribute. 2348 // 2349 // * RECORD_TYPE - The different types of charges such as RI fees, usage 2350 // costs, tax refunds, and credits. 2351 // 2352 // If you set the context to RESERVATIONS, you can use the following dimensions 2353 // for searching: 2354 // 2355 // * AZ - The Availability Zone. An example is us-east-1a. 2356 // 2357 // * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are 2358 // Windows or Linux. 2359 // 2360 // * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service 2361 // deployments. Valid values are SingleAZ and MultiAZ. 2362 // 2363 // * INSTANCE_TYPE - The type of Amazon EC2 instance. An example is m4.xlarge. 2364 // 2365 // * LINKED_ACCOUNT - The description in the attribute map that includes 2366 // the full name of the member account. The value field contains the AWS 2367 // ID of the member account. 2368 // 2369 // * PLATFORM - The Amazon EC2 operating system. Examples are Windows or 2370 // Linux. 2371 // 2372 // * REGION - The AWS Region. 2373 // 2374 // * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values 2375 // are regional or a single Availability Zone. 2376 // 2377 // * TAG (Coverage only) - The tags that are associated with a Reserved Instance 2378 // (RI). 2379 // 2380 // * TENANCY - The tenancy of a resource. Examples are shared or dedicated. 2381 // 2382 // DimensionValues is a required field 2383 DimensionValues []*DimensionValuesWithAttributes `type:"list" required:"true"` 2384 2385 // The token for the next set of retrievable results. AWS provides the token 2386 // when the response from a previous call has more results than the maximum 2387 // page size. 2388 NextPageToken *string `type:"string"` 2389 2390 // The number of results that AWS returned at one time. 2391 // 2392 // ReturnSize is a required field 2393 ReturnSize *int64 `type:"integer" required:"true"` 2394 2395 // The total number of search results. 2396 // 2397 // TotalSize is a required field 2398 TotalSize *int64 `type:"integer" required:"true"` 2399} 2400 2401// String returns the string representation 2402func (s GetDimensionValuesOutput) String() string { 2403 return awsutil.Prettify(s) 2404} 2405 2406// GoString returns the string representation 2407func (s GetDimensionValuesOutput) GoString() string { 2408 return s.String() 2409} 2410 2411// SetDimensionValues sets the DimensionValues field's value. 2412func (s *GetDimensionValuesOutput) SetDimensionValues(v []*DimensionValuesWithAttributes) *GetDimensionValuesOutput { 2413 s.DimensionValues = v 2414 return s 2415} 2416 2417// SetNextPageToken sets the NextPageToken field's value. 2418func (s *GetDimensionValuesOutput) SetNextPageToken(v string) *GetDimensionValuesOutput { 2419 s.NextPageToken = &v 2420 return s 2421} 2422 2423// SetReturnSize sets the ReturnSize field's value. 2424func (s *GetDimensionValuesOutput) SetReturnSize(v int64) *GetDimensionValuesOutput { 2425 s.ReturnSize = &v 2426 return s 2427} 2428 2429// SetTotalSize sets the TotalSize field's value. 2430func (s *GetDimensionValuesOutput) SetTotalSize(v int64) *GetDimensionValuesOutput { 2431 s.TotalSize = &v 2432 return s 2433} 2434 2435// You can use the following request parameters to query for how much of your 2436// instance usage a reservation covered. 2437type GetReservationCoverageInput struct { 2438 _ struct{} `type:"structure"` 2439 2440 // Filters utilization data by dimensions. You can filter by the following dimensions: 2441 // 2442 // * AZ 2443 // 2444 // * CACHE_ENGINE 2445 // 2446 // * DATABASE_ENGINE 2447 // 2448 // * DEPLOYMENT_OPTION 2449 // 2450 // * INSTANCE_TYPE 2451 // 2452 // * LINKED_ACCOUNT 2453 // 2454 // * OPERATING_SYSTEM 2455 // 2456 // * PLATFORM 2457 // 2458 // * REGION 2459 // 2460 // * SERVICE 2461 // 2462 // * TAG 2463 // 2464 // * TENANCY 2465 // 2466 // GetReservationCoverage uses the same Expression (http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) 2467 // object as the other operations, but only AND is supported among each dimension. 2468 // You can nest only one level deep. If there are multiple values for a dimension, 2469 // they are OR'd together. 2470 // 2471 // If you don't provide a SERVICE filter, Cost Explorer defaults to EC2. 2472 Filter *Expression `type:"structure"` 2473 2474 // The granularity of the AWS cost data for the reservation. Valid values are 2475 // MONTHLY and DAILY. 2476 // 2477 // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the 2478 // response object doesn't include Granularity, either MONTHLY or DAILY. 2479 // 2480 // The GetReservationCoverage operation supports only DAILY and MONTHLY granularities. 2481 Granularity *string `type:"string" enum:"Granularity"` 2482 2483 // You can group the data by the following attributes: 2484 // 2485 // * AZ 2486 // 2487 // * CACHE_ENGINE 2488 // 2489 // * DATABASE_ENGINE 2490 // 2491 // * DEPLOYMENT_OPTION 2492 // 2493 // * INSTANCE_TYPE 2494 // 2495 // * LINKED_ACCOUNT 2496 // 2497 // * OPERATING_SYSTEM 2498 // 2499 // * PLATFORM 2500 // 2501 // * REGION 2502 // 2503 // * TENANCY 2504 GroupBy []*GroupDefinition `type:"list"` 2505 2506 // The measurement that you want your reservation coverage reported in. 2507 // 2508 // Valid values are Hour, Unit, and Cost. You can use multiple values in a request. 2509 Metrics []*string `type:"list"` 2510 2511 // The token to retrieve the next set of results. AWS provides the token when 2512 // the response from a previous call has more results than the maximum page 2513 // size. 2514 NextPageToken *string `type:"string"` 2515 2516 // The start and end dates of the period that you want to retrieve data about 2517 // reservation coverage for. You can retrieve data for a maximum of 13 months: 2518 // the last 12 months and the current month. The start date is inclusive, but 2519 // the end date is exclusive. For example, if start is 2017-01-01 and end is 2520 // 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up 2521 // to and including 2017-04-30 but not including 2017-05-01. 2522 // 2523 // TimePeriod is a required field 2524 TimePeriod *DateInterval `type:"structure" required:"true"` 2525} 2526 2527// String returns the string representation 2528func (s GetReservationCoverageInput) String() string { 2529 return awsutil.Prettify(s) 2530} 2531 2532// GoString returns the string representation 2533func (s GetReservationCoverageInput) GoString() string { 2534 return s.String() 2535} 2536 2537// Validate inspects the fields of the type to determine if they are valid. 2538func (s *GetReservationCoverageInput) Validate() error { 2539 invalidParams := request.ErrInvalidParams{Context: "GetReservationCoverageInput"} 2540 if s.TimePeriod == nil { 2541 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 2542 } 2543 if s.TimePeriod != nil { 2544 if err := s.TimePeriod.Validate(); err != nil { 2545 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 2546 } 2547 } 2548 2549 if invalidParams.Len() > 0 { 2550 return invalidParams 2551 } 2552 return nil 2553} 2554 2555// SetFilter sets the Filter field's value. 2556func (s *GetReservationCoverageInput) SetFilter(v *Expression) *GetReservationCoverageInput { 2557 s.Filter = v 2558 return s 2559} 2560 2561// SetGranularity sets the Granularity field's value. 2562func (s *GetReservationCoverageInput) SetGranularity(v string) *GetReservationCoverageInput { 2563 s.Granularity = &v 2564 return s 2565} 2566 2567// SetGroupBy sets the GroupBy field's value. 2568func (s *GetReservationCoverageInput) SetGroupBy(v []*GroupDefinition) *GetReservationCoverageInput { 2569 s.GroupBy = v 2570 return s 2571} 2572 2573// SetMetrics sets the Metrics field's value. 2574func (s *GetReservationCoverageInput) SetMetrics(v []*string) *GetReservationCoverageInput { 2575 s.Metrics = v 2576 return s 2577} 2578 2579// SetNextPageToken sets the NextPageToken field's value. 2580func (s *GetReservationCoverageInput) SetNextPageToken(v string) *GetReservationCoverageInput { 2581 s.NextPageToken = &v 2582 return s 2583} 2584 2585// SetTimePeriod sets the TimePeriod field's value. 2586func (s *GetReservationCoverageInput) SetTimePeriod(v *DateInterval) *GetReservationCoverageInput { 2587 s.TimePeriod = v 2588 return s 2589} 2590 2591type GetReservationCoverageOutput struct { 2592 _ struct{} `type:"structure"` 2593 2594 // The amount of time that your reservations covered. 2595 // 2596 // CoveragesByTime is a required field 2597 CoveragesByTime []*CoverageByTime `type:"list" required:"true"` 2598 2599 // The token for the next set of retrievable results. AWS provides the token 2600 // when the response from a previous call has more results than the maximum 2601 // page size. 2602 NextPageToken *string `type:"string"` 2603 2604 // The total amount of instance usage that a reservation covered. 2605 Total *Coverage `type:"structure"` 2606} 2607 2608// String returns the string representation 2609func (s GetReservationCoverageOutput) String() string { 2610 return awsutil.Prettify(s) 2611} 2612 2613// GoString returns the string representation 2614func (s GetReservationCoverageOutput) GoString() string { 2615 return s.String() 2616} 2617 2618// SetCoveragesByTime sets the CoveragesByTime field's value. 2619func (s *GetReservationCoverageOutput) SetCoveragesByTime(v []*CoverageByTime) *GetReservationCoverageOutput { 2620 s.CoveragesByTime = v 2621 return s 2622} 2623 2624// SetNextPageToken sets the NextPageToken field's value. 2625func (s *GetReservationCoverageOutput) SetNextPageToken(v string) *GetReservationCoverageOutput { 2626 s.NextPageToken = &v 2627 return s 2628} 2629 2630// SetTotal sets the Total field's value. 2631func (s *GetReservationCoverageOutput) SetTotal(v *Coverage) *GetReservationCoverageOutput { 2632 s.Total = v 2633 return s 2634} 2635 2636type GetReservationPurchaseRecommendationInput struct { 2637 _ struct{} `type:"structure"` 2638 2639 // The account ID that is associated with the recommendation. 2640 AccountId *string `type:"string"` 2641 2642 // The account scope that you want recommendations for. PAYER means that AWS 2643 // includes the master account and any member accounts when it calculates its 2644 // recommendations. LINKED means that AWS includes only member accounts when 2645 // it calculates its recommendations. 2646 // 2647 // Valid values are PAYER and LINKED. 2648 AccountScope *string `type:"string" enum:"AccountScope"` 2649 2650 // The number of previous days that you want AWS to consider when it calculates 2651 // your recommendations. 2652 LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` 2653 2654 // The pagination token that indicates the next set of results that you want 2655 // to retrieve. 2656 NextPageToken *string `type:"string"` 2657 2658 // The number of recommendations that you want returned in a single response 2659 // object. 2660 PageSize *int64 `type:"integer"` 2661 2662 // The reservation purchase option that you want recommendations for. 2663 PaymentOption *string `type:"string" enum:"PaymentOption"` 2664 2665 // The specific service that you want recommendations for. 2666 // 2667 // Service is a required field 2668 Service *string `type:"string" required:"true"` 2669 2670 // The hardware specifications for the service instances that you want recommendations 2671 // for, such as standard or convertible Amazon EC2 instances. 2672 ServiceSpecification *ServiceSpecification `type:"structure"` 2673 2674 // The reservation term that you want recommendations for. 2675 TermInYears *string `type:"string" enum:"TermInYears"` 2676} 2677 2678// String returns the string representation 2679func (s GetReservationPurchaseRecommendationInput) String() string { 2680 return awsutil.Prettify(s) 2681} 2682 2683// GoString returns the string representation 2684func (s GetReservationPurchaseRecommendationInput) GoString() string { 2685 return s.String() 2686} 2687 2688// Validate inspects the fields of the type to determine if they are valid. 2689func (s *GetReservationPurchaseRecommendationInput) Validate() error { 2690 invalidParams := request.ErrInvalidParams{Context: "GetReservationPurchaseRecommendationInput"} 2691 if s.Service == nil { 2692 invalidParams.Add(request.NewErrParamRequired("Service")) 2693 } 2694 2695 if invalidParams.Len() > 0 { 2696 return invalidParams 2697 } 2698 return nil 2699} 2700 2701// SetAccountId sets the AccountId field's value. 2702func (s *GetReservationPurchaseRecommendationInput) SetAccountId(v string) *GetReservationPurchaseRecommendationInput { 2703 s.AccountId = &v 2704 return s 2705} 2706 2707// SetAccountScope sets the AccountScope field's value. 2708func (s *GetReservationPurchaseRecommendationInput) SetAccountScope(v string) *GetReservationPurchaseRecommendationInput { 2709 s.AccountScope = &v 2710 return s 2711} 2712 2713// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. 2714func (s *GetReservationPurchaseRecommendationInput) SetLookbackPeriodInDays(v string) *GetReservationPurchaseRecommendationInput { 2715 s.LookbackPeriodInDays = &v 2716 return s 2717} 2718 2719// SetNextPageToken sets the NextPageToken field's value. 2720func (s *GetReservationPurchaseRecommendationInput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationInput { 2721 s.NextPageToken = &v 2722 return s 2723} 2724 2725// SetPageSize sets the PageSize field's value. 2726func (s *GetReservationPurchaseRecommendationInput) SetPageSize(v int64) *GetReservationPurchaseRecommendationInput { 2727 s.PageSize = &v 2728 return s 2729} 2730 2731// SetPaymentOption sets the PaymentOption field's value. 2732func (s *GetReservationPurchaseRecommendationInput) SetPaymentOption(v string) *GetReservationPurchaseRecommendationInput { 2733 s.PaymentOption = &v 2734 return s 2735} 2736 2737// SetService sets the Service field's value. 2738func (s *GetReservationPurchaseRecommendationInput) SetService(v string) *GetReservationPurchaseRecommendationInput { 2739 s.Service = &v 2740 return s 2741} 2742 2743// SetServiceSpecification sets the ServiceSpecification field's value. 2744func (s *GetReservationPurchaseRecommendationInput) SetServiceSpecification(v *ServiceSpecification) *GetReservationPurchaseRecommendationInput { 2745 s.ServiceSpecification = v 2746 return s 2747} 2748 2749// SetTermInYears sets the TermInYears field's value. 2750func (s *GetReservationPurchaseRecommendationInput) SetTermInYears(v string) *GetReservationPurchaseRecommendationInput { 2751 s.TermInYears = &v 2752 return s 2753} 2754 2755type GetReservationPurchaseRecommendationOutput struct { 2756 _ struct{} `type:"structure"` 2757 2758 // Information about this specific recommendation call, such as the time stamp 2759 // for when Cost Explorer generated this recommendation. 2760 Metadata *ReservationPurchaseRecommendationMetadata `type:"structure"` 2761 2762 // The pagination token for the next set of retrievable results. 2763 NextPageToken *string `type:"string"` 2764 2765 // Recommendations for reservations to purchase. 2766 Recommendations []*ReservationPurchaseRecommendation `type:"list"` 2767} 2768 2769// String returns the string representation 2770func (s GetReservationPurchaseRecommendationOutput) String() string { 2771 return awsutil.Prettify(s) 2772} 2773 2774// GoString returns the string representation 2775func (s GetReservationPurchaseRecommendationOutput) GoString() string { 2776 return s.String() 2777} 2778 2779// SetMetadata sets the Metadata field's value. 2780func (s *GetReservationPurchaseRecommendationOutput) SetMetadata(v *ReservationPurchaseRecommendationMetadata) *GetReservationPurchaseRecommendationOutput { 2781 s.Metadata = v 2782 return s 2783} 2784 2785// SetNextPageToken sets the NextPageToken field's value. 2786func (s *GetReservationPurchaseRecommendationOutput) SetNextPageToken(v string) *GetReservationPurchaseRecommendationOutput { 2787 s.NextPageToken = &v 2788 return s 2789} 2790 2791// SetRecommendations sets the Recommendations field's value. 2792func (s *GetReservationPurchaseRecommendationOutput) SetRecommendations(v []*ReservationPurchaseRecommendation) *GetReservationPurchaseRecommendationOutput { 2793 s.Recommendations = v 2794 return s 2795} 2796 2797type GetReservationUtilizationInput struct { 2798 _ struct{} `type:"structure"` 2799 2800 // Filters utilization data by dimensions. You can filter by the following dimensions: 2801 // 2802 // * AZ 2803 // 2804 // * CACHE_ENGINE 2805 // 2806 // * DATABASE_ENGINE 2807 // 2808 // * DEPLOYMENT_OPTION 2809 // 2810 // * INSTANCE_TYPE 2811 // 2812 // * LINKED_ACCOUNT 2813 // 2814 // * OPERATING_SYSTEM 2815 // 2816 // * PLATFORM 2817 // 2818 // * REGION 2819 // 2820 // * SERVICE 2821 // 2822 // * SCOPE 2823 // 2824 // * TENANCY 2825 // 2826 // GetReservationUtilization uses the same Expression (http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html) 2827 // object as the other operations, but only AND is supported among each dimension, 2828 // and nesting is supported up to only one level deep. If there are multiple 2829 // values for a dimension, they are OR'd together. 2830 Filter *Expression `type:"structure"` 2831 2832 // If GroupBy is set, Granularity can't be set. If Granularity isn't set, the 2833 // response object doesn't include Granularity, either MONTHLY or DAILY. If 2834 // both GroupBy and Granularity aren't set, GetReservationUtilization defaults 2835 // to DAILY. 2836 // 2837 // The GetReservationUtilization operation supports only DAILY and MONTHLY granularities. 2838 Granularity *string `type:"string" enum:"Granularity"` 2839 2840 // Groups only by SUBSCRIPTION_ID. Metadata is included. 2841 GroupBy []*GroupDefinition `type:"list"` 2842 2843 // The token to retrieve the next set of results. AWS provides the token when 2844 // the response from a previous call has more results than the maximum page 2845 // size. 2846 NextPageToken *string `type:"string"` 2847 2848 // Sets the start and end dates for retrieving RI utilization. The start date 2849 // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 2850 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 2851 // up to and including 2017-04-30 but not including 2017-05-01. 2852 // 2853 // TimePeriod is a required field 2854 TimePeriod *DateInterval `type:"structure" required:"true"` 2855} 2856 2857// String returns the string representation 2858func (s GetReservationUtilizationInput) String() string { 2859 return awsutil.Prettify(s) 2860} 2861 2862// GoString returns the string representation 2863func (s GetReservationUtilizationInput) GoString() string { 2864 return s.String() 2865} 2866 2867// Validate inspects the fields of the type to determine if they are valid. 2868func (s *GetReservationUtilizationInput) Validate() error { 2869 invalidParams := request.ErrInvalidParams{Context: "GetReservationUtilizationInput"} 2870 if s.TimePeriod == nil { 2871 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 2872 } 2873 if s.TimePeriod != nil { 2874 if err := s.TimePeriod.Validate(); err != nil { 2875 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 2876 } 2877 } 2878 2879 if invalidParams.Len() > 0 { 2880 return invalidParams 2881 } 2882 return nil 2883} 2884 2885// SetFilter sets the Filter field's value. 2886func (s *GetReservationUtilizationInput) SetFilter(v *Expression) *GetReservationUtilizationInput { 2887 s.Filter = v 2888 return s 2889} 2890 2891// SetGranularity sets the Granularity field's value. 2892func (s *GetReservationUtilizationInput) SetGranularity(v string) *GetReservationUtilizationInput { 2893 s.Granularity = &v 2894 return s 2895} 2896 2897// SetGroupBy sets the GroupBy field's value. 2898func (s *GetReservationUtilizationInput) SetGroupBy(v []*GroupDefinition) *GetReservationUtilizationInput { 2899 s.GroupBy = v 2900 return s 2901} 2902 2903// SetNextPageToken sets the NextPageToken field's value. 2904func (s *GetReservationUtilizationInput) SetNextPageToken(v string) *GetReservationUtilizationInput { 2905 s.NextPageToken = &v 2906 return s 2907} 2908 2909// SetTimePeriod sets the TimePeriod field's value. 2910func (s *GetReservationUtilizationInput) SetTimePeriod(v *DateInterval) *GetReservationUtilizationInput { 2911 s.TimePeriod = v 2912 return s 2913} 2914 2915type GetReservationUtilizationOutput struct { 2916 _ struct{} `type:"structure"` 2917 2918 // The token for the next set of retrievable results. AWS provides the token 2919 // when the response from a previous call has more results than the maximum 2920 // page size. 2921 NextPageToken *string `type:"string"` 2922 2923 // The total amount of time that you used your RIs. 2924 Total *ReservationAggregates `type:"structure"` 2925 2926 // The amount of time that you used your RIs. 2927 // 2928 // UtilizationsByTime is a required field 2929 UtilizationsByTime []*UtilizationByTime `type:"list" required:"true"` 2930} 2931 2932// String returns the string representation 2933func (s GetReservationUtilizationOutput) String() string { 2934 return awsutil.Prettify(s) 2935} 2936 2937// GoString returns the string representation 2938func (s GetReservationUtilizationOutput) GoString() string { 2939 return s.String() 2940} 2941 2942// SetNextPageToken sets the NextPageToken field's value. 2943func (s *GetReservationUtilizationOutput) SetNextPageToken(v string) *GetReservationUtilizationOutput { 2944 s.NextPageToken = &v 2945 return s 2946} 2947 2948// SetTotal sets the Total field's value. 2949func (s *GetReservationUtilizationOutput) SetTotal(v *ReservationAggregates) *GetReservationUtilizationOutput { 2950 s.Total = v 2951 return s 2952} 2953 2954// SetUtilizationsByTime sets the UtilizationsByTime field's value. 2955func (s *GetReservationUtilizationOutput) SetUtilizationsByTime(v []*UtilizationByTime) *GetReservationUtilizationOutput { 2956 s.UtilizationsByTime = v 2957 return s 2958} 2959 2960type GetRightsizingRecommendationInput struct { 2961 _ struct{} `type:"structure"` 2962 2963 // Use Expression to filter by cost or by usage. There are two patterns: 2964 // 2965 // * Simple dimension values - You can set the dimension name and values 2966 // for the filters that you plan to use. For example, you can filter for 2967 // REGION==us-east-1 OR REGION==us-west-1. The Expression for that looks 2968 // like this: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", 2969 // “us-west-1” ] } } The list of dimension values are OR'd together to 2970 // retrieve cost or usage data. You can create Expression and DimensionValues 2971 // objects using either with* methods or set* methods in multiple lines. 2972 // 2973 // * Compound dimension values with logical operations - You can use multiple 2974 // Expression types and the logical operators AND/OR/NOT to create a list 2975 // of one or more Expression objects. This allows you to filter on more advanced 2976 // options. For example, you can filter on ((REGION == us-east-1 OR REGION 2977 // == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer). 2978 // The Expression for that looks like this: { "And": [ {"Or": [ {"Dimensions": 2979 // { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ] }}, {"Tags": 2980 // { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"Dimensions": 2981 // { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } Because each 2982 // Expression can have only one operator, the service returns an error if 2983 // more than one is specified. The following example shows an Expression 2984 // object that creates an error. { "And": [ ... ], "DimensionValues": { "Dimension": 2985 // "USAGE_TYPE", "Values": [ "DataTransfer" ] } } 2986 // 2987 // For GetRightsizingRecommendation action, a combination of OR and NOT is not 2988 // supported. OR is not supported between different dimensions, or dimensions 2989 // and tags. NOT operators aren't supported. Dimentions are also limited to 2990 // LINKED_ACCOUNT, REGION, or RIGHTSIZING_TYPE. 2991 Filter *Expression `type:"structure"` 2992 2993 // The pagination token that indicates the next set of results that you want 2994 // to retrieve. 2995 NextPageToken *string `type:"string"` 2996 2997 // The number of recommendations that you want returned in a single response 2998 // object. 2999 PageSize *int64 `type:"integer"` 3000 3001 // The specific service that you want recommendations for. 3002 // 3003 // Service is a required field 3004 Service *string `type:"string" required:"true"` 3005} 3006 3007// String returns the string representation 3008func (s GetRightsizingRecommendationInput) String() string { 3009 return awsutil.Prettify(s) 3010} 3011 3012// GoString returns the string representation 3013func (s GetRightsizingRecommendationInput) GoString() string { 3014 return s.String() 3015} 3016 3017// Validate inspects the fields of the type to determine if they are valid. 3018func (s *GetRightsizingRecommendationInput) Validate() error { 3019 invalidParams := request.ErrInvalidParams{Context: "GetRightsizingRecommendationInput"} 3020 if s.Service == nil { 3021 invalidParams.Add(request.NewErrParamRequired("Service")) 3022 } 3023 3024 if invalidParams.Len() > 0 { 3025 return invalidParams 3026 } 3027 return nil 3028} 3029 3030// SetFilter sets the Filter field's value. 3031func (s *GetRightsizingRecommendationInput) SetFilter(v *Expression) *GetRightsizingRecommendationInput { 3032 s.Filter = v 3033 return s 3034} 3035 3036// SetNextPageToken sets the NextPageToken field's value. 3037func (s *GetRightsizingRecommendationInput) SetNextPageToken(v string) *GetRightsizingRecommendationInput { 3038 s.NextPageToken = &v 3039 return s 3040} 3041 3042// SetPageSize sets the PageSize field's value. 3043func (s *GetRightsizingRecommendationInput) SetPageSize(v int64) *GetRightsizingRecommendationInput { 3044 s.PageSize = &v 3045 return s 3046} 3047 3048// SetService sets the Service field's value. 3049func (s *GetRightsizingRecommendationInput) SetService(v string) *GetRightsizingRecommendationInput { 3050 s.Service = &v 3051 return s 3052} 3053 3054type GetRightsizingRecommendationOutput struct { 3055 _ struct{} `type:"structure"` 3056 3057 // Information regarding this specific recommendation set. 3058 Metadata *RightsizingRecommendationMetadata `type:"structure"` 3059 3060 // The token to retrieve the next set of results. 3061 NextPageToken *string `type:"string"` 3062 3063 // Recommendations to rightsize resources. 3064 RightsizingRecommendations []*RightsizingRecommendation `type:"list"` 3065 3066 // Summary of this recommendation set. 3067 Summary *RightsizingRecommendationSummary `type:"structure"` 3068} 3069 3070// String returns the string representation 3071func (s GetRightsizingRecommendationOutput) String() string { 3072 return awsutil.Prettify(s) 3073} 3074 3075// GoString returns the string representation 3076func (s GetRightsizingRecommendationOutput) GoString() string { 3077 return s.String() 3078} 3079 3080// SetMetadata sets the Metadata field's value. 3081func (s *GetRightsizingRecommendationOutput) SetMetadata(v *RightsizingRecommendationMetadata) *GetRightsizingRecommendationOutput { 3082 s.Metadata = v 3083 return s 3084} 3085 3086// SetNextPageToken sets the NextPageToken field's value. 3087func (s *GetRightsizingRecommendationOutput) SetNextPageToken(v string) *GetRightsizingRecommendationOutput { 3088 s.NextPageToken = &v 3089 return s 3090} 3091 3092// SetRightsizingRecommendations sets the RightsizingRecommendations field's value. 3093func (s *GetRightsizingRecommendationOutput) SetRightsizingRecommendations(v []*RightsizingRecommendation) *GetRightsizingRecommendationOutput { 3094 s.RightsizingRecommendations = v 3095 return s 3096} 3097 3098// SetSummary sets the Summary field's value. 3099func (s *GetRightsizingRecommendationOutput) SetSummary(v *RightsizingRecommendationSummary) *GetRightsizingRecommendationOutput { 3100 s.Summary = v 3101 return s 3102} 3103 3104type GetTagsInput struct { 3105 _ struct{} `type:"structure"` 3106 3107 // The token to retrieve the next set of results. AWS provides the token when 3108 // the response from a previous call has more results than the maximum page 3109 // size. 3110 NextPageToken *string `type:"string"` 3111 3112 // The value that you want to search for. 3113 SearchString *string `type:"string"` 3114 3115 // The key of the tag that you want to return values for. 3116 TagKey *string `type:"string"` 3117 3118 // The start and end dates for retrieving the dimension values. The start date 3119 // is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 3120 // and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 3121 // up to and including 2017-04-30 but not including 2017-05-01. 3122 // 3123 // TimePeriod is a required field 3124 TimePeriod *DateInterval `type:"structure" required:"true"` 3125} 3126 3127// String returns the string representation 3128func (s GetTagsInput) String() string { 3129 return awsutil.Prettify(s) 3130} 3131 3132// GoString returns the string representation 3133func (s GetTagsInput) GoString() string { 3134 return s.String() 3135} 3136 3137// Validate inspects the fields of the type to determine if they are valid. 3138func (s *GetTagsInput) Validate() error { 3139 invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"} 3140 if s.TimePeriod == nil { 3141 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 3142 } 3143 if s.TimePeriod != nil { 3144 if err := s.TimePeriod.Validate(); err != nil { 3145 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 3146 } 3147 } 3148 3149 if invalidParams.Len() > 0 { 3150 return invalidParams 3151 } 3152 return nil 3153} 3154 3155// SetNextPageToken sets the NextPageToken field's value. 3156func (s *GetTagsInput) SetNextPageToken(v string) *GetTagsInput { 3157 s.NextPageToken = &v 3158 return s 3159} 3160 3161// SetSearchString sets the SearchString field's value. 3162func (s *GetTagsInput) SetSearchString(v string) *GetTagsInput { 3163 s.SearchString = &v 3164 return s 3165} 3166 3167// SetTagKey sets the TagKey field's value. 3168func (s *GetTagsInput) SetTagKey(v string) *GetTagsInput { 3169 s.TagKey = &v 3170 return s 3171} 3172 3173// SetTimePeriod sets the TimePeriod field's value. 3174func (s *GetTagsInput) SetTimePeriod(v *DateInterval) *GetTagsInput { 3175 s.TimePeriod = v 3176 return s 3177} 3178 3179type GetTagsOutput struct { 3180 _ struct{} `type:"structure"` 3181 3182 // The token for the next set of retrievable results. AWS provides the token 3183 // when the response from a previous call has more results than the maximum 3184 // page size. 3185 NextPageToken *string `type:"string"` 3186 3187 // The number of query results that AWS returns at a time. 3188 // 3189 // ReturnSize is a required field 3190 ReturnSize *int64 `type:"integer" required:"true"` 3191 3192 // The tags that match your request. 3193 // 3194 // Tags is a required field 3195 Tags []*string `type:"list" required:"true"` 3196 3197 // The total number of query results. 3198 // 3199 // TotalSize is a required field 3200 TotalSize *int64 `type:"integer" required:"true"` 3201} 3202 3203// String returns the string representation 3204func (s GetTagsOutput) String() string { 3205 return awsutil.Prettify(s) 3206} 3207 3208// GoString returns the string representation 3209func (s GetTagsOutput) GoString() string { 3210 return s.String() 3211} 3212 3213// SetNextPageToken sets the NextPageToken field's value. 3214func (s *GetTagsOutput) SetNextPageToken(v string) *GetTagsOutput { 3215 s.NextPageToken = &v 3216 return s 3217} 3218 3219// SetReturnSize sets the ReturnSize field's value. 3220func (s *GetTagsOutput) SetReturnSize(v int64) *GetTagsOutput { 3221 s.ReturnSize = &v 3222 return s 3223} 3224 3225// SetTags sets the Tags field's value. 3226func (s *GetTagsOutput) SetTags(v []*string) *GetTagsOutput { 3227 s.Tags = v 3228 return s 3229} 3230 3231// SetTotalSize sets the TotalSize field's value. 3232func (s *GetTagsOutput) SetTotalSize(v int64) *GetTagsOutput { 3233 s.TotalSize = &v 3234 return s 3235} 3236 3237type GetUsageForecastInput struct { 3238 _ struct{} `type:"structure"` 3239 3240 // The filters that you want to use to filter your forecast. Cost Explorer API 3241 // supports all of the Cost Explorer filters. 3242 Filter *Expression `type:"structure"` 3243 3244 // How granular you want the forecast to be. You can get 3 months of DAILY forecasts 3245 // or 12 months of MONTHLY forecasts. 3246 // 3247 // The GetUsageForecast operation supports only DAILY and MONTHLY granularities. 3248 // 3249 // Granularity is a required field 3250 Granularity *string `type:"string" required:"true" enum:"Granularity"` 3251 3252 // Which metric Cost Explorer uses to create your forecast. 3253 // 3254 // Valid values for a GetUsageForecast call are the following: 3255 // 3256 // * USAGE_QUANTITY 3257 // 3258 // * NORMALIZED_USAGE_AMOUNT 3259 // 3260 // Metric is a required field 3261 Metric *string `type:"string" required:"true" enum:"Metric"` 3262 3263 // Cost Explorer always returns the mean forecast as a single point. You can 3264 // request a prediction interval around the mean by specifying a confidence 3265 // level. The higher the confidence level, the more confident Cost Explorer 3266 // is about the actual value falling in the prediction interval. Higher confidence 3267 // levels result in wider prediction intervals. 3268 PredictionIntervalLevel *int64 `min:"51" type:"integer"` 3269 3270 // The start and end dates of the period that you want to retrieve usage forecast 3271 // for. The start date is inclusive, but the end date is exclusive. For example, 3272 // if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data 3273 // is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 3274 // 2017-05-01. 3275 // 3276 // TimePeriod is a required field 3277 TimePeriod *DateInterval `type:"structure" required:"true"` 3278} 3279 3280// String returns the string representation 3281func (s GetUsageForecastInput) String() string { 3282 return awsutil.Prettify(s) 3283} 3284 3285// GoString returns the string representation 3286func (s GetUsageForecastInput) GoString() string { 3287 return s.String() 3288} 3289 3290// Validate inspects the fields of the type to determine if they are valid. 3291func (s *GetUsageForecastInput) Validate() error { 3292 invalidParams := request.ErrInvalidParams{Context: "GetUsageForecastInput"} 3293 if s.Granularity == nil { 3294 invalidParams.Add(request.NewErrParamRequired("Granularity")) 3295 } 3296 if s.Metric == nil { 3297 invalidParams.Add(request.NewErrParamRequired("Metric")) 3298 } 3299 if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { 3300 invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) 3301 } 3302 if s.TimePeriod == nil { 3303 invalidParams.Add(request.NewErrParamRequired("TimePeriod")) 3304 } 3305 if s.TimePeriod != nil { 3306 if err := s.TimePeriod.Validate(); err != nil { 3307 invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) 3308 } 3309 } 3310 3311 if invalidParams.Len() > 0 { 3312 return invalidParams 3313 } 3314 return nil 3315} 3316 3317// SetFilter sets the Filter field's value. 3318func (s *GetUsageForecastInput) SetFilter(v *Expression) *GetUsageForecastInput { 3319 s.Filter = v 3320 return s 3321} 3322 3323// SetGranularity sets the Granularity field's value. 3324func (s *GetUsageForecastInput) SetGranularity(v string) *GetUsageForecastInput { 3325 s.Granularity = &v 3326 return s 3327} 3328 3329// SetMetric sets the Metric field's value. 3330func (s *GetUsageForecastInput) SetMetric(v string) *GetUsageForecastInput { 3331 s.Metric = &v 3332 return s 3333} 3334 3335// SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. 3336func (s *GetUsageForecastInput) SetPredictionIntervalLevel(v int64) *GetUsageForecastInput { 3337 s.PredictionIntervalLevel = &v 3338 return s 3339} 3340 3341// SetTimePeriod sets the TimePeriod field's value. 3342func (s *GetUsageForecastInput) SetTimePeriod(v *DateInterval) *GetUsageForecastInput { 3343 s.TimePeriod = v 3344 return s 3345} 3346 3347type GetUsageForecastOutput struct { 3348 _ struct{} `type:"structure"` 3349 3350 // The forecasts for your query, in order. For DAILY forecasts, this is a list 3351 // of days. For MONTHLY forecasts, this is a list of months. 3352 ForecastResultsByTime []*ForecastResult `type:"list"` 3353 3354 // How much you're forecasted to use over the forecast period. 3355 Total *MetricValue `type:"structure"` 3356} 3357 3358// String returns the string representation 3359func (s GetUsageForecastOutput) String() string { 3360 return awsutil.Prettify(s) 3361} 3362 3363// GoString returns the string representation 3364func (s GetUsageForecastOutput) GoString() string { 3365 return s.String() 3366} 3367 3368// SetForecastResultsByTime sets the ForecastResultsByTime field's value. 3369func (s *GetUsageForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetUsageForecastOutput { 3370 s.ForecastResultsByTime = v 3371 return s 3372} 3373 3374// SetTotal sets the Total field's value. 3375func (s *GetUsageForecastOutput) SetTotal(v *MetricValue) *GetUsageForecastOutput { 3376 s.Total = v 3377 return s 3378} 3379 3380// One level of grouped data in the results. 3381type Group struct { 3382 _ struct{} `type:"structure"` 3383 3384 // The keys that are included in this group. 3385 Keys []*string `type:"list"` 3386 3387 // The metrics that are included in this group. 3388 Metrics map[string]*MetricValue `type:"map"` 3389} 3390 3391// String returns the string representation 3392func (s Group) String() string { 3393 return awsutil.Prettify(s) 3394} 3395 3396// GoString returns the string representation 3397func (s Group) GoString() string { 3398 return s.String() 3399} 3400 3401// SetKeys sets the Keys field's value. 3402func (s *Group) SetKeys(v []*string) *Group { 3403 s.Keys = v 3404 return s 3405} 3406 3407// SetMetrics sets the Metrics field's value. 3408func (s *Group) SetMetrics(v map[string]*MetricValue) *Group { 3409 s.Metrics = v 3410 return s 3411} 3412 3413// Represents a group when you specify a group by criteria or in the response 3414// to a query with a specific grouping. 3415type GroupDefinition struct { 3416 _ struct{} `type:"structure"` 3417 3418 // The string that represents a key for a specified group. 3419 Key *string `type:"string"` 3420 3421 // The string that represents the type of group. 3422 Type *string `type:"string" enum:"GroupDefinitionType"` 3423} 3424 3425// String returns the string representation 3426func (s GroupDefinition) String() string { 3427 return awsutil.Prettify(s) 3428} 3429 3430// GoString returns the string representation 3431func (s GroupDefinition) GoString() string { 3432 return s.String() 3433} 3434 3435// SetKey sets the Key field's value. 3436func (s *GroupDefinition) SetKey(v string) *GroupDefinition { 3437 s.Key = &v 3438 return s 3439} 3440 3441// SetType sets the Type field's value. 3442func (s *GroupDefinition) SetType(v string) *GroupDefinition { 3443 s.Type = &v 3444 return s 3445} 3446 3447// Details about the instances that AWS recommends that you purchase. 3448type InstanceDetails struct { 3449 _ struct{} `type:"structure"` 3450 3451 // The Amazon EC2 instances that AWS recommends that you purchase. 3452 EC2InstanceDetails *EC2InstanceDetails `type:"structure"` 3453 3454 // The Amazon ES instances that AWS recommends that you purchase. 3455 ESInstanceDetails *ESInstanceDetails `type:"structure"` 3456 3457 // The ElastiCache instances that AWS recommends that you purchase. 3458 ElastiCacheInstanceDetails *ElastiCacheInstanceDetails `type:"structure"` 3459 3460 // The Amazon RDS instances that AWS recommends that you purchase. 3461 RDSInstanceDetails *RDSInstanceDetails `type:"structure"` 3462 3463 // The Amazon Redshift instances that AWS recommends that you purchase. 3464 RedshiftInstanceDetails *RedshiftInstanceDetails `type:"structure"` 3465} 3466 3467// String returns the string representation 3468func (s InstanceDetails) String() string { 3469 return awsutil.Prettify(s) 3470} 3471 3472// GoString returns the string representation 3473func (s InstanceDetails) GoString() string { 3474 return s.String() 3475} 3476 3477// SetEC2InstanceDetails sets the EC2InstanceDetails field's value. 3478func (s *InstanceDetails) SetEC2InstanceDetails(v *EC2InstanceDetails) *InstanceDetails { 3479 s.EC2InstanceDetails = v 3480 return s 3481} 3482 3483// SetESInstanceDetails sets the ESInstanceDetails field's value. 3484func (s *InstanceDetails) SetESInstanceDetails(v *ESInstanceDetails) *InstanceDetails { 3485 s.ESInstanceDetails = v 3486 return s 3487} 3488 3489// SetElastiCacheInstanceDetails sets the ElastiCacheInstanceDetails field's value. 3490func (s *InstanceDetails) SetElastiCacheInstanceDetails(v *ElastiCacheInstanceDetails) *InstanceDetails { 3491 s.ElastiCacheInstanceDetails = v 3492 return s 3493} 3494 3495// SetRDSInstanceDetails sets the RDSInstanceDetails field's value. 3496func (s *InstanceDetails) SetRDSInstanceDetails(v *RDSInstanceDetails) *InstanceDetails { 3497 s.RDSInstanceDetails = v 3498 return s 3499} 3500 3501// SetRedshiftInstanceDetails sets the RedshiftInstanceDetails field's value. 3502func (s *InstanceDetails) SetRedshiftInstanceDetails(v *RedshiftInstanceDetails) *InstanceDetails { 3503 s.RedshiftInstanceDetails = v 3504 return s 3505} 3506 3507// The aggregated value for a metric. 3508type MetricValue struct { 3509 _ struct{} `type:"structure"` 3510 3511 // The actual number that represents the metric. 3512 Amount *string `type:"string"` 3513 3514 // The unit that the metric is given in. 3515 Unit *string `type:"string"` 3516} 3517 3518// String returns the string representation 3519func (s MetricValue) String() string { 3520 return awsutil.Prettify(s) 3521} 3522 3523// GoString returns the string representation 3524func (s MetricValue) GoString() string { 3525 return s.String() 3526} 3527 3528// SetAmount sets the Amount field's value. 3529func (s *MetricValue) SetAmount(v string) *MetricValue { 3530 s.Amount = &v 3531 return s 3532} 3533 3534// SetUnit sets the Unit field's value. 3535func (s *MetricValue) SetUnit(v string) *MetricValue { 3536 s.Unit = &v 3537 return s 3538} 3539 3540// Details on the modification recommendation. 3541type ModifyRecommendationDetail struct { 3542 _ struct{} `type:"structure"` 3543 3544 // Identifies whether this instance type is the Amazon Web Services default 3545 // recommendation. 3546 TargetInstances []*TargetInstance `type:"list"` 3547} 3548 3549// String returns the string representation 3550func (s ModifyRecommendationDetail) String() string { 3551 return awsutil.Prettify(s) 3552} 3553 3554// GoString returns the string representation 3555func (s ModifyRecommendationDetail) GoString() string { 3556 return s.String() 3557} 3558 3559// SetTargetInstances sets the TargetInstances field's value. 3560func (s *ModifyRecommendationDetail) SetTargetInstances(v []*TargetInstance) *ModifyRecommendationDetail { 3561 s.TargetInstances = v 3562 return s 3563} 3564 3565// Details about the Amazon RDS instances that AWS recommends that you purchase. 3566type RDSInstanceDetails struct { 3567 _ struct{} `type:"structure"` 3568 3569 // Whether the recommendation is for a current-generation instance. 3570 CurrentGeneration *bool `type:"boolean"` 3571 3572 // The database edition that the recommended reservation supports. 3573 DatabaseEdition *string `type:"string"` 3574 3575 // The database engine that the recommended reservation supports. 3576 DatabaseEngine *string `type:"string"` 3577 3578 // Whether the recommendation is for a reservation in a single Availability 3579 // Zone or a reservation with a backup in a second Availability Zone. 3580 DeploymentOption *string `type:"string"` 3581 3582 // The instance family of the recommended reservation. 3583 Family *string `type:"string"` 3584 3585 // The type of instance that AWS recommends. 3586 InstanceType *string `type:"string"` 3587 3588 // The license model that the recommended reservation supports. 3589 LicenseModel *string `type:"string"` 3590 3591 // The AWS Region of the recommended reservation. 3592 Region *string `type:"string"` 3593 3594 // Whether the recommended reservation is size flexible. 3595 SizeFlexEligible *bool `type:"boolean"` 3596} 3597 3598// String returns the string representation 3599func (s RDSInstanceDetails) String() string { 3600 return awsutil.Prettify(s) 3601} 3602 3603// GoString returns the string representation 3604func (s RDSInstanceDetails) GoString() string { 3605 return s.String() 3606} 3607 3608// SetCurrentGeneration sets the CurrentGeneration field's value. 3609func (s *RDSInstanceDetails) SetCurrentGeneration(v bool) *RDSInstanceDetails { 3610 s.CurrentGeneration = &v 3611 return s 3612} 3613 3614// SetDatabaseEdition sets the DatabaseEdition field's value. 3615func (s *RDSInstanceDetails) SetDatabaseEdition(v string) *RDSInstanceDetails { 3616 s.DatabaseEdition = &v 3617 return s 3618} 3619 3620// SetDatabaseEngine sets the DatabaseEngine field's value. 3621func (s *RDSInstanceDetails) SetDatabaseEngine(v string) *RDSInstanceDetails { 3622 s.DatabaseEngine = &v 3623 return s 3624} 3625 3626// SetDeploymentOption sets the DeploymentOption field's value. 3627func (s *RDSInstanceDetails) SetDeploymentOption(v string) *RDSInstanceDetails { 3628 s.DeploymentOption = &v 3629 return s 3630} 3631 3632// SetFamily sets the Family field's value. 3633func (s *RDSInstanceDetails) SetFamily(v string) *RDSInstanceDetails { 3634 s.Family = &v 3635 return s 3636} 3637 3638// SetInstanceType sets the InstanceType field's value. 3639func (s *RDSInstanceDetails) SetInstanceType(v string) *RDSInstanceDetails { 3640 s.InstanceType = &v 3641 return s 3642} 3643 3644// SetLicenseModel sets the LicenseModel field's value. 3645func (s *RDSInstanceDetails) SetLicenseModel(v string) *RDSInstanceDetails { 3646 s.LicenseModel = &v 3647 return s 3648} 3649 3650// SetRegion sets the Region field's value. 3651func (s *RDSInstanceDetails) SetRegion(v string) *RDSInstanceDetails { 3652 s.Region = &v 3653 return s 3654} 3655 3656// SetSizeFlexEligible sets the SizeFlexEligible field's value. 3657func (s *RDSInstanceDetails) SetSizeFlexEligible(v bool) *RDSInstanceDetails { 3658 s.SizeFlexEligible = &v 3659 return s 3660} 3661 3662// Details about the Amazon Redshift instances that AWS recommends that you 3663// purchase. 3664type RedshiftInstanceDetails struct { 3665 _ struct{} `type:"structure"` 3666 3667 // Whether the recommendation is for a current-generation instance. 3668 CurrentGeneration *bool `type:"boolean"` 3669 3670 // The instance family of the recommended reservation. 3671 Family *string `type:"string"` 3672 3673 // The type of node that AWS recommends. 3674 NodeType *string `type:"string"` 3675 3676 // The AWS Region of the recommended reservation. 3677 Region *string `type:"string"` 3678 3679 // Whether the recommended reservation is size flexible. 3680 SizeFlexEligible *bool `type:"boolean"` 3681} 3682 3683// String returns the string representation 3684func (s RedshiftInstanceDetails) String() string { 3685 return awsutil.Prettify(s) 3686} 3687 3688// GoString returns the string representation 3689func (s RedshiftInstanceDetails) GoString() string { 3690 return s.String() 3691} 3692 3693// SetCurrentGeneration sets the CurrentGeneration field's value. 3694func (s *RedshiftInstanceDetails) SetCurrentGeneration(v bool) *RedshiftInstanceDetails { 3695 s.CurrentGeneration = &v 3696 return s 3697} 3698 3699// SetFamily sets the Family field's value. 3700func (s *RedshiftInstanceDetails) SetFamily(v string) *RedshiftInstanceDetails { 3701 s.Family = &v 3702 return s 3703} 3704 3705// SetNodeType sets the NodeType field's value. 3706func (s *RedshiftInstanceDetails) SetNodeType(v string) *RedshiftInstanceDetails { 3707 s.NodeType = &v 3708 return s 3709} 3710 3711// SetRegion sets the Region field's value. 3712func (s *RedshiftInstanceDetails) SetRegion(v string) *RedshiftInstanceDetails { 3713 s.Region = &v 3714 return s 3715} 3716 3717// SetSizeFlexEligible sets the SizeFlexEligible field's value. 3718func (s *RedshiftInstanceDetails) SetSizeFlexEligible(v bool) *RedshiftInstanceDetails { 3719 s.SizeFlexEligible = &v 3720 return s 3721} 3722 3723// The aggregated numbers for your reservation usage. 3724type ReservationAggregates struct { 3725 _ struct{} `type:"structure"` 3726 3727 // The monthly cost of your reservation, amortized over the reservation period. 3728 AmortizedRecurringFee *string `type:"string"` 3729 3730 // The upfront cost of your reservation, amortized over the reservation period. 3731 AmortizedUpfrontFee *string `type:"string"` 3732 3733 // How much you saved due to purchasing and utilizing reservation. AWS calculates 3734 // this by subtracting TotalAmortizedFee from OnDemandCostOfRIHoursUsed. 3735 NetRISavings *string `type:"string"` 3736 3737 // How much your reservation would cost if charged On-Demand rates. 3738 OnDemandCostOfRIHoursUsed *string `type:"string"` 3739 3740 // How many reservation hours that you purchased. 3741 PurchasedHours *string `type:"string"` 3742 3743 // How many Amazon EC2 reservation hours that you purchased, converted to normalized 3744 // units. Normalized units are available only for Amazon EC2 usage after November 3745 // 11, 2017. 3746 PurchasedUnits *string `type:"string"` 3747 3748 // The total number of reservation hours that you used. 3749 TotalActualHours *string `type:"string"` 3750 3751 // The total number of Amazon EC2 reservation hours that you used, converted 3752 // to normalized units. Normalized units are available only for Amazon EC2 usage 3753 // after November 11, 2017. 3754 TotalActualUnits *string `type:"string"` 3755 3756 // The total cost of your reservation, amortized over the reservation period. 3757 TotalAmortizedFee *string `type:"string"` 3758 3759 // How much you could save if you use your entire reservation. 3760 TotalPotentialRISavings *string `type:"string"` 3761 3762 // The number of reservation hours that you didn't use. 3763 UnusedHours *string `type:"string"` 3764 3765 // The number of Amazon EC2 reservation hours that you didn't use, converted 3766 // to normalized units. Normalized units are available only for Amazon EC2 usage 3767 // after November 11, 2017. 3768 UnusedUnits *string `type:"string"` 3769 3770 // The percentage of reservation time that you used. 3771 UtilizationPercentage *string `type:"string"` 3772 3773 // The percentage of Amazon EC2 reservation time that you used, converted to 3774 // normalized units. Normalized units are available only for Amazon EC2 usage 3775 // after November 11, 2017. 3776 UtilizationPercentageInUnits *string `type:"string"` 3777} 3778 3779// String returns the string representation 3780func (s ReservationAggregates) String() string { 3781 return awsutil.Prettify(s) 3782} 3783 3784// GoString returns the string representation 3785func (s ReservationAggregates) GoString() string { 3786 return s.String() 3787} 3788 3789// SetAmortizedRecurringFee sets the AmortizedRecurringFee field's value. 3790func (s *ReservationAggregates) SetAmortizedRecurringFee(v string) *ReservationAggregates { 3791 s.AmortizedRecurringFee = &v 3792 return s 3793} 3794 3795// SetAmortizedUpfrontFee sets the AmortizedUpfrontFee field's value. 3796func (s *ReservationAggregates) SetAmortizedUpfrontFee(v string) *ReservationAggregates { 3797 s.AmortizedUpfrontFee = &v 3798 return s 3799} 3800 3801// SetNetRISavings sets the NetRISavings field's value. 3802func (s *ReservationAggregates) SetNetRISavings(v string) *ReservationAggregates { 3803 s.NetRISavings = &v 3804 return s 3805} 3806 3807// SetOnDemandCostOfRIHoursUsed sets the OnDemandCostOfRIHoursUsed field's value. 3808func (s *ReservationAggregates) SetOnDemandCostOfRIHoursUsed(v string) *ReservationAggregates { 3809 s.OnDemandCostOfRIHoursUsed = &v 3810 return s 3811} 3812 3813// SetPurchasedHours sets the PurchasedHours field's value. 3814func (s *ReservationAggregates) SetPurchasedHours(v string) *ReservationAggregates { 3815 s.PurchasedHours = &v 3816 return s 3817} 3818 3819// SetPurchasedUnits sets the PurchasedUnits field's value. 3820func (s *ReservationAggregates) SetPurchasedUnits(v string) *ReservationAggregates { 3821 s.PurchasedUnits = &v 3822 return s 3823} 3824 3825// SetTotalActualHours sets the TotalActualHours field's value. 3826func (s *ReservationAggregates) SetTotalActualHours(v string) *ReservationAggregates { 3827 s.TotalActualHours = &v 3828 return s 3829} 3830 3831// SetTotalActualUnits sets the TotalActualUnits field's value. 3832func (s *ReservationAggregates) SetTotalActualUnits(v string) *ReservationAggregates { 3833 s.TotalActualUnits = &v 3834 return s 3835} 3836 3837// SetTotalAmortizedFee sets the TotalAmortizedFee field's value. 3838func (s *ReservationAggregates) SetTotalAmortizedFee(v string) *ReservationAggregates { 3839 s.TotalAmortizedFee = &v 3840 return s 3841} 3842 3843// SetTotalPotentialRISavings sets the TotalPotentialRISavings field's value. 3844func (s *ReservationAggregates) SetTotalPotentialRISavings(v string) *ReservationAggregates { 3845 s.TotalPotentialRISavings = &v 3846 return s 3847} 3848 3849// SetUnusedHours sets the UnusedHours field's value. 3850func (s *ReservationAggregates) SetUnusedHours(v string) *ReservationAggregates { 3851 s.UnusedHours = &v 3852 return s 3853} 3854 3855// SetUnusedUnits sets the UnusedUnits field's value. 3856func (s *ReservationAggregates) SetUnusedUnits(v string) *ReservationAggregates { 3857 s.UnusedUnits = &v 3858 return s 3859} 3860 3861// SetUtilizationPercentage sets the UtilizationPercentage field's value. 3862func (s *ReservationAggregates) SetUtilizationPercentage(v string) *ReservationAggregates { 3863 s.UtilizationPercentage = &v 3864 return s 3865} 3866 3867// SetUtilizationPercentageInUnits sets the UtilizationPercentageInUnits field's value. 3868func (s *ReservationAggregates) SetUtilizationPercentageInUnits(v string) *ReservationAggregates { 3869 s.UtilizationPercentageInUnits = &v 3870 return s 3871} 3872 3873// A group of reservations that share a set of attributes. 3874type ReservationCoverageGroup struct { 3875 _ struct{} `type:"structure"` 3876 3877 // The attributes for this group of reservations. 3878 Attributes map[string]*string `type:"map"` 3879 3880 // How much instance usage this group of reservations covered. 3881 Coverage *Coverage `type:"structure"` 3882} 3883 3884// String returns the string representation 3885func (s ReservationCoverageGroup) String() string { 3886 return awsutil.Prettify(s) 3887} 3888 3889// GoString returns the string representation 3890func (s ReservationCoverageGroup) GoString() string { 3891 return s.String() 3892} 3893 3894// SetAttributes sets the Attributes field's value. 3895func (s *ReservationCoverageGroup) SetAttributes(v map[string]*string) *ReservationCoverageGroup { 3896 s.Attributes = v 3897 return s 3898} 3899 3900// SetCoverage sets the Coverage field's value. 3901func (s *ReservationCoverageGroup) SetCoverage(v *Coverage) *ReservationCoverageGroup { 3902 s.Coverage = v 3903 return s 3904} 3905 3906// A specific reservation that AWS recommends for purchase. 3907type ReservationPurchaseRecommendation struct { 3908 _ struct{} `type:"structure"` 3909 3910 // The account scope that AWS recommends that you purchase this instance for. 3911 // For example, you can purchase this reservation for an entire organization 3912 // in AWS Organizations. 3913 AccountScope *string `type:"string" enum:"AccountScope"` 3914 3915 // How many days of previous usage that AWS considers when making this recommendation. 3916 LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` 3917 3918 // The payment option for the reservation. For example, AllUpfront or NoUpfront. 3919 PaymentOption *string `type:"string" enum:"PaymentOption"` 3920 3921 // Details about the recommended purchases. 3922 RecommendationDetails []*ReservationPurchaseRecommendationDetail `type:"list"` 3923 3924 // A summary about the recommended purchase. 3925 RecommendationSummary *ReservationPurchaseRecommendationSummary `type:"structure"` 3926 3927 // Hardware specifications for the service that you want recommendations for. 3928 ServiceSpecification *ServiceSpecification `type:"structure"` 3929 3930 // The term of the reservation that you want recommendations for, in years. 3931 TermInYears *string `type:"string" enum:"TermInYears"` 3932} 3933 3934// String returns the string representation 3935func (s ReservationPurchaseRecommendation) String() string { 3936 return awsutil.Prettify(s) 3937} 3938 3939// GoString returns the string representation 3940func (s ReservationPurchaseRecommendation) GoString() string { 3941 return s.String() 3942} 3943 3944// SetAccountScope sets the AccountScope field's value. 3945func (s *ReservationPurchaseRecommendation) SetAccountScope(v string) *ReservationPurchaseRecommendation { 3946 s.AccountScope = &v 3947 return s 3948} 3949 3950// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. 3951func (s *ReservationPurchaseRecommendation) SetLookbackPeriodInDays(v string) *ReservationPurchaseRecommendation { 3952 s.LookbackPeriodInDays = &v 3953 return s 3954} 3955 3956// SetPaymentOption sets the PaymentOption field's value. 3957func (s *ReservationPurchaseRecommendation) SetPaymentOption(v string) *ReservationPurchaseRecommendation { 3958 s.PaymentOption = &v 3959 return s 3960} 3961 3962// SetRecommendationDetails sets the RecommendationDetails field's value. 3963func (s *ReservationPurchaseRecommendation) SetRecommendationDetails(v []*ReservationPurchaseRecommendationDetail) *ReservationPurchaseRecommendation { 3964 s.RecommendationDetails = v 3965 return s 3966} 3967 3968// SetRecommendationSummary sets the RecommendationSummary field's value. 3969func (s *ReservationPurchaseRecommendation) SetRecommendationSummary(v *ReservationPurchaseRecommendationSummary) *ReservationPurchaseRecommendation { 3970 s.RecommendationSummary = v 3971 return s 3972} 3973 3974// SetServiceSpecification sets the ServiceSpecification field's value. 3975func (s *ReservationPurchaseRecommendation) SetServiceSpecification(v *ServiceSpecification) *ReservationPurchaseRecommendation { 3976 s.ServiceSpecification = v 3977 return s 3978} 3979 3980// SetTermInYears sets the TermInYears field's value. 3981func (s *ReservationPurchaseRecommendation) SetTermInYears(v string) *ReservationPurchaseRecommendation { 3982 s.TermInYears = &v 3983 return s 3984} 3985 3986// Details about your recommended reservation purchase. 3987type ReservationPurchaseRecommendationDetail struct { 3988 _ struct{} `type:"structure"` 3989 3990 // The account that this RI recommendation is for. 3991 AccountId *string `type:"string"` 3992 3993 // The average number of normalized units that you used in an hour during the 3994 // historical period. AWS uses this to calculate your recommended reservation 3995 // purchases. 3996 AverageNormalizedUnitsUsedPerHour *string `type:"string"` 3997 3998 // The average number of instances that you used in an hour during the historical 3999 // period. AWS uses this to calculate your recommended reservation purchases. 4000 AverageNumberOfInstancesUsedPerHour *string `type:"string"` 4001 4002 // The average utilization of your instances. AWS uses this to calculate your 4003 // recommended reservation purchases. 4004 AverageUtilization *string `type:"string"` 4005 4006 // The currency code that AWS used to calculate the costs for this instance. 4007 CurrencyCode *string `type:"string"` 4008 4009 // How long AWS estimates that it takes for this instance to start saving you 4010 // money, in months. 4011 EstimatedBreakEvenInMonths *string `type:"string"` 4012 4013 // How much AWS estimates that you spend on On-Demand Instances in a month. 4014 EstimatedMonthlyOnDemandCost *string `type:"string"` 4015 4016 // How much AWS estimates that this specific recommendation could save you in 4017 // a month. 4018 EstimatedMonthlySavingsAmount *string `type:"string"` 4019 4020 // How much AWS estimates that this specific recommendation could save you in 4021 // a month, as a percentage of your overall costs. 4022 EstimatedMonthlySavingsPercentage *string `type:"string"` 4023 4024 // How much AWS estimates that you would have spent for all usage during the 4025 // specified historical period if you had had a reservation. 4026 EstimatedReservationCostForLookbackPeriod *string `type:"string"` 4027 4028 // Details about the instances that AWS recommends that you purchase. 4029 InstanceDetails *InstanceDetails `type:"structure"` 4030 4031 // The maximum number of normalized units that you used in an hour during the 4032 // historical period. AWS uses this to calculate your recommended reservation 4033 // purchases. 4034 MaximumNormalizedUnitsUsedPerHour *string `type:"string"` 4035 4036 // The maximum number of instances that you used in an hour during the historical 4037 // period. AWS uses this to calculate your recommended reservation purchases. 4038 MaximumNumberOfInstancesUsedPerHour *string `type:"string"` 4039 4040 // The minimum number of normalized units that you used in an hour during the 4041 // historical period. AWS uses this to calculate your recommended reservation 4042 // purchases. 4043 MinimumNormalizedUnitsUsedPerHour *string `type:"string"` 4044 4045 // The minimum number of instances that you used in an hour during the historical 4046 // period. AWS uses this to calculate your recommended reservation purchases. 4047 MinimumNumberOfInstancesUsedPerHour *string `type:"string"` 4048 4049 // The number of normalized units that AWS recommends that you purchase. 4050 RecommendedNormalizedUnitsToPurchase *string `type:"string"` 4051 4052 // The number of instances that AWS recommends that you purchase. 4053 RecommendedNumberOfInstancesToPurchase *string `type:"string"` 4054 4055 // How much purchasing this instance costs you on a monthly basis. 4056 RecurringStandardMonthlyCost *string `type:"string"` 4057 4058 // How much purchasing this instance costs you upfront. 4059 UpfrontCost *string `type:"string"` 4060} 4061 4062// String returns the string representation 4063func (s ReservationPurchaseRecommendationDetail) String() string { 4064 return awsutil.Prettify(s) 4065} 4066 4067// GoString returns the string representation 4068func (s ReservationPurchaseRecommendationDetail) GoString() string { 4069 return s.String() 4070} 4071 4072// SetAccountId sets the AccountId field's value. 4073func (s *ReservationPurchaseRecommendationDetail) SetAccountId(v string) *ReservationPurchaseRecommendationDetail { 4074 s.AccountId = &v 4075 return s 4076} 4077 4078// SetAverageNormalizedUnitsUsedPerHour sets the AverageNormalizedUnitsUsedPerHour field's value. 4079func (s *ReservationPurchaseRecommendationDetail) SetAverageNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 4080 s.AverageNormalizedUnitsUsedPerHour = &v 4081 return s 4082} 4083 4084// SetAverageNumberOfInstancesUsedPerHour sets the AverageNumberOfInstancesUsedPerHour field's value. 4085func (s *ReservationPurchaseRecommendationDetail) SetAverageNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 4086 s.AverageNumberOfInstancesUsedPerHour = &v 4087 return s 4088} 4089 4090// SetAverageUtilization sets the AverageUtilization field's value. 4091func (s *ReservationPurchaseRecommendationDetail) SetAverageUtilization(v string) *ReservationPurchaseRecommendationDetail { 4092 s.AverageUtilization = &v 4093 return s 4094} 4095 4096// SetCurrencyCode sets the CurrencyCode field's value. 4097func (s *ReservationPurchaseRecommendationDetail) SetCurrencyCode(v string) *ReservationPurchaseRecommendationDetail { 4098 s.CurrencyCode = &v 4099 return s 4100} 4101 4102// SetEstimatedBreakEvenInMonths sets the EstimatedBreakEvenInMonths field's value. 4103func (s *ReservationPurchaseRecommendationDetail) SetEstimatedBreakEvenInMonths(v string) *ReservationPurchaseRecommendationDetail { 4104 s.EstimatedBreakEvenInMonths = &v 4105 return s 4106} 4107 4108// SetEstimatedMonthlyOnDemandCost sets the EstimatedMonthlyOnDemandCost field's value. 4109func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlyOnDemandCost(v string) *ReservationPurchaseRecommendationDetail { 4110 s.EstimatedMonthlyOnDemandCost = &v 4111 return s 4112} 4113 4114// SetEstimatedMonthlySavingsAmount sets the EstimatedMonthlySavingsAmount field's value. 4115func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationDetail { 4116 s.EstimatedMonthlySavingsAmount = &v 4117 return s 4118} 4119 4120// SetEstimatedMonthlySavingsPercentage sets the EstimatedMonthlySavingsPercentage field's value. 4121func (s *ReservationPurchaseRecommendationDetail) SetEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationDetail { 4122 s.EstimatedMonthlySavingsPercentage = &v 4123 return s 4124} 4125 4126// SetEstimatedReservationCostForLookbackPeriod sets the EstimatedReservationCostForLookbackPeriod field's value. 4127func (s *ReservationPurchaseRecommendationDetail) SetEstimatedReservationCostForLookbackPeriod(v string) *ReservationPurchaseRecommendationDetail { 4128 s.EstimatedReservationCostForLookbackPeriod = &v 4129 return s 4130} 4131 4132// SetInstanceDetails sets the InstanceDetails field's value. 4133func (s *ReservationPurchaseRecommendationDetail) SetInstanceDetails(v *InstanceDetails) *ReservationPurchaseRecommendationDetail { 4134 s.InstanceDetails = v 4135 return s 4136} 4137 4138// SetMaximumNormalizedUnitsUsedPerHour sets the MaximumNormalizedUnitsUsedPerHour field's value. 4139func (s *ReservationPurchaseRecommendationDetail) SetMaximumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 4140 s.MaximumNormalizedUnitsUsedPerHour = &v 4141 return s 4142} 4143 4144// SetMaximumNumberOfInstancesUsedPerHour sets the MaximumNumberOfInstancesUsedPerHour field's value. 4145func (s *ReservationPurchaseRecommendationDetail) SetMaximumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 4146 s.MaximumNumberOfInstancesUsedPerHour = &v 4147 return s 4148} 4149 4150// SetMinimumNormalizedUnitsUsedPerHour sets the MinimumNormalizedUnitsUsedPerHour field's value. 4151func (s *ReservationPurchaseRecommendationDetail) SetMinimumNormalizedUnitsUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 4152 s.MinimumNormalizedUnitsUsedPerHour = &v 4153 return s 4154} 4155 4156// SetMinimumNumberOfInstancesUsedPerHour sets the MinimumNumberOfInstancesUsedPerHour field's value. 4157func (s *ReservationPurchaseRecommendationDetail) SetMinimumNumberOfInstancesUsedPerHour(v string) *ReservationPurchaseRecommendationDetail { 4158 s.MinimumNumberOfInstancesUsedPerHour = &v 4159 return s 4160} 4161 4162// SetRecommendedNormalizedUnitsToPurchase sets the RecommendedNormalizedUnitsToPurchase field's value. 4163func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNormalizedUnitsToPurchase(v string) *ReservationPurchaseRecommendationDetail { 4164 s.RecommendedNormalizedUnitsToPurchase = &v 4165 return s 4166} 4167 4168// SetRecommendedNumberOfInstancesToPurchase sets the RecommendedNumberOfInstancesToPurchase field's value. 4169func (s *ReservationPurchaseRecommendationDetail) SetRecommendedNumberOfInstancesToPurchase(v string) *ReservationPurchaseRecommendationDetail { 4170 s.RecommendedNumberOfInstancesToPurchase = &v 4171 return s 4172} 4173 4174// SetRecurringStandardMonthlyCost sets the RecurringStandardMonthlyCost field's value. 4175func (s *ReservationPurchaseRecommendationDetail) SetRecurringStandardMonthlyCost(v string) *ReservationPurchaseRecommendationDetail { 4176 s.RecurringStandardMonthlyCost = &v 4177 return s 4178} 4179 4180// SetUpfrontCost sets the UpfrontCost field's value. 4181func (s *ReservationPurchaseRecommendationDetail) SetUpfrontCost(v string) *ReservationPurchaseRecommendationDetail { 4182 s.UpfrontCost = &v 4183 return s 4184} 4185 4186// Information about this specific recommendation, such as the time stamp for 4187// when AWS made a specific recommendation. 4188type ReservationPurchaseRecommendationMetadata struct { 4189 _ struct{} `type:"structure"` 4190 4191 // The time stamp for when AWS made this recommendation. 4192 GenerationTimestamp *string `type:"string"` 4193 4194 // The ID for this specific recommendation. 4195 RecommendationId *string `type:"string"` 4196} 4197 4198// String returns the string representation 4199func (s ReservationPurchaseRecommendationMetadata) String() string { 4200 return awsutil.Prettify(s) 4201} 4202 4203// GoString returns the string representation 4204func (s ReservationPurchaseRecommendationMetadata) GoString() string { 4205 return s.String() 4206} 4207 4208// SetGenerationTimestamp sets the GenerationTimestamp field's value. 4209func (s *ReservationPurchaseRecommendationMetadata) SetGenerationTimestamp(v string) *ReservationPurchaseRecommendationMetadata { 4210 s.GenerationTimestamp = &v 4211 return s 4212} 4213 4214// SetRecommendationId sets the RecommendationId field's value. 4215func (s *ReservationPurchaseRecommendationMetadata) SetRecommendationId(v string) *ReservationPurchaseRecommendationMetadata { 4216 s.RecommendationId = &v 4217 return s 4218} 4219 4220// A summary about this recommendation, such as the currency code, the amount 4221// that AWS estimates that you could save, and the total amount of reservation 4222// to purchase. 4223type ReservationPurchaseRecommendationSummary struct { 4224 _ struct{} `type:"structure"` 4225 4226 // The currency code used for this recommendation. 4227 CurrencyCode *string `type:"string"` 4228 4229 // The total amount that AWS estimates that this recommendation could save you 4230 // in a month. 4231 TotalEstimatedMonthlySavingsAmount *string `type:"string"` 4232 4233 // The total amount that AWS estimates that this recommendation could save you 4234 // in a month, as a percentage of your costs. 4235 TotalEstimatedMonthlySavingsPercentage *string `type:"string"` 4236} 4237 4238// String returns the string representation 4239func (s ReservationPurchaseRecommendationSummary) String() string { 4240 return awsutil.Prettify(s) 4241} 4242 4243// GoString returns the string representation 4244func (s ReservationPurchaseRecommendationSummary) GoString() string { 4245 return s.String() 4246} 4247 4248// SetCurrencyCode sets the CurrencyCode field's value. 4249func (s *ReservationPurchaseRecommendationSummary) SetCurrencyCode(v string) *ReservationPurchaseRecommendationSummary { 4250 s.CurrencyCode = &v 4251 return s 4252} 4253 4254// SetTotalEstimatedMonthlySavingsAmount sets the TotalEstimatedMonthlySavingsAmount field's value. 4255func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsAmount(v string) *ReservationPurchaseRecommendationSummary { 4256 s.TotalEstimatedMonthlySavingsAmount = &v 4257 return s 4258} 4259 4260// SetTotalEstimatedMonthlySavingsPercentage sets the TotalEstimatedMonthlySavingsPercentage field's value. 4261func (s *ReservationPurchaseRecommendationSummary) SetTotalEstimatedMonthlySavingsPercentage(v string) *ReservationPurchaseRecommendationSummary { 4262 s.TotalEstimatedMonthlySavingsPercentage = &v 4263 return s 4264} 4265 4266// A group of reservations that share a set of attributes. 4267type ReservationUtilizationGroup struct { 4268 _ struct{} `type:"structure"` 4269 4270 // The attributes for this group of reservations. 4271 Attributes map[string]*string `type:"map"` 4272 4273 // The key for a specific reservation attribute. 4274 Key *string `type:"string"` 4275 4276 // How much you used this group of reservations. 4277 Utilization *ReservationAggregates `type:"structure"` 4278 4279 // The value of a specific reservation attribute. 4280 Value *string `type:"string"` 4281} 4282 4283// String returns the string representation 4284func (s ReservationUtilizationGroup) String() string { 4285 return awsutil.Prettify(s) 4286} 4287 4288// GoString returns the string representation 4289func (s ReservationUtilizationGroup) GoString() string { 4290 return s.String() 4291} 4292 4293// SetAttributes sets the Attributes field's value. 4294func (s *ReservationUtilizationGroup) SetAttributes(v map[string]*string) *ReservationUtilizationGroup { 4295 s.Attributes = v 4296 return s 4297} 4298 4299// SetKey sets the Key field's value. 4300func (s *ReservationUtilizationGroup) SetKey(v string) *ReservationUtilizationGroup { 4301 s.Key = &v 4302 return s 4303} 4304 4305// SetUtilization sets the Utilization field's value. 4306func (s *ReservationUtilizationGroup) SetUtilization(v *ReservationAggregates) *ReservationUtilizationGroup { 4307 s.Utilization = v 4308 return s 4309} 4310 4311// SetValue sets the Value field's value. 4312func (s *ReservationUtilizationGroup) SetValue(v string) *ReservationUtilizationGroup { 4313 s.Value = &v 4314 return s 4315} 4316 4317// Details on the resource. 4318type ResourceDetails struct { 4319 _ struct{} `type:"structure"` 4320 4321 // Details on the Amazon EC2 resource. 4322 EC2ResourceDetails *EC2ResourceDetails `type:"structure"` 4323} 4324 4325// String returns the string representation 4326func (s ResourceDetails) String() string { 4327 return awsutil.Prettify(s) 4328} 4329 4330// GoString returns the string representation 4331func (s ResourceDetails) GoString() string { 4332 return s.String() 4333} 4334 4335// SetEC2ResourceDetails sets the EC2ResourceDetails field's value. 4336func (s *ResourceDetails) SetEC2ResourceDetails(v *EC2ResourceDetails) *ResourceDetails { 4337 s.EC2ResourceDetails = v 4338 return s 4339} 4340 4341// Resource utilization of current resource. 4342type ResourceUtilization struct { 4343 _ struct{} `type:"structure"` 4344 4345 // Utilization of current Amazon EC2 Instance 4346 EC2ResourceUtilization *EC2ResourceUtilization `type:"structure"` 4347} 4348 4349// String returns the string representation 4350func (s ResourceUtilization) String() string { 4351 return awsutil.Prettify(s) 4352} 4353 4354// GoString returns the string representation 4355func (s ResourceUtilization) GoString() string { 4356 return s.String() 4357} 4358 4359// SetEC2ResourceUtilization sets the EC2ResourceUtilization field's value. 4360func (s *ResourceUtilization) SetEC2ResourceUtilization(v *EC2ResourceUtilization) *ResourceUtilization { 4361 s.EC2ResourceUtilization = v 4362 return s 4363} 4364 4365// The result that is associated with a time period. 4366type ResultByTime struct { 4367 _ struct{} `type:"structure"` 4368 4369 // Whether the result is estimated. 4370 Estimated *bool `type:"boolean"` 4371 4372 // The groups that this time period includes. 4373 Groups []*Group `type:"list"` 4374 4375 // The time period that the result covers. 4376 TimePeriod *DateInterval `type:"structure"` 4377 4378 // The total amount of cost or usage accrued during the time period. 4379 Total map[string]*MetricValue `type:"map"` 4380} 4381 4382// String returns the string representation 4383func (s ResultByTime) String() string { 4384 return awsutil.Prettify(s) 4385} 4386 4387// GoString returns the string representation 4388func (s ResultByTime) GoString() string { 4389 return s.String() 4390} 4391 4392// SetEstimated sets the Estimated field's value. 4393func (s *ResultByTime) SetEstimated(v bool) *ResultByTime { 4394 s.Estimated = &v 4395 return s 4396} 4397 4398// SetGroups sets the Groups field's value. 4399func (s *ResultByTime) SetGroups(v []*Group) *ResultByTime { 4400 s.Groups = v 4401 return s 4402} 4403 4404// SetTimePeriod sets the TimePeriod field's value. 4405func (s *ResultByTime) SetTimePeriod(v *DateInterval) *ResultByTime { 4406 s.TimePeriod = v 4407 return s 4408} 4409 4410// SetTotal sets the Total field's value. 4411func (s *ResultByTime) SetTotal(v map[string]*MetricValue) *ResultByTime { 4412 s.Total = v 4413 return s 4414} 4415 4416// Recommendations to rightsize resources. 4417type RightsizingRecommendation struct { 4418 _ struct{} `type:"structure"` 4419 4420 // The account that this recommendation is for. 4421 AccountId *string `type:"string"` 4422 4423 // Context regarding the current instance. 4424 CurrentInstance *CurrentInstance `type:"structure"` 4425 4426 // Details for modification recommendations. 4427 ModifyRecommendationDetail *ModifyRecommendationDetail `type:"structure"` 4428 4429 // Recommendation to either terminate or modify the resource. 4430 RightsizingType *string `type:"string" enum:"RightsizingType"` 4431 4432 // Details for termination recommendations. 4433 TerminateRecommendationDetail *TerminateRecommendationDetail `type:"structure"` 4434} 4435 4436// String returns the string representation 4437func (s RightsizingRecommendation) String() string { 4438 return awsutil.Prettify(s) 4439} 4440 4441// GoString returns the string representation 4442func (s RightsizingRecommendation) GoString() string { 4443 return s.String() 4444} 4445 4446// SetAccountId sets the AccountId field's value. 4447func (s *RightsizingRecommendation) SetAccountId(v string) *RightsizingRecommendation { 4448 s.AccountId = &v 4449 return s 4450} 4451 4452// SetCurrentInstance sets the CurrentInstance field's value. 4453func (s *RightsizingRecommendation) SetCurrentInstance(v *CurrentInstance) *RightsizingRecommendation { 4454 s.CurrentInstance = v 4455 return s 4456} 4457 4458// SetModifyRecommendationDetail sets the ModifyRecommendationDetail field's value. 4459func (s *RightsizingRecommendation) SetModifyRecommendationDetail(v *ModifyRecommendationDetail) *RightsizingRecommendation { 4460 s.ModifyRecommendationDetail = v 4461 return s 4462} 4463 4464// SetRightsizingType sets the RightsizingType field's value. 4465func (s *RightsizingRecommendation) SetRightsizingType(v string) *RightsizingRecommendation { 4466 s.RightsizingType = &v 4467 return s 4468} 4469 4470// SetTerminateRecommendationDetail sets the TerminateRecommendationDetail field's value. 4471func (s *RightsizingRecommendation) SetTerminateRecommendationDetail(v *TerminateRecommendationDetail) *RightsizingRecommendation { 4472 s.TerminateRecommendationDetail = v 4473 return s 4474} 4475 4476// Metadata for this recommendation set. 4477type RightsizingRecommendationMetadata struct { 4478 _ struct{} `type:"structure"` 4479 4480 // The time stamp for when Amazon Web Services made this recommendation. 4481 GenerationTimestamp *string `type:"string"` 4482 4483 // How many days of previous usage that Amazon Web Services considers when making 4484 // this recommendation. 4485 LookbackPeriodInDays *string `type:"string" enum:"LookbackPeriodInDays"` 4486 4487 // The ID for this specific recommendation. 4488 RecommendationId *string `type:"string"` 4489} 4490 4491// String returns the string representation 4492func (s RightsizingRecommendationMetadata) String() string { 4493 return awsutil.Prettify(s) 4494} 4495 4496// GoString returns the string representation 4497func (s RightsizingRecommendationMetadata) GoString() string { 4498 return s.String() 4499} 4500 4501// SetGenerationTimestamp sets the GenerationTimestamp field's value. 4502func (s *RightsizingRecommendationMetadata) SetGenerationTimestamp(v string) *RightsizingRecommendationMetadata { 4503 s.GenerationTimestamp = &v 4504 return s 4505} 4506 4507// SetLookbackPeriodInDays sets the LookbackPeriodInDays field's value. 4508func (s *RightsizingRecommendationMetadata) SetLookbackPeriodInDays(v string) *RightsizingRecommendationMetadata { 4509 s.LookbackPeriodInDays = &v 4510 return s 4511} 4512 4513// SetRecommendationId sets the RecommendationId field's value. 4514func (s *RightsizingRecommendationMetadata) SetRecommendationId(v string) *RightsizingRecommendationMetadata { 4515 s.RecommendationId = &v 4516 return s 4517} 4518 4519// Summary of rightsizing recommendations 4520type RightsizingRecommendationSummary struct { 4521 _ struct{} `type:"structure"` 4522 4523 // Estimated total savings resulting from modifications, on a monthly basis. 4524 EstimatedTotalMonthlySavingsAmount *string `type:"string"` 4525 4526 // The currency code that Amazon Web Services used to calculate the savings. 4527 SavingsCurrencyCode *string `type:"string"` 4528 4529 // Savings percentage based on the recommended modifications, relative to the 4530 // total On Demand costs associated with these instances. 4531 SavingsPercentage *string `type:"string"` 4532 4533 // Total number of instance recommendations. 4534 TotalRecommendationCount *string `type:"string"` 4535} 4536 4537// String returns the string representation 4538func (s RightsizingRecommendationSummary) String() string { 4539 return awsutil.Prettify(s) 4540} 4541 4542// GoString returns the string representation 4543func (s RightsizingRecommendationSummary) GoString() string { 4544 return s.String() 4545} 4546 4547// SetEstimatedTotalMonthlySavingsAmount sets the EstimatedTotalMonthlySavingsAmount field's value. 4548func (s *RightsizingRecommendationSummary) SetEstimatedTotalMonthlySavingsAmount(v string) *RightsizingRecommendationSummary { 4549 s.EstimatedTotalMonthlySavingsAmount = &v 4550 return s 4551} 4552 4553// SetSavingsCurrencyCode sets the SavingsCurrencyCode field's value. 4554func (s *RightsizingRecommendationSummary) SetSavingsCurrencyCode(v string) *RightsizingRecommendationSummary { 4555 s.SavingsCurrencyCode = &v 4556 return s 4557} 4558 4559// SetSavingsPercentage sets the SavingsPercentage field's value. 4560func (s *RightsizingRecommendationSummary) SetSavingsPercentage(v string) *RightsizingRecommendationSummary { 4561 s.SavingsPercentage = &v 4562 return s 4563} 4564 4565// SetTotalRecommendationCount sets the TotalRecommendationCount field's value. 4566func (s *RightsizingRecommendationSummary) SetTotalRecommendationCount(v string) *RightsizingRecommendationSummary { 4567 s.TotalRecommendationCount = &v 4568 return s 4569} 4570 4571// Hardware specifications for the service that you want recommendations for. 4572type ServiceSpecification struct { 4573 _ struct{} `type:"structure"` 4574 4575 // The Amazon EC2 hardware specifications that you want AWS to provide recommendations 4576 // for. 4577 EC2Specification *EC2Specification `type:"structure"` 4578} 4579 4580// String returns the string representation 4581func (s ServiceSpecification) String() string { 4582 return awsutil.Prettify(s) 4583} 4584 4585// GoString returns the string representation 4586func (s ServiceSpecification) GoString() string { 4587 return s.String() 4588} 4589 4590// SetEC2Specification sets the EC2Specification field's value. 4591func (s *ServiceSpecification) SetEC2Specification(v *EC2Specification) *ServiceSpecification { 4592 s.EC2Specification = v 4593 return s 4594} 4595 4596// The values that are available for a tag. 4597type TagValues struct { 4598 _ struct{} `type:"structure"` 4599 4600 // The key for the tag. 4601 Key *string `type:"string"` 4602 4603 // The specific value of the tag. 4604 Values []*string `type:"list"` 4605} 4606 4607// String returns the string representation 4608func (s TagValues) String() string { 4609 return awsutil.Prettify(s) 4610} 4611 4612// GoString returns the string representation 4613func (s TagValues) GoString() string { 4614 return s.String() 4615} 4616 4617// SetKey sets the Key field's value. 4618func (s *TagValues) SetKey(v string) *TagValues { 4619 s.Key = &v 4620 return s 4621} 4622 4623// SetValues sets the Values field's value. 4624func (s *TagValues) SetValues(v []*string) *TagValues { 4625 s.Values = v 4626 return s 4627} 4628 4629// Details on recommended instance. 4630type TargetInstance struct { 4631 _ struct{} `type:"structure"` 4632 4633 // The currency code that Amazon Web Services used to calculate the costs for 4634 // this instance. 4635 CurrencyCode *string `type:"string"` 4636 4637 // Indicates whether or not this recommendation is the defaulted Amazon Web 4638 // Services recommendation. 4639 DefaultTargetInstance *bool `type:"boolean"` 4640 4641 // Expected cost to operate this instance type on a monthly basis. 4642 EstimatedMonthlyCost *string `type:"string"` 4643 4644 // Estimated savings resulting from modification, on a monthly basis. 4645 EstimatedMonthlySavings *string `type:"string"` 4646 4647 // Expected utilization metrics for target instance type. 4648 ExpectedResourceUtilization *ResourceUtilization `type:"structure"` 4649 4650 // Details on the target instance type. 4651 ResourceDetails *ResourceDetails `type:"structure"` 4652} 4653 4654// String returns the string representation 4655func (s TargetInstance) String() string { 4656 return awsutil.Prettify(s) 4657} 4658 4659// GoString returns the string representation 4660func (s TargetInstance) GoString() string { 4661 return s.String() 4662} 4663 4664// SetCurrencyCode sets the CurrencyCode field's value. 4665func (s *TargetInstance) SetCurrencyCode(v string) *TargetInstance { 4666 s.CurrencyCode = &v 4667 return s 4668} 4669 4670// SetDefaultTargetInstance sets the DefaultTargetInstance field's value. 4671func (s *TargetInstance) SetDefaultTargetInstance(v bool) *TargetInstance { 4672 s.DefaultTargetInstance = &v 4673 return s 4674} 4675 4676// SetEstimatedMonthlyCost sets the EstimatedMonthlyCost field's value. 4677func (s *TargetInstance) SetEstimatedMonthlyCost(v string) *TargetInstance { 4678 s.EstimatedMonthlyCost = &v 4679 return s 4680} 4681 4682// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. 4683func (s *TargetInstance) SetEstimatedMonthlySavings(v string) *TargetInstance { 4684 s.EstimatedMonthlySavings = &v 4685 return s 4686} 4687 4688// SetExpectedResourceUtilization sets the ExpectedResourceUtilization field's value. 4689func (s *TargetInstance) SetExpectedResourceUtilization(v *ResourceUtilization) *TargetInstance { 4690 s.ExpectedResourceUtilization = v 4691 return s 4692} 4693 4694// SetResourceDetails sets the ResourceDetails field's value. 4695func (s *TargetInstance) SetResourceDetails(v *ResourceDetails) *TargetInstance { 4696 s.ResourceDetails = v 4697 return s 4698} 4699 4700// Details on termination recommendation. 4701type TerminateRecommendationDetail struct { 4702 _ struct{} `type:"structure"` 4703 4704 // The currency code that Amazon Web Services used to calculate the costs for 4705 // this instance. 4706 CurrencyCode *string `type:"string"` 4707 4708 // Estimated savings resulting from modification, on a monthly basis. 4709 EstimatedMonthlySavings *string `type:"string"` 4710} 4711 4712// String returns the string representation 4713func (s TerminateRecommendationDetail) String() string { 4714 return awsutil.Prettify(s) 4715} 4716 4717// GoString returns the string representation 4718func (s TerminateRecommendationDetail) GoString() string { 4719 return s.String() 4720} 4721 4722// SetCurrencyCode sets the CurrencyCode field's value. 4723func (s *TerminateRecommendationDetail) SetCurrencyCode(v string) *TerminateRecommendationDetail { 4724 s.CurrencyCode = &v 4725 return s 4726} 4727 4728// SetEstimatedMonthlySavings sets the EstimatedMonthlySavings field's value. 4729func (s *TerminateRecommendationDetail) SetEstimatedMonthlySavings(v string) *TerminateRecommendationDetail { 4730 s.EstimatedMonthlySavings = &v 4731 return s 4732} 4733 4734// The amount of utilization, in hours. 4735type UtilizationByTime struct { 4736 _ struct{} `type:"structure"` 4737 4738 // The groups that this utilization result uses. 4739 Groups []*ReservationUtilizationGroup `type:"list"` 4740 4741 // The period of time that this utilization was used for. 4742 TimePeriod *DateInterval `type:"structure"` 4743 4744 // The total number of reservation hours that were used. 4745 Total *ReservationAggregates `type:"structure"` 4746} 4747 4748// String returns the string representation 4749func (s UtilizationByTime) String() string { 4750 return awsutil.Prettify(s) 4751} 4752 4753// GoString returns the string representation 4754func (s UtilizationByTime) GoString() string { 4755 return s.String() 4756} 4757 4758// SetGroups sets the Groups field's value. 4759func (s *UtilizationByTime) SetGroups(v []*ReservationUtilizationGroup) *UtilizationByTime { 4760 s.Groups = v 4761 return s 4762} 4763 4764// SetTimePeriod sets the TimePeriod field's value. 4765func (s *UtilizationByTime) SetTimePeriod(v *DateInterval) *UtilizationByTime { 4766 s.TimePeriod = v 4767 return s 4768} 4769 4770// SetTotal sets the Total field's value. 4771func (s *UtilizationByTime) SetTotal(v *ReservationAggregates) *UtilizationByTime { 4772 s.Total = v 4773 return s 4774} 4775 4776const ( 4777 // AccountScopePayer is a AccountScope enum value 4778 AccountScopePayer = "PAYER" 4779 4780 // AccountScopeLinked is a AccountScope enum value 4781 AccountScopeLinked = "LINKED" 4782) 4783 4784const ( 4785 // ContextCostAndUsage is a Context enum value 4786 ContextCostAndUsage = "COST_AND_USAGE" 4787 4788 // ContextReservations is a Context enum value 4789 ContextReservations = "RESERVATIONS" 4790) 4791 4792const ( 4793 // DimensionAz is a Dimension enum value 4794 DimensionAz = "AZ" 4795 4796 // DimensionInstanceType is a Dimension enum value 4797 DimensionInstanceType = "INSTANCE_TYPE" 4798 4799 // DimensionLinkedAccount is a Dimension enum value 4800 DimensionLinkedAccount = "LINKED_ACCOUNT" 4801 4802 // DimensionOperation is a Dimension enum value 4803 DimensionOperation = "OPERATION" 4804 4805 // DimensionPurchaseType is a Dimension enum value 4806 DimensionPurchaseType = "PURCHASE_TYPE" 4807 4808 // DimensionRegion is a Dimension enum value 4809 DimensionRegion = "REGION" 4810 4811 // DimensionService is a Dimension enum value 4812 DimensionService = "SERVICE" 4813 4814 // DimensionUsageType is a Dimension enum value 4815 DimensionUsageType = "USAGE_TYPE" 4816 4817 // DimensionUsageTypeGroup is a Dimension enum value 4818 DimensionUsageTypeGroup = "USAGE_TYPE_GROUP" 4819 4820 // DimensionRecordType is a Dimension enum value 4821 DimensionRecordType = "RECORD_TYPE" 4822 4823 // DimensionOperatingSystem is a Dimension enum value 4824 DimensionOperatingSystem = "OPERATING_SYSTEM" 4825 4826 // DimensionTenancy is a Dimension enum value 4827 DimensionTenancy = "TENANCY" 4828 4829 // DimensionScope is a Dimension enum value 4830 DimensionScope = "SCOPE" 4831 4832 // DimensionPlatform is a Dimension enum value 4833 DimensionPlatform = "PLATFORM" 4834 4835 // DimensionSubscriptionId is a Dimension enum value 4836 DimensionSubscriptionId = "SUBSCRIPTION_ID" 4837 4838 // DimensionLegalEntityName is a Dimension enum value 4839 DimensionLegalEntityName = "LEGAL_ENTITY_NAME" 4840 4841 // DimensionDeploymentOption is a Dimension enum value 4842 DimensionDeploymentOption = "DEPLOYMENT_OPTION" 4843 4844 // DimensionDatabaseEngine is a Dimension enum value 4845 DimensionDatabaseEngine = "DATABASE_ENGINE" 4846 4847 // DimensionCacheEngine is a Dimension enum value 4848 DimensionCacheEngine = "CACHE_ENGINE" 4849 4850 // DimensionInstanceTypeFamily is a Dimension enum value 4851 DimensionInstanceTypeFamily = "INSTANCE_TYPE_FAMILY" 4852 4853 // DimensionBillingEntity is a Dimension enum value 4854 DimensionBillingEntity = "BILLING_ENTITY" 4855 4856 // DimensionReservationId is a Dimension enum value 4857 DimensionReservationId = "RESERVATION_ID" 4858 4859 // DimensionRightsizingType is a Dimension enum value 4860 DimensionRightsizingType = "RIGHTSIZING_TYPE" 4861) 4862 4863const ( 4864 // GranularityDaily is a Granularity enum value 4865 GranularityDaily = "DAILY" 4866 4867 // GranularityMonthly is a Granularity enum value 4868 GranularityMonthly = "MONTHLY" 4869 4870 // GranularityHourly is a Granularity enum value 4871 GranularityHourly = "HOURLY" 4872) 4873 4874const ( 4875 // GroupDefinitionTypeDimension is a GroupDefinitionType enum value 4876 GroupDefinitionTypeDimension = "DIMENSION" 4877 4878 // GroupDefinitionTypeTag is a GroupDefinitionType enum value 4879 GroupDefinitionTypeTag = "TAG" 4880) 4881 4882const ( 4883 // LookbackPeriodInDaysSevenDays is a LookbackPeriodInDays enum value 4884 LookbackPeriodInDaysSevenDays = "SEVEN_DAYS" 4885 4886 // LookbackPeriodInDaysThirtyDays is a LookbackPeriodInDays enum value 4887 LookbackPeriodInDaysThirtyDays = "THIRTY_DAYS" 4888 4889 // LookbackPeriodInDaysSixtyDays is a LookbackPeriodInDays enum value 4890 LookbackPeriodInDaysSixtyDays = "SIXTY_DAYS" 4891) 4892 4893const ( 4894 // MetricBlendedCost is a Metric enum value 4895 MetricBlendedCost = "BLENDED_COST" 4896 4897 // MetricUnblendedCost is a Metric enum value 4898 MetricUnblendedCost = "UNBLENDED_COST" 4899 4900 // MetricAmortizedCost is a Metric enum value 4901 MetricAmortizedCost = "AMORTIZED_COST" 4902 4903 // MetricNetUnblendedCost is a Metric enum value 4904 MetricNetUnblendedCost = "NET_UNBLENDED_COST" 4905 4906 // MetricNetAmortizedCost is a Metric enum value 4907 MetricNetAmortizedCost = "NET_AMORTIZED_COST" 4908 4909 // MetricUsageQuantity is a Metric enum value 4910 MetricUsageQuantity = "USAGE_QUANTITY" 4911 4912 // MetricNormalizedUsageAmount is a Metric enum value 4913 MetricNormalizedUsageAmount = "NORMALIZED_USAGE_AMOUNT" 4914) 4915 4916const ( 4917 // OfferingClassStandard is a OfferingClass enum value 4918 OfferingClassStandard = "STANDARD" 4919 4920 // OfferingClassConvertible is a OfferingClass enum value 4921 OfferingClassConvertible = "CONVERTIBLE" 4922) 4923 4924const ( 4925 // PaymentOptionNoUpfront is a PaymentOption enum value 4926 PaymentOptionNoUpfront = "NO_UPFRONT" 4927 4928 // PaymentOptionPartialUpfront is a PaymentOption enum value 4929 PaymentOptionPartialUpfront = "PARTIAL_UPFRONT" 4930 4931 // PaymentOptionAllUpfront is a PaymentOption enum value 4932 PaymentOptionAllUpfront = "ALL_UPFRONT" 4933 4934 // PaymentOptionLightUtilization is a PaymentOption enum value 4935 PaymentOptionLightUtilization = "LIGHT_UTILIZATION" 4936 4937 // PaymentOptionMediumUtilization is a PaymentOption enum value 4938 PaymentOptionMediumUtilization = "MEDIUM_UTILIZATION" 4939 4940 // PaymentOptionHeavyUtilization is a PaymentOption enum value 4941 PaymentOptionHeavyUtilization = "HEAVY_UTILIZATION" 4942) 4943 4944const ( 4945 // RightsizingTypeTerminate is a RightsizingType enum value 4946 RightsizingTypeTerminate = "TERMINATE" 4947 4948 // RightsizingTypeModify is a RightsizingType enum value 4949 RightsizingTypeModify = "MODIFY" 4950) 4951 4952const ( 4953 // TermInYearsOneYear is a TermInYears enum value 4954 TermInYearsOneYear = "ONE_YEAR" 4955 4956 // TermInYearsThreeYears is a TermInYears enum value 4957 TermInYearsThreeYears = "THREE_YEARS" 4958) 4959