/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ECS { namespace Model { /** *

The configuration details for the App Mesh proxy.

For tasks that use * the EC2 launch type, the container instances require at least version 1.26.0 of * the container agent and at least version 1.26.0-1 of the ecs-init * package to use a proxy configuration. If your container instances are launched * from the Amazon ECS optimized AMI version 20190301 or later, then * they contain the required versions of the container agent and * ecs-init. For more information, see Amazon * ECS-optimized Linux AMI

See Also:

AWS * API Reference

*/ class ProxyConfiguration { public: AWS_ECS_API ProxyConfiguration(); AWS_ECS_API ProxyConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API ProxyConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The proxy type. The only supported value is APPMESH.

*/ inline const ProxyConfigurationType& GetType() const{ return m_type; } /** *

The proxy type. The only supported value is APPMESH.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The proxy type. The only supported value is APPMESH.

*/ inline void SetType(const ProxyConfigurationType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The proxy type. The only supported value is APPMESH.

*/ inline void SetType(ProxyConfigurationType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The proxy type. The only supported value is APPMESH.

*/ inline ProxyConfiguration& WithType(const ProxyConfigurationType& value) { SetType(value); return *this;} /** *

The proxy type. The only supported value is APPMESH.

*/ inline ProxyConfiguration& WithType(ProxyConfigurationType&& value) { SetType(std::move(value)); return *this;} /** *

The name of the container that will serve as the App Mesh proxy.

*/ inline const Aws::String& GetContainerName() const{ return m_containerName; } /** *

The name of the container that will serve as the App Mesh proxy.

*/ inline bool ContainerNameHasBeenSet() const { return m_containerNameHasBeenSet; } /** *

The name of the container that will serve as the App Mesh proxy.

*/ inline void SetContainerName(const Aws::String& value) { m_containerNameHasBeenSet = true; m_containerName = value; } /** *

The name of the container that will serve as the App Mesh proxy.

*/ inline void SetContainerName(Aws::String&& value) { m_containerNameHasBeenSet = true; m_containerName = std::move(value); } /** *

The name of the container that will serve as the App Mesh proxy.

*/ inline void SetContainerName(const char* value) { m_containerNameHasBeenSet = true; m_containerName.assign(value); } /** *

The name of the container that will serve as the App Mesh proxy.

*/ inline ProxyConfiguration& WithContainerName(const Aws::String& value) { SetContainerName(value); return *this;} /** *

The name of the container that will serve as the App Mesh proxy.

*/ inline ProxyConfiguration& WithContainerName(Aws::String&& value) { SetContainerName(std::move(value)); return *this;} /** *

The name of the container that will serve as the App Mesh proxy.

*/ inline ProxyConfiguration& WithContainerName(const char* value) { SetContainerName(value); return *this;} /** *

The set of network configuration parameters to provide the Container Network * Interface (CNI) plugin, specified as key-value pairs.

  • * IgnoredUID - (Required) The user ID (UID) of the proxy container as * defined by the user parameter in a container definition. This is * used to ensure the proxy ignores its own traffic. If IgnoredGID is * specified, this field can be empty.

  • IgnoredGID - * (Required) The group ID (GID) of the proxy container as defined by the * user parameter in a container definition. This is used to ensure * the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty.

  • AppPorts - (Required) The * list of ports that the application uses. Network traffic to these ports is * forwarded to the ProxyIngressPort and * ProxyEgressPort.

  • ProxyIngressPort - * (Required) Specifies the port that incoming traffic to the AppPorts * is directed to.

  • ProxyEgressPort - (Required) * Specifies the port that outgoing traffic from the AppPorts is * directed to.

  • EgressIgnoredPorts - (Required) The * egress traffic going to the specified ports is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

  • * EgressIgnoredIPs - (Required) The egress traffic going to the * specified IP addresses is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

*/ inline const Aws::Vector& GetProperties() const{ return m_properties; } /** *

The set of network configuration parameters to provide the Container Network * Interface (CNI) plugin, specified as key-value pairs.

  • * IgnoredUID - (Required) The user ID (UID) of the proxy container as * defined by the user parameter in a container definition. This is * used to ensure the proxy ignores its own traffic. If IgnoredGID is * specified, this field can be empty.

  • IgnoredGID - * (Required) The group ID (GID) of the proxy container as defined by the * user parameter in a container definition. This is used to ensure * the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty.

  • AppPorts - (Required) The * list of ports that the application uses. Network traffic to these ports is * forwarded to the ProxyIngressPort and * ProxyEgressPort.

  • ProxyIngressPort - * (Required) Specifies the port that incoming traffic to the AppPorts * is directed to.

  • ProxyEgressPort - (Required) * Specifies the port that outgoing traffic from the AppPorts is * directed to.

  • EgressIgnoredPorts - (Required) The * egress traffic going to the specified ports is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

  • * EgressIgnoredIPs - (Required) The egress traffic going to the * specified IP addresses is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

*/ inline bool PropertiesHasBeenSet() const { return m_propertiesHasBeenSet; } /** *

The set of network configuration parameters to provide the Container Network * Interface (CNI) plugin, specified as key-value pairs.

  • * IgnoredUID - (Required) The user ID (UID) of the proxy container as * defined by the user parameter in a container definition. This is * used to ensure the proxy ignores its own traffic. If IgnoredGID is * specified, this field can be empty.

  • IgnoredGID - * (Required) The group ID (GID) of the proxy container as defined by the * user parameter in a container definition. This is used to ensure * the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty.

  • AppPorts - (Required) The * list of ports that the application uses. Network traffic to these ports is * forwarded to the ProxyIngressPort and * ProxyEgressPort.

  • ProxyIngressPort - * (Required) Specifies the port that incoming traffic to the AppPorts * is directed to.

  • ProxyEgressPort - (Required) * Specifies the port that outgoing traffic from the AppPorts is * directed to.

  • EgressIgnoredPorts - (Required) The * egress traffic going to the specified ports is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

  • * EgressIgnoredIPs - (Required) The egress traffic going to the * specified IP addresses is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

*/ inline void SetProperties(const Aws::Vector& value) { m_propertiesHasBeenSet = true; m_properties = value; } /** *

The set of network configuration parameters to provide the Container Network * Interface (CNI) plugin, specified as key-value pairs.

  • * IgnoredUID - (Required) The user ID (UID) of the proxy container as * defined by the user parameter in a container definition. This is * used to ensure the proxy ignores its own traffic. If IgnoredGID is * specified, this field can be empty.

  • IgnoredGID - * (Required) The group ID (GID) of the proxy container as defined by the * user parameter in a container definition. This is used to ensure * the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty.

  • AppPorts - (Required) The * list of ports that the application uses. Network traffic to these ports is * forwarded to the ProxyIngressPort and * ProxyEgressPort.

  • ProxyIngressPort - * (Required) Specifies the port that incoming traffic to the AppPorts * is directed to.

  • ProxyEgressPort - (Required) * Specifies the port that outgoing traffic from the AppPorts is * directed to.

  • EgressIgnoredPorts - (Required) The * egress traffic going to the specified ports is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

  • * EgressIgnoredIPs - (Required) The egress traffic going to the * specified IP addresses is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

*/ inline void SetProperties(Aws::Vector&& value) { m_propertiesHasBeenSet = true; m_properties = std::move(value); } /** *

The set of network configuration parameters to provide the Container Network * Interface (CNI) plugin, specified as key-value pairs.

  • * IgnoredUID - (Required) The user ID (UID) of the proxy container as * defined by the user parameter in a container definition. This is * used to ensure the proxy ignores its own traffic. If IgnoredGID is * specified, this field can be empty.

  • IgnoredGID - * (Required) The group ID (GID) of the proxy container as defined by the * user parameter in a container definition. This is used to ensure * the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty.

  • AppPorts - (Required) The * list of ports that the application uses. Network traffic to these ports is * forwarded to the ProxyIngressPort and * ProxyEgressPort.

  • ProxyIngressPort - * (Required) Specifies the port that incoming traffic to the AppPorts * is directed to.

  • ProxyEgressPort - (Required) * Specifies the port that outgoing traffic from the AppPorts is * directed to.

  • EgressIgnoredPorts - (Required) The * egress traffic going to the specified ports is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

  • * EgressIgnoredIPs - (Required) The egress traffic going to the * specified IP addresses is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

*/ inline ProxyConfiguration& WithProperties(const Aws::Vector& value) { SetProperties(value); return *this;} /** *

The set of network configuration parameters to provide the Container Network * Interface (CNI) plugin, specified as key-value pairs.

  • * IgnoredUID - (Required) The user ID (UID) of the proxy container as * defined by the user parameter in a container definition. This is * used to ensure the proxy ignores its own traffic. If IgnoredGID is * specified, this field can be empty.

  • IgnoredGID - * (Required) The group ID (GID) of the proxy container as defined by the * user parameter in a container definition. This is used to ensure * the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty.

  • AppPorts - (Required) The * list of ports that the application uses. Network traffic to these ports is * forwarded to the ProxyIngressPort and * ProxyEgressPort.

  • ProxyIngressPort - * (Required) Specifies the port that incoming traffic to the AppPorts * is directed to.

  • ProxyEgressPort - (Required) * Specifies the port that outgoing traffic from the AppPorts is * directed to.

  • EgressIgnoredPorts - (Required) The * egress traffic going to the specified ports is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

  • * EgressIgnoredIPs - (Required) The egress traffic going to the * specified IP addresses is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

*/ inline ProxyConfiguration& WithProperties(Aws::Vector&& value) { SetProperties(std::move(value)); return *this;} /** *

The set of network configuration parameters to provide the Container Network * Interface (CNI) plugin, specified as key-value pairs.

  • * IgnoredUID - (Required) The user ID (UID) of the proxy container as * defined by the user parameter in a container definition. This is * used to ensure the proxy ignores its own traffic. If IgnoredGID is * specified, this field can be empty.

  • IgnoredGID - * (Required) The group ID (GID) of the proxy container as defined by the * user parameter in a container definition. This is used to ensure * the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty.

  • AppPorts - (Required) The * list of ports that the application uses. Network traffic to these ports is * forwarded to the ProxyIngressPort and * ProxyEgressPort.

  • ProxyIngressPort - * (Required) Specifies the port that incoming traffic to the AppPorts * is directed to.

  • ProxyEgressPort - (Required) * Specifies the port that outgoing traffic from the AppPorts is * directed to.

  • EgressIgnoredPorts - (Required) The * egress traffic going to the specified ports is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

  • * EgressIgnoredIPs - (Required) The egress traffic going to the * specified IP addresses is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

*/ inline ProxyConfiguration& AddProperties(const KeyValuePair& value) { m_propertiesHasBeenSet = true; m_properties.push_back(value); return *this; } /** *

The set of network configuration parameters to provide the Container Network * Interface (CNI) plugin, specified as key-value pairs.

  • * IgnoredUID - (Required) The user ID (UID) of the proxy container as * defined by the user parameter in a container definition. This is * used to ensure the proxy ignores its own traffic. If IgnoredGID is * specified, this field can be empty.

  • IgnoredGID - * (Required) The group ID (GID) of the proxy container as defined by the * user parameter in a container definition. This is used to ensure * the proxy ignores its own traffic. If IgnoredUID is specified, this * field can be empty.

  • AppPorts - (Required) The * list of ports that the application uses. Network traffic to these ports is * forwarded to the ProxyIngressPort and * ProxyEgressPort.

  • ProxyIngressPort - * (Required) Specifies the port that incoming traffic to the AppPorts * is directed to.

  • ProxyEgressPort - (Required) * Specifies the port that outgoing traffic from the AppPorts is * directed to.

  • EgressIgnoredPorts - (Required) The * egress traffic going to the specified ports is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

  • * EgressIgnoredIPs - (Required) The egress traffic going to the * specified IP addresses is ignored and not redirected to the * ProxyEgressPort. It can be an empty list.

*/ inline ProxyConfiguration& AddProperties(KeyValuePair&& value) { m_propertiesHasBeenSet = true; m_properties.push_back(std::move(value)); return *this; } private: ProxyConfigurationType m_type; bool m_typeHasBeenSet = false; Aws::String m_containerName; bool m_containerNameHasBeenSet = false; Aws::Vector m_properties; bool m_propertiesHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws