All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.ecs.model.LoadBalancer Maven / Gradle / Ivy

Go to download

The AWS Java SDK for the Amazon EC2 Container Service holds the client classes that are used for communicating with the Amazon EC2 Container Service

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2016-2021 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.
 */
package com.amazonaws.services.ecs.model;

import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;

/**
 * 

* The load balancer configuration to use with a service or task set. *

*

* For specific notes and restrictions regarding the use of load balancers with services and task sets, see the * CreateService and CreateTaskSet actions. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class LoadBalancer implements Serializable, Cloneable, StructuredPojo { /** *

* The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a * service or task set. *

*

* A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you are * using a Classic Load Balancer the target group ARN should be omitted. *

*

* For services using the ECS deployment controller, you can specify one or multiple target groups. For * more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service Developer * Guide. *

*

* For services using the CODE_DEPLOY deployment controller, you are required to define two target * groups for the load balancer. For more information, see Blue/Green * Deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide. *

* *

* If your service's task definition uses the awsvpc network mode (which is required for the Fargate * launch type), you must choose ip as the target type, not instance, when creating your * target groups because tasks that use the awsvpc network mode are associated with an elastic network * interface, not an Amazon EC2 instance. *

*
*/ private String targetGroupArn; /** *

* The name of the load balancer to associate with the Amazon ECS service or task set. *

*

* A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application Load * Balancer or a Network Load Balancer the load balancer name parameter should be omitted. *

*/ private String loadBalancerName; /** *

* The name of the container (as it appears in a container definition) to associate with the load balancer. *

*/ private String containerName; /** *

* The port on the container to associate with the load balancer. This port must correspond to a * containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 * launch type, the container instance they are launched on must allow ingress traffic on the hostPort * of the port mapping. *

*/ private Integer containerPort; /** *

* The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a * service or task set. *

*

* A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you are * using a Classic Load Balancer the target group ARN should be omitted. *

*

* For services using the ECS deployment controller, you can specify one or multiple target groups. For * more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service Developer * Guide. *

*

* For services using the CODE_DEPLOY deployment controller, you are required to define two target * groups for the load balancer. For more information, see Blue/Green * Deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide. *

* *

* If your service's task definition uses the awsvpc network mode (which is required for the Fargate * launch type), you must choose ip as the target type, not instance, when creating your * target groups because tasks that use the awsvpc network mode are associated with an elastic network * interface, not an Amazon EC2 instance. *

*
* * @param targetGroupArn * The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a * service or task set.

*

* A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If * you are using a Classic Load Balancer the target group ARN should be omitted. *

*

* For services using the ECS deployment controller, you can specify one or multiple target * groups. For more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service * Developer Guide. *

*

* For services using the CODE_DEPLOY deployment controller, you are required to define two * target groups for the load balancer. For more information, see Blue/Green Deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide. *

* *

* If your service's task definition uses the awsvpc network mode (which is required for the * Fargate launch type), you must choose ip as the target type, not instance, when * creating your target groups because tasks that use the awsvpc network mode are associated * with an elastic network interface, not an Amazon EC2 instance. *

*/ public void setTargetGroupArn(String targetGroupArn) { this.targetGroupArn = targetGroupArn; } /** *

* The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a * service or task set. *

*

* A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you are * using a Classic Load Balancer the target group ARN should be omitted. *

*

* For services using the ECS deployment controller, you can specify one or multiple target groups. For * more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service Developer * Guide. *

*

* For services using the CODE_DEPLOY deployment controller, you are required to define two target * groups for the load balancer. For more information, see Blue/Green * Deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide. *

* *

* If your service's task definition uses the awsvpc network mode (which is required for the Fargate * launch type), you must choose ip as the target type, not instance, when creating your * target groups because tasks that use the awsvpc network mode are associated with an elastic network * interface, not an Amazon EC2 instance. *

*
* * @return The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with * a service or task set.

*

* A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If * you are using a Classic Load Balancer the target group ARN should be omitted. *

*

* For services using the ECS deployment controller, you can specify one or multiple target * groups. For more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service * Developer Guide. *

*

* For services using the CODE_DEPLOY deployment controller, you are required to define two * target groups for the load balancer. For more information, see Blue/Green Deployment with CodeDeploy in the Amazon Elastic Container Service Developer * Guide. *

* *

* If your service's task definition uses the awsvpc network mode (which is required for the * Fargate launch type), you must choose ip as the target type, not instance, when * creating your target groups because tasks that use the awsvpc network mode are associated * with an elastic network interface, not an Amazon EC2 instance. *

*/ public String getTargetGroupArn() { return this.targetGroupArn; } /** *

* The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a * service or task set. *

*

* A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If you are * using a Classic Load Balancer the target group ARN should be omitted. *

*

* For services using the ECS deployment controller, you can specify one or multiple target groups. For * more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service Developer * Guide. *

*

* For services using the CODE_DEPLOY deployment controller, you are required to define two target * groups for the load balancer. For more information, see Blue/Green * Deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide. *

* *

* If your service's task definition uses the awsvpc network mode (which is required for the Fargate * launch type), you must choose ip as the target type, not instance, when creating your * target groups because tasks that use the awsvpc network mode are associated with an elastic network * interface, not an Amazon EC2 instance. *

*
* * @param targetGroupArn * The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a * service or task set.

*

* A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. If * you are using a Classic Load Balancer the target group ARN should be omitted. *

*

* For services using the ECS deployment controller, you can specify one or multiple target * groups. For more information, see Registering Multiple Target Groups with a Service in the Amazon Elastic Container Service * Developer Guide. *

*

* For services using the CODE_DEPLOY deployment controller, you are required to define two * target groups for the load balancer. For more information, see Blue/Green Deployment with CodeDeploy in the Amazon Elastic Container Service Developer Guide. *

* *

* If your service's task definition uses the awsvpc network mode (which is required for the * Fargate launch type), you must choose ip as the target type, not instance, when * creating your target groups because tasks that use the awsvpc network mode are associated * with an elastic network interface, not an Amazon EC2 instance. *

* @return Returns a reference to this object so that method calls can be chained together. */ public LoadBalancer withTargetGroupArn(String targetGroupArn) { setTargetGroupArn(targetGroupArn); return this; } /** *

* The name of the load balancer to associate with the Amazon ECS service or task set. *

*

* A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application Load * Balancer or a Network Load Balancer the load balancer name parameter should be omitted. *

* * @param loadBalancerName * The name of the load balancer to associate with the Amazon ECS service or task set.

*

* A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application * Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted. */ public void setLoadBalancerName(String loadBalancerName) { this.loadBalancerName = loadBalancerName; } /** *

* The name of the load balancer to associate with the Amazon ECS service or task set. *

*

* A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application Load * Balancer or a Network Load Balancer the load balancer name parameter should be omitted. *

* * @return The name of the load balancer to associate with the Amazon ECS service or task set.

*

* A load balancer name is only specified when using a Classic Load Balancer. If you are using an * Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted. */ public String getLoadBalancerName() { return this.loadBalancerName; } /** *

* The name of the load balancer to associate with the Amazon ECS service or task set. *

*

* A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application Load * Balancer or a Network Load Balancer the load balancer name parameter should be omitted. *

* * @param loadBalancerName * The name of the load balancer to associate with the Amazon ECS service or task set.

*

* A load balancer name is only specified when using a Classic Load Balancer. If you are using an Application * Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted. * @return Returns a reference to this object so that method calls can be chained together. */ public LoadBalancer withLoadBalancerName(String loadBalancerName) { setLoadBalancerName(loadBalancerName); return this; } /** *

* The name of the container (as it appears in a container definition) to associate with the load balancer. *

* * @param containerName * The name of the container (as it appears in a container definition) to associate with the load balancer. */ public void setContainerName(String containerName) { this.containerName = containerName; } /** *

* The name of the container (as it appears in a container definition) to associate with the load balancer. *

* * @return The name of the container (as it appears in a container definition) to associate with the load balancer. */ public String getContainerName() { return this.containerName; } /** *

* The name of the container (as it appears in a container definition) to associate with the load balancer. *

* * @param containerName * The name of the container (as it appears in a container definition) to associate with the load balancer. * @return Returns a reference to this object so that method calls can be chained together. */ public LoadBalancer withContainerName(String containerName) { setContainerName(containerName); return this; } /** *

* The port on the container to associate with the load balancer. This port must correspond to a * containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 * launch type, the container instance they are launched on must allow ingress traffic on the hostPort * of the port mapping. *

* * @param containerPort * The port on the container to associate with the load balancer. This port must correspond to a * containerPort in the task definition the tasks in the service are using. For tasks that use * the EC2 launch type, the container instance they are launched on must allow ingress traffic on the * hostPort of the port mapping. */ public void setContainerPort(Integer containerPort) { this.containerPort = containerPort; } /** *

* The port on the container to associate with the load balancer. This port must correspond to a * containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 * launch type, the container instance they are launched on must allow ingress traffic on the hostPort * of the port mapping. *

* * @return The port on the container to associate with the load balancer. This port must correspond to a * containerPort in the task definition the tasks in the service are using. For tasks that use * the EC2 launch type, the container instance they are launched on must allow ingress traffic on the * hostPort of the port mapping. */ public Integer getContainerPort() { return this.containerPort; } /** *

* The port on the container to associate with the load balancer. This port must correspond to a * containerPort in the task definition the tasks in the service are using. For tasks that use the EC2 * launch type, the container instance they are launched on must allow ingress traffic on the hostPort * of the port mapping. *

* * @param containerPort * The port on the container to associate with the load balancer. This port must correspond to a * containerPort in the task definition the tasks in the service are using. For tasks that use * the EC2 launch type, the container instance they are launched on must allow ingress traffic on the * hostPort of the port mapping. * @return Returns a reference to this object so that method calls can be chained together. */ public LoadBalancer withContainerPort(Integer containerPort) { setContainerPort(containerPort); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getTargetGroupArn() != null) sb.append("TargetGroupArn: ").append(getTargetGroupArn()).append(","); if (getLoadBalancerName() != null) sb.append("LoadBalancerName: ").append(getLoadBalancerName()).append(","); if (getContainerName() != null) sb.append("ContainerName: ").append(getContainerName()).append(","); if (getContainerPort() != null) sb.append("ContainerPort: ").append(getContainerPort()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof LoadBalancer == false) return false; LoadBalancer other = (LoadBalancer) obj; if (other.getTargetGroupArn() == null ^ this.getTargetGroupArn() == null) return false; if (other.getTargetGroupArn() != null && other.getTargetGroupArn().equals(this.getTargetGroupArn()) == false) return false; if (other.getLoadBalancerName() == null ^ this.getLoadBalancerName() == null) return false; if (other.getLoadBalancerName() != null && other.getLoadBalancerName().equals(this.getLoadBalancerName()) == false) return false; if (other.getContainerName() == null ^ this.getContainerName() == null) return false; if (other.getContainerName() != null && other.getContainerName().equals(this.getContainerName()) == false) return false; if (other.getContainerPort() == null ^ this.getContainerPort() == null) return false; if (other.getContainerPort() != null && other.getContainerPort().equals(this.getContainerPort()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getTargetGroupArn() == null) ? 0 : getTargetGroupArn().hashCode()); hashCode = prime * hashCode + ((getLoadBalancerName() == null) ? 0 : getLoadBalancerName().hashCode()); hashCode = prime * hashCode + ((getContainerName() == null) ? 0 : getContainerName().hashCode()); hashCode = prime * hashCode + ((getContainerPort() == null) ? 0 : getContainerPort().hashCode()); return hashCode; } @Override public LoadBalancer clone() { try { return (LoadBalancer) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.ecs.model.transform.LoadBalancerMarshaller.getInstance().marshall(this, protocolMarshaller); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy