/*
* 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 CreateVpcEndpoint operation.
/// Creates a VPC endpoint. A VPC endpoint provides a private connection between the specified
/// VPC and the specified endpoint service. You can use an endpoint service provided by
/// Amazon Web Services, an Amazon Web Services Marketplace Partner, or another Amazon
/// Web Services account. For more information, see the Amazon
/// Web Services PrivateLink User Guide.
///
public partial class CreateVpcEndpointRequest : AmazonEC2Request
{
private string _clientToken;
private DnsOptionsSpecification _dnsOptions;
private IpAddressType _ipAddressType;
private string _policyDocument;
private bool? _privateDnsEnabled;
private List _routeTableIds = new List();
private List _securityGroupIds = new List();
private string _serviceName;
private List _subnetIds = new List();
private List _tagSpecifications = new List();
private VpcEndpointType _vpcEndpointType;
private string _vpcId;
///
/// Gets and sets the property ClientToken.
///
/// Unique, case-sensitive identifier that you provide to ensure the idempotency of the
/// request. For more information, see How
/// to ensure idempotency.
///
///
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property DnsOptions.
///
/// The DNS options for the endpoint.
///
///
public DnsOptionsSpecification DnsOptions
{
get { return this._dnsOptions; }
set { this._dnsOptions = value; }
}
// Check to see if DnsOptions property is set
internal bool IsSetDnsOptions()
{
return this._dnsOptions != null;
}
///
/// Gets and sets the property IpAddressType.
///
/// The IP address type for the endpoint.
///
///
public IpAddressType IpAddressType
{
get { return this._ipAddressType; }
set { this._ipAddressType = value; }
}
// Check to see if IpAddressType property is set
internal bool IsSetIpAddressType()
{
return this._ipAddressType != null;
}
///
/// Gets and sets the property PolicyDocument.
///
/// (Interface and gateway endpoints) A policy to attach to the endpoint that controls
/// access to the service. The policy must be in valid JSON format. If this parameter
/// is not specified, we attach a default policy that allows full access to the service.
///
///
public string PolicyDocument
{
get { return this._policyDocument; }
set { this._policyDocument = value; }
}
// Check to see if PolicyDocument property is set
internal bool IsSetPolicyDocument()
{
return this._policyDocument != null;
}
///
/// Gets and sets the property PrivateDnsEnabled.
///
/// (Interface endpoint) Indicates whether to associate a private hosted zone with the
/// specified VPC. The private hosted zone contains a record set for the default public
/// DNS name for the service for the Region (for example, kinesis.us-east-1.amazonaws.com
),
/// which resolves to the private IP addresses of the endpoint network interfaces in the
/// VPC. This enables you to make requests to the default public DNS name for the service
/// instead of the public DNS names that are automatically generated by the VPC endpoint
/// service.
///
///
///
/// To use a private hosted zone, you must set the following VPC attributes to true
:
/// enableDnsHostnames
and enableDnsSupport
. Use ModifyVpcAttribute
/// to set the VPC attributes.
///
///
///
/// Default: true
///
///
public bool PrivateDnsEnabled
{
get { return this._privateDnsEnabled.GetValueOrDefault(); }
set { this._privateDnsEnabled = value; }
}
// Check to see if PrivateDnsEnabled property is set
internal bool IsSetPrivateDnsEnabled()
{
return this._privateDnsEnabled.HasValue;
}
///
/// Gets and sets the property RouteTableIds.
///
/// (Gateway endpoint) The route table IDs.
///
///
public List RouteTableIds
{
get { return this._routeTableIds; }
set { this._routeTableIds = value; }
}
// Check to see if RouteTableIds property is set
internal bool IsSetRouteTableIds()
{
return this._routeTableIds != null && this._routeTableIds.Count > 0;
}
///
/// Gets and sets the property SecurityGroupIds.
///
/// (Interface endpoint) The IDs of the security groups to associate with the endpoint
/// network interface. If this parameter is not specified, we use the default security
/// group for the VPC.
///
///
public List SecurityGroupIds
{
get { return this._securityGroupIds; }
set { this._securityGroupIds = value; }
}
// Check to see if SecurityGroupIds property is set
internal bool IsSetSecurityGroupIds()
{
return this._securityGroupIds != null && this._securityGroupIds.Count > 0;
}
///
/// Gets and sets the property ServiceName.
///
/// The name of the endpoint service.
///
///
[AWSProperty(Required=true)]
public string ServiceName
{
get { return this._serviceName; }
set { this._serviceName = value; }
}
// Check to see if ServiceName property is set
internal bool IsSetServiceName()
{
return this._serviceName != null;
}
///
/// Gets and sets the property SubnetIds.
///
/// (Interface and Gateway Load Balancer endpoints) The IDs of the subnets in which to
/// create an endpoint network interface. For a Gateway Load Balancer endpoint, you can
/// specify only one subnet.
///
///
public List SubnetIds
{
get { return this._subnetIds; }
set { this._subnetIds = value; }
}
// Check to see if SubnetIds property is set
internal bool IsSetSubnetIds()
{
return this._subnetIds != null && this._subnetIds.Count > 0;
}
///
/// Gets and sets the property TagSpecifications.
///
/// The tags to associate with the endpoint.
///
///
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 VpcEndpointType.
///
/// The type of endpoint.
///
///
///
/// Default: Gateway
///
///
public VpcEndpointType VpcEndpointType
{
get { return this._vpcEndpointType; }
set { this._vpcEndpointType = value; }
}
// Check to see if VpcEndpointType property is set
internal bool IsSetVpcEndpointType()
{
return this._vpcEndpointType != null;
}
///
/// Gets and sets the property VpcId.
///
/// The ID of the VPC.
///
///
[AWSProperty(Required=true)]
public string VpcId
{
get { return this._vpcId; }
set { this._vpcId = value; }
}
// Check to see if VpcId property is set
internal bool IsSetVpcId()
{
return this._vpcId != null;
}
}
}