diff --git a/CHANGELOG.md b/CHANGELOG.md index 24e9a9759ba..9984ffcedf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +Release v1.20.16 (2019-07-08) +=== + +### Service Client Updates +* `service/ce`: Updates service API and documentation +* `aws/endpoints`: Updated Regions and Endpoints metadata. + Release v1.20.15 (2019-07-03) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 996c64cf2c3..214f8d8af25 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -2328,6 +2328,7 @@ var awsPartition = partition{ "ap-southeast-2": endpoint{}, "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, + "eu-north-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, "eu-west-3": endpoint{}, @@ -3759,6 +3760,13 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "license-manager": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + "cn-northwest-1": endpoint{}, + }, + }, "logs": service{ Endpoints: endpoints{ @@ -4406,6 +4414,12 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "ram": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, + }, + }, "rds": service{ Endpoints: endpoints{ diff --git a/aws/version.go b/aws/version.go index b994f26177e..06211935975 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.20.15" +const SDKVersion = "1.20.16" diff --git a/models/apis/ce/2017-10-25/api-2.json b/models/apis/ce/2017-10-25/api-2.json index 8083d249052..910ebd4710c 100644 --- a/models/apis/ce/2017-10-25/api-2.json +++ b/models/apis/ce/2017-10-25/api-2.json @@ -116,6 +116,20 @@ {"shape":"InvalidNextTokenException"}, {"shape":"RequestChangedException"} ] + }, + "GetUsageForecast":{ + "name":"GetUsageForecast", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUsageForecastRequest"}, + "output":{"shape":"GetUsageForecastResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"DataUnavailableException"}, + {"shape":"UnresolvableUsageUnitException"} + ] } }, "shapes":{ @@ -488,6 +502,28 @@ "TotalSize":{"shape":"PageSize"} } }, + "GetUsageForecastRequest":{ + "type":"structure", + "required":[ + "TimePeriod", + "Metric", + "Granularity" + ], + "members":{ + "TimePeriod":{"shape":"DateInterval"}, + "Metric":{"shape":"Metric"}, + "Granularity":{"shape":"Granularity"}, + "Filter":{"shape":"Expression"}, + "PredictionIntervalLevel":{"shape":"PredictionIntervalLevel"} + } + }, + "GetUsageForecastResponse":{ + "type":"structure", + "members":{ + "Total":{"shape":"MetricValue"}, + "ForecastResultsByTime":{"shape":"ForecastResultsByTime"} + } + }, "Granularity":{ "type":"string", "enum":[ @@ -812,6 +848,13 @@ "TotalPotentialRISavings":{"type":"string"}, "TotalRunningHours":{"type":"string"}, "TotalRunningNormalizedUnits":{"type":"string"}, + "UnresolvableUsageUnitException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, "UnusedHours":{"type":"string"}, "UnusedUnits":{"type":"string"}, "UtilizationByTime":{ diff --git a/models/apis/ce/2017-10-25/docs-2.json b/models/apis/ce/2017-10-25/docs-2.json index a121dfa4db6..65a2890ef99 100644 --- a/models/apis/ce/2017-10-25/docs-2.json +++ b/models/apis/ce/2017-10-25/docs-2.json @@ -8,7 +8,8 @@ "GetReservationCoverage": "

Retrieves the reservation coverage for your account. This enables you to see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon Relational Database Service, or Amazon Redshift usage is covered by a reservation. An organization's master account can see the coverage of the associated member accounts. For any time period, you can filter data about reservation usage by the following dimensions:

To determine valid values for a dimension, use the GetDimensionValues operation.

", "GetReservationPurchaseRecommendation": "

Gets recommendations for which reservations to purchase. These recommendations could help you reduce your costs. Reservations provide a discounted hourly rate (up to 75%) compared to On-Demand pricing.

