{ "version": "1.0", "parameters": { "Region": { "builtIn": "AWS::Region", "required": false, "documentation": "The AWS region used to dispatch the request.", "type": "String" }, "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" }, "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" }, "Endpoint": { "builtIn": "SDK::Endpoint", "required": false, "documentation": "Override the endpoint used to send this request", "type": "String" }, "AccountId": { "required": false, "documentation": "The Account ID used to send the request. This is an optional parameter that will be set automatically for operations that require it.", "type": "String" }, "RequiresAccountId": { "required": false, "documentation": "Internal parameter for operations that require account id host prefix.", "type": "Boolean" }, "OutpostId": { "required": false, "documentation": "The Outpost ID. Some operations have an optional OutpostId which should be used in endpoint construction.", "type": "String" }, "Bucket": { "required": false, "documentation": "The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.", "type": "String" }, "AccessPointName": { "required": false, "documentation": "The S3 AccessPointName used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 AccessPoint.", "type": "String" }, "UseArnRegion": { "builtIn": "AWS::S3Control::UseArnRegion", "required": false, "documentation": "When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.", "type": "Boolean" } }, "rules": [ { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "Region" } ] } ], "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ { "ref": "Region" }, "snow" ] }, { "fn": "isSet", "argv": [ { "ref": "Endpoint" } ] }, { "fn": "parseURL", "argv": [ { "ref": "Endpoint" } ], "assign": "url" } ], "rules": [ { "conditions": [ { "fn": "aws.partition", "argv": [ { "ref": "Region" } ], "assign": "partitionResult" } ], "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "error": "S3 Snow does not support DualStack", "type": "error" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] } ], "error": "S3 Snow does not support FIPS", "type": "error" }, { "conditions": [], "endpoint": { "url": "{url#scheme}://{url#authority}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" } ], "type": "tree" } ], "type": "tree" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "OutpostId" } ] } ], "rules": [ { "conditions": [ { "fn": "aws.partition", "argv": [ { "ref": "Region" } ], "assign": "partitionResult" } ], "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] }, { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "partitionResult" }, "name" ] }, "aws-cn" ] } ], "error": "Partition does not support FIPS", "type": "error" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "RequiresAccountId" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "RequiresAccountId" }, true ] }, { "fn": "not", "argv": [ { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] } ] } ], "error": "AccountId is required but not set", "type": "error" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] }, { "fn": "not", "argv": [ { "fn": "isValidHostLabel", "argv": [ { "ref": "AccountId" }, false ] } ] } ], "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`.", "type": "error" }, { "conditions": [ { "fn": "not", "argv": [ { "fn": "isValidHostLabel", "argv": [ { "ref": "OutpostId" }, false ] } ] } ], "error": "OutpostId must only contain a-z, A-Z, 0-9 and `-`.", "type": "error" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "Endpoint" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "error": "Invalid Configuration: DualStack and custom endpoint are not supported", "type": "error" }, { "conditions": [ { "fn": "isValidHostLabel", "argv": [ { "ref": "Region" }, true ] } ], "rules": [ { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "Endpoint" } ] }, { "fn": "parseURL", "argv": [ { "ref": "Endpoint" } ], "assign": "url" } ], "endpoint": { "url": "{url#scheme}://{url#authority}{url#path}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "endpoint": { "url": "https://s3-outposts-fips.{Region}.{partitionResult#dualStackDnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] } ], "endpoint": { "url": "https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "endpoint": { "url": "https://s3-outposts.{Region}.{partitionResult#dualStackDnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [], "endpoint": { "url": "https://s3-outposts.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" } ], "type": "tree" }, { "conditions": [], "error": "Invalid region: region was not a valid DNS name.", "type": "error" } ], "type": "tree" } ], "type": "tree" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "AccessPointName" } ] }, { "fn": "aws.parseArn", "argv": [ { "ref": "AccessPointName" } ], "assign": "accessPointArn" } ], "rules": [ { "conditions": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "resourceId[0]" ], "assign": "arnType" }, { "fn": "not", "argv": [ { "fn": "stringEquals", "argv": [ { "ref": "arnType" }, "" ] } ] } ], "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "service" ] }, "s3-outposts" ] } ], "rules": [ { "conditions": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "resourceId[1]" ], "assign": "outpostId" } ], "rules": [ { "conditions": [ { "fn": "isValidHostLabel", "argv": [ { "ref": "outpostId" }, false ] } ], "rules": [ { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "Endpoint" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "error": "Invalid Configuration: DualStack and custom endpoint are not supported", "type": "error" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "UseArnRegion" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseArnRegion" }, false ] }, { "fn": "not", "argv": [ { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "region" ] }, "{Region}" ] } ] } ], "error": "Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", "type": "error" }, { "conditions": [ { "fn": "aws.partition", "argv": [ { "ref": "Region" } ], "assign": "partitionResult" } ], "rules": [ { "conditions": [ { "fn": "aws.partition", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "region" ] } ], "assign": "arnPartition" } ], "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "arnPartition" }, "name" ] }, { "fn": "getAttr", "argv": [ { "ref": "partitionResult" }, "name" ] } ] } ], "rules": [ { "conditions": [ { "fn": "isValidHostLabel", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "region" ] }, true ] } ], "rules": [ { "conditions": [ { "fn": "not", "argv": [ { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "accountId" ] }, "" ] } ] } ], "rules": [ { "conditions": [ { "fn": "isValidHostLabel", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "accountId" ] }, false ] } ], "rules": [ { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] }, { "fn": "not", "argv": [ { "fn": "stringEquals", "argv": [ { "ref": "AccountId" }, "{accessPointArn#accountId}" ] } ] } ], "error": "Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)", "type": "error" }, { "conditions": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "resourceId[2]" ], "assign": "outpostType" } ], "rules": [ { "conditions": [ { "fn": "getAttr", "argv": [ { "ref": "accessPointArn" }, "resourceId[3]" ], "assign": "accessPointName" } ], "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ { "ref": "outpostType" }, "accesspoint" ] } ], "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "endpoint": { "url": "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dualStackDnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{accessPointArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{accessPointArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] } ], "endpoint": { "url": "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{accessPointArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{accessPointArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "endpoint": { "url": "https://s3-outposts.{accessPointArn#region}.{arnPartition#dualStackDnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{accessPointArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{accessPointArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "Endpoint" } ] }, { "fn": "parseURL", "argv": [ { "ref": "Endpoint" } ], "assign": "url" } ], "endpoint": { "url": "{url#scheme}://{url#authority}{url#path}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{accessPointArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{accessPointArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" }, { "conditions": [], "endpoint": { "url": "https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{accessPointArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{accessPointArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" } ], "type": "tree" }, { "conditions": [], "error": "Expected an outpost type `accesspoint`, found `{outpostType}`", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: expected an access point name", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: Expected a 4-component resource", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: missing account ID", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", "type": "error" } ], "type": "tree" } ], "type": "tree" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: The Outpost Id was not set", "type": "error" } ], "type": "tree" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: No ARN type specified", "type": "error" } ], "type": "tree" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "Bucket" } ] }, { "fn": "aws.parseArn", "argv": [ { "ref": "Bucket" } ], "assign": "bucketArn" } ], "rules": [ { "conditions": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "resourceId[0]" ], "assign": "arnType" }, { "fn": "not", "argv": [ { "fn": "stringEquals", "argv": [ { "ref": "arnType" }, "" ] } ] } ], "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "service" ] }, "s3-outposts" ] } ], "rules": [ { "conditions": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "resourceId[1]" ], "assign": "outpostId" } ], "rules": [ { "conditions": [ { "fn": "isValidHostLabel", "argv": [ { "ref": "outpostId" }, false ] } ], "rules": [ { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "Endpoint" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "error": "Invalid Configuration: DualStack and custom endpoint are not supported", "type": "error" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "UseArnRegion" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseArnRegion" }, false ] }, { "fn": "not", "argv": [ { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "region" ] }, "{Region}" ] } ] } ], "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", "type": "error" }, { "conditions": [ { "fn": "aws.partition", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "region" ] } ], "assign": "arnPartition" } ], "rules": [ { "conditions": [ { "fn": "aws.partition", "argv": [ { "ref": "Region" } ], "assign": "partitionResult" } ], "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "arnPartition" }, "name" ] }, { "fn": "getAttr", "argv": [ { "ref": "partitionResult" }, "name" ] } ] } ], "rules": [ { "conditions": [ { "fn": "isValidHostLabel", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "region" ] }, true ] } ], "rules": [ { "conditions": [ { "fn": "not", "argv": [ { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "accountId" ] }, "" ] } ] } ], "rules": [ { "conditions": [ { "fn": "isValidHostLabel", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "accountId" ] }, false ] } ], "rules": [ { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] }, { "fn": "not", "argv": [ { "fn": "stringEquals", "argv": [ { "ref": "AccountId" }, "{bucketArn#accountId}" ] } ] } ], "error": "Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)", "type": "error" }, { "conditions": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "resourceId[2]" ], "assign": "outpostType" } ], "rules": [ { "conditions": [ { "fn": "getAttr", "argv": [ { "ref": "bucketArn" }, "resourceId[3]" ], "assign": "bucketName" } ], "rules": [ { "conditions": [ { "fn": "stringEquals", "argv": [ { "ref": "outpostType" }, "bucket" ] } ], "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "endpoint": { "url": "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dualStackDnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{bucketArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{bucketArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] } ], "endpoint": { "url": "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{bucketArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{bucketArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "endpoint": { "url": "https://s3-outposts.{bucketArn#region}.{arnPartition#dualStackDnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{bucketArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{bucketArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "Endpoint" } ] }, { "fn": "parseURL", "argv": [ { "ref": "Endpoint" } ], "assign": "url" } ], "endpoint": { "url": "{url#scheme}://{url#authority}{url#path}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{bucketArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{bucketArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" }, { "conditions": [], "endpoint": { "url": "https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3-outposts", "signingRegion": "{bucketArn#region}" } ] }, "headers": { "x-amz-account-id": [ "{bucketArn#accountId}" ], "x-amz-outpost-id": [ "{outpostId}" ] } }, "type": "endpoint" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: expected a bucket name", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: Expected a 4-component resource", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: missing account ID", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", "type": "error" } ], "type": "tree" } ], "type": "tree" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", "type": "error" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: The Outpost Id was not set", "type": "error" } ], "type": "tree" } ], "type": "tree" }, { "conditions": [], "error": "Invalid ARN: No ARN type specified", "type": "error" } ], "type": "tree" }, { "conditions": [ { "fn": "aws.partition", "argv": [ { "ref": "Region" } ], "assign": "partitionResult" } ], "rules": [ { "conditions": [ { "fn": "isValidHostLabel", "argv": [ { "ref": "Region" }, true ] } ], "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] }, { "fn": "stringEquals", "argv": [ { "fn": "getAttr", "argv": [ { "ref": "partitionResult" }, "name" ] }, "aws-cn" ] } ], "error": "Partition does not support FIPS", "type": "error" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "RequiresAccountId" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "RequiresAccountId" }, true ] }, { "fn": "not", "argv": [ { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] } ] } ], "error": "AccountId is required but not set", "type": "error" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] }, { "fn": "not", "argv": [ { "fn": "isValidHostLabel", "argv": [ { "ref": "AccountId" }, false ] } ] } ], "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`.", "type": "error" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "Endpoint" } ] }, { "fn": "parseURL", "argv": [ { "ref": "Endpoint" } ], "assign": "url" } ], "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "error": "Invalid Configuration: DualStack and custom endpoint are not supported", "type": "error" }, { "conditions": [ { "fn": "isSet", "argv": [ { "ref": "RequiresAccountId" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "RequiresAccountId" }, true ] }, { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] } ], "endpoint": { "url": "{url#scheme}://{AccountId}.{url#authority}{url#path}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [], "endpoint": { "url": "{url#scheme}://{url#authority}{url#path}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" } ], "type": "tree" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] }, { "fn": "isSet", "argv": [ { "ref": "RequiresAccountId" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "RequiresAccountId" }, true ] }, { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] } ], "endpoint": { "url": "https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "endpoint": { "url": "https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, false ] }, { "fn": "isSet", "argv": [ { "ref": "RequiresAccountId" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "RequiresAccountId" }, true ] }, { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] } ], "endpoint": { "url": "https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, true ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, false ] } ], "endpoint": { "url": "https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, false ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] }, { "fn": "isSet", "argv": [ { "ref": "RequiresAccountId" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "RequiresAccountId" }, true ] }, { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] } ], "endpoint": { "url": "https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, false ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, true ] } ], "endpoint": { "url": "https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, false ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, false ] }, { "fn": "isSet", "argv": [ { "ref": "RequiresAccountId" } ] }, { "fn": "booleanEquals", "argv": [ { "ref": "RequiresAccountId" }, true ] }, { "fn": "isSet", "argv": [ { "ref": "AccountId" } ] } ], "endpoint": { "url": "https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" }, { "conditions": [ { "fn": "booleanEquals", "argv": [ { "ref": "UseFIPS" }, false ] }, { "fn": "booleanEquals", "argv": [ { "ref": "UseDualStack" }, false ] } ], "endpoint": { "url": "https://s3-control.{Region}.{partitionResult#dnsSuffix}", "properties": { "authSchemes": [ { "disableDoubleEncoding": true, "name": "sigv4", "signingName": "s3", "signingRegion": "{Region}" } ] }, "headers": {} }, "type": "endpoint" } ], "type": "tree" }, { "conditions": [], "error": "Invalid region: region was not a valid DNS name.", "type": "error" } ], "type": "tree" } ], "type": "tree" }, { "conditions": [], "error": "Region must be set", "type": "error" } ] }