aws_sdk_ec2/operation/create_client_vpn_endpoint/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_client_vpn_endpoint::_create_client_vpn_endpoint_output::CreateClientVpnEndpointOutputBuilder;
3
4pub use crate::operation::create_client_vpn_endpoint::_create_client_vpn_endpoint_input::CreateClientVpnEndpointInputBuilder;
5
6impl crate::operation::create_client_vpn_endpoint::builders::CreateClientVpnEndpointInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_client_vpn_endpoint();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateClientVpnEndpoint`.
24///
25/// <p>Creates a Client VPN endpoint. A Client VPN endpoint is the resource you create and configure to enable and manage client VPN sessions. It is the destination endpoint at which all client VPN sessions are terminated.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateClientVpnEndpointFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_client_vpn_endpoint::builders::CreateClientVpnEndpointInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointOutput,
35        crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointError,
36    > for CreateClientVpnEndpointFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointOutput,
44            crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl CreateClientVpnEndpointFluentBuilder {
51    /// Creates a new `CreateClientVpnEndpointFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the CreateClientVpnEndpoint as a reference.
60    pub fn as_input(&self) -> &crate::operation::create_client_vpn_endpoint::builders::CreateClientVpnEndpointInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpoint::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpoint::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointOutput,
97        crate::operation::create_client_vpn_endpoint::CreateClientVpnEndpointError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. Client CIDR range must have a size of at least /22 and must not be greater than /12.</p>
112    pub fn client_cidr_block(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.client_cidr_block(input.into());
114        self
115    }
116    /// <p>The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. Client CIDR range must have a size of at least /22 and must not be greater than /12.</p>
117    pub fn set_client_cidr_block(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_client_cidr_block(input);
119        self
120    }
121    /// <p>The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. Client CIDR range must have a size of at least /22 and must not be greater than /12.</p>
122    pub fn get_client_cidr_block(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_client_cidr_block()
124    }
125    /// <p>The ARN of the server certificate. For more information, see the <a href="https://docs.aws.amazon.com/acm/latest/userguide/">Certificate Manager User Guide</a>.</p>
126    pub fn server_certificate_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.server_certificate_arn(input.into());
128        self
129    }
130    /// <p>The ARN of the server certificate. For more information, see the <a href="https://docs.aws.amazon.com/acm/latest/userguide/">Certificate Manager User Guide</a>.</p>
131    pub fn set_server_certificate_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_server_certificate_arn(input);
133        self
134    }
135    /// <p>The ARN of the server certificate. For more information, see the <a href="https://docs.aws.amazon.com/acm/latest/userguide/">Certificate Manager User Guide</a>.</p>
136    pub fn get_server_certificate_arn(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_server_certificate_arn()
138    }
139    ///
140    /// Appends an item to `AuthenticationOptions`.
141    ///
142    /// To override the contents of this collection use [`set_authentication_options`](Self::set_authentication_options).
143    ///
144    /// <p>Information about the authentication method to be used to authenticate clients.</p>
145    pub fn authentication_options(mut self, input: crate::types::ClientVpnAuthenticationRequest) -> Self {
146        self.inner = self.inner.authentication_options(input);
147        self
148    }
149    /// <p>Information about the authentication method to be used to authenticate clients.</p>
150    pub fn set_authentication_options(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ClientVpnAuthenticationRequest>>) -> Self {
151        self.inner = self.inner.set_authentication_options(input);
152        self
153    }
154    /// <p>Information about the authentication method to be used to authenticate clients.</p>
155    pub fn get_authentication_options(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ClientVpnAuthenticationRequest>> {
156        self.inner.get_authentication_options()
157    }
158    /// <p>Information about the client connection logging options.</p>
159    /// <p>If you enable client connection logging, data about client connections is sent to a Cloudwatch Logs log stream. The following information is logged:</p>
160    /// <ul>
161    /// <li>
162    /// <p>Client connection requests</p></li>
163    /// <li>
164    /// <p>Client connection results (successful and unsuccessful)</p></li>
165    /// <li>
166    /// <p>Reasons for unsuccessful client connection requests</p></li>
167    /// <li>
168    /// <p>Client connection termination time</p></li>
169    /// </ul>
170    pub fn connection_log_options(mut self, input: crate::types::ConnectionLogOptions) -> Self {
171        self.inner = self.inner.connection_log_options(input);
172        self
173    }
174    /// <p>Information about the client connection logging options.</p>
175    /// <p>If you enable client connection logging, data about client connections is sent to a Cloudwatch Logs log stream. The following information is logged:</p>
176    /// <ul>
177    /// <li>
178    /// <p>Client connection requests</p></li>
179    /// <li>
180    /// <p>Client connection results (successful and unsuccessful)</p></li>
181    /// <li>
182    /// <p>Reasons for unsuccessful client connection requests</p></li>
183    /// <li>
184    /// <p>Client connection termination time</p></li>
185    /// </ul>
186    pub fn set_connection_log_options(mut self, input: ::std::option::Option<crate::types::ConnectionLogOptions>) -> Self {
187        self.inner = self.inner.set_connection_log_options(input);
188        self
189    }
190    /// <p>Information about the client connection logging options.</p>
191    /// <p>If you enable client connection logging, data about client connections is sent to a Cloudwatch Logs log stream. The following information is logged:</p>
192    /// <ul>
193    /// <li>
194    /// <p>Client connection requests</p></li>
195    /// <li>
196    /// <p>Client connection results (successful and unsuccessful)</p></li>
197    /// <li>
198    /// <p>Reasons for unsuccessful client connection requests</p></li>
199    /// <li>
200    /// <p>Client connection termination time</p></li>
201    /// </ul>
202    pub fn get_connection_log_options(&self) -> &::std::option::Option<crate::types::ConnectionLogOptions> {
203        self.inner.get_connection_log_options()
204    }
205    ///
206    /// Appends an item to `DnsServers`.
207    ///
208    /// To override the contents of this collection use [`set_dns_servers`](Self::set_dns_servers).
209    ///
210    /// <p>Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address configured on the device is used for the DNS server.</p>
211    pub fn dns_servers(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
212        self.inner = self.inner.dns_servers(input.into());
213        self
214    }
215    /// <p>Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address configured on the device is used for the DNS server.</p>
216    pub fn set_dns_servers(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
217        self.inner = self.inner.set_dns_servers(input);
218        self
219    }
220    /// <p>Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address configured on the device is used for the DNS server.</p>
221    pub fn get_dns_servers(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
222        self.inner.get_dns_servers()
223    }
224    /// <p>The transport protocol to be used by the VPN session.</p>
225    /// <p>Default value: <code>udp</code></p>
226    pub fn transport_protocol(mut self, input: crate::types::TransportProtocol) -> Self {
227        self.inner = self.inner.transport_protocol(input);
228        self
229    }
230    /// <p>The transport protocol to be used by the VPN session.</p>
231    /// <p>Default value: <code>udp</code></p>
232    pub fn set_transport_protocol(mut self, input: ::std::option::Option<crate::types::TransportProtocol>) -> Self {
233        self.inner = self.inner.set_transport_protocol(input);
234        self
235    }
236    /// <p>The transport protocol to be used by the VPN session.</p>
237    /// <p>Default value: <code>udp</code></p>
238    pub fn get_transport_protocol(&self) -> &::std::option::Option<crate::types::TransportProtocol> {
239        self.inner.get_transport_protocol()
240    }
241    /// <p>The port number to assign to the Client VPN endpoint for TCP and UDP traffic.</p>
242    /// <p>Valid Values: <code>443</code> | <code>1194</code></p>
243    /// <p>Default Value: <code>443</code></p>
244    pub fn vpn_port(mut self, input: i32) -> Self {
245        self.inner = self.inner.vpn_port(input);
246        self
247    }
248    /// <p>The port number to assign to the Client VPN endpoint for TCP and UDP traffic.</p>
249    /// <p>Valid Values: <code>443</code> | <code>1194</code></p>
250    /// <p>Default Value: <code>443</code></p>
251    pub fn set_vpn_port(mut self, input: ::std::option::Option<i32>) -> Self {
252        self.inner = self.inner.set_vpn_port(input);
253        self
254    }
255    /// <p>The port number to assign to the Client VPN endpoint for TCP and UDP traffic.</p>
256    /// <p>Valid Values: <code>443</code> | <code>1194</code></p>
257    /// <p>Default Value: <code>443</code></p>
258    pub fn get_vpn_port(&self) -> &::std::option::Option<i32> {
259        self.inner.get_vpn_port()
260    }
261    /// <p>A brief description of the Client VPN endpoint.</p>
262    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
263        self.inner = self.inner.description(input.into());
264        self
265    }
266    /// <p>A brief description of the Client VPN endpoint.</p>
267    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
268        self.inner = self.inner.set_description(input);
269        self
270    }
271    /// <p>A brief description of the Client VPN endpoint.</p>
272    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
273        self.inner.get_description()
274    }
275    /// <p>Indicates whether split-tunnel is enabled on the Client VPN endpoint.</p>
276    /// <p>By default, split-tunnel on a VPN endpoint is disabled.</p>
277    /// <p>For information about split-tunnel VPN endpoints, see <a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html">Split-tunnel Client VPN endpoint</a> in the <i>Client VPN Administrator Guide</i>.</p>
278    pub fn split_tunnel(mut self, input: bool) -> Self {
279        self.inner = self.inner.split_tunnel(input);
280        self
281    }
282    /// <p>Indicates whether split-tunnel is enabled on the Client VPN endpoint.</p>
283    /// <p>By default, split-tunnel on a VPN endpoint is disabled.</p>
284    /// <p>For information about split-tunnel VPN endpoints, see <a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html">Split-tunnel Client VPN endpoint</a> in the <i>Client VPN Administrator Guide</i>.</p>
285    pub fn set_split_tunnel(mut self, input: ::std::option::Option<bool>) -> Self {
286        self.inner = self.inner.set_split_tunnel(input);
287        self
288    }
289    /// <p>Indicates whether split-tunnel is enabled on the Client VPN endpoint.</p>
290    /// <p>By default, split-tunnel on a VPN endpoint is disabled.</p>
291    /// <p>For information about split-tunnel VPN endpoints, see <a href="https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html">Split-tunnel Client VPN endpoint</a> in the <i>Client VPN Administrator Guide</i>.</p>
292    pub fn get_split_tunnel(&self) -> &::std::option::Option<bool> {
293        self.inner.get_split_tunnel()
294    }
295    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
296    pub fn dry_run(mut self, input: bool) -> Self {
297        self.inner = self.inner.dry_run(input);
298        self
299    }
300    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
301    pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
302        self.inner = self.inner.set_dry_run(input);
303        self
304    }
305    /// <p>Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>
306    pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
307        self.inner.get_dry_run()
308    }
309    /// <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html">Ensuring idempotency</a>.</p>
310    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
311        self.inner = self.inner.client_token(input.into());
312        self
313    }
314    /// <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html">Ensuring idempotency</a>.</p>
315    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
316        self.inner = self.inner.set_client_token(input);
317        self
318    }
319    /// <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see <a href="https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html">Ensuring idempotency</a>.</p>
320    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
321        self.inner.get_client_token()
322    }
323    ///
324    /// Appends an item to `TagSpecifications`.
325    ///
326    /// To override the contents of this collection use [`set_tag_specifications`](Self::set_tag_specifications).
327    ///
328    /// <p>The tags to apply to the Client VPN endpoint during creation.</p>
329    pub fn tag_specifications(mut self, input: crate::types::TagSpecification) -> Self {
330        self.inner = self.inner.tag_specifications(input);
331        self
332    }
333    /// <p>The tags to apply to the Client VPN endpoint during creation.</p>
334    pub fn set_tag_specifications(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>>) -> Self {
335        self.inner = self.inner.set_tag_specifications(input);
336        self
337    }
338    /// <p>The tags to apply to the Client VPN endpoint during creation.</p>
339    pub fn get_tag_specifications(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagSpecification>> {
340        self.inner.get_tag_specifications()
341    }
342    ///
343    /// Appends an item to `SecurityGroupIds`.
344    ///
345    /// To override the contents of this collection use [`set_security_group_ids`](Self::set_security_group_ids).
346    ///
347    /// <p>The IDs of one or more security groups to apply to the target network. You must also specify the ID of the VPC that contains the security groups.</p>
348    pub fn security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
349        self.inner = self.inner.security_group_ids(input.into());
350        self
351    }
352    /// <p>The IDs of one or more security groups to apply to the target network. You must also specify the ID of the VPC that contains the security groups.</p>
353    pub fn set_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
354        self.inner = self.inner.set_security_group_ids(input);
355        self
356    }
357    /// <p>The IDs of one or more security groups to apply to the target network. You must also specify the ID of the VPC that contains the security groups.</p>
358    pub fn get_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
359        self.inner.get_security_group_ids()
360    }
361    /// <p>The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied.</p>
362    pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
363        self.inner = self.inner.vpc_id(input.into());
364        self
365    }
366    /// <p>The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied.</p>
367    pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
368        self.inner = self.inner.set_vpc_id(input);
369        self
370    }
371    /// <p>The ID of the VPC to associate with the Client VPN endpoint. If no security group IDs are specified in the request, the default security group for the VPC is applied.</p>
372    pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
373        self.inner.get_vpc_id()
374    }
375    /// <p>Specify whether to enable the self-service portal for the Client VPN endpoint.</p>
376    /// <p>Default Value: <code>enabled</code></p>
377    pub fn self_service_portal(mut self, input: crate::types::SelfServicePortal) -> Self {
378        self.inner = self.inner.self_service_portal(input);
379        self
380    }
381    /// <p>Specify whether to enable the self-service portal for the Client VPN endpoint.</p>
382    /// <p>Default Value: <code>enabled</code></p>
383    pub fn set_self_service_portal(mut self, input: ::std::option::Option<crate::types::SelfServicePortal>) -> Self {
384        self.inner = self.inner.set_self_service_portal(input);
385        self
386    }
387    /// <p>Specify whether to enable the self-service portal for the Client VPN endpoint.</p>
388    /// <p>Default Value: <code>enabled</code></p>
389    pub fn get_self_service_portal(&self) -> &::std::option::Option<crate::types::SelfServicePortal> {
390        self.inner.get_self_service_portal()
391    }
392    /// <p>The options for managing connection authorization for new client connections.</p>
393    pub fn client_connect_options(mut self, input: crate::types::ClientConnectOptions) -> Self {
394        self.inner = self.inner.client_connect_options(input);
395        self
396    }
397    /// <p>The options for managing connection authorization for new client connections.</p>
398    pub fn set_client_connect_options(mut self, input: ::std::option::Option<crate::types::ClientConnectOptions>) -> Self {
399        self.inner = self.inner.set_client_connect_options(input);
400        self
401    }
402    /// <p>The options for managing connection authorization for new client connections.</p>
403    pub fn get_client_connect_options(&self) -> &::std::option::Option<crate::types::ClientConnectOptions> {
404        self.inner.get_client_connect_options()
405    }
406    /// <p>The maximum VPN session duration time in hours.</p>
407    /// <p>Valid values: <code>8 | 10 | 12 | 24</code></p>
408    /// <p>Default value: <code>24</code></p>
409    pub fn session_timeout_hours(mut self, input: i32) -> Self {
410        self.inner = self.inner.session_timeout_hours(input);
411        self
412    }
413    /// <p>The maximum VPN session duration time in hours.</p>
414    /// <p>Valid values: <code>8 | 10 | 12 | 24</code></p>
415    /// <p>Default value: <code>24</code></p>
416    pub fn set_session_timeout_hours(mut self, input: ::std::option::Option<i32>) -> Self {
417        self.inner = self.inner.set_session_timeout_hours(input);
418        self
419    }
420    /// <p>The maximum VPN session duration time in hours.</p>
421    /// <p>Valid values: <code>8 | 10 | 12 | 24</code></p>
422    /// <p>Default value: <code>24</code></p>
423    pub fn get_session_timeout_hours(&self) -> &::std::option::Option<i32> {
424        self.inner.get_session_timeout_hours()
425    }
426    /// <p>Options for enabling a customizable text banner that will be displayed on Amazon Web Services provided clients when a VPN session is established.</p>
427    pub fn client_login_banner_options(mut self, input: crate::types::ClientLoginBannerOptions) -> Self {
428        self.inner = self.inner.client_login_banner_options(input);
429        self
430    }
431    /// <p>Options for enabling a customizable text banner that will be displayed on Amazon Web Services provided clients when a VPN session is established.</p>
432    pub fn set_client_login_banner_options(mut self, input: ::std::option::Option<crate::types::ClientLoginBannerOptions>) -> Self {
433        self.inner = self.inner.set_client_login_banner_options(input);
434        self
435    }
436    /// <p>Options for enabling a customizable text banner that will be displayed on Amazon Web Services provided clients when a VPN session is established.</p>
437    pub fn get_client_login_banner_options(&self) -> &::std::option::Option<crate::types::ClientLoginBannerOptions> {
438        self.inner.get_client_login_banner_options()
439    }
440    /// <p>Indicates whether the client VPN session is disconnected after the maximum timeout specified in <code>SessionTimeoutHours</code> is reached. If <code>true</code>, users are prompted to reconnect client VPN. If <code>false</code>, client VPN attempts to reconnect automatically. The default value is <code>false</code>.</p>
441    pub fn disconnect_on_session_timeout(mut self, input: bool) -> Self {
442        self.inner = self.inner.disconnect_on_session_timeout(input);
443        self
444    }
445    /// <p>Indicates whether the client VPN session is disconnected after the maximum timeout specified in <code>SessionTimeoutHours</code> is reached. If <code>true</code>, users are prompted to reconnect client VPN. If <code>false</code>, client VPN attempts to reconnect automatically. The default value is <code>false</code>.</p>
446    pub fn set_disconnect_on_session_timeout(mut self, input: ::std::option::Option<bool>) -> Self {
447        self.inner = self.inner.set_disconnect_on_session_timeout(input);
448        self
449    }
450    /// <p>Indicates whether the client VPN session is disconnected after the maximum timeout specified in <code>SessionTimeoutHours</code> is reached. If <code>true</code>, users are prompted to reconnect client VPN. If <code>false</code>, client VPN attempts to reconnect automatically. The default value is <code>false</code>.</p>
451    pub fn get_disconnect_on_session_timeout(&self) -> &::std::option::Option<bool> {
452        self.inner.get_disconnect_on_session_timeout()
453    }
454}