AWS generates your recommendations by identifying your On-Demand usage during a specific time period and collecting your usage into categories that are eligible for a reservation. After AWS has these categories, it simulates every combination of reservations in each category of usage to identify the best number of each type of RI to purchase to maximize your estimated savings.

For example, AWS automatically aggregates your Amazon EC2 Linux, shared tenancy, and c4 family usage in the US West (Oregon) Region and recommends that you buy size-flexible regional reservations to apply to the c4 family usage. AWS recommends the smallest size instance in an instance family. This makes it easier to purchase a size-flexible RI. AWS also shows the equal number of normalized units so that you can purchase any instance size that you want. For this example, your RI recommendation would be for c4.large because that is the smallest size instance in the c4 instance family.

", "GetReservationUtilization": "

Retrieves the reservation utilization for your account. Master accounts in an organization have access to member accounts. You can filter data by dimensions in a time period. You can use GetDimensionValues to determine the possible dimension values. Currently, you can group only by SUBSCRIPTION_ID.

", - "GetTags": "

Queries for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string.

" + "GetTags": "

Queries for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string.

", + "GetUsageForecast": "

Retrieves a forecast for how much Amazon Web Services predicts that you will use over the forecast time period that you select, based on your past usage.

" }, "shapes": { "AccountScope": { @@ -127,6 +128,7 @@ "GetReservationCoverageRequest$TimePeriod": "

The start and end dates of the period that you want to retrieve data about reservation coverage for. You can retrieve data for a maximum of 13 months: the last 12 months and the current month. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", "GetReservationUtilizationRequest$TimePeriod": "

Sets the start and end dates for retrieving RI utilization. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", "GetTagsRequest$TimePeriod": "

The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", + "GetUsageForecastRequest$TimePeriod": "

The start and end dates of the period that you want to retrieve usage forecast for. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", "ResultByTime$TimePeriod": "

The time period that the result covers.

", "UtilizationByTime$TimePeriod": "

The period of time that this utilization was used for.

" } @@ -193,7 +195,8 @@ "DataUnavailableException$Message": null, "InvalidNextTokenException$Message": null, "LimitExceededException$Message": null, - "RequestChangedException$Message": null + "RequestChangedException$Message": null, + "UnresolvableUsageUnitException$Message": null } }, "Estimated": { @@ -210,7 +213,8 @@ "GetCostAndUsageRequest$Filter": "

Filters AWS costs by different dimensions. For example, you can specify SERVICE and LINKED_ACCOUNT and get the costs that are associated with that account's usage of that service. You can nest Expression objects to define any combination of dimension filters. For more information, see Expression.

", "GetCostForecastRequest$Filter": "

The filters that you want to use to filter your forecast. Cost Explorer API supports all of the Cost Explorer filters.

", "GetReservationCoverageRequest$Filter": "

Filters utilization data by dimensions. You can filter by the following dimensions:

GetReservationCoverage uses the same Expression object as the other operations, but only AND is supported among each dimension. You can nest only one level deep. If there are multiple values for a dimension, they are OR'd together.

If you don't provide a SERVICE filter, Cost Explorer defaults to EC2.

", - "GetReservationUtilizationRequest$Filter": "

Filters utilization data by dimensions. You can filter by the following dimensions:

GetReservationUtilization uses the same Expression object as the other operations, but only AND is supported among each dimension, and nesting is supported up to only one level deep. If there are multiple values for a dimension, they are OR'd together.

" + "GetReservationUtilizationRequest$Filter": "

Filters utilization data by dimensions. You can filter by the following dimensions:

GetReservationUtilization uses the same Expression object as the other operations, but only AND is supported among each dimension, and nesting is supported up to only one level deep. If there are multiple values for a dimension, they are OR'd together.

", + "GetUsageForecastRequest$Filter": "

The filters that you want to use to filter your forecast. Cost Explorer API supports all of the Cost Explorer filters.

" } }, "Expressions": { @@ -229,7 +233,8 @@ "ForecastResultsByTime": { "base": null, "refs": { - "GetCostForecastResponse$ForecastResultsByTime": "

