diff --git a/clients/client-s3-control/src/endpoint/ruleset.ts b/clients/client-s3-control/src/endpoint/ruleset.ts index 67c19715e39ce..bb758b93ac395 100644 --- a/clients/client-s3-control/src/endpoint/ruleset.ts +++ b/clients/client-s3-control/src/endpoint/ruleset.ts @@ -6,34 +6,34 @@ import { RuleSetObject } from "@aws-sdk/util-endpoints"; or see "smithy.rules#endpointRuleSet" in codegen/sdk-codegen/aws-models/s3-control.json */ -const aA="required", -aB="type", -aC="conditions", -aD="fn", -aE="argv", -aF="ref", -aG="assign", -aH="authSchemes", -aI="disableDoubleEncoding", -aJ="name", -aK="signingName", -aL="signingRegion", -aM="x-amz-account-id", -aN="x-amz-outpost-id"; +const aD="required", +aE="type", +aF="conditions", +aG="fn", +aH="argv", +aI="ref", +aJ="assign", +aK="authSchemes", +aL="disableDoubleEncoding", +aM="name", +aN="signingName", +aO="signingRegion", +aP="x-amz-account-id", +aQ="x-amz-outpost-id"; const a=false, b=true, c="tree", d="isSet", -e="aws.partition", -f="stringEquals", -g="getAttr", -h="error", -i="not", -j="isValidHostLabel", -k="{url#scheme}://{url#authority}{url#path}", -l="s3-outposts", -m="{Region}", -n="endpoint", +e="stringEquals", +f="aws.partition", +g="error", +h="{Region}", +i="endpoint", +j="getAttr", +k="not", +l="isValidHostLabel", +m="{url#scheme}://{url#authority}{url#path}", +n="s3-outposts", o="aws.parseArn", p="accessPointArn", q="resourceId[0]", @@ -48,55 +48,58 @@ y="outpostType", z="resourceId[3]", A="bucketArn", B="{bucketArn#accountId}", -C={[aA]:false,[aB]:"String"}, -D={[aA]:true,"default":false,[aB]:"Boolean"}, -E={[aA]:false,[aB]:"Boolean"}, -F={[aF]:"OutpostId"}, -G={[aC]:[{[aD]:"booleanEquals",[aE]:[{[aF]:"UseFIPS"},true]},{[aD]:f,[aE]:[{[aD]:g,[aE]:[{[aF]:"partitionResult"},"name"]},"aws-cn"]}],[h]:"Partition does not support FIPS",[aB]:h}, -H={[aD]:"booleanEquals",[aE]:[{[aF]:"UseFIPS"},true]}, -I={[aC]:[{[aD]:d,[aE]:[{[aF]:"RequiresAccountId"}]},{[aD]:"booleanEquals",[aE]:[{[aF]:"RequiresAccountId"},true]},{[aD]:i,[aE]:[{[aD]:d,[aE]:[{[aF]:"AccountId"}]}]}],[h]:"AccountId is required but not set",[aB]:h}, -J={[aD]:d,[aE]:[{[aF]:"RequiresAccountId"}]}, -K={[aD]:"booleanEquals",[aE]:[{[aF]:"RequiresAccountId"},true]}, -L={[aD]:d,[aE]:[{[aF]:"AccountId"}]}, -M={[aF]:"AccountId"}, -N={[aC]:[L,{[aD]:i,[aE]:[{[aD]:j,[aE]:[M,false]}]}],[h]:"AccountId must only contain a-z, A-Z, 0-9 and `-`.",[aB]:h}, -O={[aD]:"booleanEquals",[aE]:[{[aF]:"UseDualStack"},true]}, -P={[aH]:[{[aI]:true,[aJ]:"sigv4",[aK]:l,[aL]:m}]}, -Q={}, -R={[h]:"Invalid region: region was not a valid DNS name.",[aB]:h}, -S={[h]:"A valid partition could not be determined",[aB]:h}, -T={[aF]:p}, -U={[aD]:i,[aE]:[{[aD]:f,[aE]:[{[aF]:r},""]}]}, -V={[aD]:d,[aE]:[{[aF]:"UseArnRegion"}]}, -W={[aD]:"booleanEquals",[aE]:[{[aF]:"UseArnRegion"},false]}, -X={[aD]:g,[aE]:[T,"region"]}, -Y={[aD]:g,[aE]:[T,"accountId"]}, -Z={[aF]:y}, -aa={[aH]:[{[aI]:true,[aJ]:"sigv4",[aK]:l,[aL]:"{accessPointArn#region}"}]}, -ab={[aM]:[w],[aN]:["{outpostId}"]}, -ac={[h]:"Invalid ARN: Expected a 4-component resource",[aB]:h}, -ad={[h]:"Invalid ARN: missing account ID",[aB]:h}, -ae={[h]:"Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`",[aB]:h}, -af={[h]:"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`",[aB]:h}, -ag={[h]:"Invalid ARN: The Outpost Id was not set",[aB]:h}, -ah={[h]:"Invalid ARN: No ARN type specified",[aB]:h}, -ai={[aF]:A}, -aj={[aD]:g,[aE]:[ai,"region"]}, -ak={[aD]:g,[aE]:[ai,"accountId"]}, -al={[aH]:[{[aI]:true,[aJ]:"sigv4",[aK]:l,[aL]:"{bucketArn#region}"}]}, -am={[aM]:[B],[aN]:["{outpostId}"]}, -an={[aH]:[{[aI]:true,[aJ]:"sigv4",[aK]:"s3",[aL]:m}]}, -ao={[aD]:"booleanEquals",[aE]:[{[aF]:"UseDualStack"},false]}, -ap={[aD]:"booleanEquals",[aE]:[{[aF]:"UseFIPS"},false]}, -aq=[{[aF]:"Region"}], -ar=[{[aD]:e,[aE]:aq,[aG]:"partitionResult"}], -as=[{[aD]:j,[aE]:[{[aF]:"Region"},true]}], -at=[O], -au=[{[aD]:d,[aE]:[{[aF]:"Endpoint"}]},{[aD]:"parseURL",[aE]:[{[aF]:"Endpoint"}],[aG]:"url"}], -av=[H], -aw=[{[aF]:"AccessPointName"}], -ax=[{[aD]:j,[aE]:[{[aF]:u},false]}], -ay=[{[aD]:f,[aE]:[{[aD]:g,[aE]:[{[aF]:v},"name"]},{[aD]:g,[aE]:[{[aF]:"partitionResult"},"name"]}]}], -az=[{[aF]:"Bucket"}]; -const _data={version:"1.0",parameters:{Region:C,UseFIPS:D,UseDualStack:D,Endpoint:C,AccountId:C,RequiresAccountId:E,OutpostId:C,Bucket:C,AccessPointName:C,UseArnRegion:E},rules:[{[aB]:c,rules:[{[aC]:[{[aD]:d,[aE]:aq}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:d,[aE]:[F]}],[aB]:c,rules:[{[aC]:ar,[aB]:c,rules:[{[aB]:c,rules:[G,{[aB]:c,rules:[I,{[aB]:c,rules:[N,{[aB]:c,rules:[{[aC]:[{[aD]:i,[aE]:[{[aD]:j,[aE]:[F,a]}]}],error:"OutpostId must only contain a-z, A-Z, 0-9 and `-`.",[aB]:h},{[aB]:c,rules:[{[aC]:as,[aB]:c,rules:[{[aB]:c,rules:[{[aC]:at,error:"Invalid configuration: Outposts do not support dual-stack",[aB]:h},{[aB]:c,rules:[{[aC]:au,endpoint:{url:k,properties:P,headers:Q},[aB]:n},{[aC]:av,endpoint:{url:"https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}",properties:P,headers:Q},[aB]:n},{endpoint:{url:"https://s3-outposts.{Region}.{partitionResult#dnsSuffix}",properties:P,headers:Q},[aB]:n}]}]}]},R]}]}]}]}]}]},S]},{[aC]:[{[aD]:d,[aE]:aw},{[aD]:o,[aE]:aw,[aG]:p}],[aB]:c,rules:[{[aC]:[{[aD]:g,[aE]:[T,q],[aG]:r},U],[aB]:c,rules:[{[aC]:[{[aD]:f,[aE]:[{[aD]:g,[aE]:[T,s]},l]}],[aB]:c,rules:[{[aC]:at,error:"Invalid configuration: Outpost Access Points do not support dual-stack",[aB]:h},{[aB]:c,rules:[{[aC]:[{[aD]:g,[aE]:[T,t],[aG]:u}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:ax,[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[V,W,{[aD]:i,[aE]:[{[aD]:f,[aE]:[X,m]}]}],error:"Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",[aB]:h},{[aB]:c,rules:[{[aC]:ar,[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:e,[aE]:[X],[aG]:v}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:ay,[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:j,[aE]:[X,b]}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:i,[aE]:[{[aD]:f,[aE]:[Y,""]}]}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:j,[aE]:[Y,a]}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[L,{[aD]:i,[aE]:[{[aD]:f,[aE]:[M,w]}]}],error:"Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)",[aB]:h},{[aB]:c,rules:[{[aC]:[{[aD]:g,[aE]:[T,x],[aG]:y}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:g,[aE]:[T,z],[aG]:"accessPointName"}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:f,[aE]:[Z,"accesspoint"]}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:av,endpoint:{url:"https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}",properties:aa,headers:ab},[aB]:n},{[aC]:au,endpoint:{url:k,properties:aa,headers:ab},[aB]:n},{endpoint:{url:"https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}",properties:aa,headers:ab},[aB]:n}]}]},{error:"Expected an outpost type `accesspoint`, found `{outpostType}`",[aB]:h}]}]},{error:"Invalid ARN: expected an access point name",[aB]:h}]}]},ac]}]}]},{error:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`",[aB]:h}]}]},ad]}]},{error:"Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)",[aB]:h}]}]},ae]}]},{error:"Could not load partition for ARN region `{accessPointArn#region}`",[aB]:h}]}]},S]}]}]},af]}]},ag]}]}]},ah]},{[aC]:[{[aD]:d,[aE]:az},{[aD]:o,[aE]:az,[aG]:A}],[aB]:c,rules:[{[aC]:[{[aD]:g,[aE]:[ai,q],[aG]:r},U],[aB]:c,rules:[{[aC]:[{[aD]:f,[aE]:[{[aD]:g,[aE]:[ai,s]},l]}],[aB]:c,rules:[{[aC]:at,error:"Invalid configuration: Outpost buckets do not support dual-stack",[aB]:h},{[aB]:c,rules:[{[aC]:[{[aD]:g,[aE]:[ai,t],[aG]:u}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:ax,[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[V,W,{[aD]:i,[aE]:[{[aD]:f,[aE]:[aj,m]}]}],error:"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",[aB]:h},{[aB]:c,rules:[{[aC]:[{[aD]:e,[aE]:[aj],[aG]:v}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:ar,[aB]:c,rules:[{[aB]:c,rules:[{[aC]:ay,[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:j,[aE]:[aj,b]}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:i,[aE]:[{[aD]:f,[aE]:[ak,""]}]}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:j,[aE]:[ak,a]}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[L,{[aD]:i,[aE]:[{[aD]:f,[aE]:[M,B]}]}],error:"Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)",[aB]:h},{[aB]:c,rules:[{[aC]:[{[aD]:g,[aE]:[ai,x],[aG]:y}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:g,[aE]:[ai,z],[aG]:"bucketName"}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:[{[aD]:f,[aE]:[Z,"bucket"]}],[aB]:c,rules:[{[aB]:c,rules:[{[aC]:av,endpoint:{url:"https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}",properties:al,headers:am},[aB]:n},{[aC]:au,endpoint:{url:k,properties:al,headers:am},[aB]:n},{endpoint:{url:"https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}",properties:al,headers:am},[aB]:n}]}]},{error:"Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`",[aB]:h}]}]},{error:"Invalid ARN: expected a bucket name",[aB]:h}]}]},ac]}]}]},{error:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",[aB]:h}]}]},ad]}]},{error:"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",[aB]:h}]}]},ae]}]},S]}]},{error:"Could not load partition for ARN region `{bucketArn#region}`",[aB]:h}]}]}]},af]}]},ag]}]}]},ah]},{[aB]:c,rules:[{[aC]:ar,[aB]:c,rules:[{[aB]:c,rules:[{[aC]:as,[aB]:c,rules:[{[aB]:c,rules:[G,{[aB]:c,rules:[I,{[aB]:c,rules:[N,{[aB]:c,rules:[{[aC]:au,[aB]:c,rules:[{[aC]:at,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[aB]:h},{[aB]:c,rules:[{[aC]:[J,K,L],endpoint:{url:"{url#scheme}://{AccountId}.{url#authority}{url#path}",properties:an,headers:Q},[aB]:n},{endpoint:{url:k,properties:an,headers:Q},[aB]:n}]}]},{[aB]:c,rules:[{[aC]:[H,O,J,K,L],endpoint:{url:"https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",properties:an,headers:Q},[aB]:n},{[aC]:[H,O],endpoint:{url:"https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",properties:an,headers:Q},[aB]:n},{[aC]:[H,ao,J,K,L],endpoint:{url:"https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}",properties:an,headers:Q},[aB]:n},{[aC]:[H,ao],endpoint:{url:"https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}",properties:an,headers:Q},[aB]:n},{[aC]:[ap,O,J,K,L],endpoint:{url:"https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}",properties:an,headers:Q},[aB]:n},{[aC]:[ap,O],endpoint:{url:"https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}",properties:an,headers:Q},[aB]:n},{[aC]:[ap,ao,J,K,L],endpoint:{url:"https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}",properties:an,headers:Q},[aB]:n},{[aC]:[ap,ao],endpoint:{url:"https://s3-control.{Region}.{partitionResult#dnsSuffix}",properties:an,headers:Q},[aB]:n}]}]}]}]}]}]},R]}]},S]}]}]},{error:"Region must be set",[aB]:h}]}]}; +C={[aD]:false,[aE]:"String"}, +D={[aD]:true,"default":false,[aE]:"Boolean"}, +E={[aD]:false,[aE]:"Boolean"}, +F={[aI]:"Region"}, +G={[aG]:d,[aH]:[{[aI]:"Endpoint"}]}, +H={[aG]:"parseURL",[aH]:[{[aI]:"Endpoint"}],[aJ]:"url"}, +I={[aG]:"booleanEquals",[aH]:[{[aI]:"UseDualStack"},true]}, +J={[aG]:"booleanEquals",[aH]:[{[aI]:"UseFIPS"},true]}, +K={[aK]:[{[aL]:true,[aM]:"sigv4",[aN]:"s3",[aO]:h}]}, +L={}, +M={[g]:"A valid partition could not be determined",[aE]:g}, +N={[aI]:"OutpostId"}, +O={[aF]:[J,{[aG]:e,[aH]:[{[aG]:j,[aH]:[{[aI]:"partitionResult"},"name"]},"aws-cn"]}],[g]:"Partition does not support FIPS",[aE]:g}, +P={[aF]:[{[aG]:d,[aH]:[{[aI]:"RequiresAccountId"}]},{[aG]:"booleanEquals",[aH]:[{[aI]:"RequiresAccountId"},true]},{[aG]:k,[aH]:[{[aG]:d,[aH]:[{[aI]:"AccountId"}]}]}],[g]:"AccountId is required but not set",[aE]:g}, +Q={[aG]:d,[aH]:[{[aI]:"RequiresAccountId"}]}, +R={[aG]:"booleanEquals",[aH]:[{[aI]:"RequiresAccountId"},true]}, +S={[aG]:d,[aH]:[{[aI]:"AccountId"}]}, +T={[aI]:"AccountId"}, +U={[aF]:[S,{[aG]:k,[aH]:[{[aG]:l,[aH]:[T,false]}]}],[g]:"AccountId must only contain a-z, A-Z, 0-9 and `-`.",[aE]:g}, +V={[aK]:[{[aL]:true,[aM]:"sigv4",[aN]:n,[aO]:h}]}, +W={[g]:"Invalid region: region was not a valid DNS name.",[aE]:g}, +X={[aI]:p}, +Y={[aG]:k,[aH]:[{[aG]:e,[aH]:[{[aI]:r},""]}]}, +Z={[aG]:d,[aH]:[{[aI]:"UseArnRegion"}]}, +aa={[aG]:"booleanEquals",[aH]:[{[aI]:"UseArnRegion"},false]}, +ab={[aG]:j,[aH]:[X,"region"]}, +ac={[aG]:j,[aH]:[X,"accountId"]}, +ad={[aI]:y}, +ae={[aK]:[{[aL]:true,[aM]:"sigv4",[aN]:n,[aO]:"{accessPointArn#region}"}]}, +af={[aP]:[w],[aQ]:["{outpostId}"]}, +ag={[g]:"Invalid ARN: Expected a 4-component resource",[aE]:g}, +ah={[g]:"Invalid ARN: missing account ID",[aE]:g}, +ai={[g]:"Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`",[aE]:g}, +aj={[g]:"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`",[aE]:g}, +ak={[g]:"Invalid ARN: The Outpost Id was not set",[aE]:g}, +al={[g]:"Invalid ARN: No ARN type specified",[aE]:g}, +am={[aI]:A}, +an={[aG]:j,[aH]:[am,"region"]}, +ao={[aG]:j,[aH]:[am,"accountId"]}, +ap={[aK]:[{[aL]:true,[aM]:"sigv4",[aN]:n,[aO]:"{bucketArn#region}"}]}, +aq={[aP]:[B],[aQ]:["{outpostId}"]}, +ar={[aG]:"booleanEquals",[aH]:[{[aI]:"UseDualStack"},false]}, +as={[aG]:"booleanEquals",[aH]:[{[aI]:"UseFIPS"},false]}, +at=[F], +au=[{[aG]:f,[aH]:[F],[aJ]:"partitionResult"}], +av=[I], +aw=[J], +ax=[{[aG]:l,[aH]:[F,true]}], +ay=[G,H], +az=[{[aI]:"AccessPointName"}], +aA=[{[aG]:l,[aH]:[{[aI]:u},false]}], +aB=[{[aG]:e,[aH]:[{[aG]:j,[aH]:[{[aI]:v},"name"]},{[aG]:j,[aH]:[{[aI]:"partitionResult"},"name"]}]}], +aC=[{[aI]:"Bucket"}]; +const _data={version:"1.0",parameters:{Region:C,UseFIPS:D,UseDualStack:D,Endpoint:C,AccountId:C,RequiresAccountId:E,OutpostId:C,Bucket:C,AccessPointName:C,UseArnRegion:E},rules:[{[aE]:c,rules:[{[aF]:[{[aG]:d,[aH]:at}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:e,[aH]:[F,"snow"]},G,H],[aE]:c,rules:[{[aF]:au,[aE]:c,rules:[{[aE]:c,rules:[{[aF]:av,error:"S3 Snow does not support Dual-stack",[aE]:g},{[aE]:c,rules:[{[aF]:aw,error:"S3 Snow does not support FIPS",[aE]:g},{endpoint:{url:"{url#scheme}://{url#authority}",properties:K,headers:L},[aE]:i}]}]}]},M]},{[aF]:[{[aG]:d,[aH]:[N]}],[aE]:c,rules:[{[aF]:au,[aE]:c,rules:[{[aE]:c,rules:[O,{[aE]:c,rules:[P,{[aE]:c,rules:[U,{[aE]:c,rules:[{[aF]:[{[aG]:k,[aH]:[{[aG]:l,[aH]:[N,a]}]}],error:"OutpostId must only contain a-z, A-Z, 0-9 and `-`.",[aE]:g},{[aE]:c,rules:[{[aF]:ax,[aE]:c,rules:[{[aE]:c,rules:[{[aF]:av,error:"Invalid configuration: Outposts do not support dual-stack",[aE]:g},{[aE]:c,rules:[{[aF]:ay,endpoint:{url:m,properties:V,headers:L},[aE]:i},{[aF]:aw,endpoint:{url:"https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}",properties:V,headers:L},[aE]:i},{endpoint:{url:"https://s3-outposts.{Region}.{partitionResult#dnsSuffix}",properties:V,headers:L},[aE]:i}]}]}]},W]}]}]}]}]}]},M]},{[aF]:[{[aG]:d,[aH]:az},{[aG]:o,[aH]:az,[aJ]:p}],[aE]:c,rules:[{[aF]:[{[aG]:j,[aH]:[X,q],[aJ]:r},Y],[aE]:c,rules:[{[aF]:[{[aG]:e,[aH]:[{[aG]:j,[aH]:[X,s]},n]}],[aE]:c,rules:[{[aF]:av,error:"Invalid configuration: Outpost Access Points do not support dual-stack",[aE]:g},{[aE]:c,rules:[{[aF]:[{[aG]:j,[aH]:[X,t],[aJ]:u}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:aA,[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[Z,aa,{[aG]:k,[aH]:[{[aG]:e,[aH]:[ab,h]}]}],error:"Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",[aE]:g},{[aE]:c,rules:[{[aF]:au,[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:f,[aH]:[ab],[aJ]:v}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:aB,[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:l,[aH]:[ab,b]}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:k,[aH]:[{[aG]:e,[aH]:[ac,""]}]}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:l,[aH]:[ac,a]}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[S,{[aG]:k,[aH]:[{[aG]:e,[aH]:[T,w]}]}],error:"Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)",[aE]:g},{[aE]:c,rules:[{[aF]:[{[aG]:j,[aH]:[X,x],[aJ]:y}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:j,[aH]:[X,z],[aJ]:"accessPointName"}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:e,[aH]:[ad,"accesspoint"]}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:aw,endpoint:{url:"https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}",properties:ae,headers:af},[aE]:i},{[aF]:ay,endpoint:{url:m,properties:ae,headers:af},[aE]:i},{endpoint:{url:"https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}",properties:ae,headers:af},[aE]:i}]}]},{error:"Expected an outpost type `accesspoint`, found `{outpostType}`",[aE]:g}]}]},{error:"Invalid ARN: expected an access point name",[aE]:g}]}]},ag]}]}]},{error:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`",[aE]:g}]}]},ah]}]},{error:"Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)",[aE]:g}]}]},ai]}]},{error:"Could not load partition for ARN region `{accessPointArn#region}`",[aE]:g}]}]},M]}]}]},aj]}]},ak]}]}]},al]},{[aF]:[{[aG]:d,[aH]:aC},{[aG]:o,[aH]:aC,[aJ]:A}],[aE]:c,rules:[{[aF]:[{[aG]:j,[aH]:[am,q],[aJ]:r},Y],[aE]:c,rules:[{[aF]:[{[aG]:e,[aH]:[{[aG]:j,[aH]:[am,s]},n]}],[aE]:c,rules:[{[aF]:av,error:"Invalid configuration: Outpost buckets do not support dual-stack",[aE]:g},{[aE]:c,rules:[{[aF]:[{[aG]:j,[aH]:[am,t],[aJ]:u}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:aA,[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[Z,aa,{[aG]:k,[aH]:[{[aG]:e,[aH]:[an,h]}]}],error:"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",[aE]:g},{[aE]:c,rules:[{[aF]:[{[aG]:f,[aH]:[an],[aJ]:v}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:au,[aE]:c,rules:[{[aE]:c,rules:[{[aF]:aB,[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:l,[aH]:[an,b]}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:k,[aH]:[{[aG]:e,[aH]:[ao,""]}]}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:l,[aH]:[ao,a]}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[S,{[aG]:k,[aH]:[{[aG]:e,[aH]:[T,B]}]}],error:"Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)",[aE]:g},{[aE]:c,rules:[{[aF]:[{[aG]:j,[aH]:[am,x],[aJ]:y}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:j,[aH]:[am,z],[aJ]:"bucketName"}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:[{[aG]:e,[aH]:[ad,"bucket"]}],[aE]:c,rules:[{[aE]:c,rules:[{[aF]:aw,endpoint:{url:"https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}",properties:ap,headers:aq},[aE]:i},{[aF]:ay,endpoint:{url:m,properties:ap,headers:aq},[aE]:i},{endpoint:{url:"https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}",properties:ap,headers:aq},[aE]:i}]}]},{error:"Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`",[aE]:g}]}]},{error:"Invalid ARN: expected a bucket name",[aE]:g}]}]},ag]}]}]},{error:"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",[aE]:g}]}]},ah]}]},{error:"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",[aE]:g}]}]},ai]}]},M]}]},{error:"Could not load partition for ARN region `{bucketArn#region}`",[aE]:g}]}]}]},aj]}]},ak]}]}]},al]},{[aE]:c,rules:[{[aF]:au,[aE]:c,rules:[{[aE]:c,rules:[{[aF]:ax,[aE]:c,rules:[{[aE]:c,rules:[O,{[aE]:c,rules:[P,{[aE]:c,rules:[U,{[aE]:c,rules:[{[aF]:ay,[aE]:c,rules:[{[aF]:av,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",[aE]:g},{[aE]:c,rules:[{[aF]:[Q,R,S],endpoint:{url:"{url#scheme}://{AccountId}.{url#authority}{url#path}",properties:K,headers:L},[aE]:i},{endpoint:{url:m,properties:K,headers:L},[aE]:i}]}]},{[aE]:c,rules:[{[aF]:[J,I,Q,R,S],endpoint:{url:"https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",properties:K,headers:L},[aE]:i},{[aF]:[J,I],endpoint:{url:"https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",properties:K,headers:L},[aE]:i},{[aF]:[J,ar,Q,R,S],endpoint:{url:"https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}",properties:K,headers:L},[aE]:i},{[aF]:[J,ar],endpoint:{url:"https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}",properties:K,headers:L},[aE]:i},{[aF]:[as,I,Q,R,S],endpoint:{url:"https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}",properties:K,headers:L},[aE]:i},{[aF]:[as,I],endpoint:{url:"https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}",properties:K,headers:L},[aE]:i},{[aF]:[as,ar,Q,R,S],endpoint:{url:"https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}",properties:K,headers:L},[aE]:i},{[aF]:[as,ar],endpoint:{url:"https://s3-control.{Region}.{partitionResult#dnsSuffix}",properties:K,headers:L},[aE]:i}]}]}]}]}]}]},W]}]},M]}]}]},{error:"Region must be set",[aE]:g}]}]}; export const ruleSet: RuleSetObject = _data; diff --git a/codegen/sdk-codegen/aws-models/s3-control.json b/codegen/sdk-codegen/aws-models/s3-control.json index a06cc25593296..f704dcac296be 100644 --- a/codegen/sdk-codegen/aws-models/s3-control.json +++ b/codegen/sdk-codegen/aws-models/s3-control.json @@ -332,6 +332,120 @@ "conditions": [], "type": "tree", "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "snow" + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Snow does not support Dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "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" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + }, { "conditions": [ { @@ -5920,6 +6034,133 @@ "UseDualStack": false, "UseFIPS": false } + }, + { + "documentation": "S3 Snow Control with bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://10.0.1.12:433" + } + }, + "params": { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "https://10.0.1.12:433", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "S3 Snow Control without bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://10.0.1.12:433" + } + }, + "params": { + "Region": "snow", + "Endpoint": "https://10.0.1.12:433", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "S3 Snow Control with bucket and without port", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://10.0.1.12" + } + }, + "params": { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "https://10.0.1.12", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "S3 Snow Control with bucket and with DNS", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "snow", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://s3snow.com" + } + }, + "params": { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "http://s3snow.com", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "S3 Snow Control with FIPS enabled", + "expect": { + "error": "S3 Snow does not support FIPS" + }, + "params": { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "https://10.0.1.12:433", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "S3 Snow Control with Dual-stack enabled", + "expect": { + "error": "S3 Snow does not support Dual-stack" + }, + "params": { + "Region": "snow", + "Bucket": "bucketName", + "Endpoint": "https://10.0.1.12:433", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } } ], "version": "1.0"