/*
* 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
{
///
/// For queries that originate in your VPC, detailed information about a Resolver rule,
/// which specifies how to route DNS queries out of the VPC. The ResolverRule
/// parameter appears in the response to a CreateResolverRule,
/// DeleteResolverRule,
/// GetResolverRule,
/// ListResolverRules,
/// or UpdateResolverRule
/// request.
///
public partial class ResolverRule
{
private string _arn;
private string _creationTime;
private string _creatorRequestId;
private string _domainName;
private string _id;
private string _modificationTime;
private string _name;
private string _ownerId;
private string _resolverEndpointId;
private RuleTypeOption _ruleType;
private ShareStatus _shareStatus;
private ResolverRuleStatus _status;
private string _statusMessage;
private List _targetIps = new List();
///
/// Gets and sets the property Arn.
///
/// The ARN (Amazon Resource Name) for the Resolver rule specified by Id
.
///
///
[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 Resolver rule 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 you specified when you created the Resolver rule. CreatorRequestId
/// identifies the request and 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 DomainName.
///
/// DNS queries for this domain name are forwarded to the IP addresses that are specified
/// in TargetIps
. If a query matches multiple Resolver rules (example.com
/// and www.example.com), the query is routed using the Resolver rule that contains the
/// most specific domain name (www.example.com).
///
///
[AWSProperty(Min=1, Max=256)]
public string DomainName
{
get { return this._domainName; }
set { this._domainName = value; }
}
// Check to see if DomainName property is set
internal bool IsSetDomainName()
{
return this._domainName != null;
}
///
/// Gets and sets the property Id.
///
/// The ID that Resolver assigned to the Resolver rule when you created it.
///
///
[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 ModificationTime.
///
/// The date and time that the Resolver rule was last updated, 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 for the Resolver rule, which you specified when you created the Resolver
/// rule.
///
///
[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 OwnerId.
///
/// When a rule is shared with another Amazon Web Services account, the account ID of
/// the account that the rule is shared with.
///
///
[AWSProperty(Min=12, Max=32)]
public string OwnerId
{
get { return this._ownerId; }
set { this._ownerId = value; }
}
// Check to see if OwnerId property is set
internal bool IsSetOwnerId()
{
return this._ownerId != null;
}
///
/// Gets and sets the property ResolverEndpointId.
///
/// The ID of the endpoint that the rule is associated with.
///
///
[AWSProperty(Min=1, Max=64)]
public string ResolverEndpointId
{
get { return this._resolverEndpointId; }
set { this._resolverEndpointId = value; }
}
// Check to see if ResolverEndpointId property is set
internal bool IsSetResolverEndpointId()
{
return this._resolverEndpointId != null;
}
///
/// Gets and sets the property RuleType.
///
/// When you want to forward DNS queries for specified domain name to resolvers on your
/// network, specify FORWARD
.
///
///
///
/// When you have a forwarding rule to forward DNS queries for a domain to your network
/// and you want Resolver to process queries for a subdomain of that domain, specify SYSTEM
.
///
///
///
/// For example, to forward DNS queries for example.com to resolvers on your network,
/// you create a rule and specify FORWARD
for RuleType
. To then
/// have Resolver process queries for apex.example.com, you create a rule and specify
/// SYSTEM
for RuleType
.
///
///
///
/// Currently, only Resolver can create rules that have a value of RECURSIVE
/// for RuleType
.
///
///
public RuleTypeOption RuleType
{
get { return this._ruleType; }
set { this._ruleType = value; }
}
// Check to see if RuleType property is set
internal bool IsSetRuleType()
{
return this._ruleType != null;
}
///
/// Gets and sets the property ShareStatus.
///
/// Whether the rule is shared and, if so, whether the current account is sharing the
/// rule with another account, or another account is sharing the rule with the current
/// account.
///
///
public ShareStatus ShareStatus
{
get { return this._shareStatus; }
set { this._shareStatus = value; }
}
// Check to see if ShareStatus property is set
internal bool IsSetShareStatus()
{
return this._shareStatus != null;
}
///
/// Gets and sets the property Status.
///
/// A code that specifies the current status of the Resolver rule.
///
///
public ResolverRuleStatus 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 a Resolver rule.
///
///
[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;
}
///
/// Gets and sets the property TargetIps.
///
/// An array that contains the IP addresses and ports that an outbound endpoint forwards
/// DNS queries to. Typically, these are the IP addresses of DNS resolvers on your network.
///
///
///
[AWSProperty(Min=1)]
public List TargetIps
{
get { return this._targetIps; }
set { this._targetIps = value; }
}
// Check to see if TargetIps property is set
internal bool IsSetTargetIps()
{
return this._targetIps != null && this._targetIps.Count > 0;
}
}
}