The forecasts for your query, in order. For DAILY forecasts, this is a list of days. For MONTHLY forecasts, this is a list of months.

" + "GetCostForecastResponse$ForecastResultsByTime": "

The forecasts for your query, in order. For DAILY forecasts, this is a list of days. For MONTHLY forecasts, this is a list of months.

", + "GetUsageForecastResponse$ForecastResultsByTime": "

The forecasts for your query, in order. For DAILY forecasts, this is a list of days. For MONTHLY forecasts, this is a list of months.

" } }, "GenericBoolean": { @@ -373,13 +378,24 @@ "refs": { } }, + "GetUsageForecastRequest": { + "base": null, + "refs": { + } + }, + "GetUsageForecastResponse": { + "base": null, + "refs": { + } + }, "Granularity": { "base": null, "refs": { "GetCostAndUsageRequest$Granularity": "

Sets the AWS cost granularity to MONTHLY or DAILY. If Granularity isn't set, the response object doesn't include the Granularity, either MONTHLY or DAILY.

The GetCostAndUsageRequest operation supports only DAILY and MONTHLY granularities.

", "GetCostForecastRequest$Granularity": "

How granular you want the forecast to be. You can get 3 months of DAILY forecasts or 12 months of MONTHLY forecasts.

The GetCostForecast operation supports only DAILY and MONTHLY granularities.

", "GetReservationCoverageRequest$Granularity": "

The granularity of the AWS cost data for the reservation. Valid values are MONTHLY and DAILY.

If GroupBy is set, Granularity can't be set. If Granularity isn't set, the response object doesn't include Granularity, either MONTHLY or DAILY.

The GetReservationCoverage operation supports only DAILY and MONTHLY granularities.

", - "GetReservationUtilizationRequest$Granularity": "

If GroupBy is set, Granularity can't be set. If Granularity isn't set, the response object doesn't include Granularity, either MONTHLY or DAILY. If both GroupBy and Granularity aren't set, GetReservationUtilization defaults to DAILY.

The GetReservationUtilization operation supports only DAILY and MONTHLY granularities.

" + "GetReservationUtilizationRequest$Granularity": "

If GroupBy is set, Granularity can't be set. If Granularity isn't set, the response object doesn't include Granularity, either MONTHLY or DAILY. If both GroupBy and Granularity aren't set, GetReservationUtilization defaults to DAILY.

The GetReservationUtilization operation supports only DAILY and MONTHLY granularities.

", + "GetUsageForecastRequest$Granularity": "

How granular you want the forecast to be. You can get 3 months of DAILY forecasts or 12 months of MONTHLY forecasts.

The GetUsageForecast operation supports only DAILY and MONTHLY granularities.

" } }, "Group": { @@ -459,7 +475,8 @@ "Metric": { "base": null, "refs": { - "GetCostForecastRequest$Metric": "

Which metric Cost Explorer uses to create your forecast. For more information about blended and unblended rates, see Why does the \"blended\" annotation appear on some line items in my bill?.

Valid values for a GetCostForecast call are the following:

" + "GetCostForecastRequest$Metric": "

Which metric Cost Explorer uses to create your forecast. For more information about blended and unblended rates, see Why does the \"blended\" annotation appear on some line items in my bill?.

Valid values for a GetCostForecast call are the following:

", + "GetUsageForecastRequest$Metric": "

Which metric Cost Explorer uses to create your forecast.

Valid values for a GetUsageForecast call are the following:

" } }, "MetricAmount": { @@ -492,6 +509,7 @@ "base": "

The aggregated value for a metric.

", "refs": { "GetCostForecastResponse$Total": "

How much you are forecasted to spend over the forecast period, in USD.

", + "GetUsageForecastResponse$Total": "

How much you're forecasted to use over the forecast period.

