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

com.amazonaws.services.ecs.model.HealthCheck 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;

/**
 * 

* An object representing a container health check. Health check parameters that are specified in a container definition * override any Docker health checks that exist in the container image (such as those specified in a parent image or * from the image's Dockerfile). *

*

* You can view the health status of both individual containers and a task with the DescribeTasks API operation or when * viewing the task details in the console. *

*

* The following describes the possible healthStatus values for a container: *

*
    *
  • *

    * HEALTHY-The container health check has passed successfully. *

    *
  • *
  • *

    * UNHEALTHY-The container health check has failed. *

    *
  • *
  • *

    * UNKNOWN-The container health check is being evaluated or there is no container health check defined. *

    *
  • *
*

* The following describes the possible healthStatus values for a task. The container health check status * of nonessential containers do not have an effect on the health status of a task. *

*
    *
  • *

    * HEALTHY-All essential containers within the task have passed their health checks. *

    *
  • *
  • *

    * UNHEALTHY-One or more essential containers have failed their health check. *

    *
  • *
  • *

    * UNKNOWN-The essential containers within the task are still having their health checks evaluated or there * are no container health checks defined. *

    *
  • *
*

* If a task is run manually, and not as part of a service, the task will continue its lifecycle regardless of its * health status. For tasks that are part of a service, if the task reports as unhealthy then the task will be stopped * and the service scheduler will replace it. *

*

* The following are notes about container health check support: *

*
    *
  • *

    * Container health checks require version 1.17.0 or greater of the Amazon ECS container agent. For more information, * see Updating the Amazon * ECS Container Agent. *

    *
  • *
  • *

    * Container health checks are supported for Fargate tasks if you are using platform version 1.1.0 or greater. For more * information, see AWS * Fargate Platform Versions. *

    *
  • *
  • *

    * Container health checks are not supported for tasks that are part of a service that is configured to use a Classic * Load Balancer. *

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

* A string array representing the command that the container runs to determine if it is healthy. The string array * must start with CMD to execute the command arguments directly, or CMD-SHELL to run the * command with the container's default shell. For example: *

*

* [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] *

*

* An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see * HealthCheck in the Create a container section of the * Docker Remote API. *

*/ private com.amazonaws.internal.SdkInternalList command; /** *

* The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The * default value is 30 seconds. *

*/ private Integer interval; /** *

* The time period in seconds to wait for a health check to succeed before it is considered a failure. You may * specify between 2 and 60 seconds. The default value is 5. *

*/ private Integer timeout; /** *

* The number of times to retry a failed health check before the container is considered unhealthy. You may specify * between 1 and 10 retries. The default value is 3. *

*/ private Integer retries; /** *

* The optional grace period within which to provide containers time to bootstrap before failed health checks count * towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is * disabled by default. *

* *

* If a health check succeeds within the startPeriod, then the container is considered healthy and any * subsequent failures count toward the maximum number of retries. *

*
*/ private Integer startPeriod; /** *

* A string array representing the command that the container runs to determine if it is healthy. The string array * must start with CMD to execute the command arguments directly, or CMD-SHELL to run the * command with the container's default shell. For example: *

*

* [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] *

*

* An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see * HealthCheck in the Create a container section of the * Docker Remote API. *

* * @return A string array representing the command that the container runs to determine if it is healthy. The string * array must start with CMD to execute the command arguments directly, or * CMD-SHELL to run the command with the container's default shell. For example:

*

* [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] *

*

* An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see * HealthCheck in the Create a container section * of the Docker Remote API. */ public java.util.List getCommand() { if (command == null) { command = new com.amazonaws.internal.SdkInternalList(); } return command; } /** *

* A string array representing the command that the container runs to determine if it is healthy. The string array * must start with CMD to execute the command arguments directly, or CMD-SHELL to run the * command with the container's default shell. For example: *

*

* [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] *

*

* An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see * HealthCheck in the Create a container section of the * Docker Remote API. *

* * @param command * A string array representing the command that the container runs to determine if it is healthy. The string * array must start with CMD to execute the command arguments directly, or * CMD-SHELL to run the command with the container's default shell. For example:

*

* [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] *

*

* An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see * HealthCheck in the Create a container section * of the Docker Remote API. */ public void setCommand(java.util.Collection command) { if (command == null) { this.command = null; return; } this.command = new com.amazonaws.internal.SdkInternalList(command); } /** *

* A string array representing the command that the container runs to determine if it is healthy. The string array * must start with CMD to execute the command arguments directly, or CMD-SHELL to run the * command with the container's default shell. For example: *

*

* [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] *

*

* An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see * HealthCheck in the Create a container section of the * Docker Remote API. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setCommand(java.util.Collection)} or {@link #withCommand(java.util.Collection)} if you want to override * the existing values. *

* * @param command * A string array representing the command that the container runs to determine if it is healthy. The string * array must start with CMD to execute the command arguments directly, or * CMD-SHELL to run the command with the container's default shell. For example:

*

* [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] *

*

* An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see * HealthCheck in the Create a container section * of the Docker Remote API. * @return Returns a reference to this object so that method calls can be chained together. */ public HealthCheck withCommand(String... command) { if (this.command == null) { setCommand(new com.amazonaws.internal.SdkInternalList(command.length)); } for (String ele : command) { this.command.add(ele); } return this; } /** *

* A string array representing the command that the container runs to determine if it is healthy. The string array * must start with CMD to execute the command arguments directly, or CMD-SHELL to run the * command with the container's default shell. For example: *

*

* [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] *

*

* An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see * HealthCheck in the Create a container section of the * Docker Remote API. *

* * @param command * A string array representing the command that the container runs to determine if it is healthy. The string * array must start with CMD to execute the command arguments directly, or * CMD-SHELL to run the command with the container's default shell. For example:

*

* [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] *

*

* An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see * HealthCheck in the Create a container section * of the Docker Remote API. * @return Returns a reference to this object so that method calls can be chained together. */ public HealthCheck withCommand(java.util.Collection command) { setCommand(command); return this; } /** *

* The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The * default value is 30 seconds. *

* * @param interval * The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. * The default value is 30 seconds. */ public void setInterval(Integer interval) { this.interval = interval; } /** *

* The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The * default value is 30 seconds. *

* * @return The time period in seconds between each health check execution. You may specify between 5 and 300 * seconds. The default value is 30 seconds. */ public Integer getInterval() { return this.interval; } /** *

* The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The * default value is 30 seconds. *

* * @param interval * The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. * The default value is 30 seconds. * @return Returns a reference to this object so that method calls can be chained together. */ public HealthCheck withInterval(Integer interval) { setInterval(interval); return this; } /** *

* The time period in seconds to wait for a health check to succeed before it is considered a failure. You may * specify between 2 and 60 seconds. The default value is 5. *

* * @param timeout * The time period in seconds to wait for a health check to succeed before it is considered a failure. You * may specify between 2 and 60 seconds. The default value is 5. */ public void setTimeout(Integer timeout) { this.timeout = timeout; } /** *

* The time period in seconds to wait for a health check to succeed before it is considered a failure. You may * specify between 2 and 60 seconds. The default value is 5. *

* * @return The time period in seconds to wait for a health check to succeed before it is considered a failure. You * may specify between 2 and 60 seconds. The default value is 5. */ public Integer getTimeout() { return this.timeout; } /** *

* The time period in seconds to wait for a health check to succeed before it is considered a failure. You may * specify between 2 and 60 seconds. The default value is 5. *

* * @param timeout * The time period in seconds to wait for a health check to succeed before it is considered a failure. You * may specify between 2 and 60 seconds. The default value is 5. * @return Returns a reference to this object so that method calls can be chained together. */ public HealthCheck withTimeout(Integer timeout) { setTimeout(timeout); return this; } /** *

* The number of times to retry a failed health check before the container is considered unhealthy. You may specify * between 1 and 10 retries. The default value is 3. *

* * @param retries * The number of times to retry a failed health check before the container is considered unhealthy. You may * specify between 1 and 10 retries. The default value is 3. */ public void setRetries(Integer retries) { this.retries = retries; } /** *

* The number of times to retry a failed health check before the container is considered unhealthy. You may specify * between 1 and 10 retries. The default value is 3. *

* * @return The number of times to retry a failed health check before the container is considered unhealthy. You may * specify between 1 and 10 retries. The default value is 3. */ public Integer getRetries() { return this.retries; } /** *

* The number of times to retry a failed health check before the container is considered unhealthy. You may specify * between 1 and 10 retries. The default value is 3. *

* * @param retries * The number of times to retry a failed health check before the container is considered unhealthy. You may * specify between 1 and 10 retries. The default value is 3. * @return Returns a reference to this object so that method calls can be chained together. */ public HealthCheck withRetries(Integer retries) { setRetries(retries); return this; } /** *

* The optional grace period within which to provide containers time to bootstrap before failed health checks count * towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is * disabled by default. *

* *

* If a health check succeeds within the startPeriod, then the container is considered healthy and any * subsequent failures count toward the maximum number of retries. *

*
* * @param startPeriod * The optional grace period within which to provide containers time to bootstrap before failed health checks * count towards the maximum number of retries. You may specify between 0 and 300 seconds. The * startPeriod is disabled by default.

*

* If a health check succeeds within the startPeriod, then the container is considered healthy * and any subsequent failures count toward the maximum number of retries. *

*/ public void setStartPeriod(Integer startPeriod) { this.startPeriod = startPeriod; } /** *

* The optional grace period within which to provide containers time to bootstrap before failed health checks count * towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is * disabled by default. *

* *

* If a health check succeeds within the startPeriod, then the container is considered healthy and any * subsequent failures count toward the maximum number of retries. *

*
* * @return The optional grace period within which to provide containers time to bootstrap before failed health * checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The * startPeriod is disabled by default.

*

* If a health check succeeds within the startPeriod, then the container is considered healthy * and any subsequent failures count toward the maximum number of retries. *

*/ public Integer getStartPeriod() { return this.startPeriod; } /** *

* The optional grace period within which to provide containers time to bootstrap before failed health checks count * towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is * disabled by default. *

* *

* If a health check succeeds within the startPeriod, then the container is considered healthy and any * subsequent failures count toward the maximum number of retries. *

*
* * @param startPeriod * The optional grace period within which to provide containers time to bootstrap before failed health checks * count towards the maximum number of retries. You may specify between 0 and 300 seconds. The * startPeriod is disabled by default.

*

* If a health check succeeds within the startPeriod, then the container is considered healthy * and any subsequent failures count toward the maximum number of retries. *

* @return Returns a reference to this object so that method calls can be chained together. */ public HealthCheck withStartPeriod(Integer startPeriod) { setStartPeriod(startPeriod); 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 (getCommand() != null) sb.append("Command: ").append(getCommand()).append(","); if (getInterval() != null) sb.append("Interval: ").append(getInterval()).append(","); if (getTimeout() != null) sb.append("Timeout: ").append(getTimeout()).append(","); if (getRetries() != null) sb.append("Retries: ").append(getRetries()).append(","); if (getStartPeriod() != null) sb.append("StartPeriod: ").append(getStartPeriod()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof HealthCheck == false) return false; HealthCheck other = (HealthCheck) obj; if (other.getCommand() == null ^ this.getCommand() == null) return false; if (other.getCommand() != null && other.getCommand().equals(this.getCommand()) == false) return false; if (other.getInterval() == null ^ this.getInterval() == null) return false; if (other.getInterval() != null && other.getInterval().equals(this.getInterval()) == false) return false; if (other.getTimeout() == null ^ this.getTimeout() == null) return false; if (other.getTimeout() != null && other.getTimeout().equals(this.getTimeout()) == false) return false; if (other.getRetries() == null ^ this.getRetries() == null) return false; if (other.getRetries() != null && other.getRetries().equals(this.getRetries()) == false) return false; if (other.getStartPeriod() == null ^ this.getStartPeriod() == null) return false; if (other.getStartPeriod() != null && other.getStartPeriod().equals(this.getStartPeriod()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getCommand() == null) ? 0 : getCommand().hashCode()); hashCode = prime * hashCode + ((getInterval() == null) ? 0 : getInterval().hashCode()); hashCode = prime * hashCode + ((getTimeout() == null) ? 0 : getTimeout().hashCode()); hashCode = prime * hashCode + ((getRetries() == null) ? 0 : getRetries().hashCode()); hashCode = prime * hashCode + ((getStartPeriod() == null) ? 0 : getStartPeriod().hashCode()); return hashCode; } @Override public HealthCheck clone() { try { return (HealthCheck) 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.HealthCheckMarshaller.getInstance().marshall(this, protocolMarshaller); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy