@Test public void testServiceInstanceRuntimeParamTakesPrecedence() { String serviceInstanceId = "12345"; CreateBucketRequest request = new CreateBucketRequest("testbucket").withServiceInstanceId(serviceInstanceId); Request<CreateBucketRequest> defaultRequest = new DefaultRequest(Constants.S3_SERVICE_DISPLAY_NAME); AmazonS3Client s3Client = new AmazonS3Client(new BasicIBMOAuthCredentials(new TokenMangerUtilTest(), "54321")); defaultRequest = s3Client.addIAMHeaders(defaultRequest, request); assertEquals(defaultRequest.getHeaders().get(Headers.IBM_SERVICE_INSTANCE_ID), serviceInstanceId); }
protected Request<CreateBucketRequest> addIAMHeaders(Request<CreateBucketRequest> request, CreateBucketRequest createBucketRequest){ if ((null != this.awsCredentialsProvider ) && (this.awsCredentialsProvider.getCredentials() instanceof IBMOAuthCredentials)) { if (null != createBucketRequest.getServiceInstanceId()) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, createBucketRequest.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } else { IBMOAuthCredentials oAuthCreds = (IBMOAuthCredentials)this.awsCredentialsProvider.getCredentials(); if (oAuthCreds.getServiceInstanceId() != null) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, oAuthCreds.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } } } return request; }
AmazonS3Client extends AmazonWebServiceClient implements AmazonS3 { protected Request<CreateBucketRequest> addIAMHeaders(Request<CreateBucketRequest> request, CreateBucketRequest createBucketRequest){ if ((null != this.awsCredentialsProvider ) && (this.awsCredentialsProvider.getCredentials() instanceof IBMOAuthCredentials)) { if (null != createBucketRequest.getServiceInstanceId()) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, createBucketRequest.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } else { IBMOAuthCredentials oAuthCreds = (IBMOAuthCredentials)this.awsCredentialsProvider.getCredentials(); if (oAuthCreds.getServiceInstanceId() != null) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, oAuthCreds.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } } } return request; } }
AmazonS3Client extends AmazonWebServiceClient implements AmazonS3 { protected Request<CreateBucketRequest> addIAMHeaders(Request<CreateBucketRequest> request, CreateBucketRequest createBucketRequest){ if ((null != this.awsCredentialsProvider ) && (this.awsCredentialsProvider.getCredentials() instanceof IBMOAuthCredentials)) { if (null != createBucketRequest.getServiceInstanceId()) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, createBucketRequest.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } else { IBMOAuthCredentials oAuthCreds = (IBMOAuthCredentials)this.awsCredentialsProvider.getCredentials(); if (oAuthCreds.getServiceInstanceId() != null) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, oAuthCreds.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } } } return request; } @Deprecated  AmazonS3Client(); @Deprecated  AmazonS3Client(AWSCredentials awsCredentials); @Deprecated  AmazonS3Client(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration); @Deprecated  AmazonS3Client(AWSCredentialsProvider credentialsProvider); @Deprecated  AmazonS3Client(AWSCredentialsProvider credentialsProvider,
            ClientConfiguration clientConfiguration); @Deprecated  AmazonS3Client(AWSCredentialsProvider credentialsProvider,
            ClientConfiguration clientConfiguration,
            RequestMetricCollector requestMetricCollector); @SdkTestInternalApi  AmazonS3Client(AWSCredentialsProvider credentialsProvider,
            ClientConfiguration clientConfiguration,
            RequestMetricCollector requestMetricCollector,
            SkipMd5CheckStrategy skipMd5CheckStrategy); @Deprecated  AmazonS3Client(ClientConfiguration clientConfiguration); @SdkInternalApi  AmazonS3Client(AmazonS3ClientParams s3ClientParams); }