", "Metrics$value": null } }, @@ -580,7 +598,8 @@ "PredictionIntervalLevel": { "base": null, "refs": { - "GetCostForecastRequest$PredictionIntervalLevel": "

Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction intervals.

" + "GetCostForecastRequest$PredictionIntervalLevel": "

Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction intervals.

", + "GetUsageForecastRequest$PredictionIntervalLevel": "

Cost Explorer always returns the mean forecast as a single point. You can request a prediction interval around the mean by specifying a confidence level. The higher the confidence level, the more confident Cost Explorer is about the actual value falling in the prediction interval. Higher confidence levels result in wider prediction intervals.

" } }, "PurchasedHours": { @@ -792,6 +811,11 @@ "CoverageNormalizedUnits$TotalRunningNormalizedUnits": "

The total number of normalized units that you used.

" } }, + "UnresolvableUsageUnitException": { + "base": "

Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup filter selections that contain matching units, for example: hours.(

", + "refs": { + } + }, "UnusedHours": { "base": null, "refs": { diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 73b0204a00d..8d21a3c27db 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -2170,6 +2170,7 @@ "ap-southeast-2" : { }, "ca-central-1" : { }, "eu-central-1" : { }, + "eu-north-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, "eu-west-3" : { }, @@ -3534,6 +3535,12 @@ "cn-northwest-1" : { } } }, + "license-manager" : { + "endpoints" : { + "cn-north-1" : { }, + "cn-northwest-1" : { } + } + }, "logs" : { "endpoints" : { "cn-north-1" : { }, @@ -4107,6 +4114,11 @@ "us-gov-west-1" : { } } }, + "ram" : { + "endpoints" : { + "us-gov-west-1" : { } + } + }, "rds" : { "endpoints" : { "us-gov-east-1" : { }, diff --git a/service/costexplorer/api.go b/service/costexplorer/api.go index b3a2fa0abb3..f2b6e912143 100644 --- a/service/costexplorer/api.go +++ b/service/costexplorer/api.go @@ -681,6 +681,93 @@ func (c *CostExplorer) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, return out, req.Send() } +const opGetUsageForecast = "GetUsageForecast" + +// GetUsageForecastRequest generates a "aws/request.Request" representing the +// client's request for the GetUsageForecast operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetUsageForecast for more information on using the GetUsageForecast +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetUsageForecastRequest method. +// req, resp := client.GetUsageForecastRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast +func (c *CostExplorer) GetUsageForecastRequest(input *GetUsageForecastInput) (req *request.Request, output *GetUsageForecastOutput) { + op := &request.Operation{ + Name: opGetUsageForecast, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetUsageForecastInput{} + } + + output = &GetUsageForecastOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetUsageForecast API operation for AWS Cost Explorer Service. +// +// Retrieves a forecast for how much Amazon Web Services predicts that you will +// use over the forecast time period that you select, based on your past usage. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cost Explorer Service's +// API operation GetUsageForecast for usage and error information. +// +// Returned Error Codes: +// * ErrCodeLimitExceededException "LimitExceededException" +// You made too many calls in a short period of time. Try again later. +// +// * ErrCodeDataUnavailableException "DataUnavailableException" +// The requested data is unavailable. +// +// * ErrCodeUnresolvableUsageUnitException "UnresolvableUsageUnitException" +// Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup +// filter selections that contain matching units, for example: hours.( +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetUsageForecast +func (c *CostExplorer) GetUsageForecast(input *GetUsageForecastInput) (*GetUsageForecastOutput, error) { + req, out := c.GetUsageForecastRequest(input) + return out, req.Send() +} + +// GetUsageForecastWithContext is the same as GetUsageForecast with the addition of +// the ability to pass a context and additional request options. +// +// See GetUsageForecast for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CostExplorer) GetUsageForecastWithContext(ctx aws.Context, input *GetUsageForecastInput, opts ...request.Option) (*GetUsageForecastOutput, error) { + req, out := c.GetUsageForecastRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + // The amount of instance usage that a reservation covered. type Coverage struct { _ struct{} `type:"structure"` @@ -1596,15 +1683,15 @@ type GetCostForecastInput struct { // // Valid values for a GetCostForecast call are the following: // - // * AmortizedCost + // * AMORTIZED_COST // - // * BlendedCost + // * BLENDED_COST // - // * NetAmortizedCost + // * NET_AMORTIZED_COST // - // * NetUnblendedCost + // * NET_UNBLENDED_COST // - // * UnblendedCost + // * UNBLENDED_COST // // Metric is a required field Metric *string `type:"string" required:"true" enum:"Metric"` @@ -2675,6 +2762,149 @@ func (s *GetTagsOutput) SetTotalSize(v int64) *GetTagsOutput { return s } +type GetUsageForecastInput struct { + _ struct{} `type:"structure"` + + // The filters that you want to use to filter your forecast. Cost Explorer API + // supports all of the Cost Explorer filters. + Filter *Expression `type:"structure"` + + // How granular you want the forecast to be. You can get 3 months of DAILY forecasts + // or 12 months of MONTHLY forecasts. + // + // The GetUsageForecast operation supports only DAILY and MONTHLY granularities. + // + // Granularity is a required field + Granularity *string `type:"string" required:"true" enum:"Granularity"` + + // Which metric Cost Explorer uses to create your forecast. + // + // Valid values for a GetUsageForecast call are the following: + // + // * USAGE_QUANTITY + // + // * NORMALIZED_USAGE_AMOUNT + // + // Metric is a required field + Metric *string `type:"string" required:"true" enum:"Metric"` + + // Cost Explorer always returns the mean forecast as a single point. You can + // request a prediction interval around the mean by specifying a confidence + // level. The higher the confidence level, the more confident Cost Explorer + // is about the actual value falling in the prediction interval. Higher confidence + // levels result in wider prediction intervals. + PredictionIntervalLevel *int64 `min:"51" type:"integer"` + + // The start and end dates of the period that you want to retrieve usage forecast + // for. The start date is inclusive, but the end date is exclusive. For example, + // if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data + // is retrieved from 2017-01-01 up to and including 2017-04-30 but not including + // 2017-05-01. + // + // TimePeriod is a required field + TimePeriod *DateInterval `type:"structure" required:"true"` +} + +// String returns the string representation +func (s GetUsageForecastInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetUsageForecastInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetUsageForecastInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetUsageForecastInput"} + if s.Granularity == nil { + invalidParams.Add(request.NewErrParamRequired("Granularity")) + } + if s.Metric == nil { + invalidParams.Add(request.NewErrParamRequired("Metric")) + } + if s.PredictionIntervalLevel != nil && *s.PredictionIntervalLevel < 51 { + invalidParams.Add(request.NewErrParamMinValue("PredictionIntervalLevel", 51)) + } + if s.TimePeriod == nil { + invalidParams.Add(request.NewErrParamRequired("TimePeriod")) + } + if s.TimePeriod != nil { + if err := s.TimePeriod.Validate(); err != nil { + invalidParams.AddNested("TimePeriod", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFilter sets the Filter field's value. +func (s *GetUsageForecastInput) SetFilter(v *Expression) *GetUsageForecastInput { + s.Filter = v + return s +} + +// SetGranularity sets the Granularity field's value. +func (s *GetUsageForecastInput) SetGranularity(v string) *GetUsageForecastInput { + s.Granularity = &v + return s +} + +// SetMetric sets the Metric field's value. +func (s *GetUsageForecastInput) SetMetric(v string) *GetUsageForecastInput { + s.Metric = &v + return s +} + +// SetPredictionIntervalLevel sets the PredictionIntervalLevel field's value. +func (s *GetUsageForecastInput) SetPredictionIntervalLevel(v int64) *GetUsageForecastInput { + s.PredictionIntervalLevel = &v + return s +} + +// SetTimePeriod sets the TimePeriod field's value. +func (s *GetUsageForecastInput) SetTimePeriod(v *DateInterval) *GetUsageForecastInput { + s.TimePeriod = v + return s +} + +type GetUsageForecastOutput struct { + _ struct{} `type:"structure"` + + // The forecasts for your query, in order. For DAILY forecasts, this is a list + // of days. For MONTHLY forecasts, this is a list of months. + ForecastResultsByTime []*ForecastResult `type:"list"` + + // How much you're forecasted to use over the forecast period. + Total *MetricValue `type:"structure"` +} + +// String returns the string representation +func (s GetUsageForecastOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetUsageForecastOutput) GoString() string { + return s.String() +} + +// SetForecastResultsByTime sets the ForecastResultsByTime field's value. +func (s *GetUsageForecastOutput) SetForecastResultsByTime(v []*ForecastResult) *GetUsageForecastOutput { + s.ForecastResultsByTime = v + return s +} + +// SetTotal sets the Total field's value. +func (s *GetUsageForecastOutput) SetTotal(v *MetricValue) *GetUsageForecastOutput { + s.Total = v + return s +} + // One level of grouped data in the results. type Group struct { _ struct{} `type:"structure"` diff --git a/service/costexplorer/costexploreriface/interface.go b/service/costexplorer/costexploreriface/interface.go index ddf04b66571..6c93816bfbb 100644 --- a/service/costexplorer/costexploreriface/interface.go +++ b/service/costexplorer/costexploreriface/interface.go @@ -87,6 +87,10 @@ type CostExplorerAPI interface { GetTags(*costexplorer.GetTagsInput) (*costexplorer.GetTagsOutput, error) GetTagsWithContext(aws.Context, *costexplorer.GetTagsInput, ...request.Option) (*costexplorer.GetTagsOutput, error) GetTagsRequest(*costexplorer.GetTagsInput) (*request.Request, *costexplorer.GetTagsOutput) + + GetUsageForecast(*costexplorer.GetUsageForecastInput) (*costexplorer.GetUsageForecastOutput, error) + GetUsageForecastWithContext(aws.Context, *costexplorer.GetUsageForecastInput, ...request.Option) (*costexplorer.GetUsageForecastOutput, error) + GetUsageForecastRequest(*costexplorer.GetUsageForecastInput) (*request.Request, *costexplorer.GetUsageForecastOutput) } var _ CostExplorerAPI = (*costexplorer.CostExplorer)(nil) diff --git a/service/costexplorer/errors.go b/service/costexplorer/errors.go index 8d6e388c996..5b5de7949c3 100644 --- a/service/costexplorer/errors.go +++ b/service/costexplorer/errors.go @@ -34,4 +34,11 @@ const ( // Your request parameters changed between pages. Try again with the old parameters // or without a pagination token. ErrCodeRequestChangedException = "RequestChangedException" + + // ErrCodeUnresolvableUsageUnitException for service response error code + // "UnresolvableUsageUnitException". + // + // Cost Explorer was unable to identify the usage unit. Provide UsageType/UsageTypeGroup + // filter selections that contain matching units, for example: hours.( + ErrCodeUnresolvableUsageUnitException = "UnresolvableUsageUnitException" ) diff --git a/service/kafka/api.go b/service/kafka/api.go index 28b8752e5dd..bef73a71c73 100644 --- a/service/kafka/api.go +++ b/service/kafka/api.go @@ -2683,7 +2683,7 @@ type CreateClusterInput struct { // KafkaVersion is a required field KafkaVersion *string `locationName:"kafkaVersion" min:"1" type:"string" required:"true"` - // The number of broker nodes in the cluster. + // The number of Kafka broker nodes in the Amazon MSK cluster. // // NumberOfBrokerNodes is a required field NumberOfBrokerNodes *int64 `locationName:"numberOfBrokerNodes" min:"1" type:"integer" required:"true"`