From 7572d227f7faa2788e884408c0018f0c5febd345 Mon Sep 17 00:00:00 2001 From: aws-sdk-go-automation <43143561+aws-sdk-go-automation@users.noreply.github.com> Date: Wed, 1 Mar 2023 11:22:00 -0800 Subject: [PATCH] Release v1.44.212 (2023-03-01) (#4743) Release v1.44.212 (2023-03-01) === ### Service Client Updates * `service/pricing`: Updates service API, documentation, and paginators * `service/s3outposts`: Updates service API, documentation, and paginators --- CHANGELOG.md | 7 + aws/endpoints/defaults.go | 3 + aws/version.go | 2 +- models/apis/pricing/2017-10-15/api-2.json | 127 ++++ models/apis/pricing/2017-10-15/docs-2.json | 99 ++- .../2017-10-15/endpoint-rule-set-1.json | 375 ++++++++++ .../pricing/2017-10-15/endpoint-tests-1.json | 277 ++++++++ .../apis/pricing/2017-10-15/paginators-1.json | 15 +- models/apis/s3outposts/2017-07-25/api-2.json | 79 ++- models/apis/s3outposts/2017-07-25/docs-2.json | 53 +- .../2017-07-25/endpoint-rule-set-1.json | 350 +++++++++ .../2017-07-25/endpoint-tests-1.json | 524 ++++++++++++++ .../s3outposts/2017-07-25/paginators-1.json | 6 + models/endpoints/endpoints.json | 1 + service/pricing/api.go | 671 +++++++++++++++++- service/pricing/errors.go | 7 + service/pricing/pricingiface/interface.go | 11 + service/s3outposts/api.go | 385 ++++++++++ service/s3outposts/errors.go | 7 + .../s3outposts/s3outpostsiface/interface.go | 7 + 20 files changed, 2992 insertions(+), 14 deletions(-) create mode 100644 models/apis/pricing/2017-10-15/endpoint-rule-set-1.json create mode 100644 models/apis/pricing/2017-10-15/endpoint-tests-1.json create mode 100644 models/apis/s3outposts/2017-07-25/endpoint-rule-set-1.json create mode 100644 models/apis/s3outposts/2017-07-25/endpoint-tests-1.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 80492dfbe02..932df1efe70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +Release v1.44.212 (2023-03-01) +=== + +### Service Client Updates +* `service/pricing`: Updates service API, documentation, and paginators +* `service/s3outposts`: Updates service API, documentation, and paginators + Release v1.44.211 (2023-02-28) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index ad32fb5dd97..b40e84b9cf6 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -5251,6 +5251,9 @@ var awsPartition = partition{ endpointKey{ Region: "ap-southeast-2", }: endpoint{}, + endpointKey{ + Region: "ap-southeast-3", + }: endpoint{}, endpointKey{ Region: "ca-central-1", }: endpoint{}, diff --git a/aws/version.go b/aws/version.go index 87ce9339abe..0a78ed78578 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.44.211" +const SDKVersion = "1.44.212" diff --git a/models/apis/pricing/2017-10-15/api-2.json b/models/apis/pricing/2017-10-15/api-2.json index 253c58a97de..83d8d735c43 100644 --- a/models/apis/pricing/2017-10-15/api-2.json +++ b/models/apis/pricing/2017-10-15/api-2.json @@ -46,6 +46,21 @@ {"shape":"ExpiredNextTokenException"} ] }, + "GetPriceListFileUrl":{ + "name":"GetPriceListFileUrl", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetPriceListFileUrlRequest"}, + "output":{"shape":"GetPriceListFileUrlResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"AccessDeniedException"} + ] + }, "GetProducts":{ "name":"GetProducts", "http":{ @@ -61,9 +76,33 @@ {"shape":"InvalidNextTokenException"}, {"shape":"ExpiredNextTokenException"} ] + }, + "ListPriceLists":{ + "name":"ListPriceLists", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListPriceListsRequest"}, + "output":{"shape":"ListPriceListsResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotFoundException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ExpiredNextTokenException"}, + {"shape":"AccessDeniedException"} + ] } }, "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"errorMessage"} + }, + "exception":true + }, "AttributeNameList":{ "type":"list", "member":{"shape":"String"} @@ -83,6 +122,10 @@ "max":100, "min":1 }, + "CurrencyCode":{ + "type":"string", + "pattern":"^[A-Z]{3}$" + }, "DescribeServicesRequest":{ "type":"structure", "members":{ @@ -103,6 +146,7 @@ "NextToken":{"shape":"String"} } }, + "EffectiveDate":{"type":"timestamp"}, "ExpiredNextTokenException":{ "type":"structure", "members":{ @@ -110,6 +154,15 @@ }, "exception":true }, + "FileFormat":{ + "type":"string", + "max":255, + "min":1 + }, + "FileFormats":{ + "type":"list", + "member":{"shape":"FileFormat"} + }, "Filter":{ "type":"structure", "required":[ @@ -154,6 +207,23 @@ "NextToken":{"shape":"String"} } }, + "GetPriceListFileUrlRequest":{ + "type":"structure", + "required":[ + "PriceListArn", + "FileFormat" + ], + "members":{ + "PriceListArn":{"shape":"PriceListArn"}, + "FileFormat":{"shape":"FileFormat"} + } + }, + "GetPriceListFileUrlResponse":{ + "type":"structure", + "members":{ + "Url":{"shape":"String"} + } + }, "GetProductsRequest":{ "type":"structure", "required":["ServiceCode"], @@ -197,6 +267,34 @@ }, "exception":true }, + "ListPriceListsRequest":{ + "type":"structure", + "required":[ + "ServiceCode", + "EffectiveDate", + "CurrencyCode" + ], + "members":{ + "ServiceCode":{"shape":"ServiceCode"}, + "EffectiveDate":{"shape":"EffectiveDate"}, + "RegionCode":{"shape":"RegionCode"}, + "CurrencyCode":{"shape":"CurrencyCode"}, + "NextToken":{"shape":"String"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListPriceListsResponse":{ + "type":"structure", + "members":{ + "PriceLists":{"shape":"PriceLists"}, + "NextToken":{"shape":"String"} + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":1 + }, "NotFoundException":{ "type":"structure", "members":{ @@ -204,6 +302,21 @@ }, "exception":true }, + "PriceList":{ + "type":"structure", + "members":{ + "PriceListArn":{"shape":"PriceListArn"}, + "RegionCode":{"shape":"RegionCode"}, + "CurrencyCode":{"shape":"CurrencyCode"}, + "FileFormats":{"shape":"FileFormats"} + } + }, + "PriceListArn":{ + "type":"string", + "max":2048, + "min":18, + "pattern":"^arn:.+:pricing::.*:price-list/.{1,255}/.{1,32}/[A-Z]{3}/[0-9]{14}/[^/]*$" + }, "PriceListJsonItem":{"type":"string"}, "PriceListJsonItems":{ "type":"list", @@ -212,6 +325,15 @@ "jsonvalue":true } }, + "PriceLists":{ + "type":"list", + "member":{"shape":"PriceList"} + }, + "RegionCode":{ + "type":"string", + "max":255, + "min":1 + }, "Service":{ "type":"structure", "required":["ServiceCode"], @@ -220,6 +342,11 @@ "AttributeNames":{"shape":"AttributeNameList"} } }, + "ServiceCode":{ + "type":"string", + "max":32, + "min":1 + }, "ServiceList":{ "type":"list", "member":{"shape":"Service"} diff --git a/models/apis/pricing/2017-10-15/docs-2.json b/models/apis/pricing/2017-10-15/docs-2.json index 3e403d4a7ff..ff5c9236871 100644 --- a/models/apis/pricing/2017-10-15/docs-2.json +++ b/models/apis/pricing/2017-10-15/docs-2.json @@ -4,9 +4,16 @@ "operations": { "DescribeServices": "

Returns the metadata for one service or a list of the metadata for all services. Use this without a service code to get the service codes for all services. Use it with a service code, such as AmazonEC2, to get information specific to that service, such as the attribute names available for that service. For example, some of the attribute names available for EC2 are volumeType, maxIopsVolume, operation, locationType, and instanceCapacity10xlarge.

", "GetAttributeValues": "

Returns a list of attribute values. Attributes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions in the Billing and Cost Management User Guide.

", - "GetProducts": "

Returns a list of all products that match the filter criteria.

" + "GetPriceListFileUrl": "

This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

This returns the URL that you can retrieve your Price List file from. This URL is based on the PriceListArn and FileFormat that you retrieve from the ListPriceLists response.

", + "GetProducts": "

Returns a list of all products that match the filter criteria.

", + "ListPriceLists": "

This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

This returns a list of Price List references that the requester if authorized to view, given a ServiceCode, CurrencyCode, and an EffectiveDate. Use without a RegionCode filter to list Price List references from all available Amazon Web Services Regions. Use with a RegionCode filter to get the Price List reference that's specific to a specific Amazon Web Services Region. You can use the PriceListArn from the response to get your preferred Price List files through the GetPriceListFileUrl API.

" }, "shapes": { + "AccessDeniedException": { + "base": "

General authentication failure. The request wasn't signed correctly.

", + "refs": { + } + }, "AttributeNameList": { "base": null, "refs": { @@ -33,6 +40,13 @@ "GetProductsRequest$MaxResults": "

The maximum number of results to return in the response.

" } }, + "CurrencyCode": { + "base": null, + "refs": { + "ListPriceListsRequest$CurrencyCode": "

The three alphabetical character ISO-4217 currency code that the Price List files are denominated in.

", + "PriceList$CurrencyCode": "

The three alphabetical character ISO-4217 currency code the Price List files are denominated in.

" + } + }, "DescribeServicesRequest": { "base": null, "refs": { @@ -43,11 +57,30 @@ "refs": { } }, + "EffectiveDate": { + "base": null, + "refs": { + "ListPriceListsRequest$EffectiveDate": "

The date that the Price List file prices are effective from.

" + } + }, "ExpiredNextTokenException": { "base": "

The pagination token expired. Try again without a pagination token.

", "refs": { } }, + "FileFormat": { + "base": null, + "refs": { + "FileFormats$member": null, + "GetPriceListFileUrlRequest$FileFormat": "

The format that you want to retrieve your Price List files in. The FileFormat can be obtained from the ListPriceLists response.

" + } + }, + "FileFormats": { + "base": null, + "refs": { + "PriceList$FileFormats": "

The format you want to retrieve your Price List files. The FileFormat can be obtained from the ListPriceList response.

" + } + }, "Filter": { "base": "

The constraints that you want all returned products to match.

", "refs": { @@ -76,6 +109,16 @@ "refs": { } }, + "GetPriceListFileUrlRequest": { + "base": null, + "refs": { + } + }, + "GetPriceListFileUrlResponse": { + "base": null, + "refs": { + } + }, "GetProductsRequest": { "base": null, "refs": { @@ -101,11 +144,40 @@ "refs": { } }, + "ListPriceListsRequest": { + "base": null, + "refs": { + } + }, + "ListPriceListsResponse": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListPriceListsRequest$MaxResults": "

The maximum number of results to return in the response.

" + } + }, "NotFoundException": { "base": "

The requested resource can't be found.

", "refs": { } }, + "PriceList": { + "base": "

This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10).

