diff --git a/.changes/1.35.24.json b/.changes/1.35.24.json new file mode 100644 index 0000000000..a5123dfd2c --- /dev/null +++ b/.changes/1.35.24.json @@ -0,0 +1,27 @@ +[ + { + "category": "``dynamodb``", + "description": "Generate account endpoint for DynamoDB requests when the account ID is available", + "type": "api-change" + }, + { + "category": "``neptune``", + "description": "Add v2 smoke tests and smithy smokeTests trait for SDK testing.", + "type": "api-change" + }, + { + "category": "``sagemaker``", + "description": "Amazon SageMaker now supports using manifest files to specify the location of uncompressed model artifacts within Model Packages", + "type": "api-change" + }, + { + "category": "``sagemaker-metrics``", + "description": "This release introduces support for the SageMaker Metrics BatchGetMetrics API.", + "type": "api-change" + }, + { + "category": "``workspaces``", + "description": "Releasing new ErrorCodes for SysPrep failures during ImageImport and CreateImage process", + "type": "api-change" + } +] \ No newline at end of file diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 7c37f2d65d..3393778774 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,16 @@ CHANGELOG ========= +1.35.24 +======= + +* api-change:``dynamodb``: Generate account endpoint for DynamoDB requests when the account ID is available +* api-change:``neptune``: Add v2 smoke tests and smithy smokeTests trait for SDK testing. +* api-change:``sagemaker``: Amazon SageMaker now supports using manifest files to specify the location of uncompressed model artifacts within Model Packages +* api-change:``sagemaker-metrics``: This release introduces support for the SageMaker Metrics BatchGetMetrics API. +* api-change:``workspaces``: Releasing new ErrorCodes for SysPrep failures during ImageImport and CreateImage process + + 1.35.23 ======= diff --git a/botocore/__init__.py b/botocore/__init__.py index d30db3bd8e..4fa5c8d9da 100644 --- a/botocore/__init__.py +++ b/botocore/__init__.py @@ -16,7 +16,7 @@ import os import re -__version__ = '1.35.23' +__version__ = '1.35.24' class NullHandler(logging.Handler): diff --git a/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json b/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json index 5e7f294eea..c628afe22b 100644 --- a/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json +++ b/botocore/data/dynamodb/2012-08-10/endpoint-rule-set-1.json @@ -26,6 +26,18 @@ "required": false, "documentation": "Override the endpoint used to send this request", "type": "String" + }, + "AccountId": { + "builtIn": "AWS::Auth::AccountId", + "required": false, + "documentation": "The AWS AccountId used for the request.", + "type": "String" + }, + "AccountIdEndpointMode": { + "builtIn": "AWS::Auth::AccountIdEndpointMode", + "required": false, + "documentation": "The AccountId Endpoint Mode.", + "type": "String" } }, "rules": [ @@ -74,9 +86,7 @@ { "conditions": [], "endpoint": { - "url": { - "ref": "Endpoint" - }, + "url": "{Endpoint}", "properties": {}, "headers": {} }, @@ -110,6 +120,176 @@ } ], "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "local" + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and local endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and local endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": "http://localhost:8000", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "required" + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ] + } + ], + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded.", + "type": "error" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "AccountId" + }, + false + ] + } + ] + } + ], + "error": "Credentials-sourced account ID parameter is invalid", + "type": "error" + }, { "conditions": [ { @@ -137,7 +317,6 @@ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -146,13 +325,13 @@ }, "supportsFIPS" ] - } + }, + true ] }, { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -161,11 +340,39 @@ }, "supportsDualStack" ] - } + }, + true ] } ], "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "disabled" + ] + } + ], + "endpoint": { + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { @@ -236,8 +443,68 @@ ] } ], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "disabled" + ] + } + ], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "disabled" + ] + } + ], "endpoint": { - "url": "https://dynamodb.{Region}.amazonaws.com", + "url": "https://dynamodb-fips.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, @@ -281,7 +548,6 @@ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -290,11 +556,39 @@ }, "supportsDualStack" ] - } + }, + true ] } ], "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountIdEndpointMode" + }, + "disabled" + ] + } + ], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, { "conditions": [], "endpoint": { @@ -317,27 +611,88 @@ }, { "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, { "fn": "stringEquals", "argv": [ { - "ref": "Region" + "ref": "AccountIdEndpointMode" }, - "local" + "disabled" ] } ], "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + }, + "aws" + ] + }, + { + "fn": "not", + "argv": [ { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] } ] }, + { + "fn": "not", + "argv": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.ddb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, "headers": {} }, "type": "endpoint" diff --git a/botocore/data/neptune/2014-10-31/service-2.json b/botocore/data/neptune/2014-10-31/service-2.json index b3438e1910..1c0515ce69 100644 --- a/botocore/data/neptune/2014-10-31/service-2.json +++ b/botocore/data/neptune/2014-10-31/service-2.json @@ -4,13 +4,15 @@ "apiVersion":"2014-10-31", "endpointPrefix":"rds", "protocol":"query", + "protocols":["query"], "serviceAbbreviation":"Amazon Neptune", "serviceFullName":"Amazon Neptune", "serviceId":"Neptune", "signatureVersion":"v4", "signingName":"rds", "uid":"neptune-2014-10-31", - "xmlNamespace":"http://rds.amazonaws.com/doc/2014-10-31/" + "xmlNamespace":"http://rds.amazonaws.com/doc/2014-10-31/", + "auth":["aws.auth#sigv4"] }, "operations":{ "AddRoleToDBCluster":{ diff --git a/botocore/data/sagemaker-metrics/2022-09-30/endpoint-rule-set-1.json b/botocore/data/sagemaker-metrics/2022-09-30/endpoint-rule-set-1.json index 9b57ecb1b0..037361e96f 100644 --- a/botocore/data/sagemaker-metrics/2022-09-30/endpoint-rule-set-1.json +++ b/botocore/data/sagemaker-metrics/2022-09-30/endpoint-rule-set-1.json @@ -40,7 +40,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -59,7 +58,6 @@ }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -87,13 +85,14 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [ @@ -106,7 +105,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -120,7 +118,6 @@ "assign": "PartitionResult" } ], - "type": "tree", "rules": [ { "conditions": [ @@ -143,7 +140,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -178,11 +174,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -193,16 +187,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS and DualStack are enabled, but this partition does not support one or both", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -216,14 +213,12 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -232,15 +227,14 @@ }, "supportsFIPS" ] - } + }, + true ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -251,16 +245,19 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "FIPS is enabled but this partition does not support FIPS", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [ @@ -274,7 +271,6 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [ @@ -294,11 +290,9 @@ ] } ], - "type": "tree", "rules": [ { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -309,20 +303,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "DualStack is enabled but this partition does not support DualStack", "type": "error" } - ] + ], + "type": "tree" }, { "conditions": [], - "type": "tree", "rules": [ { "conditions": [], @@ -333,18 +329,22 @@ }, "type": "endpoint" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" } - ] + ], + "type": "tree" }, { "conditions": [], "error": "Invalid Configuration: Missing Region", "type": "error" } - ] + ], + "type": "tree" } ] } \ No newline at end of file diff --git a/botocore/data/sagemaker-metrics/2022-09-30/service-2.json b/botocore/data/sagemaker-metrics/2022-09-30/service-2.json index fb2d62b208..74c09d9ebd 100644 --- a/botocore/data/sagemaker-metrics/2022-09-30/service-2.json +++ b/botocore/data/sagemaker-metrics/2022-09-30/service-2.json @@ -4,14 +4,26 @@ "apiVersion":"2022-09-30", "endpointPrefix":"metrics.sagemaker", "protocol":"rest-json", + "protocols":["rest-json"], "serviceAbbreviation":"SageMaker Metrics", "serviceFullName":"Amazon SageMaker Metrics Service", "serviceId":"SageMaker Metrics", "signatureVersion":"v4", "signingName":"sagemaker", - "uid":"sagemaker-metrics-2022-09-30" + "uid":"sagemaker-metrics-2022-09-30", + "auth":["aws.auth#sigv4"] }, "operations":{ + "BatchGetMetrics":{ + "name":"BatchGetMetrics", + "http":{ + "method":"POST", + "requestUri":"/BatchGetMetrics" + }, + "input":{"shape":"BatchGetMetricsRequest"}, + "output":{"shape":"BatchGetMetricsResponse"}, + "documentation":"
Used to retrieve training metrics from SageMaker.
" + }, "BatchPutMetrics":{ "name":"BatchPutMetrics", "http":{ @@ -20,10 +32,29 @@ }, "input":{"shape":"BatchPutMetricsRequest"}, "output":{"shape":"BatchPutMetricsResponse"}, - "documentation":"Used to ingest training metrics into SageMaker. These metrics can be visualized in SageMaker Studio and retrieved with the GetMetrics
API.
Used to ingest training metrics into SageMaker. These metrics can be visualized in SageMaker Studio.
" } }, "shapes":{ + "BatchGetMetricsRequest":{ + "type":"structure", + "required":["MetricQueries"], + "members":{ + "MetricQueries":{ + "shape":"MetricQueryList", + "documentation":"Queries made to retrieve training metrics from SageMaker.
" + } + } + }, + "BatchGetMetricsResponse":{ + "type":"structure", + "members":{ + "MetricQueryResults":{ + "shape":"MetricQueryResultList", + "documentation":"The results of a query to retrieve training metrics from SageMaker.
" + } + } + }, "BatchPutMetricsError":{ "type":"structure", "members":{ @@ -53,7 +84,7 @@ "members":{ "TrialComponentName":{ "shape":"ExperimentEntityName", - "documentation":"The name of the Trial Component to associate with the metrics.
" + "documentation":"The name of the Trial Component to associate with the metrics. The Trial Component name must be entirely lowercase.
" }, "MetricData":{ "shape":"RawMetricDataList", @@ -75,15 +106,136 @@ "type":"string", "max":120, "min":1, - "pattern":"^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,119}" + "pattern":"^[a-z0-9](-*[a-z0-9]){0,119}" }, "Integer":{"type":"integer"}, + "Long":{"type":"long"}, + "Message":{ + "type":"string", + "max":2048, + "pattern":".*" + }, "MetricName":{ "type":"string", "max":255, "min":1, "pattern":".+" }, + "MetricQuery":{ + "type":"structure", + "required":[ + "MetricName", + "ResourceArn", + "MetricStat", + "Period", + "XAxisType" + ], + "members":{ + "MetricName":{ + "shape":"MetricName", + "documentation":"The name of the metric to retrieve.
" + }, + "ResourceArn":{ + "shape":"SageMakerResourceArn", + "documentation":"The ARN of the SageMaker resource to retrieve metrics for.
" + }, + "MetricStat":{ + "shape":"MetricStatistic", + "documentation":"The metrics stat type of metrics to retrieve.
" + }, + "Period":{ + "shape":"Period", + "documentation":"The time period of metrics to retrieve.
" + }, + "XAxisType":{ + "shape":"XAxisType", + "documentation":"The x-axis type of metrics to retrieve.
" + }, + "Start":{ + "shape":"Long", + "documentation":"The start time of metrics to retrieve.
", + "box":true + }, + "End":{ + "shape":"Long", + "documentation":"The end time of metrics to retrieve.
", + "box":true + } + }, + "documentation":"Specifies a query to retrieve training metrics from SageMaker.
" + }, + "MetricQueryList":{ + "type":"list", + "member":{"shape":"MetricQuery"}, + "max":100, + "min":1 + }, + "MetricQueryResult":{ + "type":"structure", + "required":[ + "Status", + "XAxisValues", + "MetricValues" + ], + "members":{ + "Status":{ + "shape":"MetricQueryResultStatus", + "documentation":"The status of the metric query.
" + }, + "Message":{ + "shape":"Message", + "documentation":"A message describing the status of the metric query.
" + }, + "XAxisValues":{ + "shape":"XAxisValues", + "documentation":"The values for the x-axis of the metrics.
" + }, + "MetricValues":{ + "shape":"MetricValues", + "documentation":"The metric values retrieved by the query.
" + } + }, + "documentation":"The result of a query to retrieve training metrics from SageMaker.
" + }, + "MetricQueryResultList":{ + "type":"list", + "member":{"shape":"MetricQueryResult"}, + "max":100, + "min":1 + }, + "MetricQueryResultStatus":{ + "type":"string", + "enum":[ + "Complete", + "Truncated", + "InternalError", + "ValidationError" + ] + }, + "MetricStatistic":{ + "type":"string", + "enum":[ + "Min", + "Max", + "Avg", + "Count", + "StdDev", + "Last" + ] + }, + "MetricValues":{ + "type":"list", + "member":{"shape":"Double"} + }, + "Period":{ + "type":"string", + "enum":[ + "OneMinute", + "FiveMinute", + "OneHour", + "IterationNumber" + ] + }, "PutMetricsErrorCode":{ "type":"string", "enum":[ @@ -126,11 +278,27 @@ "max":10, "min":1 }, + "SageMakerResourceArn":{ + "type":"string", + "max":2048, + "pattern":"arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-].*/.*" + }, "Step":{ "type":"integer", "min":0 }, - "Timestamp":{"type":"timestamp"} + "Timestamp":{"type":"timestamp"}, + "XAxisType":{ + "type":"string", + "enum":[ + "IterationNumber", + "Timestamp" + ] + }, + "XAxisValues":{ + "type":"list", + "member":{"shape":"Long"} + } }, "documentation":"Contains all data plane API operations and data types for Amazon SageMaker Metrics. Use these APIs to put and retrieve (get) features related to your training run.
" } diff --git a/botocore/data/sagemaker/2017-07-24/service-2.json b/botocore/data/sagemaker/2017-07-24/service-2.json index 4e3da8b6b5..f9d86b0e82 100644 --- a/botocore/data/sagemaker/2017-07-24/service-2.json +++ b/botocore/data/sagemaker/2017-07-24/service-2.json @@ -33952,6 +33952,10 @@ "HubAccessConfig":{ "shape":"InferenceHubAccessConfig", "documentation":"Configuration information for hub access.
" + }, + "ManifestS3Uri":{ + "shape":"S3ModelUri", + "documentation":"The Amazon S3 URI of the manifest file. The manifest file is a CSV file that stores the artifact locations.
" } }, "documentation":"Specifies the S3 location of ML model data to deploy.
" diff --git a/botocore/data/workspaces/2015-04-08/service-2.json b/botocore/data/workspaces/2015-04-08/service-2.json index 6f0b46e385..6a7ea5c802 100644 --- a/botocore/data/workspaces/2015-04-08/service-2.json +++ b/botocore/data/workspaces/2015-04-08/service-2.json @@ -6622,7 +6622,10 @@ "ZeroRearmCount", "InPlaceUpgrade", "AntiVirusInstalled", - "UEFINotSupported" + "UEFINotSupported", + "UnknownError", + "AppXPackagesInstalled", + "ReservedStorageInUse" ] }, "WorkspaceImageId":{ diff --git a/botocore/regions.py b/botocore/regions.py index cfa3bde115..20504521b4 100644 --- a/botocore/regions.py +++ b/botocore/regions.py @@ -450,7 +450,9 @@ class EndpointResolverBuiltins(str, Enum): AWS_S3_DISABLE_MRAP = "AWS::S3::DisableMultiRegionAccessPoints" # Whether a custom endpoint has been configured (str) SDK_ENDPOINT = "SDK::Endpoint" - + # Currently not implemented: + ACCOUNT_ID = "AWS::Auth::AccountId" + ACCOUNT_ID_ENDPOINT_MODE = "AWS::Auth::AccountIdEndpointMode" class EndpointRulesetResolver: """Resolves endpoints using a service's endpoint ruleset""" diff --git a/docs/source/conf.py b/docs/source/conf.py index 640323f89c..e1a6f9bc6d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -59,7 +59,7 @@ # The short X.Y version. version = '1.35.' # The full version, including alpha/beta/rc tags. -release = '1.35.23' +release = '1.35.24' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/tests/functional/endpoint-rules/dynamodb/endpoint-tests-1.json b/tests/functional/endpoint-rules/dynamodb/endpoint-tests-1.json index 66351adfbb..1936e4ec35 100644 --- a/tests/functional/endpoint-rules/dynamodb/endpoint-tests-1.json +++ b/tests/functional/endpoint-rules/dynamodb/endpoint-tests-1.json @@ -707,6 +707,843 @@ "expect": { "error": "Invalid Configuration: Missing Region" } + }, + { + "documentation": "For custom endpoint with account ID available, FIPS enabled, and DualStack enabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with account ID available, FIPS enabled, and DualStack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with account ID available, FIPS disabled, and DualStack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "SDK::Endpoint": "https://example.com", + "AWS::Auth::AccountId": "012345678901" + }, + "operationName": "ListTables" + } + ], + "params": { + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with empty account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "SDK::Endpoint": "https://example.com", + "AWS::Auth::AccountId": "" + }, + "operationName": "ListTables" + } + ], + "params": { + "AccountId": "", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For region local with account ID available, FIPS enabled, and DualStack enabled", + "expect": { + "error": "Invalid Configuration: FIPS and local endpoint are not supported" + }, + "params": { + "Region": "local", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region local with account ID available, FIPS enabled, and DualStack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and local endpoint are not supported" + }, + "params": { + "Region": "local", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region local with account ID available, FIPS disabled, and DualStack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and local endpoint are not supported" + }, + "params": { + "Region": "local", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region local with account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://localhost:8000" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "local", + "AWS::Auth::AccountId": "012345678901" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "local", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region local with empty account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "dynamodb", + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://localhost:8000" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "local", + "AWS::Auth::AccountId": "" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "local", + "AccountId": "", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For AccountIdEndpointMode required and no AccountId set", + "expect": { + "error": "AccountIdEndpointMode is required but no AccountID was provided or able to be loaded." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "For region us-east-1 with account ID available, FIPS enabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with account ID available, FIPS enabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::UseFIPS": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with account ID available, AccountIdEndpointMode preferred, FIPS enabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::Auth::AccountIdEndpointMode": "preferred", + "AWS::UseFIPS": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "AccountIdEndpointMode": "preferred", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with account ID available, AccountIdEndpointMode required, FIPS enabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::Auth::AccountIdEndpointMode": "required", + "AWS::UseFIPS": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "AccountIdEndpointMode": "required", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with account ID available, FIPS disabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::UseDualStack": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with account ID available, FIPS disabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.api.aws" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::UseDualStack": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with account ID available, AccountIdEndpointMode preferred, FIPS disabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with account ID available, AccountIdEndpointMode disabled, FIPS disabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with account ID available, AccountIdEndpointMode required, FIPS disabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with account ID available, AccountIdEndpointMode preferred, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://012345678901.ddb.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::Auth::AccountIdEndpointMode": "preferred" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": false, + "AccountIdEndpointMode": "preferred" + } + }, + { + "documentation": "For region us-east-1 with account ID available, AccountIdEndpointMode required, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://012345678901.ddb.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::Auth::AccountIdEndpointMode": "required" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": false, + "AccountIdEndpointMode": "required" + } + }, + { + "documentation": "For region us-east-1 with account ID available, AccountIdEndpointMode disabled, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::Auth::AccountIdEndpointMode": "disabled" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": false, + "AccountIdEndpointMode": "disabled" + } + }, + { + "documentation": "For region us-east-1 with empty account ID, FIPS disabled, and DualStack disabled", + "expect": { + "error": "Credentials-sourced account ID parameter is invalid" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::Auth::AccountId": " " + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-east-1", + "AccountId": "", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with account ID available, FIPS enabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "cn-north-1", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with account ID available, FIPS enabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::UseFIPS": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "cn-north-1", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with account ID available, FIPS disabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::UseDualStack": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "cn-north-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::Auth::AccountId": "012345678901" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "cn-north-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with account ID available, AccountIdEndpointMode preferred, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "AccountId": "012345678901", + "AccountIdEndpointMode": "preferred", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with account ID available, AccountIdEndpointMode disabled, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "AccountId": "012345678901", + "AccountIdEndpointMode": "disabled", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with account ID available, AccountIdEndpointMode required, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "AccountId": "012345678901", + "AccountIdEndpointMode": "required", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with empty account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::Auth::AccountId": "" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "cn-north-1", + "AccountId": "", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with account ID available, FIPS enabled, and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with account ID available, FIPS enabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-iso-east-1", + "AWS::Auth::AccountId": "012345678901", + "AWS::UseFIPS": true + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-iso-east-1", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with account ID available, FIPS disabled, and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-iso-east-1", + "AWS::Auth::AccountId": "012345678901" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-iso-east-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with empty account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-iso-east-1.c2s.ic.gov" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-iso-east-1", + "AWS::Auth::AccountId": "012345678901" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-iso-east-1", + "AccountId": "", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with account ID available, FIPS enabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with account ID available, FIPS enabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "AccountId": "012345678901", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with account ID available, FIPS disabled, and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-east-1", + "AWS::Auth::AccountId": "012345678901" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-gov-east-1", + "AccountId": "012345678901", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with empty account ID available, FIPS disabled, and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://dynamodb.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-east-1", + "AWS::Auth::AccountId": "" + }, + "operationName": "ListTables" + } + ], + "params": { + "Region": "us-gov-east-1", + "AccountId": "", + "UseFIPS": false, + "UseDualStack": false + } } ], "version": "1.0" diff --git a/tests/functional/endpoint-rules/neptune/endpoint-tests-1.json b/tests/functional/endpoint-rules/neptune/endpoint-tests-1.json index 8ac5ed557d..8b0bc663a1 100644 --- a/tests/functional/endpoint-rules/neptune/endpoint-tests-1.json +++ b/tests/functional/endpoint-rules/neptune/endpoint-tests-1.json @@ -685,17 +685,6 @@ "expect": { "error": "Invalid Configuration: Missing Region" } - }, - { - "documentation": "Partition doesn't support DualStack", - "expect": { - "error": "DualStack is enabled but this partition does not support DualStack" - }, - "params": { - "Region": "us-isob-east-1", - "UseFIPS": false, - "UseDualStack": true - } } ], "version": "1.0"