/*
* 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 ecs-2014-11-13.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.ECS.Model
{
///
/// Details on the network bindings between a container and its host container instance.
/// After a task reaches the RUNNING
status, manual and automatic host and
/// container port assignments are visible in the networkBindings
section
/// of DescribeTasks API responses.
///
public partial class NetworkBinding
{
private string _bindip;
private int? _containerPort;
private string _containerPortRange;
private int? _hostPort;
private string _hostPortRange;
private TransportProtocol _protocol;
///
/// Gets and sets the property BindIP.
///
/// The IP address that the container is bound to on the container instance.
///
///
public string BindIP
{
get { return this._bindip; }
set { this._bindip = value; }
}
// Check to see if BindIP property is set
internal bool IsSetBindIP()
{
return this._bindip != null;
}
///
/// Gets and sets the property ContainerPort.
///
/// The port number on the container that's used with the network binding.
///
///
public int ContainerPort
{
get { return this._containerPort.GetValueOrDefault(); }
set { this._containerPort = value; }
}
// Check to see if ContainerPort property is set
internal bool IsSetContainerPort()
{
return this._containerPort.HasValue;
}
///
/// Gets and sets the property ContainerPortRange.
///
/// The port number range on the container that's bound to the dynamically mapped host
/// port range.
///
///
///
/// The following rules apply when you specify a containerPortRange
:
///
/// -
///
/// You must use either the
bridge
network mode or the awsvpc
/// network mode.
///
/// -
///
/// This parameter is available for both the EC2 and Fargate launch types.
///
///
-
///
/// This parameter is available for both the Linux and Windows operating systems.
///
///
-
///
/// The container instance must have at least version 1.67.0 of the container agent and
/// at least version 1.67.0-1 of the
ecs-init
package
///
/// -
///
/// You can specify a maximum of 100 port ranges per container.
///
///
-
///
/// You do not specify a
hostPortRange
. The value of the hostPortRange
/// is set as follows:
///
/// -
///
/// For containers in a task with the
awsvpc
network mode, the hostPort
/// is set to the same value as the containerPort
. This is a static mapping
/// strategy.
///
/// -
///
/// For containers in a task with the
bridge
network mode, the Amazon ECS
/// agent finds open host ports from the default ephemeral range and passes it to docker
/// to bind them to the container ports.
///
///
-
///
/// The
containerPortRange
valid values are between 1 and 65535.
///
/// -
///
/// A port can only be included in one port mapping per container.
///
///
-
///
/// You cannot specify overlapping port ranges.
///
///
-
///
/// The first port in the range must be less than last port in the range.
///
///
-
///
/// Docker recommends that you turn off the docker-proxy in the Docker daemon config file
/// when you have a large number of ports.
///
///
///
/// For more information, see Issue
/// #11185 on the Github website.
///
///
///
/// For information about how to turn off the docker-proxy in the Docker daemon config
/// file, see Docker
/// daemon in the Amazon ECS Developer Guide.
///
///
///
/// You can call
/// DescribeTasks
to view the hostPortRange
which are the
/// host ports that are bound to the container ports.
///
///
public string ContainerPortRange
{
get { return this._containerPortRange; }
set { this._containerPortRange = value; }
}
// Check to see if ContainerPortRange property is set
internal bool IsSetContainerPortRange()
{
return this._containerPortRange != null;
}
///
/// Gets and sets the property HostPort.
///
/// The port number on the host that's used with the network binding.
///
///
public int HostPort
{
get { return this._hostPort.GetValueOrDefault(); }
set { this._hostPort = value; }
}
// Check to see if HostPort property is set
internal bool IsSetHostPort()
{
return this._hostPort.HasValue;
}
///
/// Gets and sets the property HostPortRange.
///
/// The port number range on the host that's used with the network binding. This is assigned
/// is assigned by Docker and delivered by the Amazon ECS agent.
///
///
public string HostPortRange
{
get { return this._hostPortRange; }
set { this._hostPortRange = value; }
}
// Check to see if HostPortRange property is set
internal bool IsSetHostPortRange()
{
return this._hostPortRange != null;
}
///
/// Gets and sets the property Protocol.
///
/// The protocol used for the network binding.
///
///
public TransportProtocol Protocol
{
get { return this._protocol; }
set { this._protocol = value; }
}
// Check to see if Protocol property is set
internal bool IsSetProtocol()
{
return this._protocol != null;
}
}
}