AmazonS3Client extends AmazonWebServiceClient implements AmazonS3 { protected Request<CreateBucketRequest> addIAMHeaders(Request<CreateBucketRequest> request, CreateBucketRequest createBucketRequest){ if ((null != this.awsCredentialsProvider ) && (this.awsCredentialsProvider.getCredentials() instanceof IBMOAuthCredentials)) { if (null != createBucketRequest.getServiceInstanceId()) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, createBucketRequest.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } else { IBMOAuthCredentials oAuthCreds = (IBMOAuthCredentials)this.awsCredentialsProvider.getCredentials(); if (oAuthCreds.getServiceInstanceId() != null) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, oAuthCreds.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } } } return request; } @Deprecated  AmazonS3Client(); @Deprecated  AmazonS3Client(AWSCredentials awsCredentials); @Deprecated  AmazonS3Client(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration); @Deprecated  AmazonS3Client(AWSCredentialsProvider credentialsProvider); @Deprecated  AmazonS3Client(AWSCredentialsProvider credentialsProvider,
            ClientConfiguration clientConfiguration); @Deprecated  AmazonS3Client(AWSCredentialsProvider credentialsProvider,
            ClientConfiguration clientConfiguration,
            RequestMetricCollector requestMetricCollector); @SdkTestInternalApi  AmazonS3Client(AWSCredentialsProvider credentialsProvider,
            ClientConfiguration clientConfiguration,
            RequestMetricCollector requestMetricCollector,
            SkipMd5CheckStrategy skipMd5CheckStrategy); @Deprecated  AmazonS3Client(ClientConfiguration clientConfiguration); @SdkInternalApi  AmazonS3Client(AmazonS3ClientParams s3ClientParams); static AmazonS3ClientBuilder builder(); @Override @Deprecated synchronized void setEndpoint(String endpoint); @Override @Deprecated synchronized void setRegion(com.ibm.cloud.objectstorage.regions.Region region); @Override synchronized void setS3ClientOptions(S3ClientOptions clientOptions); @Override VersionListing listNextBatchOfVersions(VersionListing previousVersionListing); @Override VersionListing listNextBatchOfVersions(ListNextBatchOfVersionsRequest listNextBatchOfVersionsRequest); @Override VersionListing listVersions(String bucketName, String prefix); @Override VersionListing listVersions(String bucketName, String prefix, String keyMarker, String versionIdMarker, String delimiter, Integer maxKeys); @Override VersionListing listVersions(ListVersionsRequest listVersionsRequest); @Override ObjectListing listObjects(String bucketName); @Override ObjectListing listObjects(String bucketName, String prefix); @Override ObjectListing listObjects(ListObjectsRequest listObjectsRequest); @Override ListObjectsV2Result listObjectsV2(String bucketName); @Override ListObjectsV2Result listObjectsV2(String bucketName, String prefix); @Override ListObjectsV2Result listObjectsV2(ListObjectsV2Request listObjectsV2Request); @Override ObjectListing listNextBatchOfObjects(ObjectListing previousObjectListing); @Override ObjectListing listNextBatchOfObjects(ListNextBatchOfObjectsRequest listNextBatchOfObjectsRequest); @Override Owner getS3AccountOwner(); @Override Owner getS3AccountOwner(GetS3AccountOwnerRequest getS3AccountOwnerRequest); @Override List<Bucket> listBuckets(ListBucketsRequest listBucketsRequest); @Override List<Bucket> listBuckets(); @Override ListBucketsExtendedResponse listBucketsExtended(); @Override ListBucketsExtendedResponse listBucketsExtended(ListBucketsExtendedRequest listBucketsExtendedRequest); @Override Bucket createBucket(String bucketName); @Override @Deprecated Bucket createBucket(String bucketName, Region region); @Override @Deprecated Bucket createBucket(String bucketName, String region); @Override Bucket createBucket(CreateBucketRequest createBucketRequest); @Override AccessControlList getObjectAcl(String bucketName, String key); @Override AccessControlList getObjectAcl(String bucketName, String key, String versionId); @Override AccessControlList getObjectAcl(GetObjectAclRequest getObjectAclRequest); @Override void setObjectAcl(String bucketName, String key, AccessControlList acl); @Override void setObjectAcl(String bucketName, String key, CannedAccessControlList acl); @Override void setObjectAcl(String bucketName, String key, String versionId, AccessControlList acl); void setObjectAcl(String bucketName, String key, String versionId,
            AccessControlList acl, RequestMetricCollector requestMetricCollector); @Override void setObjectAcl(String bucketName, String key, String versionId, CannedAccessControlList acl); void setObjectAcl(String bucketName, String key, String versionId,
            CannedAccessControlList acl,
            RequestMetricCollector requestMetricCollector); @Override void setObjectAcl(SetObjectAclRequest setObjectAclRequest); @Override AccessControlList getBucketAcl(String bucketName); @Override AccessControlList getBucketAcl(GetBucketAclRequest getBucketAclRequest); @Override void setBucketAcl(String bucketName, AccessControlList acl); void setBucketAcl(String bucketName, AccessControlList acl,
            RequestMetricCollector requestMetricCollector); @Override void setBucketAcl(String bucketName, CannedAccessControlList cannedAcl); void setBucketAcl(String bucketName, CannedAccessControlList cannedAcl,
            RequestMetricCollector requestMetricCollector); @Override void setBucketAcl(SetBucketAclRequest setBucketAclRequest); @Override ObjectMetadata getObjectMetadata(String bucketName, String key); @Override ObjectMetadata getObjectMetadata(GetObjectMetadataRequest getObjectMetadataRequest); @Override S3Object getObject(String bucketName, String key); @Override boolean doesBucketExist(String bucketName); @Override boolean doesBucketExistV2(String bucketName); @Override boolean doesObjectExist(String bucketName, String objectName); @Override HeadBucketResult headBucket(HeadBucketRequest headBucketRequest); @Override void changeObjectStorageClass(String bucketName, String key, StorageClass newStorageClass); @Override void setObjectRedirectLocation(String bucketName, String key, String newRedirectLocation); @Override S3Object getObject(GetObjectRequest getObjectRequest); @Override ObjectMetadata getObject(final GetObjectRequest getObjectRequest, File destinationFile); @Override String getObjectAsString(String bucketName, String key); @Override void deleteBucket(String bucketName); @Override void deleteBucket(DeleteBucketRequest deleteBucketRequest); @Override PutObjectResult putObject(String bucketName, String key, File file); @Override PutObjectResult putObject(String bucketName, String key, InputStream input, ObjectMetadata metadata); @Override PutObjectResult putObject(PutObjectRequest putObjectRequest); @Override CopyObjectResult copyObject(String sourceBucketName, String sourceKey,
                                       String destinationBucketName, String destinationKey); @Override CopyObjectResult copyObject(CopyObjectRequest copyObjectRequest); @Override CopyPartResult copyPart(CopyPartRequest copyPartRequest); @Override void deleteObject(String bucketName, String key); @Override void deleteObject(DeleteObjectRequest deleteObjectRequest); @Override DeleteObjectsResult deleteObjects(DeleteObjectsRequest deleteObjectsRequest); @Override void deleteVersion(String bucketName, String key, String versionId); @Override void deleteVersion(DeleteVersionRequest deleteVersionRequest); @Override void setBucketVersioningConfiguration(SetBucketVersioningConfigurationRequest setBucketVersioningConfigurationRequest); @Override BucketVersioningConfiguration getBucketVersioningConfiguration(String bucketName); @Override BucketVersioningConfiguration getBucketVersioningConfiguration(GetBucketVersioningConfigurationRequest getBucketVersioningConfigurationRequest); @Override BucketLifecycleConfiguration getBucketLifecycleConfiguration(String bucketName); @Override BucketLifecycleConfiguration getBucketLifecycleConfiguration(GetBucketLifecycleConfigurationRequest getBucketLifecycleConfigurationRequest); @Override void setBucketLifecycleConfiguration(String bucketName, BucketLifecycleConfiguration bucketLifecycleConfiguration); @Override void setBucketLifecycleConfiguration(
            SetBucketLifecycleConfigurationRequest setBucketLifecycleConfigurationRequest); @Override void deleteBucketLifecycleConfiguration(String bucketName); @Override void deleteBucketLifecycleConfiguration(
            DeleteBucketLifecycleConfigurationRequest deleteBucketLifecycleConfigurationRequest); @Override BucketCrossOriginConfiguration getBucketCrossOriginConfiguration(String bucketName); @Override BucketCrossOriginConfiguration getBucketCrossOriginConfiguration(GetBucketCrossOriginConfigurationRequest getBucketCrossOriginConfigurationRequest); @Override void setBucketCrossOriginConfiguration(String bucketName, BucketCrossOriginConfiguration bucketCrossOriginConfiguration); @Override void setBucketCrossOriginConfiguration(
            SetBucketCrossOriginConfigurationRequest setBucketCrossOriginConfigurationRequest); @Override void deleteBucketCrossOriginConfiguration(String bucketName); @Override void deleteBucketCrossOriginConfiguration(
            DeleteBucketCrossOriginConfigurationRequest deleteBucketCrossOriginConfigurationRequest); @Override BucketTaggingConfiguration getBucketTaggingConfiguration(String bucketName); @Override BucketTaggingConfiguration getBucketTaggingConfiguration(GetBucketTaggingConfigurationRequest getBucketTaggingConfigurationRequest); @Override void setBucketTaggingConfiguration(String bucketName, BucketTaggingConfiguration bucketTaggingConfiguration); @Override void setBucketTaggingConfiguration(
            SetBucketTaggingConfigurationRequest setBucketTaggingConfigurationRequest); @Override void deleteBucketTaggingConfiguration(String bucketName); @Override void deleteBucketTaggingConfiguration(
            DeleteBucketTaggingConfigurationRequest deleteBucketTaggingConfigurationRequest); @Override URL generatePresignedUrl(String bucketName, String key, Date expiration); @Override URL generatePresignedUrl(String bucketName, String key, Date expiration, HttpMethod method); @Override URL generatePresignedUrl(GeneratePresignedUrlRequest req); @Override void abortMultipartUpload(AbortMultipartUploadRequest abortMultipartUploadRequest); @Override CompleteMultipartUploadResult completeMultipartUpload(
            CompleteMultipartUploadRequest completeMultipartUploadRequest); @Override InitiateMultipartUploadResult initiateMultipartUpload(
            InitiateMultipartUploadRequest initiateMultipartUploadRequest); @Override MultipartUploadListing listMultipartUploads(ListMultipartUploadsRequest listMultipartUploadsRequest); @Override PartListing listParts(ListPartsRequest listPartsRequest); @Override UploadPartResult uploadPart(UploadPartRequest uploadPartRequest); @Override S3ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); @Override void restoreObject(RestoreObjectRequest restoreObjectRequest); @Override void restoreObject(String bucketName, String key, int expirationInDays); @Override PutObjectResult putObject(String bucketName, String key, String content); String getResourceUrl(String bucketName, String key); @Override URL getUrl(String bucketName, String key); @Override synchronized Region getRegion(); @Override String getRegionName(); AmazonS3Waiters waiters(); @Override void setBucketProtectionConfiguration(SetBucketProtectionConfigurationRequest setBucketProtectionConfigurationRequest); @Override void setBucketProtection(String bucketName, BucketProtectionConfiguration protectionConfiguration); @Override BucketProtectionConfiguration getBucketProtection(String bucketName); @Override BucketProtectionConfiguration getBucketProtectionConfiguration(
			GetBucketProtectionConfigurationRequest getBucketProtectionRequest); @Override void addLegalHold(String bucketName, String key, String legalHoldId); @Override void addLegalHold(AddLegalHoldRequest addLegalHoldRequest); @Override ListLegalHoldsResult listLegalHolds(String bucketName, String key); @Override ListLegalHoldsResult listLegalHolds(ListLegalHoldsRequest listLegalHoldsRequest); @Override void deleteLegalHold(String bucketName, String key, String legalHoldId); @Override void deleteLegalHold(DeleteLegalHoldRequest deleteLegalHoldRequest); @Override void extendObjectRetention(String bucketName, String key, Long additionalRetentionPeriod,
			Long extendRetentionFromCurrentTime, Date newRetentionExpirationDate, Long newRetentionPeriod); @Override void extendObjectRetention(ExtendObjectRetentionRequest extendObjectRetentionRequest); FASPConnectionInfo getBucketFaspConnectionInfo(String bucketName); @Override FASPConnectionInfo getBucketFaspConnectionInfo(
			GetBucketFaspConnectionInfoRequest getBucketFaspConnectionInfoRequest); }