This is the type of price list references that match your request.

", + "refs": { + "PriceLists$member": null + } + }, + "PriceListArn": { + "base": null, + "refs": { + "GetPriceListFileUrlRequest$PriceListArn": "

The unique identifier that maps to where your Price List files are located. PriceListArn can be obtained from the ListPriceLists response.

", + "PriceList$PriceListArn": "

The unique identifier that maps to where your Price List files are located. PriceListArn can be obtained from the ListPriceList response.

" + } + }, "PriceListJsonItem": { "base": null, "refs": { @@ -118,12 +190,31 @@ "GetProductsResponse$PriceList": "

The list of products that match your filters. The list contains both the product metadata and the price information.

" } }, + "PriceLists": { + "base": null, + "refs": { + "ListPriceListsResponse$PriceLists": "

The type of price list references that match your request.

" + } + }, + "RegionCode": { + "base": null, + "refs": { + "ListPriceListsRequest$RegionCode": "

This is used to filter the Price List by Amazon Web Services Region. For example, to get the price list only for the US East (N. Virginia) Region, use us-east-1. If nothing is specified, you retrieve price lists for all applicable Regions. The available RegionCode list can be retrieved from GetAttributeValues API.

", + "PriceList$RegionCode": "

This is used to filter the Price List by Amazon Web Services Region. For example, to get the price list only for the US East (N. Virginia) Region, use us-east-1. If nothing is specified, you retrieve price lists for all applicable Regions. The available RegionCode list can be retrieved from GetAttributeValues API.

" + } + }, "Service": { "base": "

The metadata for a service, such as the service code and available attribute names.

", "refs": { "ServiceList$member": null } }, + "ServiceCode": { + "base": null, + "refs": { + "ListPriceListsRequest$ServiceCode": "

The service code or the Savings Plan service code for the attributes that you want to retrieve. For example, to get the list of applicable Amazon EC2 price lists, use AmazonEC2. For a full list of service codes containing On-Demand and Reserved Instance (RI) pricing, use the DescribeServices API.

To retrieve the Compute Savings Plan price lists, use ComputeSavingsPlans. To retrieve Machine Learning Savings Plans price lists, use MachineLearningSavingsPlans.

" + } + }, "ServiceList": { "base": null, "refs": { @@ -141,22 +232,26 @@ "DescribeServicesResponse$FormatVersion": "

The format version of the response. For example, aws_v1.

", "DescribeServicesResponse$NextToken": "

The pagination token for the next set of retrievable results.

", "Filter$Field": "

The product metadata field that you want to filter on. You can filter by just the service code to see all products for a specific service, filter by just the attribute name to see a specific attribute for multiple services, or use both a service code and an attribute name to retrieve only products that match both fields.

Valid values include: ServiceCode, and all attribute names

For example, you can filter by the AmazonEC2 service code and the volumeType attribute name to get the prices for only Amazon EC2 volumes.

", - "Filter$Value": "

The service code or attribute value that you want to filter by. If you are filtering by service code this is the actual service code, such as AmazonEC2. If you are filtering by attribute name, this is the attribute value that you want the returned products to match, such as a Provisioned IOPS volume.

", + "Filter$Value": "

