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

15
16 package software.amazon.awssdk.core;
17
18 import software.amazon.awssdk.annotations.Immutable;
19 import software.amazon.awssdk.annotations.SdkPublicApi;
20
21 /**
22  * Base per-request override configuration for all SDK requests.
23  */

24 @Immutable
25 @SdkPublicApi
26 public final class SdkRequestOverrideConfiguration extends RequestOverrideConfiguration {
27
28     private SdkRequestOverrideConfiguration(Builder builder) {
29         super(builder);
30     }
31
32     @Override
33     public Builder toBuilder() {
34         return new BuilderImpl(this);
35     }
36
37     public static Builder builder() {
38         return new BuilderImpl();
39     }
40
41     public interface Builder extends RequestOverrideConfiguration.Builder<Builder> {
42         @Override
43         SdkRequestOverrideConfiguration build();
44     }
45
46     private static final class BuilderImpl extends RequestOverrideConfiguration.BuilderImpl<Builder> implements Builder {
47
48         private BuilderImpl() {
49         }
50
51         private BuilderImpl(SdkRequestOverrideConfiguration sdkRequestOverrideConfig) {
52             super(sdkRequestOverrideConfig);
53         }
54
55         @Override
56         public SdkRequestOverrideConfiguration build() {
57             return new SdkRequestOverrideConfiguration(this);
58         }
59     }
60 }
61