/*
* 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 route53resolver-2018-04-01.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.Route53Resolver.Model
{
///
/// Container for the parameters to the CreateResolverEndpoint operation.
/// Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound and
/// outbound:
///
/// -
///
/// An inbound Resolver endpoint forwards DNS queries to the DNS service for a
/// VPC from your network.
///
///
-
///
/// An outbound Resolver endpoint forwards DNS queries from the DNS service for
/// a VPC to your network.
///
///
///
public partial class CreateResolverEndpointRequest : AmazonRoute53ResolverRequest
{
private string _creatorRequestId;
private ResolverEndpointDirection _direction;
private List _ipAddresses = new List();
private string _name;
private string _outpostArn;
private string _preferredInstanceType;
private ResolverEndpointType _resolverEndpointType;
private List _securityGroupIds = new List();
private List _tags = new List();
///
/// Gets and sets the property CreatorRequestId.
///
/// A unique string that identifies the request and that allows failed requests to be
/// retried without the risk of running the operation twice. CreatorRequestId
/// can be any unique string, for example, a date/time stamp.
///
///
[AWSProperty(Required=true, Min=1, Max=255)]
public string CreatorRequestId
{
get { return this._creatorRequestId; }
set { this._creatorRequestId = value; }
}
// Check to see if CreatorRequestId property is set
internal bool IsSetCreatorRequestId()
{
return this._creatorRequestId != null;
}
///
/// Gets and sets the property Direction.
///
/// Specify the applicable value:
///
/// -
///
///
INBOUND
: Resolver forwards DNS queries to the DNS service for a VPC
/// from your network
///
/// -
///
///
OUTBOUND
: Resolver forwards DNS queries from the DNS service for a VPC
/// to your network
///
///
///
[AWSProperty(Required=true)]
public ResolverEndpointDirection Direction
{
get { return this._direction; }
set { this._direction = value; }
}
// Check to see if Direction property is set
internal bool IsSetDirection()
{
return this._direction != null;
}
///
/// Gets and sets the property IpAddresses.
///
/// The subnets and IP addresses in your VPC that DNS queries originate from (for outbound
/// endpoints) or that you forward DNS queries to (for inbound endpoints). The subnet
/// ID uniquely identifies a VPC.
///
///
[AWSProperty(Required=true, Min=1, Max=20)]
public List IpAddresses
{
get { return this._ipAddresses; }
set { this._ipAddresses = value; }
}
// Check to see if IpAddresses property is set
internal bool IsSetIpAddresses()
{
return this._ipAddresses != null && this._ipAddresses.Count > 0;
}
///
/// Gets and sets the property Name.
///
/// A friendly name that lets you easily find a configuration in the Resolver dashboard
/// in the Route 53 console.
///
///
[AWSProperty(Max=64)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property OutpostArn.
///
/// The Amazon Resource Name (ARN) of the Outpost. If you specify this, you must also
/// specify a value for the PreferredInstanceType
.
///
///
[AWSProperty(Min=1, Max=255)]
public string OutpostArn
{
get { return this._outpostArn; }
set { this._outpostArn = value; }
}
// Check to see if OutpostArn property is set
internal bool IsSetOutpostArn()
{
return this._outpostArn != null;
}
///
/// Gets and sets the property PreferredInstanceType.
///
/// The instance type. If you specify this, you must also specify a value for the OutpostArn
.
///
///
[AWSProperty(Min=1, Max=255)]
public string PreferredInstanceType
{
get { return this._preferredInstanceType; }
set { this._preferredInstanceType = value; }
}
// Check to see if PreferredInstanceType property is set
internal bool IsSetPreferredInstanceType()
{
return this._preferredInstanceType != null;
}
///
/// Gets and sets the property ResolverEndpointType.
///
/// For the endpoint type you can choose either IPv4, IPv6, or dual-stack. A dual-stack
/// endpoint means that it will resolve via both IPv4 and IPv6. This endpoint type is
/// applied to all IP addresses.
///
///
public ResolverEndpointType ResolverEndpointType
{
get { return this._resolverEndpointType; }
set { this._resolverEndpointType = value; }
}
// Check to see if ResolverEndpointType property is set
internal bool IsSetResolverEndpointType()
{
return this._resolverEndpointType != null;
}
///
/// Gets and sets the property SecurityGroupIds.
///
/// The ID of one or more security groups that you want to use to control access to this
/// VPC. The security group that you specify must include one or more inbound rules (for
/// inbound Resolver endpoints) or outbound rules (for outbound Resolver endpoints). Inbound
/// and outbound rules must allow TCP and UDP access. For inbound access, open port 53.
/// For outbound access, open the port that you're using for DNS queries on your network.
///
///
[AWSProperty(Required=true)]
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 Tags.
///
/// A list of the tag keys and values that you want to associate with the endpoint.
///
///
[AWSProperty(Max=200)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
}
}