diff --git a/codegen/sdk-codegen/aws-models/dynamodb.json b/codegen/sdk-codegen/aws-models/dynamodb.json index ddddb6a7eae..f953105638f 100644 --- a/codegen/sdk-codegen/aws-models/dynamodb.json +++ b/codegen/sdk-codegen/aws-models/dynamodb.json @@ -3884,6 +3884,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": [ @@ -3932,9 +3944,7 @@ { "conditions": [], "endpoint": { - "url": { - "ref": "Endpoint" - }, + "url": "{Endpoint}", "properties": {}, "headers": {} }, @@ -3968,6 +3978,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": [ { @@ -3995,7 +4175,6 @@ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -4004,13 +4183,13 @@ }, "supportsFIPS" ] - } + }, + true ] }, { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -4019,11 +4198,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": { @@ -4094,8 +4301,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": {} }, @@ -4139,7 +4406,6 @@ { "fn": "booleanEquals", "argv": [ - true, { "fn": "getAttr", "argv": [ @@ -4148,11 +4414,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": { @@ -4175,52 +4469,113 @@ }, { "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountIdEndpointMode" + } + ] + }, { "fn": "stringEquals", "argv": [ { - "ref": "Region" + "ref": "AccountIdEndpointMode" }, - "local" + "disabled" ] } ], - "endpoint": { - "url": "http://localhost:8000", - "properties": { - "authSchemes": [ - { - "name": "sigv4", - "signingName": "dynamodb", - "signingRegion": "us-east-1" - } - ] - }, - "headers": {} - }, - "type": "endpoint" - }, - { - "conditions": [], "endpoint": { "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" - } - ], - "type": "tree" - } - ], - "type": "tree" - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "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 + ] + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.ddb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://dynamodb.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] }, "smithy.rules#endpointTests": { "testCases": [ @@ -4931,6 +5286,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/codegen/sdk-codegen/aws-models/neptune.json b/codegen/sdk-codegen/aws-models/neptune.json index 67f5e676206..d25e0687cc7 100644 --- a/codegen/sdk-codegen/aws-models/neptune.json +++ b/codegen/sdk-codegen/aws-models/neptune.json @@ -1442,17 +1442,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" @@ -6123,7 +6112,20 @@ "outputToken": "Marker", "items": "DBEngineVersions", "pageSize": "MaxRecords" - } + }, + "smithy.test#smokeTests": [ + { + "id": "DescribeDBEngineVersionsSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] } }, "com.amazonaws.neptune#DescribeDBEngineVersionsMessage": { @@ -6212,6 +6214,21 @@ "smithy.api#suppress": [ "WaitableTraitInvalidErrorType" ], + "smithy.test#smokeTests": [ + { + "id": "DescribeDBInstancesFailure", + "params": { + "DBInstanceIdentifier": "fake-id" + }, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "failure": {} + } + } + ], "smithy.waiters#waitable": { "DBInstanceAvailable": { "acceptors": [ diff --git a/codegen/sdk-codegen/aws-models/sagemaker-metrics.json b/codegen/sdk-codegen/aws-models/sagemaker-metrics.json index 0d050f622a4..0c513677fc2 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker-metrics.json +++ b/codegen/sdk-codegen/aws-models/sagemaker-metrics.json @@ -29,6 +29,53 @@ ] }, "shapes": { + "com.amazonaws.sagemakermetrics#BatchGetMetrics": { + "type": "operation", + "input": { + "target": "com.amazonaws.sagemakermetrics#BatchGetMetricsRequest" + }, + "output": { + "target": "com.amazonaws.sagemakermetrics#BatchGetMetricsResponse" + }, + "traits": { + "smithy.api#documentation": "
Used to retrieve training metrics from SageMaker.
", + "smithy.api#http": { + "method": "POST", + "uri": "/BatchGetMetrics", + "code": 200 + } + } + }, + "com.amazonaws.sagemakermetrics#BatchGetMetricsRequest": { + "type": "structure", + "members": { + "MetricQueries": { + "target": "com.amazonaws.sagemakermetrics#MetricQueryList", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "Queries made to retrieve training metrics from SageMaker.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.sagemakermetrics#BatchGetMetricsResponse": { + "type": "structure", + "members": { + "MetricQueryResults": { + "target": "com.amazonaws.sagemakermetrics#MetricQueryResultList", + "traits": { + "smithy.api#documentation": "The results of a query to retrieve training metrics from SageMaker.
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.sagemakermetrics#BatchPutMetrics": { "type": "operation", "input": { @@ -38,7 +85,7 @@ "target": "com.amazonaws.sagemakermetrics#BatchPutMetricsResponse" }, "traits": { - "smithy.api#documentation": "Used to ingest training metrics into SageMaker. These metrics can be visualized in SageMaker Studio and\n retrieved with the GetMetrics
API.\n
Used to ingest training metrics into SageMaker. These metrics can be visualized in SageMaker Studio.\n
", "smithy.api#http": { "method": "PUT", "uri": "/BatchPutMetrics", @@ -85,7 +132,7 @@ "target": "com.amazonaws.sagemakermetrics#ExperimentEntityName", "traits": { "smithy.api#clientOptional": {}, - "smithy.api#documentation": "The name of the Trial Component to associate with the metrics.
", + "smithy.api#documentation": "The name of the Trial Component to associate with the metrics. The Trial Component name must be entirely lowercase.
", "smithy.api#required": {} } }, @@ -126,12 +173,25 @@ "min": 1, "max": 120 }, - "smithy.api#pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,119}$" + "smithy.api#pattern": "^[a-z0-9](-*[a-z0-9]){0,119}$" } }, "com.amazonaws.sagemakermetrics#Integer": { "type": "integer" }, + "com.amazonaws.sagemakermetrics#Long": { + "type": "long" + }, + "com.amazonaws.sagemakermetrics#Message": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#pattern": ".*" + } + }, "com.amazonaws.sagemakermetrics#MetricName": { "type": "string", "traits": { @@ -142,6 +202,233 @@ "smithy.api#pattern": "^.+$" } }, + "com.amazonaws.sagemakermetrics#MetricQuery": { + "type": "structure", + "members": { + "MetricName": { + "target": "com.amazonaws.sagemakermetrics#MetricName", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The name of the metric to retrieve.
", + "smithy.api#required": {} + } + }, + "ResourceArn": { + "target": "com.amazonaws.sagemakermetrics#SageMakerResourceArn", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The ARN of the SageMaker resource to retrieve metrics for.
", + "smithy.api#required": {} + } + }, + "MetricStat": { + "target": "com.amazonaws.sagemakermetrics#MetricStatistic", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The metrics stat type of metrics to retrieve.
", + "smithy.api#required": {} + } + }, + "Period": { + "target": "com.amazonaws.sagemakermetrics#Period", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The time period of metrics to retrieve.
", + "smithy.api#required": {} + } + }, + "XAxisType": { + "target": "com.amazonaws.sagemakermetrics#XAxisType", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The x-axis type of metrics to retrieve.
", + "smithy.api#required": {} + } + }, + "Start": { + "target": "com.amazonaws.sagemakermetrics#Long", + "traits": { + "smithy.api#documentation": "The start time of metrics to retrieve.
" + } + }, + "End": { + "target": "com.amazonaws.sagemakermetrics#Long", + "traits": { + "smithy.api#documentation": "The end time of metrics to retrieve.
" + } + } + }, + "traits": { + "smithy.api#documentation": "Specifies a query to retrieve training metrics from SageMaker.
" + } + }, + "com.amazonaws.sagemakermetrics#MetricQueryList": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemakermetrics#MetricQuery" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.sagemakermetrics#MetricQueryResult": { + "type": "structure", + "members": { + "Status": { + "target": "com.amazonaws.sagemakermetrics#MetricQueryResultStatus", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The status of the metric query.
", + "smithy.api#required": {} + } + }, + "Message": { + "target": "com.amazonaws.sagemakermetrics#Message", + "traits": { + "smithy.api#documentation": "A message describing the status of the metric query.
" + } + }, + "XAxisValues": { + "target": "com.amazonaws.sagemakermetrics#XAxisValues", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The values for the x-axis of the metrics.
", + "smithy.api#required": {} + } + }, + "MetricValues": { + "target": "com.amazonaws.sagemakermetrics#MetricValues", + "traits": { + "smithy.api#clientOptional": {}, + "smithy.api#documentation": "The metric values retrieved by the query.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "The result of a query to retrieve training metrics from SageMaker.
" + } + }, + "com.amazonaws.sagemakermetrics#MetricQueryResultList": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemakermetrics#MetricQueryResult" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.sagemakermetrics#MetricQueryResultStatus": { + "type": "enum", + "members": { + "COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Complete" + } + }, + "TRUNCATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Truncated" + } + }, + "INTERNAL_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InternalError" + } + }, + "VALIDATION_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ValidationError" + } + } + } + }, + "com.amazonaws.sagemakermetrics#MetricStatistic": { + "type": "enum", + "members": { + "MIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Min" + } + }, + "MAX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Max" + } + }, + "AVG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Avg" + } + }, + "COUNT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Count" + } + }, + "STD_DEV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "StdDev" + } + }, + "LAST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Last" + } + } + } + }, + "com.amazonaws.sagemakermetrics#MetricValues": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemakermetrics#Double" + } + }, + "com.amazonaws.sagemakermetrics#Period": { + "type": "enum", + "members": { + "ONE_MINUTE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OneMinute" + } + }, + "FIVE_MINUTE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FiveMinute" + } + }, + "ONE_HOUR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "OneHour" + } + }, + "ITERATION_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IterationNumber" + } + } + } + }, "com.amazonaws.sagemakermetrics#PutMetricsErrorCode": { "type": "enum", "members": { @@ -225,6 +512,9 @@ "type": "service", "version": "2022-09-30", "operations": [ + { + "target": "com.amazonaws.sagemakermetrics#BatchGetMetrics" + }, { "target": "com.amazonaws.sagemakermetrics#BatchPutMetrics" } @@ -909,6 +1199,16 @@ } } }, + "com.amazonaws.sagemakermetrics#SageMakerResourceArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#pattern": "^arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-].*/" + } + }, "com.amazonaws.sagemakermetrics#Step": { "type": "integer", "traits": { @@ -919,6 +1219,29 @@ }, "com.amazonaws.sagemakermetrics#Timestamp": { "type": "timestamp" + }, + "com.amazonaws.sagemakermetrics#XAxisType": { + "type": "enum", + "members": { + "ITERATION_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IterationNumber" + } + }, + "TIMESTAMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "Timestamp" + } + } + } + }, + "com.amazonaws.sagemakermetrics#XAxisValues": { + "type": "list", + "member": { + "target": "com.amazonaws.sagemakermetrics#Long" + } } } } diff --git a/codegen/sdk-codegen/aws-models/sagemaker.json b/codegen/sdk-codegen/aws-models/sagemaker.json index 5fe3eda0eb5..905c17b98d8 100644 --- a/codegen/sdk-codegen/aws-models/sagemaker.json +++ b/codegen/sdk-codegen/aws-models/sagemaker.json @@ -57284,6 +57284,12 @@ "traits": { "smithy.api#documentation": "Configuration information for hub access.
" } + }, + "ManifestS3Uri": { + "target": "com.amazonaws.sagemaker#S3ModelUri", + "traits": { + "smithy.api#documentation": "The Amazon S3 URI of the manifest file. The manifest file is a CSV file that stores the artifact locations.
" + } } }, "traits": { diff --git a/codegen/sdk-codegen/aws-models/workspaces.json b/codegen/sdk-codegen/aws-models/workspaces.json index a9758e820c5..664f150e199 100644 --- a/codegen/sdk-codegen/aws-models/workspaces.json +++ b/codegen/sdk-codegen/aws-models/workspaces.json @@ -4833,7 +4833,20 @@ "outputToken": "NextToken", "items": "Workspaces", "pageSize": "Limit" - } + }, + "smithy.test#smokeTests": [ + { + "id": "DescribeWorkspacesSuccess", + "params": {}, + "vendorParams": { + "region": "us-west-2" + }, + "vendorParamsShape": "aws.test#AwsVendorParams", + "expect": { + "success": {} + } + } + ] } }, "com.amazonaws.workspaces#DescribeWorkspacesConnectionStatus": { @@ -10814,6 +10827,24 @@ "traits": { "smithy.api#enumValue": "UEFINotSupported" } + }, + "UNKNOWN_ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UnknownError" + } + }, + "APPX_PACKAGES_INSTALLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AppXPackagesInstalled" + } + }, + "RESERVED_STORAGE_IN_USE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ReservedStorageInUse" + } } } },