1
15
16 package software.amazon.awssdk.http.apache.internal;
17
18 import java.net.InetAddress;
19 import java.time.Duration;
20 import software.amazon.awssdk.annotations.SdkInternalApi;
21 import software.amazon.awssdk.http.apache.ProxyConfiguration;
22
23
27 @SdkInternalApi
28 public final class ApacheHttpRequestConfig {
29
30 private final Duration socketTimeout;
31 private final Duration connectionTimeout;
32 private final Duration connectionAcquireTimeout;
33 private final InetAddress localAddress;
34 private final boolean expectContinueEnabled;
35 private final ProxyConfiguration proxyConfiguration;
36
37 private ApacheHttpRequestConfig(Builder builder) {
38 this.socketTimeout = builder.socketTimeout;
39 this.connectionTimeout = builder.connectionTimeout;
40 this.connectionAcquireTimeout = builder.connectionAcquireTimeout;
41 this.localAddress = builder.localAddress;
42 this.expectContinueEnabled = builder.expectContinueEnabled;
43 this.proxyConfiguration = builder.proxyConfiguration;
44 }
45
46 public Duration socketTimeout() {
47 return socketTimeout;
48 }
49
50 public Duration connectionTimeout() {
51 return connectionTimeout;
52 }
53
54 public Duration connectionAcquireTimeout() {
55 return connectionAcquireTimeout;
56 }
57
58 public InetAddress localAddress() {
59 return localAddress;
60 }
61
62 public boolean expectContinueEnabled() {
63 return expectContinueEnabled;
64 }
65
66 public ProxyConfiguration proxyConfiguration() {
67 return proxyConfiguration;
68 }
69
70
73 public static Builder builder() {
74 return new Builder();
75 }
76
77
80 public static final class Builder {
81
82 private Duration socketTimeout;
83 private Duration connectionTimeout;
84 private Duration connectionAcquireTimeout;
85 private InetAddress localAddress;
86 private boolean expectContinueEnabled;
87 private ProxyConfiguration proxyConfiguration;
88
89 private Builder() {
90 }
91
92 public Builder socketTimeout(Duration socketTimeout) {
93 this.socketTimeout = socketTimeout;
94 return this;
95 }
96
97 public Builder connectionTimeout(Duration connectionTimeout) {
98 this.connectionTimeout = connectionTimeout;
99 return this;
100 }
101
102 public Builder connectionAcquireTimeout(Duration connectionAcquireTimeout) {
103 this.connectionAcquireTimeout = connectionAcquireTimeout;
104 return this;
105 }
106
107 public Builder localAddress(InetAddress localAddress) {
108 this.localAddress = localAddress;
109 return this;
110 }
111
112 public Builder expectContinueEnabled(boolean expectContinueEnabled) {
113 this.expectContinueEnabled = expectContinueEnabled;
114 return this;
115 }
116
117 public Builder proxyConfiguration(ProxyConfiguration proxyConfiguration) {
118 this.proxyConfiguration = proxyConfiguration;
119 return this;
120 }
121
122
125 public ApacheHttpRequestConfig build() {
126 return new ApacheHttpRequestConfig(this);
127 }
128 }
129
130 }
131