/*
* 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 CreateNetworkInsightsPath operation.
/// Creates a path to analyze for reachability.
///
///
///
/// Reachability Analyzer enables you to analyze and debug network reachability between
/// two resources in your virtual private cloud (VPC). For more information, see the Reachability Analyzer
/// Guide.
///
///
public partial class CreateNetworkInsightsPathRequest : AmazonEC2Request
{
private string _clientToken;
private string _destination;
private string _destinationIp;
private int? _destinationPort;
private PathRequestFilter _filterAtDestination;
private PathRequestFilter _filterAtSource;
private Protocol _protocol;
private string _source;
private string _sourceIp;
private List _tagSpecifications = new List();
///
/// 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 Destination.
///
/// The ID or ARN of the destination. If the resource is in another account, you must
/// specify an ARN.
///
///
public string 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 DestinationIp.
///
/// The IP address of the destination.
///
///
[AWSProperty(Min=0, Max=15)]
public string DestinationIp
{
get { return this._destinationIp; }
set { this._destinationIp = value; }
}
// Check to see if DestinationIp property is set
internal bool IsSetDestinationIp()
{
return this._destinationIp != null;
}
///
/// Gets and sets the property DestinationPort.
///
/// The destination port.
///
///
[AWSProperty(Min=0, Max=65535)]
public int DestinationPort
{
get { return this._destinationPort.GetValueOrDefault(); }
set { this._destinationPort = value; }
}
// Check to see if DestinationPort property is set
internal bool IsSetDestinationPort()
{
return this._destinationPort.HasValue;
}
///
/// Gets and sets the property FilterAtDestination.
///
/// Scopes the analysis to network paths that match specific filters at the destination.
/// If you specify this parameter, you can't specify the parameter for the destination
/// IP address.
///
///
public PathRequestFilter FilterAtDestination
{
get { return this._filterAtDestination; }
set { this._filterAtDestination = value; }
}
// Check to see if FilterAtDestination property is set
internal bool IsSetFilterAtDestination()
{
return this._filterAtDestination != null;
}
///
/// Gets and sets the property FilterAtSource.
///
/// Scopes the analysis to network paths that match specific filters at the source. If
/// you specify this parameter, you can't specify the parameters for the source IP address
/// or the destination port.
///
///
public PathRequestFilter FilterAtSource
{
get { return this._filterAtSource; }
set { this._filterAtSource = value; }
}
// Check to see if FilterAtSource property is set
internal bool IsSetFilterAtSource()
{
return this._filterAtSource != null;
}
///
/// Gets and sets the property Protocol.
///
/// The protocol.
///
///
[AWSProperty(Required=true)]
public Protocol Protocol
{
get { return this._protocol; }
set { this._protocol = value; }
}
// Check to see if Protocol property is set
internal bool IsSetProtocol()
{
return this._protocol != null;
}
///
/// Gets and sets the property Source.
///
/// The ID or ARN of the source. If the resource is in another account, you must specify
/// an ARN.
///
///
[AWSProperty(Required=true)]
public string Source
{
get { return this._source; }
set { this._source = value; }
}
// Check to see if Source property is set
internal bool IsSetSource()
{
return this._source != null;
}
///
/// Gets and sets the property SourceIp.
///
/// The IP address of the source.
///
///
[AWSProperty(Min=0, Max=15)]
public string SourceIp
{
get { return this._sourceIp; }
set { this._sourceIp = value; }
}
// Check to see if SourceIp property is set
internal bool IsSetSourceIp()
{
return this._sourceIp != null;
}
///
/// Gets and sets the property TagSpecifications.
///
/// The tags to add to the path.
///
///
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;
}
}
}