All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.s3.S3BaseClientBuilder Maven / Gradle / Ivy

/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.s3;

import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder;
import software.amazon.awssdk.services.s3.auth.scheme.S3AuthSchemeProvider;
import software.amazon.awssdk.services.s3.endpoints.S3EndpointProvider;

/**
 * This includes configuration specific to Amazon S3 that is supported by both {@link S3ClientBuilder} and
 * {@link S3AsyncClientBuilder}.
 */
@Generated("software.amazon.awssdk:codegen")
@SdkPublicApi
public interface S3BaseClientBuilder, C> extends AwsClientBuilder {
    B serviceConfiguration(S3Configuration serviceConfiguration);

    default B serviceConfiguration(Consumer serviceConfiguration) {
        return serviceConfiguration(S3Configuration.builder().applyMutation(serviceConfiguration).build());
    }

    /**
     * Set the {@link S3EndpointProvider} implementation that will be used by the client to determine the endpoint for
     * each request. This is optional; if none is provided a default implementation will be used the SDK.
     */
    default B endpointProvider(S3EndpointProvider endpointProvider) {
        throw new UnsupportedOperationException();
    }

    /**
     * Set the {@link S3AuthSchemeProvider} implementation that will be used by the client to resolve the auth scheme
     * for each request. This is optional; if none is provided a default implementation will be used the SDK.
     */
    default B authSchemeProvider(S3AuthSchemeProvider authSchemeProvider) {
        throw new UnsupportedOperationException();
    }

    /**
     * Enables this client to use S3 Transfer Acceleration endpoints.
     */
    B accelerate(Boolean accelerate);

    /**
     * Disables this client's usage of Multi-Region Access Points.
     */
    B disableMultiRegionAccessPoints(Boolean disableMultiRegionAccessPoints);

    /**
     * Disables this client's usage of Session Auth for S3Express buckets and reverts to using conventional SigV4 for
     * those.
     */
    B disableS3ExpressSessionAuth(Boolean disableS3ExpressSessionAuth);

    /**
     * Forces this client to use path-style addressing for buckets.
     */
    B forcePathStyle(Boolean forcePathStyle);

    /**
     * Enables this client to use an ARN's region when constructing an endpoint instead of the client's configured
     * region.
     */
    B useArnRegion(Boolean useArnRegion);

    /**
     * Enables cross-region bucket access for this client
     */
    B crossRegionAccessEnabled(Boolean crossRegionAccessEnabled);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy