/*
* 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 iotsecuretunneling-2018-10-05.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.IoTSecureTunneling.Model
{
///
/// A connection between a source computer and a destination device.
///
public partial class Tunnel
{
private DateTime? _createdAt;
private string _description;
private DestinationConfig _destinationConfig;
private ConnectionState _destinationConnectionState;
private DateTime? _lastUpdatedAt;
private ConnectionState _sourceConnectionState;
private TunnelStatus _status;
private List _tags = new List();
private TimeoutConfig _timeoutConfig;
private string _tunnelArn;
private string _tunnelId;
///
/// Gets and sets the property CreatedAt.
///
/// The time when the tunnel was created.
///
///
public DateTime CreatedAt
{
get { return this._createdAt.GetValueOrDefault(); }
set { this._createdAt = value; }
}
// Check to see if CreatedAt property is set
internal bool IsSetCreatedAt()
{
return this._createdAt.HasValue;
}
///
/// Gets and sets the property Description.
///
/// A description of the tunnel.
///
///
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property DestinationConfig.
///
/// The destination configuration that specifies the thing name of the destination device
/// and a service name that the local proxy uses to connect to the destination application.
///
///
public DestinationConfig DestinationConfig
{
get { return this._destinationConfig; }
set { this._destinationConfig = value; }
}
// Check to see if DestinationConfig property is set
internal bool IsSetDestinationConfig()
{
return this._destinationConfig != null;
}
///
/// Gets and sets the property DestinationConnectionState.
///
/// The connection state of the destination application.
///
///
public ConnectionState DestinationConnectionState
{
get { return this._destinationConnectionState; }
set { this._destinationConnectionState = value; }
}
// Check to see if DestinationConnectionState property is set
internal bool IsSetDestinationConnectionState()
{
return this._destinationConnectionState != null;
}
///
/// Gets and sets the property LastUpdatedAt.
///
/// The last time the tunnel was updated.
///
///
public DateTime LastUpdatedAt
{
get { return this._lastUpdatedAt.GetValueOrDefault(); }
set { this._lastUpdatedAt = value; }
}
// Check to see if LastUpdatedAt property is set
internal bool IsSetLastUpdatedAt()
{
return this._lastUpdatedAt.HasValue;
}
///
/// Gets and sets the property SourceConnectionState.
///
/// The connection state of the source application.
///
///
public ConnectionState SourceConnectionState
{
get { return this._sourceConnectionState; }
set { this._sourceConnectionState = value; }
}
// Check to see if SourceConnectionState property is set
internal bool IsSetSourceConnectionState()
{
return this._sourceConnectionState != null;
}
///
/// Gets and sets the property Status.
///
/// The status of a tunnel. Valid values are: Open and Closed.
///
///
public TunnelStatus 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 Tags.
///
/// A list of tag metadata associated with the secure tunnel.
///
///
[AWSProperty(Min=1, 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;
}
///
/// Gets and sets the property TimeoutConfig.
///
/// Timeout configuration for the tunnel.
///
///
public TimeoutConfig TimeoutConfig
{
get { return this._timeoutConfig; }
set { this._timeoutConfig = value; }
}
// Check to see if TimeoutConfig property is set
internal bool IsSetTimeoutConfig()
{
return this._timeoutConfig != null;
}
///
/// Gets and sets the property TunnelArn.
///
/// The Amazon Resource Name (ARN) of a tunnel.
///
///
[AWSProperty(Min=1, Max=1600)]
public string TunnelArn
{
get { return this._tunnelArn; }
set { this._tunnelArn = value; }
}
// Check to see if TunnelArn property is set
internal bool IsSetTunnelArn()
{
return this._tunnelArn != null;
}
///
/// Gets and sets the property TunnelId.
///
/// A unique alpha-numeric ID that identifies a tunnel.
///
///
public string TunnelId
{
get { return this._tunnelId; }
set { this._tunnelId = value; }
}
// Check to see if TunnelId property is set
internal bool IsSetTunnelId()
{
return this._tunnelId != null;
}
}
}