1{
2  "verifiedSimpleMethods": [
3    "listBuckets"
4  ],
5  "renameShapes": {
6    "Error": "S3Error",
7    "Object": "S3Object"
8  },
9  "customSdkShapes": {
10    "shapes":{
11      "SdkPartType":{
12        "type":"string",
13        "enum":[
14          "DEFAULT",
15          "LAST"
16        ]
17      }
18    }
19  },
20  "shapeModifiers": {
21    "S3Object": {
22      "modify": [
23        {
24          "Size": {
25            "emitAsType": "long"
26          }
27        }
28      ]
29    },
30    "UploadPartRequest": {
31      "inject": [
32        {
33          "SdkPartType": {
34            "shape": "SdkPartType",
35            "documentation": "Indicates whether the request is a last part or not. This field will not be included in the request payload."
36          }
37        }
38      ]
39    },
40    "CopyObjectRequest": {
41      "inject": [
42        {
43          "SourceBucket": {
44            "shape": "BucketName",
45            "documentation": "The name of the bucket containing the object to copy. The provided input will be URL encoded. The {@code sourceBucket}, {@code sourceKey}, and {@code sourceVersionId} parameters must not be used in conjunction with the {@code copySource} parameter."
46          },
47          "SourceKey": {
48            "shape": "ObjectKey",
49            "documentation": "The key of the object to copy. The provided input will be URL encoded. The {@code sourceBucket}, {@code sourceKey}, and {@code sourceVersionId} parameters must not be used in conjunction with the {@code copySource} parameter."
50          },
51          "SourceVersionId": {
52            "shape": "ObjectVersionId",
53            "documentation": "Specifies a particular version of the source object to copy. By default the latest version is copied. The {@code sourceBucket}, {@code sourceKey}, and {@code sourceVersionId} parameters must not be used in conjunction with the {@code copySource} parameter."
54          }
55        }
56      ],
57      "modify": [
58        {
59          "CopySource": {
60            "deprecated": true,
61            "deprecatedMessage": "The {@code copySource} parameter has been deprecated in favor of the more user-friendly {@code sourceBucket}, {@code sourceKey}, and {@code sourceVersionId} parameters. The {@code copySource} parameter will remain fully functional, but it must not be used in conjunction with its replacement parameters."
62          },
63          "Bucket": {
64            "emitPropertyName": "DestinationBucket",
65            "existingNameDeprecated": true
66          },
67          "Key": {
68            "emitPropertyName": "DestinationKey",
69            "existingNameDeprecated": true
70          }
71        }
72      ]
73    },
74    "UploadPartCopyRequest": {
75      "inject": [
76        {
77          "SourceBucket": {
78            "shape": "BucketName",
79            "documentation": "The name of the bucket containing the object to copy. The provided input will be URL encoded. The {@code sourceBucket}, {@code sourceKey}, and {@code sourceVersionId} parameters must not be used in conjunction with the {@code copySource} parameter."
80          },
81          "SourceKey": {
82            "shape": "ObjectKey",
83            "documentation": "The key of the object to copy. The provided input will be URL encoded. The {@code sourceBucket}, {@code sourceKey}, and {@code sourceVersionId} parameters must not be used in conjunction with the {@code copySource} parameter."
84          },
85          "SourceVersionId": {
86            "shape": "ObjectVersionId",
87            "documentation": "Specifies a particular version of the source object to copy. By default the latest version is copied. The {@code sourceBucket}, {@code sourceKey}, and {@code sourceVersionId} parameters must not be used in conjunction with the {@code copySource} parameter."
88          }
89        }
90      ],
91      "modify": [
92        {
93          "CopySource": {
94            "deprecated": true,
95            "deprecatedMessage": "The {@code copySource} parameter has been deprecated in favor of the more user-friendly {@code sourceBucket}, {@code sourceKey}, and {@code sourceVersionId} parameters. The {@code copySource} parameter will remain fully functional, but it must not be used in conjunction with its replacement parameters."
96          },
97          "Bucket": {
98            "emitPropertyName": "DestinationBucket",
99            "existingNameDeprecated": true
100          },
101          "Key": {
102            "emitPropertyName": "DestinationKey",
103            "existingNameDeprecated": true
104          }
105        }
106      ]
107    },
108    "ObjectVersion": {
109      "modify": [
110        {
111          "Size": {
112            "emitAsType": "long"
113          }
114        }
115      ]
116    },
117    "Part": {
118      "modify": [
119        {
120          "Size": {
121            "emitAsType": "long"
122          }
123        }
124      ]
125    },
126    "FilterRuleName": {
127      "modify": [
128        {
129          "prefix": { "emitEnumValue": "Prefix" }
130        },
131        {
132          "suffix": { "emitEnumValue": "Suffix" }
133        }
134      ]
135    },
136    "ReplicationRuleFilter": {
137      "union": true
138    },
139    "MetricsFilter": {
140      "union": true
141    },
142    "AnalyticsFilter": {
143      "union": true
144    },
145    "LifecycleRuleFilter": {
146      "union": true
147    }
148  },
149  "serviceConfig": {
150    "className": "S3Configuration",
151    "hasDualstackProperty": true,
152    "hasUseArnRegionProperty": true,
153    "hasMultiRegionEnabledProperty": true,
154    "hasPathStyleAccessEnabledProperty":true,
155    "hasAccelerateModeEnabledProperty":true,
156    "hasCrossRegionAccessEnabledProperty":true
157  },
158  "skipEndpointTests": {
159      "Invalid access point ARN: Not S3": "Test assumes UseArnRegion is true but SDK defaults to false",
160      "Invalid access point ARN: AccountId is invalid": "Test assumes UseArnRegion is true but SDK defaults to false",
161      "Invalid access point ARN: access point name is invalid": "Test assumes UseArnRegion is true but SDK defaults to false",
162      "Access points (disable access points explicitly false)": "Test assumes UseArnRegion is true but SDK defaults to false",
163      "Bucket region is invalid": "Test assumes UseArnRegion is true but SDK defaults to false",
164      "Access point ARN with FIPS & Dualstack": "Test assumes UseArnRegion is true but SDK defaults to false",
165      "Access point ARN with Dualstack": "Test assumes UseArnRegion is true but SDK defaults to false",
166      "vanilla access point arn with region mismatch and UseArnRegion unset": "SDK config default to UseArnRegion = false",
167      "no region set": "SDK client builder requires a region",
168      "path style + accelerate = error@us-west-2": "Validation for this happens during client build time",
169      "path style + accelerate = error@cn-north-1": "Validation for this happens during client build time",
170      "path style + accelerate = error@af-south-1": "Validation for this happens during client build time",
171      "outposts arn with region mismatch and UseArnRegion unset": "SDK default to UseArnRegion=false"
172  },
173  "attachPayloadTraitToMember": {
174    "GetBucketLocationOutput": "LocationConstraint"
175  },
176  "convenienceTypeOverloads": [
177    {
178      "shapeName": "PutObjectRequest",
179      "memberName": "Tagging",
180      "convenienceType": "software.amazon.awssdk.services.s3.model.Tagging",
181      "typeAdapterFqcn": "software.amazon.awssdk.services.s3.internal.TaggingAdapter"
182    },
183    {
184      "shapeName": "CopyObjectRequest",
185      "memberName": "Tagging",
186      "convenienceType": "software.amazon.awssdk.services.s3.model.Tagging",
187      "typeAdapterFqcn": "software.amazon.awssdk.services.s3.internal.TaggingAdapter"
188    },
189    {
190      "shapeName": "CreateMultipartUploadRequest",
191      "memberName": "Tagging",
192      "convenienceType": "software.amazon.awssdk.services.s3.model.Tagging",
193      "typeAdapterFqcn": "software.amazon.awssdk.services.s3.internal.TaggingAdapter"
194    }
195  ],
196  "customResponseMetadata": {
197    "EXTENDED_REQUEST_ID": "x-amz-id-2",
198    "CLOUD_FRONT_ID": "X-Amz-Cf-Id",
199    "REQUEST_ID": "x-amz-request-id"
200  },
201  "customProtocolFactoryFqcn": "software.amazon.awssdk.protocols.xml.AwsS3ProtocolFactory",
202  "operationModifiers": {
203  },
204  "deprecatedOperations": [
205    "GetBucketLifecycle",
206    "GetBucketNotification",
207    "PutBucketLifecycle",
208    "PutBucketNotification"
209  ],
210  "utilitiesMethod": {
211    "returnType": "software.amazon.awssdk.services.s3.S3Utilities",
212    "createMethodParams": [
213      "clientConfiguration"
214    ]
215  },
216  "additionalBuilderMethods": [
217      {
218        "methodName": "crtBuilder",
219        "clientType": "async",
220        "instanceType": "software.amazon.awssdk.services.s3.internal.crt.S3CrtAsyncClient",
221        "returnType": "software.amazon.awssdk.services.s3.S3CrtAsyncClientBuilder",
222        "statement": "builder()",
223        "javaDoc": "Create a builder that can be used to configure a CRT-based {@link S3AsyncClient}"
224      },
225      {
226        "methodName": "crtCreate",
227        "clientType": "async",
228        "instanceType": "software.amazon.awssdk.services.s3.internal.crt.S3CrtAsyncClient",
229        "returnType": "software.amazon.awssdk.services.s3.S3AsyncClient",
230        "statement": "builder().build()",
231        "javaDoc": "Create a CRT-based {@link S3AsyncClient} with default settings"
232      }
233  ],
234  "delegateAsyncClientClass": true,
235  "delegateSyncClientClass": true,
236  "syncClientDecorator": "software.amazon.awssdk.services.s3.internal.client.S3SyncClientDecorator",
237  "asyncClientDecorator": "software.amazon.awssdk.services.s3.internal.client.S3AsyncClientDecorator",
238  "useGlobalEndpoint": true,
239  "useS3ExpressSessionAuth": true,
240  "multipartCustomization": {
241    "multipartConfigurationClass": "software.amazon.awssdk.services.s3.multipart.MultipartConfiguration",
242    "multipartConfigMethodDoc": "Configuration for multipart operation of this client.",
243    "multipartEnableMethodDoc": "Enables automatic conversion of PUT and COPY methods to their equivalent multipart operation. CRC32 checksum will be enabled for PUT, unless the checksum is specified or checksum validation is disabled.",
244    "contextParamEnabledKey": "S3AsyncClientDecorator.MULTIPART_ENABLED_KEY",
245    "contextParamConfigKey": "S3AsyncClientDecorator.MULTIPART_CONFIGURATION_KEY"
246  },
247  "interceptors": [
248    "software.amazon.awssdk.services.s3.internal.handlers.StreamingRequestInterceptor",
249    "software.amazon.awssdk.services.s3.internal.handlers.CreateBucketInterceptor",
250    "software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor",
251    "software.amazon.awssdk.services.s3.internal.handlers.DecodeUrlEncodedResponseInterceptor",
252    "software.amazon.awssdk.services.s3.internal.handlers.GetBucketPolicyInterceptor",
253    "software.amazon.awssdk.services.s3.internal.handlers.S3ExpressChecksumInterceptor",
254    "software.amazon.awssdk.services.s3.internal.handlers.AsyncChecksumValidationInterceptor",
255    "software.amazon.awssdk.services.s3.internal.handlers.SyncChecksumValidationInterceptor",
256    "software.amazon.awssdk.services.s3.internal.handlers.EnableTrailingChecksumInterceptor",
257    "software.amazon.awssdk.services.s3.internal.handlers.ExceptionTranslationInterceptor",
258    "software.amazon.awssdk.services.s3.internal.handlers.GetObjectInterceptor",
259    "software.amazon.awssdk.services.s3.internal.handlers.CopySourceInterceptor",
260    "software.amazon.awssdk.services.s3.internal.handlers.ObjectMetadataInterceptor"
261  ],
262  "internalPlugins": [
263    "software.amazon.awssdk.services.s3.internal.plugins.S3DisableChunkEncodingIfConfiguredPlugin(config)",
264    "software.amazon.awssdk.services.s3.internal.s3express.S3ExpressPlugin"
265  ],
266  "requiredTraitValidationEnabled": true,
267  "s3ExpressAuthSupport" : "true",
268  "enableEndpointAuthSchemeParams": true,
269  "customClientContextParams":{
270    "CrossRegionAccessEnabled":{
271      "documentation":"Enables cross-region bucket access for this client",
272      "type":"boolean"
273    }
274  },
275  "endpointAuthSchemeConfig": {
276    "authSchemeStrategyFactoryClass": "software.amazon.awssdk.services.s3.endpoints.internal.S3EndpointAuthSchemeStrategyFactory",
277    "knownEndpointProperties": "software.amazon.awssdk.services.s3.endpoints.internal.KnownS3ExpressEndpointProperty.KNOWN_S3_ENDPOINT_PROPERTIES",
278    "endpointProviderTestKeys": {
279      "backend": {
280        "key": "software.amazon.awssdk.services.s3.endpoints.internal.KnownS3ExpressEndpointProperty.BACKEND",
281        "type": "string"
282      }
283    }
284  },
285  "useSraAuth": true,
286  "enableGenerateCompiledEndpointRules": true
287}
288