/*
* 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.
*/
/*
* Do not modify this file. This file is generated from the ec2-2016-11-15.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.EC2.Model
{
///
/// Container for the parameters to the CreateCustomerGateway operation.
/// Provides information to Amazon Web Services about your customer gateway device. The
/// customer gateway device is the appliance at your end of the VPN connection. You must
/// provide the IP address of the customer gateway device’s external interface. The IP
/// address must be static and can be behind a device performing network address translation
/// (NAT).
///
///
///
/// For devices that use Border Gateway Protocol (BGP), you can also provide the device's
/// BGP Autonomous System Number (ASN). You can use an existing ASN assigned to your network.
/// If you don't have an ASN already, you can use a private ASN. For more information,
/// see Customer
/// gateway options for your Site-to-Site VPN connection in the Amazon Web Services
/// Site-to-Site VPN User Guide.
///
///
///
/// To create more than one customer gateway with the same VPN type, IP address, and BGP
/// ASN, specify a unique device name for each customer gateway. An identical request
/// returns information about the existing customer gateway; it doesn't create a new customer
/// gateway.
///
///
public partial class CreateCustomerGatewayRequest : AmazonEC2Request
{
private int? _bgpAsn;
private string _certificateArn;
private string _deviceName;
private string _ipAddress;
private string _publicIp;
private List _tagSpecifications = new List();
private GatewayType _type;
///
/// Empty constructor used to set properties independently even when a simple constructor is available
///
public CreateCustomerGatewayRequest() { }
///
/// Instantiates CreateCustomerGatewayRequest with the parameterized properties
///
/// The type of VPN connection that this customer gateway supports (ipsec.1
).
/// This member has been deprecated. The Internet-routable IP address for the customer gateway's outside interface. The address must be static.
/// For devices that support BGP, the customer gateway's BGP ASN. Default: 65000
public CreateCustomerGatewayRequest(GatewayType type, string publicIp, int bgpAsn)
{
_type = type;
_publicIp = publicIp;
_bgpAsn = bgpAsn;
}
///
/// Gets and sets the property BgpAsn.
///
/// For devices that support BGP, the customer gateway's BGP ASN.
///
///
///
/// Default: 65000
///
///
public int BgpAsn
{
get { return this._bgpAsn.GetValueOrDefault(); }
set { this._bgpAsn = value; }
}
// Check to see if BgpAsn property is set
internal bool IsSetBgpAsn()
{
return this._bgpAsn.HasValue;
}
///
/// Gets and sets the property CertificateArn.
///
/// The Amazon Resource Name (ARN) for the customer gateway certificate.
///
///
public string CertificateArn
{
get { return this._certificateArn; }
set { this._certificateArn = value; }
}
// Check to see if CertificateArn property is set
internal bool IsSetCertificateArn()
{
return this._certificateArn != null;
}
///
/// Gets and sets the property DeviceName.
///
/// A name for the customer gateway device.
///
///
///
/// Length Constraints: Up to 255 characters.
///
///
public string DeviceName
{
get { return this._deviceName; }
set { this._deviceName = value; }
}
// Check to see if DeviceName property is set
internal bool IsSetDeviceName()
{
return this._deviceName != null;
}
///
/// Gets and sets the property IpAddress.
///
/// IPv4 address for the customer gateway device's outside interface. The address must
/// be static.
///
///
public string IpAddress
{
get { return this._ipAddress; }
set { this._ipAddress = value; }
}
// Check to see if IpAddress property is set
internal bool IsSetIpAddress()
{
return this._ipAddress != null;
}
///
/// Gets and sets the property PublicIp.
///
/// This member has been deprecated. The Internet-routable IP address for the
/// customer gateway's outside interface. The address must be static.
///
///
public string PublicIp
{
get { return this._publicIp; }
set { this._publicIp = value; }
}
// Check to see if PublicIp property is set
internal bool IsSetPublicIp()
{
return this._publicIp != null;
}
///
/// Gets and sets the property TagSpecifications.
///
/// The tags to apply to the customer gateway.
///
///
public List TagSpecifications
{
get { return this._tagSpecifications; }
set { this._tagSpecifications = value; }
}
// Check to see if TagSpecifications property is set
internal bool IsSetTagSpecifications()
{
return this._tagSpecifications != null && this._tagSpecifications.Count > 0;
}
///
/// Gets and sets the property Type.
///
/// The type of VPN connection that this customer gateway supports (ipsec.1
).
///
///
[AWSProperty(Required=true)]
public GatewayType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}