/*
* 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
{
///
/// Describes an explanation code for an unreachable path. For more information, see Reachability
/// Analyzer explanation codes.
///
public partial class Explanation
{
private AnalysisComponent _acl;
private AnalysisAclRule _aclRule;
private string _address;
private List _addresses = new List();
private AnalysisComponent _attachedTo;
private List _availabilityZones = new List();
private List _cidrs = new List();
private AnalysisLoadBalancerListener _classicLoadBalancerListener;
private AnalysisComponent _component;
private string _componentAccount;
private string _componentRegion;
private AnalysisComponent _customerGateway;
private AnalysisComponent _destination;
private AnalysisComponent _destinationVpc;
private string _direction;
private AnalysisComponent _elasticLoadBalancerListener;
private string _explanationCode;
private FirewallStatefulRule _firewallStatefulRule;
private FirewallStatelessRule _firewallStatelessRule;
private AnalysisComponent _ingressRouteTable;
private AnalysisComponent _internetGateway;
private string _loadBalancerArn;
private int? _loadBalancerListenerPort;
private AnalysisLoadBalancerTarget _loadBalancerTarget;
private AnalysisComponent _loadBalancerTargetGroup;
private List _loadBalancerTargetGroups = new List();
private int? _loadBalancerTargetPort;
private string _missingComponent;
private AnalysisComponent _natGateway;
private AnalysisComponent _networkInterface;
private string _packetField;
private int? _port;
private List _portRanges = new List();
private AnalysisComponent _prefixList;
private List _protocols = new List();
private AnalysisComponent _routeTable;
private AnalysisRouteTableRoute _routeTableRoute;
private AnalysisComponent _securityGroup;
private AnalysisSecurityGroupRule _securityGroupRule;
private List _securityGroups = new List();
private AnalysisComponent _sourceVpc;
private string _state;
private AnalysisComponent _subnet;
private AnalysisComponent _subnetRouteTable;
private AnalysisComponent _transitGateway;
private AnalysisComponent _transitGatewayAttachment;
private AnalysisComponent _transitGatewayRouteTable;
private TransitGatewayRouteTableRoute _transitGatewayRouteTableRoute;
private AnalysisComponent _vpc;
private AnalysisComponent _vpcEndpoint;
private AnalysisComponent _vpcPeeringConnection;
private AnalysisComponent _vpnConnection;
private AnalysisComponent _vpnGateway;
///
/// Gets and sets the property Acl.
///
/// The network ACL.
///
///
public AnalysisComponent Acl
{
get { return this._acl; }
set { this._acl = value; }
}
// Check to see if Acl property is set
internal bool IsSetAcl()
{
return this._acl != null;
}
///
/// Gets and sets the property AclRule.
///
/// The network ACL rule.
///
///
public AnalysisAclRule AclRule
{
get { return this._aclRule; }
set { this._aclRule = value; }
}
// Check to see if AclRule property is set
internal bool IsSetAclRule()
{
return this._aclRule != null;
}
///
/// Gets and sets the property Address.
///
/// The IPv4 address, in CIDR notation.
///
///
[AWSProperty(Min=0, Max=15)]
public string Address
{
get { return this._address; }
set { this._address = value; }
}
// Check to see if Address property is set
internal bool IsSetAddress()
{
return this._address != null;
}
///
/// Gets and sets the property Addresses.
///
/// The IPv4 addresses, in CIDR notation.
///
///
public List Addresses
{
get { return this._addresses; }
set { this._addresses = value; }
}
// Check to see if Addresses property is set
internal bool IsSetAddresses()
{
return this._addresses != null && this._addresses.Count > 0;
}
///
/// Gets and sets the property AttachedTo.
///
/// The resource to which the component is attached.
///
///
public AnalysisComponent AttachedTo
{
get { return this._attachedTo; }
set { this._attachedTo = value; }
}
// Check to see if AttachedTo property is set
internal bool IsSetAttachedTo()
{
return this._attachedTo != null;
}
///
/// Gets and sets the property AvailabilityZones.
///
/// The Availability Zones.
///
///
public List AvailabilityZones
{
get { return this._availabilityZones; }
set { this._availabilityZones = value; }
}
// Check to see if AvailabilityZones property is set
internal bool IsSetAvailabilityZones()
{
return this._availabilityZones != null && this._availabilityZones.Count > 0;
}
///
/// Gets and sets the property Cidrs.
///
/// The CIDR ranges.
///
///
public List Cidrs
{
get { return this._cidrs; }
set { this._cidrs = value; }
}
// Check to see if Cidrs property is set
internal bool IsSetCidrs()
{
return this._cidrs != null && this._cidrs.Count > 0;
}
///
/// Gets and sets the property ClassicLoadBalancerListener.
///
/// The listener for a Classic Load Balancer.
///
///
public AnalysisLoadBalancerListener ClassicLoadBalancerListener
{
get { return this._classicLoadBalancerListener; }
set { this._classicLoadBalancerListener = value; }
}
// Check to see if ClassicLoadBalancerListener property is set
internal bool IsSetClassicLoadBalancerListener()
{
return this._classicLoadBalancerListener != null;
}
///
/// Gets and sets the property Component.
///
/// The component.
///
///
public AnalysisComponent Component
{
get { return this._component; }
set { this._component = value; }
}
// Check to see if Component property is set
internal bool IsSetComponent()
{
return this._component != null;
}
///
/// Gets and sets the property ComponentAccount.
///
/// The Amazon Web Services account for the component.
///
///
public string ComponentAccount
{
get { return this._componentAccount; }
set { this._componentAccount = value; }
}
// Check to see if ComponentAccount property is set
internal bool IsSetComponentAccount()
{
return this._componentAccount != null;
}
///
/// Gets and sets the property ComponentRegion.
///
/// The Region for the component.
///
///
public string ComponentRegion
{
get { return this._componentRegion; }
set { this._componentRegion = value; }
}
// Check to see if ComponentRegion property is set
internal bool IsSetComponentRegion()
{
return this._componentRegion != null;
}
///
/// Gets and sets the property CustomerGateway.
///
/// The customer gateway.
///
///
public AnalysisComponent CustomerGateway
{
get { return this._customerGateway; }
set { this._customerGateway = value; }
}
// Check to see if CustomerGateway property is set
internal bool IsSetCustomerGateway()
{
return this._customerGateway != null;
}
///
/// Gets and sets the property Destination.
///
/// The destination.
///
///
public AnalysisComponent Destination
{
get { return this._destination; }
set { this._destination = value; }
}
// Check to see if Destination property is set
internal bool IsSetDestination()
{
return this._destination != null;
}
///
/// Gets and sets the property DestinationVpc.
///
/// The destination VPC.
///
///
public AnalysisComponent DestinationVpc
{
get { return this._destinationVpc; }
set { this._destinationVpc = value; }
}
// Check to see if DestinationVpc property is set
internal bool IsSetDestinationVpc()
{
return this._destinationVpc != null;
}
///
/// Gets and sets the property Direction.
///
/// The direction. The following are the possible values:
///
/// -
///
/// egress
///
///
-
///
/// ingress
///
///
///
public string 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 ElasticLoadBalancerListener.
///
/// The load balancer listener.
///
///
public AnalysisComponent ElasticLoadBalancerListener
{
get { return this._elasticLoadBalancerListener; }
set { this._elasticLoadBalancerListener = value; }
}
// Check to see if ElasticLoadBalancerListener property is set
internal bool IsSetElasticLoadBalancerListener()
{
return this._elasticLoadBalancerListener != null;
}
///
/// Gets and sets the property ExplanationCode.
///
/// The explanation code.
///
///
public string ExplanationCode
{
get { return this._explanationCode; }
set { this._explanationCode = value; }
}
// Check to see if ExplanationCode property is set
internal bool IsSetExplanationCode()
{
return this._explanationCode != null;
}
///
/// Gets and sets the property FirewallStatefulRule.
///
/// The Network Firewall stateful rule.
///
///
public FirewallStatefulRule FirewallStatefulRule
{
get { return this._firewallStatefulRule; }
set { this._firewallStatefulRule = value; }
}
// Check to see if FirewallStatefulRule property is set
internal bool IsSetFirewallStatefulRule()
{
return this._firewallStatefulRule != null;
}
///
/// Gets and sets the property FirewallStatelessRule.
///
/// The Network Firewall stateless rule.
///
///
public FirewallStatelessRule FirewallStatelessRule
{
get { return this._firewallStatelessRule; }
set { this._firewallStatelessRule = value; }
}
// Check to see if FirewallStatelessRule property is set
internal bool IsSetFirewallStatelessRule()
{
return this._firewallStatelessRule != null;
}
///
/// Gets and sets the property IngressRouteTable.
///
/// The route table.
///
///
public AnalysisComponent IngressRouteTable
{
get { return this._ingressRouteTable; }
set { this._ingressRouteTable = value; }
}
// Check to see if IngressRouteTable property is set
internal bool IsSetIngressRouteTable()
{
return this._ingressRouteTable != null;
}
///
/// Gets and sets the property InternetGateway.
///
/// The internet gateway.
///
///
public AnalysisComponent InternetGateway
{
get { return this._internetGateway; }
set { this._internetGateway = value; }
}
// Check to see if InternetGateway property is set
internal bool IsSetInternetGateway()
{
return this._internetGateway != null;
}
///
/// Gets and sets the property LoadBalancerArn.
///
/// The Amazon Resource Name (ARN) of the load balancer.
///
///
[AWSProperty(Min=1, Max=1283)]
public string LoadBalancerArn
{
get { return this._loadBalancerArn; }
set { this._loadBalancerArn = value; }
}
// Check to see if LoadBalancerArn property is set
internal bool IsSetLoadBalancerArn()
{
return this._loadBalancerArn != null;
}
///
/// Gets and sets the property LoadBalancerListenerPort.
///
/// The listener port of the load balancer.
///
///
[AWSProperty(Min=0, Max=65535)]
public int LoadBalancerListenerPort
{
get { return this._loadBalancerListenerPort.GetValueOrDefault(); }
set { this._loadBalancerListenerPort = value; }
}
// Check to see if LoadBalancerListenerPort property is set
internal bool IsSetLoadBalancerListenerPort()
{
return this._loadBalancerListenerPort.HasValue;
}
///
/// Gets and sets the property LoadBalancerTarget.
///
/// The target.
///
///
public AnalysisLoadBalancerTarget LoadBalancerTarget
{
get { return this._loadBalancerTarget; }
set { this._loadBalancerTarget = value; }
}
// Check to see if LoadBalancerTarget property is set
internal bool IsSetLoadBalancerTarget()
{
return this._loadBalancerTarget != null;
}
///
/// Gets and sets the property LoadBalancerTargetGroup.
///
/// The target group.
///
///
public AnalysisComponent LoadBalancerTargetGroup
{
get { return this._loadBalancerTargetGroup; }
set { this._loadBalancerTargetGroup = value; }
}
// Check to see if LoadBalancerTargetGroup property is set
internal bool IsSetLoadBalancerTargetGroup()
{
return this._loadBalancerTargetGroup != null;
}
///
/// Gets and sets the property LoadBalancerTargetGroups.
///
/// The target groups.
///
///
public List LoadBalancerTargetGroups
{
get { return this._loadBalancerTargetGroups; }
set { this._loadBalancerTargetGroups = value; }
}
// Check to see if LoadBalancerTargetGroups property is set
internal bool IsSetLoadBalancerTargetGroups()
{
return this._loadBalancerTargetGroups != null && this._loadBalancerTargetGroups.Count > 0;
}
///
/// Gets and sets the property LoadBalancerTargetPort.
///
/// The target port.
///
///
[AWSProperty(Min=0, Max=65535)]
public int LoadBalancerTargetPort
{
get { return this._loadBalancerTargetPort.GetValueOrDefault(); }
set { this._loadBalancerTargetPort = value; }
}
// Check to see if LoadBalancerTargetPort property is set
internal bool IsSetLoadBalancerTargetPort()
{
return this._loadBalancerTargetPort.HasValue;
}
///
/// Gets and sets the property MissingComponent.
///
/// The missing component.
///
///
public string MissingComponent
{
get { return this._missingComponent; }
set { this._missingComponent = value; }
}
// Check to see if MissingComponent property is set
internal bool IsSetMissingComponent()
{
return this._missingComponent != null;
}
///
/// Gets and sets the property NatGateway.
///
/// The NAT gateway.
///
///
public AnalysisComponent NatGateway
{
get { return this._natGateway; }
set { this._natGateway = value; }
}
// Check to see if NatGateway property is set
internal bool IsSetNatGateway()
{
return this._natGateway != null;
}
///
/// Gets and sets the property NetworkInterface.
///
/// The network interface.
///
///
public AnalysisComponent NetworkInterface
{
get { return this._networkInterface; }
set { this._networkInterface = value; }
}
// Check to see if NetworkInterface property is set
internal bool IsSetNetworkInterface()
{
return this._networkInterface != null;
}
///
/// Gets and sets the property PacketField.
///
/// The packet field.
///
///
public string PacketField
{
get { return this._packetField; }
set { this._packetField = value; }
}
// Check to see if PacketField property is set
internal bool IsSetPacketField()
{
return this._packetField != null;
}
///
/// Gets and sets the property Port.
///
/// The port.
///
///
[AWSProperty(Min=0, Max=65535)]
public int Port
{
get { return this._port.GetValueOrDefault(); }
set { this._port = value; }
}
// Check to see if Port property is set
internal bool IsSetPort()
{
return this._port.HasValue;
}
///
/// Gets and sets the property PortRanges.
///
/// The port ranges.
///
///
public List PortRanges
{
get { return this._portRanges; }
set { this._portRanges = value; }
}
// Check to see if PortRanges property is set
internal bool IsSetPortRanges()
{
return this._portRanges != null && this._portRanges.Count > 0;
}
///
/// Gets and sets the property PrefixList.
///
/// The prefix list.
///
///
public AnalysisComponent PrefixList
{
get { return this._prefixList; }
set { this._prefixList = value; }
}
// Check to see if PrefixList property is set
internal bool IsSetPrefixList()
{
return this._prefixList != null;
}
///
/// Gets and sets the property Protocols.
///
/// The protocols.
///
///
public List Protocols
{
get { return this._protocols; }
set { this._protocols = value; }
}
// Check to see if Protocols property is set
internal bool IsSetProtocols()
{
return this._protocols != null && this._protocols.Count > 0;
}
///
/// Gets and sets the property RouteTable.
///
/// The route table.
///
///
public AnalysisComponent RouteTable
{
get { return this._routeTable; }
set { this._routeTable = value; }
}
// Check to see if RouteTable property is set
internal bool IsSetRouteTable()
{
return this._routeTable != null;
}
///
/// Gets and sets the property RouteTableRoute.
///
/// The route table route.
///
///
public AnalysisRouteTableRoute RouteTableRoute
{
get { return this._routeTableRoute; }
set { this._routeTableRoute = value; }
}
// Check to see if RouteTableRoute property is set
internal bool IsSetRouteTableRoute()
{
return this._routeTableRoute != null;
}
///
/// Gets and sets the property SecurityGroup.
///
/// The security group.
///
///
public AnalysisComponent SecurityGroup
{
get { return this._securityGroup; }
set { this._securityGroup = value; }
}
// Check to see if SecurityGroup property is set
internal bool IsSetSecurityGroup()
{
return this._securityGroup != null;
}
///
/// Gets and sets the property SecurityGroupRule.
///
/// The security group rule.
///
///
public AnalysisSecurityGroupRule SecurityGroupRule
{
get { return this._securityGroupRule; }
set { this._securityGroupRule = value; }
}
// Check to see if SecurityGroupRule property is set
internal bool IsSetSecurityGroupRule()
{
return this._securityGroupRule != null;
}
///
/// Gets and sets the property SecurityGroups.
///
/// The security groups.
///
///
public List SecurityGroups
{
get { return this._securityGroups; }
set { this._securityGroups = value; }
}
// Check to see if SecurityGroups property is set
internal bool IsSetSecurityGroups()
{
return this._securityGroups != null && this._securityGroups.Count > 0;
}
///
/// Gets and sets the property SourceVpc.
///
/// The source VPC.
///
///
public AnalysisComponent SourceVpc
{
get { return this._sourceVpc; }
set { this._sourceVpc = value; }
}
// Check to see if SourceVpc property is set
internal bool IsSetSourceVpc()
{
return this._sourceVpc != null;
}
///
/// Gets and sets the property State.
///
/// The state.
///
///
public string State
{
get { return this._state; }
set { this._state = value; }
}
// Check to see if State property is set
internal bool IsSetState()
{
return this._state != null;
}
///
/// Gets and sets the property Subnet.
///
/// The subnet.
///
///
public AnalysisComponent Subnet
{
get { return this._subnet; }
set { this._subnet = value; }
}
// Check to see if Subnet property is set
internal bool IsSetSubnet()
{
return this._subnet != null;
}
///
/// Gets and sets the property SubnetRouteTable.
///
/// The route table for the subnet.
///
///
public AnalysisComponent SubnetRouteTable
{
get { return this._subnetRouteTable; }
set { this._subnetRouteTable = value; }
}
// Check to see if SubnetRouteTable property is set
internal bool IsSetSubnetRouteTable()
{
return this._subnetRouteTable != null;
}
///
/// Gets and sets the property TransitGateway.
///
/// The transit gateway.
///
///
public AnalysisComponent TransitGateway
{
get { return this._transitGateway; }
set { this._transitGateway = value; }
}
// Check to see if TransitGateway property is set
internal bool IsSetTransitGateway()
{
return this._transitGateway != null;
}
///
/// Gets and sets the property TransitGatewayAttachment.
///
/// The transit gateway attachment.
///
///
public AnalysisComponent TransitGatewayAttachment
{
get { return this._transitGatewayAttachment; }
set { this._transitGatewayAttachment = value; }
}
// Check to see if TransitGatewayAttachment property is set
internal bool IsSetTransitGatewayAttachment()
{
return this._transitGatewayAttachment != null;
}
///
/// Gets and sets the property TransitGatewayRouteTable.
///
/// The transit gateway route table.
///
///
public AnalysisComponent TransitGatewayRouteTable
{
get { return this._transitGatewayRouteTable; }
set { this._transitGatewayRouteTable = value; }
}
// Check to see if TransitGatewayRouteTable property is set
internal bool IsSetTransitGatewayRouteTable()
{
return this._transitGatewayRouteTable != null;
}
///
/// Gets and sets the property TransitGatewayRouteTableRoute.
///
/// The transit gateway route table route.
///
///
public TransitGatewayRouteTableRoute TransitGatewayRouteTableRoute
{
get { return this._transitGatewayRouteTableRoute; }
set { this._transitGatewayRouteTableRoute = value; }
}
// Check to see if TransitGatewayRouteTableRoute property is set
internal bool IsSetTransitGatewayRouteTableRoute()
{
return this._transitGatewayRouteTableRoute != null;
}
///
/// Gets and sets the property Vpc.
///
/// The component VPC.
///
///
public AnalysisComponent Vpc
{
get { return this._vpc; }
set { this._vpc = value; }
}
// Check to see if Vpc property is set
internal bool IsSetVpc()
{
return this._vpc != null;
}
///
/// Gets and sets the property VpcEndpoint.
///
/// The VPC endpoint.
///
///
public AnalysisComponent VpcEndpoint
{
get { return this._vpcEndpoint; }
set { this._vpcEndpoint = value; }
}
// Check to see if VpcEndpoint property is set
internal bool IsSetVpcEndpoint()
{
return this._vpcEndpoint != null;
}
///
/// Gets and sets the property VpcPeeringConnection.
///
/// The VPC peering connection.
///
///
public AnalysisComponent VpcPeeringConnection
{
get { return this._vpcPeeringConnection; }
set { this._vpcPeeringConnection = value; }
}
// Check to see if VpcPeeringConnection property is set
internal bool IsSetVpcPeeringConnection()
{
return this._vpcPeeringConnection != null;
}
///
/// Gets and sets the property VpnConnection.
///
/// The VPN connection.
///
///
public AnalysisComponent VpnConnection
{
get { return this._vpnConnection; }
set { this._vpnConnection = value; }
}
// Check to see if VpnConnection property is set
internal bool IsSetVpnConnection()
{
return this._vpnConnection != null;
}
///
/// Gets and sets the property VpnGateway.
///
/// The VPN gateway.
///
///
public AnalysisComponent VpnGateway
{
get { return this._vpnGateway; }
set { this._vpnGateway = value; }
}
// Check to see if VpnGateway property is set
internal bool IsSetVpnGateway()
{
return this._vpnGateway != null;
}
}
}