/*
* 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
{
///
/// In the response to a CreateResolverEndpoint,
/// DeleteResolverEndpoint,
/// GetResolverEndpoint,
/// Updates the name, or ResolverEndpointType for an endpoint, or UpdateResolverEndpoint
/// request, a complex type that contains settings for an existing inbound or outbound
/// Resolver endpoint.
///
public partial class ResolverEndpoint
{
private string _arn;
private string _creationTime;
private string _creatorRequestId;
private ResolverEndpointDirection _direction;
private string _hostVPCId;
private string _id;
private int? _ipAddressCount;
private string _modificationTime;
private string _name;
private string _outpostArn;
private string _preferredInstanceType;
private ResolverEndpointType _resolverEndpointType;
private List _securityGroupIds = new List();
private ResolverEndpointStatus _status;
private string _statusMessage;
///
/// Gets and sets the property Arn.
///
/// The ARN (Amazon Resource Name) for the Resolver endpoint.
///
///
[AWSProperty(Min=1, Max=255)]
public string Arn
{
get { return this._arn; }
set { this._arn = value; }
}
// Check to see if Arn property is set
internal bool IsSetArn()
{
return this._arn != null;
}
///
/// Gets and sets the property CreationTime.
///
/// The date and time that the endpoint was created, in Unix time format and Coordinated
/// Universal Time (UTC).
///
///
[AWSProperty(Min=20, Max=40)]
public string CreationTime
{
get { return this._creationTime; }
set { this._creationTime = value; }
}
// Check to see if CreationTime property is set
internal bool IsSetCreationTime()
{
return this._creationTime != null;
}
///
/// Gets and sets the property CreatorRequestId.
///
/// A unique string that identifies the request that created the Resolver endpoint. The
/// CreatorRequestId
allows failed requests to be retried without the risk
/// of running the operation twice.
///
///
[AWSProperty(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.
///
/// Indicates whether the Resolver endpoint allows inbound or outbound DNS queries:
///
/// -
///
///
INBOUND
: allows DNS queries to your VPC from your network
///
/// -
///
///
OUTBOUND
: allows DNS queries from your VPC to your network
///
///
///
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 HostVPCId.
///
/// The ID of the VPC that you want to create the Resolver endpoint in.
///
///
[AWSProperty(Min=1, Max=64)]
public string HostVPCId
{
get { return this._hostVPCId; }
set { this._hostVPCId = value; }
}
// Check to see if HostVPCId property is set
internal bool IsSetHostVPCId()
{
return this._hostVPCId != null;
}
///
/// Gets and sets the property Id.
///
/// The ID of the Resolver endpoint.
///
///
[AWSProperty(Min=1, Max=64)]
public string Id
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if Id property is set
internal bool IsSetId()
{
return this._id != null;
}
///
/// Gets and sets the property IpAddressCount.
///
/// The number of IP addresses that the Resolver endpoint can use for DNS queries.
///
///
public int IpAddressCount
{
get { return this._ipAddressCount.GetValueOrDefault(); }
set { this._ipAddressCount = value; }
}
// Check to see if IpAddressCount property is set
internal bool IsSetIpAddressCount()
{
return this._ipAddressCount.HasValue;
}
///
/// Gets and sets the property ModificationTime.
///
/// The date and time that the endpoint was last modified, in Unix time format and Coordinated
/// Universal Time (UTC).
///
///
[AWSProperty(Min=20, Max=40)]
public string ModificationTime
{
get { return this._modificationTime; }
set { this._modificationTime = value; }
}
// Check to see if ModificationTime property is set
internal bool IsSetModificationTime()
{
return this._modificationTime != null;
}
///
/// Gets and sets the property Name.
///
/// The name that you assigned to the Resolver endpoint when you submitted a CreateResolverEndpoint
/// request.
///
///
[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 ARN (Amazon Resource Name) for the Outpost.
///
///
[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 Amazon EC2 instance type.
///
///
[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.
///
/// The Resolver endpoint IP address type.
///
///
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 control access to this VPC. The security
/// group must include one or more inbound rules (for inbound endpoints) or outbound rules
/// (for outbound 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.
///
///
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 Status.
///
/// A code that specifies the current status of the Resolver endpoint. Valid values include
/// the following:
///
/// -
///
///
CREATING
: Resolver is creating and configuring one or more Amazon VPC
/// network interfaces for this endpoint.
///
/// -
///
///
OPERATIONAL
: The Amazon VPC network interfaces for this endpoint are
/// correctly configured and able to pass inbound or outbound DNS queries between your
/// network and Resolver.
///
/// -
///
///
UPDATING
: Resolver is associating or disassociating one or more network
/// interfaces with this endpoint.
///
/// -
///
///
AUTO_RECOVERING
: Resolver is trying to recover one or more of the network
/// interfaces that are associated with this endpoint. During the recovery process, the
/// endpoint functions with limited capacity because of the limit on the number of DNS
/// queries per IP address (per network interface). For the current limit, see Limits
/// on Route 53 Resolver.
///
/// -
///
///
ACTION_NEEDED
: This endpoint is unhealthy, and Resolver can't automatically
/// recover it. To resolve the problem, we recommend that you check each IP address that
/// you associated with the endpoint. For each IP address that isn't available, add another
/// IP address and then delete the IP address that isn't available. (An endpoint must
/// always include at least two IP addresses.) A status of ACTION_NEEDED
/// can have a variety of causes. Here are two common causes:
///
/// -
///
/// One or more of the network interfaces that are associated with the endpoint were deleted
/// using Amazon VPC.
///
///
-
///
/// The network interface couldn't be created for some reason that's outside the control
/// of Resolver.
///
///
-
///
///
DELETING
: Resolver is deleting this endpoint and the associated network
/// interfaces.
///
///
///
public ResolverEndpointStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property StatusMessage.
///
/// A detailed description of the status of the Resolver endpoint.
///
///
[AWSProperty(Max=255)]
public string StatusMessage
{
get { return this._statusMessage; }
set { this._statusMessage = value; }
}
// Check to see if StatusMessage property is set
internal bool IsSetStatusMessage()
{
return this._statusMessage != null;
}
}
}