The service code or attribute value that you want to filter by. If you're filtering by service code this is the actual service code, such as AmazonEC2. If you're filtering by attribute name, this is the attribute value that you want the returned products to match, such as a Provisioned IOPS volume.

", "GetAttributeValuesRequest$ServiceCode": "

The service code for the service whose attributes you want to retrieve. For example, if you want the retrieve an EC2 attribute, use AmazonEC2.

", "GetAttributeValuesRequest$AttributeName": "

The name of the attribute that you want to retrieve the values for, such as volumeType.

", "GetAttributeValuesRequest$NextToken": "

The pagination token that indicates the next set of results that you want to retrieve.

", "GetAttributeValuesResponse$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", + "GetPriceListFileUrlResponse$Url": "

The URL to download your Price List file from.

", "GetProductsRequest$ServiceCode": "

The code for the service whose products you want to retrieve.

", "GetProductsRequest$FormatVersion": "

The format version that you want the response to be in.

Valid values are: aws_v1

", "GetProductsRequest$NextToken": "

The pagination token that indicates the next set of results that you want to retrieve.

", "GetProductsResponse$FormatVersion": "

The format version of the response. For example, aws_v1.

", "GetProductsResponse$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", + "ListPriceListsRequest$NextToken": "

The pagination token that indicates the next set of results that you want to retrieve.

", + "ListPriceListsResponse$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", "Service$ServiceCode": "

The code for the Amazon Web Services service.