AmazonS3Client extends AmazonWebServiceClient implements AmazonS3 { protected Request<CreateBucketRequest> addIAMHeaders(Request<CreateBucketRequest> request, CreateBucketRequest createBucketRequest){ if ((null != this.awsCredentialsProvider ) && (this.awsCredentialsProvider.getCredentials() instanceof IBMOAuthCredentials)) { if (null != createBucketRequest.getServiceInstanceId()) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, createBucketRequest.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } else { IBMOAuthCredentials oAuthCreds = (IBMOAuthCredentials)this.awsCredentialsProvider.getCredentials(); if (oAuthCreds.getServiceInstanceId() != null) { request.addHeader(Headers.IBM_SERVICE_INSTANCE_ID, oAuthCreds.getServiceInstanceId()); if (null != createBucketRequest.getEncryptionType()) { request.addHeader(Headers.IBM_SSE_KP_ENCRYPTION_ALGORITHM, createBucketRequest.getEncryptionType().getKmsEncryptionAlgorithm()); request.addHeader(Headers.IBM_SSE_KP_CUSTOMER_ROOT_KEY_CRN, createBucketRequest.getEncryptionType().getIBMSSEKMSCustomerRootKeyCrn()); } } } } return request; } @Deprecated  AmazonS3Client(); @Deprecated  AmazonS3Client(AWSCredentials awsCredentials); @Deprecated  AmazonS3Client(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration); @Deprecated  AmazonS3Client(AWSCredentialsProvider credentialsProvider); @Deprecated  AmazonS3Client(AWSCredentialsProvider credentialsProvider,
            ClientConfiguration clientConfiguration); @Deprecated  AmazonS3Client(AWSCredentialsProvider credentialsProvider,
            ClientConfiguration clientConfiguration,
            RequestMetricCollector requestMetricCollector); @SdkTestInternalApi  AmazonS3Client(AWSCredentialsProvider credentialsProvider,
            ClientConfiguration clientConfiguration,
            RequestMetricCollector requestMetricCollector,
            SkipMd5CheckStrategy skipMd5CheckStrategy); @Deprecated  AmazonS3Client(ClientConfiguration clientConfiguration); @SdkInternalApi  AmazonS3Client(AmazonS3ClientParams s3ClientParams); static AmazonS3ClientBuilder builder(); @Override @Deprecated synchronized void setEndpoint(String endpoint); @Override @Deprecated synchronized void setRegion(com.ibm.cloud.objectstorage.regions.Region region); @Override synchronized void setS3ClientOptions(S3ClientOptions clientOptions); @Override VersionListing listNextBatchOfVersions(VersionListing previousVersionListing); @Override VersionListing listNextBatchOfVersions(ListNextBatchOfVersionsRequest listNextBatchOfVersionsRequest); @Override VersionListing listVersions(String bucketName, String prefix); @Override VersionListing listVersions(String bucketName, String prefix, String keyMarker, String versionIdMarker, String delimiter, Integer maxKeys); @Override VersionListing listVersions(ListVersionsRequest listVersionsRequest); @Override ObjectListing listObjects(String bucketName); @Override ObjectListing listObjects(String bucketName, String prefix); @Override ObjectListing listObjects(ListObjectsRequest listObjectsRequest); @Override ListObjectsV2Result listObjectsV2(String bucketName); @Override ListObjectsV2Result listObjectsV2(String bucketName, String prefix); @Override ListObjectsV2Result listObjectsV2(ListObjectsV2Request listObjectsV2Request); @Override ObjectListing listNextBatchOfObjects(ObjectListing previousObjectListing); @Override ObjectListing listNextBatchOfObjects(ListNextBatchOfObjectsRequest listNextBatchOfObjectsRequest); @Override Owner getS3AccountOwner(); @Override Owner getS3AccountOwner(GetS3AccountOwnerRequest getS3AccountOwnerRequest); @Override List<Bucket> listBuckets(ListBucketsRequest listBucketsRequest); @Override List<Bucket> listBuckets(); @Override ListBucketsExtendedResponse listBucketsExtended(); @Override ListBucketsExtendedResponse listBucketsExtended(ListBucketsExtendedRequest listBucketsExtendedRequest); @Override Bucket createBucket(String bucketName); @Override @Deprecated Bucket createBucket(String bucketName, Region region); @Override @Deprecated Bucket createBucket(String bucketName, String region); @Override Bucket createBucket(CreateBucketRequest createBucketRequest); @Override AccessControlList getObjectAcl(String bucketName, String key); @Override AccessControlList getObjectAcl(String bucketName, String key, String versionId); @Override AccessControlList getObjectAcl(GetObjectAclRequest getObjectAclRequest); @Override void setObjectAcl(String bucketName, String key, AccessControlList acl); @Override void setObjectAcl(String bucketName, String key, CannedAccessControlList acl); @Override void setObjectAcl(String bucketName, String key, String versionId, AccessControlList acl); void setObjectAcl(String bucketName, String key, String versionId,
            AccessControlList acl, RequestMetricCollector requestMetricCollector); @Override void setObjectAcl(String bucketName, String key, String versionId, CannedAccessControlList acl); void setObjectAcl(String bucketName, String key, String versionId,
            CannedAccessControlList acl,
            RequestMetricCollector requestMetricCollector); @Override void setObjectAcl(SetObjectAclRequest setObjectAclRequest); @Override AccessControlList getBucketAcl(String bucketName); @Override AccessControlList getBucketAcl(GetBucketAclRequest getBucketAclRequest); @Override void setBucketAcl(String bucketName, AccessControlList acl); void setBucketAcl(String bucketName, AccessControlList acl,
            RequestMetricCollector requestMetricCollector); @Override void setBucketAcl(String bucketName, CannedAccessControlList cannedAcl); void setBucketAcl(String bucketName, CannedAccessControlList cannedAcl,
            RequestMetricCollector requestMetricCollector); @Override void setBucketAcl(SetBucketAclRequest setBucketAclRequest); @Override ObjectMetadata getObjectMetadata(String bucketName, String key); @Override ObjectMetadata getObjectMetadata(GetObjectMetadataRequest getObjectMetadataRequest); @Override S3Object getObject(String bucketName, String key); @Override boolean doesBucketExist(String bucketName); @Override boolean doesBucketExistV2(String bucketName); @Override boolean doesObjectExist(String bucketName, String objectName); @Override HeadBucketResult headBucket(HeadBucketRequest headBucketRequest); @Override void changeObjectStorageClass(String bucketName, String key, StorageClass newStorageClass); @Override void setObjectRedirectLocation(String bucketName, String key, String newRedirectLocation); @Override S3Object getObject(GetObjectRequest getObjectRequest); @Override ObjectMetadata getObject(final GetObjectRequest getObjectRequest, File destinationFile); @Override String getObjectAsString(String bucketName, String key); @Override void deleteBucket(String bucketName); @Override void deleteBucket(DeleteBucketRequest deleteBucketRequest); @Override PutObjectResult putObject(String bucketName, String key, File file); @Override PutObjectResult putObject(String bucketName, String key, InputStream input, ObjectMetadata metadata); @Override PutObjectResult putObject(PutObjectRequest putObjectRequest); @Override CopyObjectResult copyObject(String sourceBucketName, String sourceKey,
                                       String destinationBucketName, String destinationKey); @Override CopyObjectResult copyObject(CopyObjectRequest copyObjectRequest); @Override CopyPartResult copyPart(CopyPartRequest copyPartRequest); @Override void deleteObject(String bucketName, String key); @Override void deleteObject(DeleteObjectRequest deleteObjectRequest); @Override DeleteObjectsResult deleteObjects(DeleteObjectsRequest deleteObjectsRequest); @Override void deleteVersion(String bucketName, String key, String versionId); @Override void deleteVersion(DeleteVersionRequest deleteVersionRequest); @Override void setBucketVersioningConfiguration(SetBucketVersioningConfigurationRequest setBucketVersioningConfigurationRequest); @Override BucketVersioningConfiguration getBucketVersioningConfiguration(String bucketName); @Override BucketVersioningConfiguration getBucketVersioningConfiguration(GetBucketVersioningConfigurationRequest getBucketVersioningConfigurationRequest); @Override BucketLifecycleConfiguration getBucketLifecycleConfiguration(String bucketName); @Override BucketLifecycleConfiguration getBucketLifecycleConfiguration(GetBucketLifecycleConfigurationRequest getBucketLifecycleConfigurationRequest); @Override void setBucketLifecycleConfiguration(String bucketName, BucketLifecycleConfiguration bucketLifecycleConfiguration); @Override void setBucketLifecycleConfiguration(
            SetBucketLifecycleConfigurationRequest setBucketLifecycleConfigurationRequest); @Override void deleteBucketLifecycleConfiguration(String bucketName); @Override void deleteBucketLifecycleConfiguration(
            DeleteBucketLifecycleConfigurationRequest deleteBucketLifecycleConfigurationRequest); @Override BucketCrossOriginConfiguration getBucketCrossOriginConfiguration(String bucketName); @Override BucketCrossOriginConfiguration getBucketCrossOriginConfiguration(GetBucketCrossOriginConfigurationRequest getBucketCrossOriginConfigurationRequest); @Override void setBucketCrossOriginConfiguration(String bucketName, BucketCrossOriginConfiguration bucketCrossOriginConfiguration); @Override void setBucketCrossOriginConfiguration(
            SetBucketCrossOriginConfigurationRequest setBucketCrossOriginConfigurationRequest); @Override void deleteBucketCrossOriginConfiguration(String bucketName); @Override void deleteBucketCrossOriginConfiguration(
            DeleteBucketCrossOriginConfigurationRequest deleteBucketCrossOriginConfigurationRequest); @Override BucketTaggingConfiguration getBucketTaggingConfiguration(String bucketName); @Override BucketTaggingConfiguration getBucketTaggingConfiguration(GetBucketTaggingConfigurationRequest getBucketTaggingConfigurationRequest); @Override void setBucketTaggingConfiguration(String bucketName, BucketTaggingConfiguration bucketTaggingConfiguration); @Override void setBucketTaggingConfiguration(
            SetBucketTaggingConfigurationRequest setBucketTaggingConfigurationRequest); @Override void deleteBucketTaggingConfiguration(String bucketName); @Override void deleteBucketTaggingConfiguration(
            DeleteBucketTaggingConfigurationRequest deleteBucketTaggingConfigurationRequest); @Override URL generatePresignedUrl(String bucketName, String key, Date expiration); @Override URL generatePresignedUrl(String bucketName, String key, Date expiration, HttpMethod method); @Override URL generatePresignedUrl(GeneratePresignedUrlRequest req); @Override void abortMultipartUpload(AbortMultipartUploadRequest abortMultipartUploadRequest); @Override CompleteMultipartUploadResult completeMultipartUpload(
            CompleteMultipartUploadRequest completeMultipartUploadRequest); @Override InitiateMultipartUploadResult initiateMultipartUpload(
            InitiateMultipartUploadRequest initiateMultipartUploadRequest); @Override MultipartUploadListing listMultipartUploads(ListMultipartUploadsRequest listMultipartUploadsRequest); @Override PartListing listParts(ListPartsRequest listPartsRequest); @Override UploadPartResult uploadPart(UploadPartRequest uploadPartRequest); @Override S3ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); @Override void restoreObject(RestoreObjectRequest restoreObjectRequest); @Override void restoreObject(String bucketName, String key, int expirationInDays); @Override PutObjectResult putObject(String bucketName, String key, String content); String getResourceUrl(String bucketName, String key); @Override URL getUrl(String bucketName, String key); @Override synchronized Region getRegion(); @Override String getRegionName(); AmazonS3Waiters waiters(); @Override void setBucketProtectionConfiguration(SetBucketProtectionConfigurationRequest setBucketProtectionConfigurationRequest); @Override void setBucketProtection(String bucketName, BucketProtectionConfiguration protectionConfiguration); @Override BucketProtectionConfiguration getBucketProtection(String bucketName); @Override BucketProtectionConfiguration getBucketProtectionConfiguration(
			GetBucketProtectionConfigurationRequest getBucketProtectionRequest); @Override void addLegalHold(String bucketName, String key, String legalHoldId); @Override void addLegalHold(AddLegalHoldRequest addLegalHoldRequest); @Override ListLegalHoldsResult listLegalHolds(String bucketName, String key); @Override ListLegalHoldsResult listLegalHolds(ListLegalHoldsRequest listLegalHoldsRequest); @Override void deleteLegalHold(String bucketName, String key, String legalHoldId); @Override void deleteLegalHold(DeleteLegalHoldRequest deleteLegalHoldRequest); @Override void extendObjectRetention(String bucketName, String key, Long additionalRetentionPeriod,
			Long extendRetentionFromCurrentTime, Date newRetentionExpirationDate, Long newRetentionPeriod); @Override void extendObjectRetention(ExtendObjectRetentionRequest extendObjectRetentionRequest); FASPConnectionInfo getBucketFaspConnectionInfo(String bucketName); @Override FASPConnectionInfo getBucketFaspConnectionInfo(
			GetBucketFaspConnectionInfoRequest getBucketFaspConnectionInfoRequest); static final String S3_SERVICE_NAME; static final String OAUTH_SIGNER; }