// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateCustomerGateway`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`bgp_asn(i32)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::bgp_asn) / [`set_bgp_asn(Option<i32>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::set_bgp_asn):<br>required: **false**<br><p>For customer gateway devices that support BGP, specify the device's ASN. You must specify either <code>BgpAsn</code> or <code>BgpAsnExtended</code> when creating the customer gateway. If the ASN is larger than <code>2,147,483,647</code>, you must use <code>BgpAsnExtended</code>.</p> <p>Default: 65000</p> <p>Valid values: <code>1</code> to <code>2,147,483,647</code></p><br>
/// - [`public_ip(impl Into<String>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::public_ip) / [`set_public_ip(Option<String>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::set_public_ip):<br>required: **false**<br><p><i>This member has been deprecated.</i> The Internet-routable IP address for the customer gateway's outside interface. The address must be static.</p><br>
/// - [`certificate_arn(impl Into<String>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::certificate_arn) / [`set_certificate_arn(Option<String>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::set_certificate_arn):<br>required: **false**<br><p>The Amazon Resource Name (ARN) for the customer gateway certificate.</p><br>
/// - [`r#type(GatewayType)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::type) / [`set_type(Option<GatewayType>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::set_type):<br>required: **true**<br><p>The type of VPN connection that this customer gateway supports (<code>ipsec.1</code>).</p><br>
/// - [`tag_specifications(TagSpecification)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::tag_specifications) / [`set_tag_specifications(Option<Vec::<TagSpecification>>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::set_tag_specifications):<br>required: **false**<br><p>The tags to apply to the customer gateway.</p><br>
/// - [`device_name(impl Into<String>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::device_name) / [`set_device_name(Option<String>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::set_device_name):<br>required: **false**<br><p>A name for the customer gateway device.</p> <p>Length Constraints: Up to 255 characters.</p><br>
/// - [`ip_address(impl Into<String>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::ip_address) / [`set_ip_address(Option<String>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::set_ip_address):<br>required: **false**<br><p>IPv4 address for the customer gateway device's outside interface. The address must be static. If <code>OutsideIpAddressType</code> in your VPN connection options is set to <code>PrivateIpv4</code>, you can use an RFC6598 or RFC1918 private IPv4 address. If <code>OutsideIpAddressType</code> is set to <code>PublicIpv4</code>, you can use a public IPv4 address.</p><br>
/// - [`dry_run(bool)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::dry_run) / [`set_dry_run(Option<bool>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::set_dry_run):<br>required: **false**<br><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><br>
/// - [`bgp_asn_extended(i64)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::bgp_asn_extended) / [`set_bgp_asn_extended(Option<i64>)`](crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::set_bgp_asn_extended):<br>required: **false**<br><p>For customer gateway devices that support BGP, specify the device's ASN. You must specify either <code>BgpAsn</code> or <code>BgpAsnExtended</code> when creating the customer gateway. If the ASN is larger than <code>2,147,483,647</code>, you must use <code>BgpAsnExtended</code>.</p> <p>Valid values: <code>2,147,483,648</code> to <code>4,294,967,295</code></p><br>
/// - On success, responds with [`CreateCustomerGatewayOutput`](crate::operation::create_customer_gateway::CreateCustomerGatewayOutput) with field(s):
/// - [`customer_gateway(Option<CustomerGateway>)`](crate::operation::create_customer_gateway::CreateCustomerGatewayOutput::customer_gateway): <p>Information about the customer gateway.</p>
/// - On failure, responds with [`SdkError<CreateCustomerGatewayError>`](crate::operation::create_customer_gateway::CreateCustomerGatewayError)
pub fn create_customer_gateway(&self) -> crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder {
crate::operation::create_customer_gateway::builders::CreateCustomerGatewayFluentBuilder::new(self.handle.clone())
}
}