" } }, "errorMessage": { "base": null, "refs": { + "AccessDeniedException$Message": null, "ExpiredNextTokenException$Message": null, "InternalErrorException$Message": null, "InvalidNextTokenException$Message": null, diff --git a/models/apis/pricing/2017-10-15/endpoint-rule-set-1.json b/models/apis/pricing/2017-10-15/endpoint-rule-set-1.json new file mode 100644 index 00000000000..4d15779673a --- /dev/null +++ b/models/apis/pricing/2017-10-15/endpoint-rule-set-1.json @@ -0,0 +1,375 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://api.pricing.{Region}.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://api.pricing.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/pricing/2017-10-15/endpoint-tests-1.json b/models/apis/pricing/2017-10-15/endpoint-tests-1.json new file mode 100644 index 00000000000..6d77c402ab9 --- /dev/null +++ b/models/apis/pricing/2017-10-15/endpoint-tests-1.json @@ -0,0 +1,277 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://api.pricing.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "UseDualStack": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "UseDualStack": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/pricing/2017-10-15/paginators-1.json b/models/apis/pricing/2017-10-15/paginators-1.json index f4b247c29ac..a5ebc835263 100644 --- a/models/apis/pricing/2017-10-15/paginators-1.json +++ b/models/apis/pricing/2017-10-15/paginators-1.json @@ -3,17 +3,26 @@ "DescribeServices": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "Services" }, "GetAttributeValues": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "AttributeValues" }, "GetProducts": { "input_token": "NextToken", "output_token": "NextToken", - "limit_key": "MaxResults" + "limit_key": "MaxResults", + "result_key": "PriceList" + }, + "ListPriceLists": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "PriceLists" } } } diff --git a/models/apis/s3outposts/2017-07-25/api-2.json b/models/apis/s3outposts/2017-07-25/api-2.json index 3262129e900..46418c045cc 100644 --- a/models/apis/s3outposts/2017-07-25/api-2.json +++ b/models/apis/s3outposts/2017-07-25/api-2.json @@ -26,7 +26,8 @@ {"shape":"ValidationException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ConflictException"} + {"shape":"ConflictException"}, + {"shape":"ThrottlingException"} ] }, "DeleteEndpoint":{ @@ -40,7 +41,8 @@ {"shape":"InternalServerException"}, {"shape":"AccessDeniedException"}, {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} ] }, "ListEndpoints":{ @@ -55,7 +57,23 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} + ] + }, + "ListOutpostsWithS3":{ + "name":"ListOutpostsWithS3", + "http":{ + "method":"GET", + "requestUri":"/S3Outposts/ListOutpostsWithS3" + }, + "input":{"shape":"ListOutpostsWithS3Request"}, + "output":{"shape":"ListOutpostsWithS3Result"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} ] }, "ListSharedEndpoints":{ @@ -70,7 +88,8 @@ {"shape":"InternalServerException"}, {"shape":"ResourceNotFoundException"}, {"shape":"AccessDeniedException"}, - {"shape":"ValidationException"} + {"shape":"ValidationException"}, + {"shape":"ThrottlingException"} ] } }, @@ -83,6 +102,11 @@ "error":{"httpStatusCode":403}, "exception":true }, + "AwsAccountId":{ + "type":"string", + "pattern":"^\\d{12}$" + }, + "CapacityInBytes":{"type":"long"}, "CidrBlock":{"type":"string"}, "ConflictException":{ "type":"structure", @@ -212,6 +236,28 @@ "NextToken":{"shape":"NextToken"} } }, + "ListOutpostsWithS3Request":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListOutpostsWithS3Result":{ + "type":"structure", + "members":{ + "Outposts":{"shape":"Outposts"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListSharedEndpointsRequest":{ "type":"structure", "required":["OutpostId"], @@ -262,10 +308,27 @@ "min":1, "pattern":"^[A-Za-z0-9\\+\\:\\/\\=\\?\\#-_]+$" }, + "Outpost":{ + "type":"structure", + "members":{ + "OutpostArn":{"shape":"OutpostArn"}, + "OutpostId":{"shape":"OutpostId"}, + "OwnerId":{"shape":"AwsAccountId"}, + "CapacityInBytes":{"shape":"CapacityInBytes"} + } + }, + "OutpostArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):outposts:[a-z\\-0-9]*:[0-9]{12}:outpost/(op-[a-f0-9]{17}|ec2)$" + }, "OutpostId":{ "type":"string", "pattern":"^(op-[a-f0-9]{17}|\\d{12}|ec2)$" }, + "Outposts":{ + "type":"list", + "member":{"shape":"Outpost"} + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -282,6 +345,14 @@ "type":"string", "pattern":"^subnet-([0-9a-f]{8}|[0-9a-f]{17})$" }, + "ThrottlingException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, "ValidationException":{ "type":"structure", "members":{ diff --git a/models/apis/s3outposts/2017-07-25/docs-2.json b/models/apis/s3outposts/2017-07-25/docs-2.json index 32b7ebed481..15064cff7a0 100644 --- a/models/apis/s3outposts/2017-07-25/docs-2.json +++ b/models/apis/s3outposts/2017-07-25/docs-2.json @@ -5,6 +5,7 @@ "CreateEndpoint": "

Creates an endpoint and associates it with the specified Outpost.

It can take up to 5 minutes for this action to finish.

Related actions include:

", "DeleteEndpoint": "

Deletes an endpoint.

It can take up to 5 minutes for this action to finish.

Related actions include:

", "ListEndpoints": "

Lists endpoints associated with the specified Outpost.

Related actions include:

", + "ListOutpostsWithS3": "

Lists the Outposts with S3 on Outposts capacity for your Amazon Web Services account. Includes S3 on Outposts that you have access to as the Outposts owner, or as a shared user from Resource Access Manager (RAM).

", "ListSharedEndpoints": "

Lists all endpoints associated with an Outpost that has been shared by Amazon Web Services Resource Access Manager (RAM).

Related actions include:

" }, "shapes": { @@ -13,6 +14,18 @@ "refs": { } }, + "AwsAccountId": { + "base": null, + "refs": { + "Outpost$OwnerId": "

Returns the Amazon Web Services account ID of the outpost owner. Useful for comparing owned versus shared outposts.

" + } + }, + "CapacityInBytes": { + "base": null, + "refs": { + "Outpost$CapacityInBytes": "

The Amazon S3 capacity of the outpost in bytes.

" + } + }, "CidrBlock": { "base": null, "refs": { @@ -98,6 +111,7 @@ "ConflictException$Message": null, "InternalServerException$Message": null, "ResourceNotFoundException$Message": null, + "ThrottlingException$Message": null, "ValidationException$Message": null } }, @@ -116,6 +130,16 @@ "refs": { } }, + "ListOutpostsWithS3Request": { + "base": null, + "refs": { + } + }, + "ListOutpostsWithS3Result": { + "base": null, + "refs": { + } + }, "ListSharedEndpointsRequest": { "base": null, "refs": { @@ -130,6 +154,7 @@ "base": null, "refs": { "ListEndpointsRequest$MaxResults": "

The maximum number of endpoints that will be returned in the response.

", + "ListOutpostsWithS3Request$MaxResults": "

The maximum number of Outposts to return. The limit is 100.

", "ListSharedEndpointsRequest$MaxResults": "

The maximum number of endpoints that will be returned in the response.

" } }, @@ -156,17 +181,38 @@ "refs": { "ListEndpointsRequest$NextToken": "

If a previous response from this operation included a NextToken value, provide that value here to retrieve the next page of results.

", "ListEndpointsResult$NextToken": "

If the number of endpoints associated with the specified Outpost exceeds MaxResults, you can include this value in subsequent calls to this operation to retrieve more results.

", + "ListOutpostsWithS3Request$NextToken": "

When you can get additional results from the ListOutpostsWithS3 call, a NextToken parameter is returned in the output. You can then pass in a subsequent command to the NextToken parameter to continue listing additional Outposts.

", + "ListOutpostsWithS3Result$NextToken": "

Returns a token that you can use to call ListOutpostsWithS3 again and receive additional results, if there are any.

", "ListSharedEndpointsRequest$NextToken": "

If a previous response from this operation included a NextToken value, you can provide that value here to retrieve the next page of results.

", "ListSharedEndpointsResult$NextToken": "

If the number of endpoints associated with the specified Outpost exceeds MaxResults, you can include this value in subsequent calls to this operation to retrieve more results.

" } }, + "Outpost": { + "base": "

Contains the details for the Outpost object.

", + "refs": { + "Outposts$member": null + } + }, + "OutpostArn": { + "base": null, + "refs": { + "Outpost$OutpostArn": "

Specifies the unique Amazon Resource Name (ARN) for the outpost.

" + } + }, "OutpostId": { "base": null, "refs": { "CreateEndpointRequest$OutpostId": "

The ID of the Outposts.

", "DeleteEndpointRequest$OutpostId": "

The ID of the Outposts.

", "Endpoint$OutpostsId": "

The ID of the Outposts.

", - "ListSharedEndpointsRequest$OutpostId": "

The ID of the Amazon Web Services Outpost.

" + "ListSharedEndpointsRequest$OutpostId": "

The ID of the Amazon Web Services Outpost.

", + "Outpost$OutpostId": "

Specifies the unique identifier for the outpost.

" + } + }, + "Outposts": { + "base": null, + "refs": { + "ListOutpostsWithS3Result$Outposts": "

Returns the list of Outposts that have the following characteristics:

" } }, "ResourceNotFoundException": { @@ -188,6 +234,11 @@ "Endpoint$SubnetId": "

The ID of the subnet used for the endpoint.

" } }, + "ThrottlingException": { + "base": "

The request was denied due to request throttling.

", + "refs": { + } + }, "ValidationException": { "base": "

There was an exception validating this data.

", "refs": { diff --git a/models/apis/s3outposts/2017-07-25/endpoint-rule-set-1.json b/models/apis/s3outposts/2017-07-25/endpoint-rule-set-1.json new file mode 100644 index 00000000000..755a138c886 --- /dev/null +++ b/models/apis/s3outposts/2017-07-25/endpoint-rule-set-1.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/s3outposts/2017-07-25/endpoint-tests-1.json b/models/apis/s3outposts/2017-07-25/endpoint-tests-1.json new file mode 100644 index 00000000000..586d1e4f6d7 --- /dev/null +++ b/models/apis/s3outposts/2017-07-25/endpoint-tests-1.json @@ -0,0 +1,524 @@ +{ + "testCases": [ + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.af-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "af-south-1" + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-east-1" + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-1" + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-2" + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-northeast-3" + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-south-1" + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-1" + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ap-southeast-2" + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "ca-central-1" + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-central-1" + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-north-1" + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-south-1" + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-1" + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-2" + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "eu-west-3" + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.me-south-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "me-south-1" + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "sa-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-east-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-2" + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-west-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-1" + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-west-2" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "cn-north-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-gov-east-1.api.aws" + } + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-gov-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-iso-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://s3-outposts.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-isob-east-1" + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseDualStack": false, + "UseFIPS": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/s3outposts/2017-07-25/paginators-1.json b/models/apis/s3outposts/2017-07-25/paginators-1.json index 485663e0d50..f399fa89244 100644 --- a/models/apis/s3outposts/2017-07-25/paginators-1.json +++ b/models/apis/s3outposts/2017-07-25/paginators-1.json @@ -6,6 +6,12 @@ "output_token": "NextToken", "result_key": "Endpoints" }, + "ListOutpostsWithS3": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Outposts" + }, "ListSharedEndpoints": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index d4a94f1e376..08acca5c8ba 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -2858,6 +2858,7 @@ "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, + "ap-southeast-3" : { }, "ca-central-1" : { "variants" : [ { "hostname" : "codecommit-fips.ca-central-1.amazonaws.com", diff --git a/service/pricing/api.go b/service/pricing/api.go index 44e460a53e2..ceedbbfca12 100644 --- a/service/pricing/api.go +++ b/service/pricing/api.go @@ -4,6 +4,7 @@ package pricing import ( "fmt" + "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" @@ -317,6 +318,103 @@ func (c *Pricing) GetAttributeValuesPagesWithContext(ctx aws.Context, input *Get return p.Err() } +const opGetPriceListFileUrl = "GetPriceListFileUrl" + +// GetPriceListFileUrlRequest generates a "aws/request.Request" representing the +// client's request for the GetPriceListFileUrl 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 GetPriceListFileUrl for more information on using the GetPriceListFileUrl +// 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 GetPriceListFileUrlRequest method. +// req, resp := client.GetPriceListFileUrlRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/GetPriceListFileUrl +func (c *Pricing) GetPriceListFileUrlRequest(input *GetPriceListFileUrlInput) (req *request.Request, output *GetPriceListFileUrlOutput) { + op := &request.Operation{ + Name: opGetPriceListFileUrl, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetPriceListFileUrlInput{} + } + + output = &GetPriceListFileUrlOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetPriceListFileUrl API operation for AWS Price List Service. +// +// This feature is in preview release and is subject to change. Your use of +// Amazon Web Services Price List API is subject to the Beta Service Participation +// terms of the Amazon Web Services Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// This returns the URL that you can retrieve your Price List file from. This +// URL is based on the PriceListArn and FileFormat that you retrieve from the +// ListPriceLists (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html) +// response. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Price List Service's +// API operation GetPriceListFileUrl for usage and error information. +// +// Returned Error Types: +// +// - InternalErrorException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - InvalidParameterException +// One or more parameters had an invalid value. +// +// - NotFoundException +// The requested resource can't be found. +// +// - AccessDeniedException +// General authentication failure. The request wasn't signed correctly. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/GetPriceListFileUrl +func (c *Pricing) GetPriceListFileUrl(input *GetPriceListFileUrlInput) (*GetPriceListFileUrlOutput, error) { + req, out := c.GetPriceListFileUrlRequest(input) + return out, req.Send() +} + +// GetPriceListFileUrlWithContext is the same as GetPriceListFileUrl with the addition of +// the ability to pass a context and additional request options. +// +// See GetPriceListFileUrl 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 *Pricing) GetPriceListFileUrlWithContext(ctx aws.Context, input *GetPriceListFileUrlInput, opts ...request.Option) (*GetPriceListFileUrlOutput, error) { + req, out := c.GetPriceListFileUrlRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetProducts = "GetProducts" // GetProductsRequest generates a "aws/request.Request" representing the @@ -466,6 +564,234 @@ func (c *Pricing) GetProductsPagesWithContext(ctx aws.Context, input *GetProduct return p.Err() } +const opListPriceLists = "ListPriceLists" + +// ListPriceListsRequest generates a "aws/request.Request" representing the +// client's request for the ListPriceLists 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 ListPriceLists for more information on using the ListPriceLists +// 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 ListPriceListsRequest method. +// req, resp := client.ListPriceListsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/ListPriceLists +func (c *Pricing) ListPriceListsRequest(input *ListPriceListsInput) (req *request.Request, output *ListPriceListsOutput) { + op := &request.Operation{ + Name: opListPriceLists, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListPriceListsInput{} + } + + output = &ListPriceListsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListPriceLists API operation for AWS Price List Service. +// +// This feature is in preview release and is subject to change. Your use of +// Amazon Web Services Price List API is subject to the Beta Service Participation +// terms of the Amazon Web Services Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// This returns a list of Price List references that the requester if authorized +// to view, given a ServiceCode, CurrencyCode, and an EffectiveDate. Use without +// a RegionCode filter to list Price List references from all available Amazon +// Web Services Regions. Use with a RegionCode filter to get the Price List +// reference that's specific to a specific Amazon Web Services Region. You can +// use the PriceListArn from the response to get your preferred Price List files +// through the GetPriceListFileUrl (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetPriceListFileUrl.html) +// API. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Price List Service's +// API operation ListPriceLists for usage and error information. +// +// Returned Error Types: +// +// - InternalErrorException +// An error on the server occurred during the processing of your request. Try +// again later. +// +// - InvalidParameterException +// One or more parameters had an invalid value. +// +// - NotFoundException +// The requested resource can't be found. +// +// - InvalidNextTokenException +// The pagination token is invalid. Try again without a pagination token. +// +// - ExpiredNextTokenException +// The pagination token expired. Try again without a pagination token. +// +// - AccessDeniedException +// General authentication failure. The request wasn't signed correctly. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/ListPriceLists +func (c *Pricing) ListPriceLists(input *ListPriceListsInput) (*ListPriceListsOutput, error) { + req, out := c.ListPriceListsRequest(input) + return out, req.Send() +} + +// ListPriceListsWithContext is the same as ListPriceLists with the addition of +// the ability to pass a context and additional request options. +// +// See ListPriceLists 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 *Pricing) ListPriceListsWithContext(ctx aws.Context, input *ListPriceListsInput, opts ...request.Option) (*ListPriceListsOutput, error) { + req, out := c.ListPriceListsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListPriceListsPages iterates over the pages of a ListPriceLists operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListPriceLists method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListPriceLists operation. +// pageNum := 0 +// err := client.ListPriceListsPages(params, +// func(page *pricing.ListPriceListsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *Pricing) ListPriceListsPages(input *ListPriceListsInput, fn func(*ListPriceListsOutput, bool) bool) error { + return c.ListPriceListsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListPriceListsPagesWithContext same as ListPriceListsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Pricing) ListPriceListsPagesWithContext(ctx aws.Context, input *ListPriceListsInput, fn func(*ListPriceListsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListPriceListsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListPriceListsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListPriceListsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +// General authentication failure. The request wasn't signed correctly. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + // The values of a given attribute, such as Throughput Optimized HDD or Provisioned // IOPS for the Amazon EC2 volumeType attribute. type AttributeValue struct { @@ -714,10 +1040,10 @@ type Filter struct { // Type is a required field Type *string `type:"string" required:"true" enum:"FilterType"` - // The service code or attribute value that you want to filter by. If you are + // The service code or attribute value that you want to filter by. If you're // filtering by service code this is the actual service code, such as AmazonEC2. - // If you are filtering by attribute name, this is the attribute value that - // you want the returned products to match, such as a Provisioned IOPS volume. + // If you're filtering by attribute name, this is the attribute value that you + // want the returned products to match, such as a Provisioned IOPS volume. // // Value is a required field Value *string `type:"string" required:"true"` @@ -903,6 +1229,107 @@ func (s *GetAttributeValuesOutput) SetNextToken(v string) *GetAttributeValuesOut return s } +type GetPriceListFileUrlInput struct { + _ struct{} `type:"structure"` + + // The format that you want to retrieve your Price List files in. The FileFormat + // can be obtained from the ListPriceLists (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html) + // response. + // + // FileFormat is a required field + FileFormat *string `min:"1" type:"string" required:"true"` + + // The unique identifier that maps to where your Price List files are located. + // PriceListArn can be obtained from the ListPriceLists (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html) + // response. + // + // PriceListArn is a required field + PriceListArn *string `min:"18" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetPriceListFileUrlInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetPriceListFileUrlInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetPriceListFileUrlInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetPriceListFileUrlInput"} + if s.FileFormat == nil { + invalidParams.Add(request.NewErrParamRequired("FileFormat")) + } + if s.FileFormat != nil && len(*s.FileFormat) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FileFormat", 1)) + } + if s.PriceListArn == nil { + invalidParams.Add(request.NewErrParamRequired("PriceListArn")) + } + if s.PriceListArn != nil && len(*s.PriceListArn) < 18 { + invalidParams.Add(request.NewErrParamMinLen("PriceListArn", 18)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFileFormat sets the FileFormat field's value. +func (s *GetPriceListFileUrlInput) SetFileFormat(v string) *GetPriceListFileUrlInput { + s.FileFormat = &v + return s +} + +// SetPriceListArn sets the PriceListArn field's value. +func (s *GetPriceListFileUrlInput) SetPriceListArn(v string) *GetPriceListFileUrlInput { + s.PriceListArn = &v + return s +} + +type GetPriceListFileUrlOutput struct { + _ struct{} `type:"structure"` + + // The URL to download your Price List file from. + Url *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetPriceListFileUrlOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetPriceListFileUrlOutput) GoString() string { + return s.String() +} + +// SetUrl sets the Url field's value. +func (s *GetPriceListFileUrlOutput) SetUrl(v string) *GetPriceListFileUrlOutput { + s.Url = &v + return s +} + type GetProductsInput struct { _ struct{} `type:"structure"` @@ -1245,6 +1672,170 @@ func (s *InvalidParameterException) RequestID() string { return s.RespMetadata.RequestID } +type ListPriceListsInput struct { + _ struct{} `type:"structure"` + + // The three alphabetical character ISO-4217 currency code that the Price List + // files are denominated in. + // + // CurrencyCode is a required field + CurrencyCode *string `type:"string" required:"true"` + + // The date that the Price List file prices are effective from. + // + // EffectiveDate is a required field + EffectiveDate *time.Time `type:"timestamp" required:"true"` + + // The maximum number of results to return in the response. + MaxResults *int64 `min:"1" type:"integer"` + + // The pagination token that indicates the next set of results that you want + // to retrieve. + NextToken *string `type:"string"` + + // This is used to filter the Price List by Amazon Web Services Region. For + // example, to get the price list only for the US East (N. Virginia) Region, + // use us-east-1. If nothing is specified, you retrieve price lists for all + // applicable Regions. The available RegionCode list can be retrieved from GetAttributeValues + // (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetAttributeValues.html) + // API. + RegionCode *string `min:"1" type:"string"` + + // The service code or the Savings Plan service code for the attributes that + // you want to retrieve. For example, to get the list of applicable Amazon EC2 + // price lists, use AmazonEC2. For a full list of service codes containing On-Demand + // and Reserved Instance (RI) pricing, use the DescribeServices (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_DescribeServices.html#awscostmanagement-pricing_DescribeServices-request-FormatVersion) + // API. + // + // To retrieve the Compute Savings Plan price lists, use ComputeSavingsPlans. + // To retrieve Machine Learning Savings Plans price lists, use MachineLearningSavingsPlans. + // + // ServiceCode is a required field + ServiceCode *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListPriceListsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListPriceListsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListPriceListsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListPriceListsInput"} + if s.CurrencyCode == nil { + invalidParams.Add(request.NewErrParamRequired("CurrencyCode")) + } + if s.EffectiveDate == nil { + invalidParams.Add(request.NewErrParamRequired("EffectiveDate")) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.RegionCode != nil && len(*s.RegionCode) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RegionCode", 1)) + } + if s.ServiceCode == nil { + invalidParams.Add(request.NewErrParamRequired("ServiceCode")) + } + if s.ServiceCode != nil && len(*s.ServiceCode) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ServiceCode", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *ListPriceListsInput) SetCurrencyCode(v string) *ListPriceListsInput { + s.CurrencyCode = &v + return s +} + +// SetEffectiveDate sets the EffectiveDate field's value. +func (s *ListPriceListsInput) SetEffectiveDate(v time.Time) *ListPriceListsInput { + s.EffectiveDate = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListPriceListsInput) SetMaxResults(v int64) *ListPriceListsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListPriceListsInput) SetNextToken(v string) *ListPriceListsInput { + s.NextToken = &v + return s +} + +// SetRegionCode sets the RegionCode field's value. +func (s *ListPriceListsInput) SetRegionCode(v string) *ListPriceListsInput { + s.RegionCode = &v + return s +} + +// SetServiceCode sets the ServiceCode field's value. +func (s *ListPriceListsInput) SetServiceCode(v string) *ListPriceListsInput { + s.ServiceCode = &v + return s +} + +type ListPriceListsOutput struct { + _ struct{} `type:"structure"` + + // The pagination token that indicates the next set of results to retrieve. + NextToken *string `type:"string"` + + // The type of price list references that match your request. + PriceLists []*PriceList `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListPriceListsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListPriceListsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListPriceListsOutput) SetNextToken(v string) *ListPriceListsOutput { + s.NextToken = &v + return s +} + +// SetPriceLists sets the PriceLists field's value. +func (s *ListPriceListsOutput) SetPriceLists(v []*PriceList) *ListPriceListsOutput { + s.PriceLists = v + return s +} + // The requested resource can't be found. type NotFoundException struct { _ struct{} `type:"structure"` @@ -1309,6 +1900,80 @@ func (s *NotFoundException) RequestID() string { return s.RespMetadata.RequestID } +// This feature is in preview release and is subject to change. Your use of +// Amazon Web Services Price List API is subject to the Beta Service Participation +// terms of the Amazon Web Services Service Terms (https://aws.amazon.com/service-terms/) +// (Section 1.10). +// +// This is the type of price list references that match your request. +type PriceList struct { + _ struct{} `type:"structure"` + + // The three alphabetical character ISO-4217 currency code the Price List files + // are denominated in. + CurrencyCode *string `type:"string"` + + // The format you want to retrieve your Price List files. The FileFormat can + // be obtained from the ListPriceList (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html) + // response. + FileFormats []*string `type:"list"` + + // The unique identifier that maps to where your Price List files are located. + // PriceListArn can be obtained from the ListPriceList (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html) + // response. + PriceListArn *string `min:"18" type:"string"` + + // This is used to filter the Price List by Amazon Web Services Region. For + // example, to get the price list only for the US East (N. Virginia) Region, + // use us-east-1. If nothing is specified, you retrieve price lists for all + // applicable Regions. The available RegionCode list can be retrieved from GetAttributeValues + // (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetAttributeValues.html) + // API. + RegionCode *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PriceList) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s PriceList) GoString() string { + return s.String() +} + +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *PriceList) SetCurrencyCode(v string) *PriceList { + s.CurrencyCode = &v + return s +} + +// SetFileFormats sets the FileFormats field's value. +func (s *PriceList) SetFileFormats(v []*string) *PriceList { + s.FileFormats = v + return s +} + +// SetPriceListArn sets the PriceListArn field's value. +func (s *PriceList) SetPriceListArn(v string) *PriceList { + s.PriceListArn = &v + return s +} + +// SetRegionCode sets the RegionCode field's value. +func (s *PriceList) SetRegionCode(v string) *PriceList { + s.RegionCode = &v + return s +} + // The metadata for a service, such as the service code and available attribute // names. type Service struct { diff --git a/service/pricing/errors.go b/service/pricing/errors.go index c628c9a2b06..a5cddd61eed 100644 --- a/service/pricing/errors.go +++ b/service/pricing/errors.go @@ -8,6 +8,12 @@ import ( const ( + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // General authentication failure. The request wasn't signed correctly. + ErrCodeAccessDeniedException = "AccessDeniedException" + // ErrCodeExpiredNextTokenException for service response error code // "ExpiredNextTokenException". // @@ -41,6 +47,7 @@ const ( ) var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, "ExpiredNextTokenException": newErrorExpiredNextTokenException, "InternalErrorException": newErrorInternalErrorException, "InvalidNextTokenException": newErrorInvalidNextTokenException, diff --git a/service/pricing/pricingiface/interface.go b/service/pricing/pricingiface/interface.go index ce9bb1f7f39..e0ddf9dbc68 100644 --- a/service/pricing/pricingiface/interface.go +++ b/service/pricing/pricingiface/interface.go @@ -74,12 +74,23 @@ type PricingAPI interface { GetAttributeValuesPages(*pricing.GetAttributeValuesInput, func(*pricing.GetAttributeValuesOutput, bool) bool) error GetAttributeValuesPagesWithContext(aws.Context, *pricing.GetAttributeValuesInput, func(*pricing.GetAttributeValuesOutput, bool) bool, ...request.Option) error + GetPriceListFileUrl(*pricing.GetPriceListFileUrlInput) (*pricing.GetPriceListFileUrlOutput, error) + GetPriceListFileUrlWithContext(aws.Context, *pricing.GetPriceListFileUrlInput, ...request.Option) (*pricing.GetPriceListFileUrlOutput, error) + GetPriceListFileUrlRequest(*pricing.GetPriceListFileUrlInput) (*request.Request, *pricing.GetPriceListFileUrlOutput) + GetProducts(*pricing.GetProductsInput) (*pricing.GetProductsOutput, error) GetProductsWithContext(aws.Context, *pricing.GetProductsInput, ...request.Option) (*pricing.GetProductsOutput, error) GetProductsRequest(*pricing.GetProductsInput) (*request.Request, *pricing.GetProductsOutput) GetProductsPages(*pricing.GetProductsInput, func(*pricing.GetProductsOutput, bool) bool) error GetProductsPagesWithContext(aws.Context, *pricing.GetProductsInput, func(*pricing.GetProductsOutput, bool) bool, ...request.Option) error + + ListPriceLists(*pricing.ListPriceListsInput) (*pricing.ListPriceListsOutput, error) + ListPriceListsWithContext(aws.Context, *pricing.ListPriceListsInput, ...request.Option) (*pricing.ListPriceListsOutput, error) + ListPriceListsRequest(*pricing.ListPriceListsInput) (*request.Request, *pricing.ListPriceListsOutput) + + ListPriceListsPages(*pricing.ListPriceListsInput, func(*pricing.ListPriceListsOutput, bool) bool) error + ListPriceListsPagesWithContext(aws.Context, *pricing.ListPriceListsInput, func(*pricing.ListPriceListsOutput, bool) bool, ...request.Option) error } var _ PricingAPI = (*pricing.Pricing)(nil) diff --git a/service/s3outposts/api.go b/service/s3outposts/api.go index 423f6377fa9..5d1c361213b 100644 --- a/service/s3outposts/api.go +++ b/service/s3outposts/api.go @@ -90,6 +90,9 @@ func (c *S3Outposts) CreateEndpointRequest(input *CreateEndpointInput) (req *req // - ConflictException // There was a conflict with this action, and it could not be completed. // +// - ThrottlingException +// The request was denied due to request throttling. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/CreateEndpoint func (c *S3Outposts) CreateEndpoint(input *CreateEndpointInput) (*CreateEndpointOutput, error) { req, out := c.CreateEndpointRequest(input) @@ -187,6 +190,9 @@ func (c *S3Outposts) DeleteEndpointRequest(input *DeleteEndpointInput) (req *req // - ValidationException // There was an exception validating this data. // +// - ThrottlingException +// The request was denied due to request throttling. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/DeleteEndpoint func (c *S3Outposts) DeleteEndpoint(input *DeleteEndpointInput) (*DeleteEndpointOutput, error) { req, out := c.DeleteEndpointRequest(input) @@ -287,6 +293,9 @@ func (c *S3Outposts) ListEndpointsRequest(input *ListEndpointsInput) (req *reque // - ValidationException // There was an exception validating this data. // +// - ThrottlingException +// The request was denied due to request throttling. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/ListEndpoints func (c *S3Outposts) ListEndpoints(input *ListEndpointsInput) (*ListEndpointsOutput, error) { req, out := c.ListEndpointsRequest(input) @@ -360,6 +369,153 @@ func (c *S3Outposts) ListEndpointsPagesWithContext(ctx aws.Context, input *ListE return p.Err() } +const opListOutpostsWithS3 = "ListOutpostsWithS3" + +// ListOutpostsWithS3Request generates a "aws/request.Request" representing the +// client's request for the ListOutpostsWithS3 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 ListOutpostsWithS3 for more information on using the ListOutpostsWithS3 +// 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 ListOutpostsWithS3Request method. +// req, resp := client.ListOutpostsWithS3Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/ListOutpostsWithS3 +func (c *S3Outposts) ListOutpostsWithS3Request(input *ListOutpostsWithS3Input) (req *request.Request, output *ListOutpostsWithS3Output) { + op := &request.Operation{ + Name: opListOutpostsWithS3, + HTTPMethod: "GET", + HTTPPath: "/S3Outposts/ListOutpostsWithS3", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListOutpostsWithS3Input{} + } + + output = &ListOutpostsWithS3Output{} + req = c.newRequest(op, input, output) + return +} + +// ListOutpostsWithS3 API operation for Amazon S3 on Outposts. +// +// Lists the Outposts with S3 on Outposts capacity for your Amazon Web Services +// account. Includes S3 on Outposts that you have access to as the Outposts +// owner, or as a shared user from Resource Access Manager (RAM). +// +// 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 Amazon S3 on Outposts's +// API operation ListOutpostsWithS3 for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// There was an exception with the internal server. +// +// - AccessDeniedException +// Access was denied for this action. +// +// - ValidationException +// There was an exception validating this data. +// +// - ThrottlingException +// The request was denied due to request throttling. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/ListOutpostsWithS3 +func (c *S3Outposts) ListOutpostsWithS3(input *ListOutpostsWithS3Input) (*ListOutpostsWithS3Output, error) { + req, out := c.ListOutpostsWithS3Request(input) + return out, req.Send() +} + +// ListOutpostsWithS3WithContext is the same as ListOutpostsWithS3 with the addition of +// the ability to pass a context and additional request options. +// +// See ListOutpostsWithS3 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 *S3Outposts) ListOutpostsWithS3WithContext(ctx aws.Context, input *ListOutpostsWithS3Input, opts ...request.Option) (*ListOutpostsWithS3Output, error) { + req, out := c.ListOutpostsWithS3Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListOutpostsWithS3Pages iterates over the pages of a ListOutpostsWithS3 operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListOutpostsWithS3 method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListOutpostsWithS3 operation. +// pageNum := 0 +// err := client.ListOutpostsWithS3Pages(params, +// func(page *s3outposts.ListOutpostsWithS3Output, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *S3Outposts) ListOutpostsWithS3Pages(input *ListOutpostsWithS3Input, fn func(*ListOutpostsWithS3Output, bool) bool) error { + return c.ListOutpostsWithS3PagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListOutpostsWithS3PagesWithContext same as ListOutpostsWithS3Pages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Outposts) ListOutpostsWithS3PagesWithContext(ctx aws.Context, input *ListOutpostsWithS3Input, fn func(*ListOutpostsWithS3Output, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListOutpostsWithS3Input + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListOutpostsWithS3Request(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListOutpostsWithS3Output), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListSharedEndpoints = "ListSharedEndpoints" // ListSharedEndpointsRequest generates a "aws/request.Request" representing the @@ -439,6 +595,9 @@ func (c *S3Outposts) ListSharedEndpointsRequest(input *ListSharedEndpointsInput) // - ValidationException // There was an exception validating this data. // +// - ThrottlingException +// The request was denied due to request throttling. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/ListSharedEndpoints func (c *S3Outposts) ListSharedEndpoints(input *ListSharedEndpointsInput) (*ListSharedEndpointsOutput, error) { req, out := c.ListSharedEndpointsRequest(input) @@ -1140,6 +1299,108 @@ func (s *ListEndpointsOutput) SetNextToken(v string) *ListEndpointsOutput { return s } +type ListOutpostsWithS3Input struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of Outposts to return. The limit is 100. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // When you can get additional results from the ListOutpostsWithS3 call, a NextToken + // parameter is returned in the output. You can then pass in a subsequent command + // to the NextToken parameter to continue listing additional Outposts. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListOutpostsWithS3Input) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListOutpostsWithS3Input) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListOutpostsWithS3Input) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListOutpostsWithS3Input"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListOutpostsWithS3Input) SetMaxResults(v int64) *ListOutpostsWithS3Input { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListOutpostsWithS3Input) SetNextToken(v string) *ListOutpostsWithS3Input { + s.NextToken = &v + return s +} + +type ListOutpostsWithS3Output struct { + _ struct{} `type:"structure"` + + // Returns a token that you can use to call ListOutpostsWithS3 again and receive + // additional results, if there are any. + NextToken *string `min:"1" type:"string"` + + // Returns the list of Outposts that have the following characteristics: + // + // * outposts that have S3 provisioned + // + // * outposts that are Active (not pending any provisioning nor decommissioned) + // + // * outposts to which the the calling Amazon Web Services account has access + Outposts []*Outpost `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListOutpostsWithS3Output) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListOutpostsWithS3Output) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListOutpostsWithS3Output) SetNextToken(v string) *ListOutpostsWithS3Output { + s.NextToken = &v + return s +} + +// SetOutposts sets the Outposts field's value. +func (s *ListOutpostsWithS3Output) SetOutposts(v []*Outpost) *ListOutpostsWithS3Output { + s.Outposts = v + return s +} + type ListSharedEndpointsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -1283,6 +1544,66 @@ func (s *NetworkInterface) SetNetworkInterfaceId(v string) *NetworkInterface { return s } +// Contains the details for the Outpost object. +type Outpost struct { + _ struct{} `type:"structure"` + + // The Amazon S3 capacity of the outpost in bytes. + CapacityInBytes *int64 `type:"long"` + + // Specifies the unique Amazon Resource Name (ARN) for the outpost. + OutpostArn *string `type:"string"` + + // Specifies the unique identifier for the outpost. + OutpostId *string `type:"string"` + + // Returns the Amazon Web Services account ID of the outpost owner. Useful for + // comparing owned versus shared outposts. + OwnerId *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Outpost) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Outpost) GoString() string { + return s.String() +} + +// SetCapacityInBytes sets the CapacityInBytes field's value. +func (s *Outpost) SetCapacityInBytes(v int64) *Outpost { + s.CapacityInBytes = &v + return s +} + +// SetOutpostArn sets the OutpostArn field's value. +func (s *Outpost) SetOutpostArn(v string) *Outpost { + s.OutpostArn = &v + return s +} + +// SetOutpostId sets the OutpostId field's value. +func (s *Outpost) SetOutpostId(v string) *Outpost { + s.OutpostId = &v + return s +} + +// SetOwnerId sets the OwnerId field's value. +func (s *Outpost) SetOwnerId(v string) *Outpost { + s.OwnerId = &v + return s +} + // The requested resource was not found. type ResourceNotFoundException struct { _ struct{} `type:"structure"` @@ -1347,6 +1668,70 @@ func (s *ResourceNotFoundException) RequestID() string { return s.RespMetadata.RequestID } +// The request was denied due to request throttling. +type ThrottlingException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ThrottlingException) GoString() string { + return s.String() +} + +func newErrorThrottlingException(v protocol.ResponseMetadata) error { + return &ThrottlingException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ThrottlingException) Code() string { + return "ThrottlingException" +} + +// Message returns the exception's message. +func (s *ThrottlingException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ThrottlingException) OrigErr() error { + return nil +} + +func (s *ThrottlingException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ThrottlingException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ThrottlingException) RequestID() string { + return s.RespMetadata.RequestID +} + // There was an exception validating this data. type ValidationException struct { _ struct{} `type:"structure"` diff --git a/service/s3outposts/errors.go b/service/s3outposts/errors.go index e34f1dd52f9..b41844ad380 100644 --- a/service/s3outposts/errors.go +++ b/service/s3outposts/errors.go @@ -32,6 +32,12 @@ const ( // The requested resource was not found. ErrCodeResourceNotFoundException = "ResourceNotFoundException" + // ErrCodeThrottlingException for service response error code + // "ThrottlingException". + // + // The request was denied due to request throttling. + ErrCodeThrottlingException = "ThrottlingException" + // ErrCodeValidationException for service response error code // "ValidationException". // @@ -44,5 +50,6 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "ConflictException": newErrorConflictException, "InternalServerException": newErrorInternalServerException, "ResourceNotFoundException": newErrorResourceNotFoundException, + "ThrottlingException": newErrorThrottlingException, "ValidationException": newErrorValidationException, } diff --git a/service/s3outposts/s3outpostsiface/interface.go b/service/s3outposts/s3outpostsiface/interface.go index c73e146857f..0100633393d 100644 --- a/service/s3outposts/s3outpostsiface/interface.go +++ b/service/s3outposts/s3outpostsiface/interface.go @@ -75,6 +75,13 @@ type S3OutpostsAPI interface { ListEndpointsPages(*s3outposts.ListEndpointsInput, func(*s3outposts.ListEndpointsOutput, bool) bool) error ListEndpointsPagesWithContext(aws.Context, *s3outposts.ListEndpointsInput, func(*s3outposts.ListEndpointsOutput, bool) bool, ...request.Option) error + ListOutpostsWithS3(*s3outposts.ListOutpostsWithS3Input) (*s3outposts.ListOutpostsWithS3Output, error) + ListOutpostsWithS3WithContext(aws.Context, *s3outposts.ListOutpostsWithS3Input, ...request.Option) (*s3outposts.ListOutpostsWithS3Output, error) + ListOutpostsWithS3Request(*s3outposts.ListOutpostsWithS3Input) (*request.Request, *s3outposts.ListOutpostsWithS3Output) + + ListOutpostsWithS3Pages(*s3outposts.ListOutpostsWithS3Input, func(*s3outposts.ListOutpostsWithS3Output, bool) bool) error + ListOutpostsWithS3PagesWithContext(aws.Context, *s3outposts.ListOutpostsWithS3Input, func(*s3outposts.ListOutpostsWithS3Output, bool) bool, ...request.Option) error + ListSharedEndpoints(*s3outposts.ListSharedEndpointsInput) (*s3outposts.ListSharedEndpointsOutput, error) ListSharedEndpointsWithContext(aws.Context, *s3outposts.ListSharedEndpointsInput, ...request.Option) (*s3outposts.ListSharedEndpointsOutput, error) ListSharedEndpointsRequest(*s3outposts.ListSharedEndpointsInput) (*request.Request, *s3outposts.ListSharedEndpointsOutput)