{ "verifiedSimpleMethods": [ "listBuckets" ], "renameShapes": { "Error": "S3Error", "Object": "S3Object" }, "customSdkShapes": { "shapes":{ "SdkPartType":{ "type":"string", "enum":[ "DEFAULT", "LAST" ] } } }, "shapeModifiers": { "S3Object": { "modify": [ { "Size": { "emitAsType": "long" } } ] }, "UploadPartRequest": { "inject": [ { "SdkPartType": { "shape": "SdkPartType", "documentation": "Indicates whether the request is a last part or not. This field will not be included in the request payload." } } ] }, "CopyObjectRequest": { "inject": [ { "SourceBucket": { "shape": "BucketName", "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." }, "SourceKey": { "shape": "ObjectKey", "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." }, "SourceVersionId": { "shape": "ObjectVersionId", "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." } } ], "modify": [ { "CopySource": { "deprecated": true, "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." }, "Bucket": { "emitPropertyName": "DestinationBucket", "existingNameDeprecated": true }, "Key": { "emitPropertyName": "DestinationKey", "existingNameDeprecated": true } } ] }, "UploadPartCopyRequest": { "inject": [ { "SourceBucket": { "shape": "BucketName", "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." }, "SourceKey": { "shape": "ObjectKey", "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." }, "SourceVersionId": { "shape": "ObjectVersionId", "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." } } ], "modify": [ { "CopySource": { "deprecated": true, "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." }, "Bucket": { "emitPropertyName": "DestinationBucket", "existingNameDeprecated": true }, "Key": { "emitPropertyName": "DestinationKey", "existingNameDeprecated": true } } ] }, "ObjectVersion": { "modify": [ { "Size": { "emitAsType": "long" } } ] }, "Part": { "modify": [ { "Size": { "emitAsType": "long" } } ] }, "FilterRuleName": { "modify": [ { "prefix": { "emitEnumValue": "Prefix" } }, { "suffix": { "emitEnumValue": "Suffix" } } ] }, "ReplicationRuleFilter": { "union": true }, "MetricsFilter": { "union": true }, "AnalyticsFilter": { "union": true }, "LifecycleRuleFilter": { "union": true } }, "serviceConfig": { "className": "S3Configuration", "hasDualstackProperty": true, "hasUseArnRegionProperty": true, "hasMultiRegionEnabledProperty": true, "hasPathStyleAccessEnabledProperty":true, "hasAccelerateModeEnabledProperty":true, "hasCrossRegionAccessEnabledProperty":true }, "skipEndpointTests": { "Invalid access point ARN: Not S3": "Test assumes UseArnRegion is true but SDK defaults to false", "Invalid access point ARN: AccountId is invalid": "Test assumes UseArnRegion is true but SDK defaults to false", "Invalid access point ARN: access point name is invalid": "Test assumes UseArnRegion is true but SDK defaults to false", "Access points (disable access points explicitly false)": "Test assumes UseArnRegion is true but SDK defaults to false", "Bucket region is invalid": "Test assumes UseArnRegion is true but SDK defaults to false", "Access point ARN with FIPS & Dualstack": "Test assumes UseArnRegion is true but SDK defaults to false", "Access point ARN with Dualstack": "Test assumes UseArnRegion is true but SDK defaults to false", "vanilla access point arn with region mismatch and UseArnRegion unset": "SDK config default to UseArnRegion = false", "no region set": "SDK client builder requires a region", "path style + accelerate = error@us-west-2": "Validation for this happens during client build time", "path style + accelerate = error@cn-north-1": "Validation for this happens during client build time", "path style + accelerate = error@af-south-1": "Validation for this happens during client build time", "outposts arn with region mismatch and UseArnRegion unset": "SDK default to UseArnRegion=false" }, "attachPayloadTraitToMember": { "GetBucketLocationOutput": "LocationConstraint" }, "convenienceTypeOverloads": [ { "shapeName": "PutObjectRequest", "memberName": "Tagging", "convenienceType": "software.amazon.awssdk.services.s3.model.Tagging", "typeAdapterFqcn": "software.amazon.awssdk.services.s3.internal.TaggingAdapter" }, { "shapeName": "CopyObjectRequest", "memberName": "Tagging", "convenienceType": "software.amazon.awssdk.services.s3.model.Tagging", "typeAdapterFqcn": "software.amazon.awssdk.services.s3.internal.TaggingAdapter" }, { "shapeName": "CreateMultipartUploadRequest", "memberName": "Tagging", "convenienceType": "software.amazon.awssdk.services.s3.model.Tagging", "typeAdapterFqcn": "software.amazon.awssdk.services.s3.internal.TaggingAdapter" } ], "customResponseMetadata": { "EXTENDED_REQUEST_ID": "x-amz-id-2", "CLOUD_FRONT_ID": "X-Amz-Cf-Id", "REQUEST_ID": "x-amz-request-id" }, "customProtocolFactoryFqcn": "software.amazon.awssdk.protocols.xml.AwsS3ProtocolFactory", "operationModifiers": { }, "deprecatedOperations": [ "GetBucketLifecycle", "GetBucketNotification", "PutBucketLifecycle", "PutBucketNotification" ], "utilitiesMethod": { "returnType": "software.amazon.awssdk.services.s3.S3Utilities", "createMethodParams": [ "clientConfiguration" ] }, "additionalBuilderMethods": [ { "methodName": "crtBuilder", "clientType": "async", "instanceType": "software.amazon.awssdk.services.s3.internal.crt.S3CrtAsyncClient", "returnType": "software.amazon.awssdk.services.s3.S3CrtAsyncClientBuilder", "statement": "builder()", "javaDoc": "Create a builder that can be used to configure a CRT-based {@link S3AsyncClient}" }, { "methodName": "crtCreate", "clientType": "async", "instanceType": "software.amazon.awssdk.services.s3.internal.crt.S3CrtAsyncClient", "returnType": "software.amazon.awssdk.services.s3.S3AsyncClient", "statement": "builder().build()", "javaDoc": "Create a CRT-based {@link S3AsyncClient} with default settings" } ], "delegateAsyncClientClass": true, "delegateSyncClientClass": true, "syncClientDecorator": "software.amazon.awssdk.services.s3.internal.client.S3SyncClientDecorator", "asyncClientDecorator": "software.amazon.awssdk.services.s3.internal.client.S3AsyncClientDecorator", "useGlobalEndpoint": true, "interceptors": [ "software.amazon.awssdk.services.s3.internal.handlers.PutObjectInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.CreateBucketInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.EnableChunkedEncodingInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.ConfigureSignerInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.DecodeUrlEncodedResponseInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.GetBucketPolicyInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.AsyncChecksumValidationInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.SyncChecksumValidationInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.EnableTrailingChecksumInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.ExceptionTranslationInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.GetObjectInterceptor", "software.amazon.awssdk.services.s3.internal.handlers.CopySourceInterceptor" ], "requiredTraitValidationEnabled": true, "customClientContextParams":{ "CrossRegionAccessEnabled":{ "documentation":"Enables cross-region bucket access for this client", "type":"boolean" } } }