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

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

/*
 * Copyright 2019-2024 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 details of a capacity provider strategy. A capacity provider strategy can be set when using the RunTask or * CreateCluster APIs or as the default capacity provider strategy for a cluster with the CreateCluster * API. *

*

* Only capacity providers that are already associated with a cluster and have an ACTIVE or * UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API * is used to associate a capacity provider with a cluster. *

*

* If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New * Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation. *

*

* To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity * providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster * to be used in a capacity provider strategy. *

*

* A capacity provider strategy may contain a maximum of 6 capacity providers. *

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

* The short name of the capacity provider. *

*/ private String capacityProvider; /** *

* The weight value designates the relative percentage of the total number of tasks launched that should use * the specified capacity provider. The weight value is taken into consideration after the * base value, if defined, is satisfied. *

*

* If no weight value is specified, the default value of 0 is used. When multiple capacity * providers are specified within a capacity provider strategy, at least one of the capacity providers must have a * weight value greater than zero and any capacity providers with a weight of 0 can't be used to place * tasks. If you specify multiple capacity providers in a strategy that all have a weight of 0, any * RunTask or CreateService actions using the capacity provider strategy will fail. *

*

* An example scenario for using weights is defining a strategy that contains two capacity providers and both have a * weight of 1, then when the base is satisfied, the tasks will be split evenly across the * two capacity providers. Using that same logic, if you specify a weight of 1 for * capacityProviderA and a weight of 4 for capacityProviderB, then for every one task * that's run using capacityProviderA, four tasks would use capacityProviderB. *

*/ private Integer weight; /** *

* The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only * one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, * the default value of 0 is used. *

*/ private Integer base; /** *

* The short name of the capacity provider. *

* * @param capacityProvider * The short name of the capacity provider. */ public void setCapacityProvider(String capacityProvider) { this.capacityProvider = capacityProvider; } /** *

* The short name of the capacity provider. *

* * @return The short name of the capacity provider. */ public String getCapacityProvider() { return this.capacityProvider; } /** *

* The short name of the capacity provider. *

* * @param capacityProvider * The short name of the capacity provider. * @return Returns a reference to this object so that method calls can be chained together. */ public CapacityProviderStrategyItem withCapacityProvider(String capacityProvider) { setCapacityProvider(capacityProvider); return this; } /** *

* The weight value designates the relative percentage of the total number of tasks launched that should use * the specified capacity provider. The weight value is taken into consideration after the * base value, if defined, is satisfied. *

*

* If no weight value is specified, the default value of 0 is used. When multiple capacity * providers are specified within a capacity provider strategy, at least one of the capacity providers must have a * weight value greater than zero and any capacity providers with a weight of 0 can't be used to place * tasks. If you specify multiple capacity providers in a strategy that all have a weight of 0, any * RunTask or CreateService actions using the capacity provider strategy will fail. *

*

* An example scenario for using weights is defining a strategy that contains two capacity providers and both have a * weight of 1, then when the base is satisfied, the tasks will be split evenly across the * two capacity providers. Using that same logic, if you specify a weight of 1 for * capacityProviderA and a weight of 4 for capacityProviderB, then for every one task * that's run using capacityProviderA, four tasks would use capacityProviderB. *

* * @param weight * The weight value designates the relative percentage of the total number of tasks launched that * should use the specified capacity provider. The weight value is taken into consideration * after the base value, if defined, is satisfied.

*

* If no weight value is specified, the default value of 0 is used. When multiple * capacity providers are specified within a capacity provider strategy, at least one of the capacity * providers must have a weight value greater than zero and any capacity providers with a weight of * 0 can't be used to place tasks. If you specify multiple capacity providers in a strategy that * all have a weight of 0, any RunTask or CreateService actions using * the capacity provider strategy will fail. *

*

* An example scenario for using weights is defining a strategy that contains two capacity providers and both * have a weight of 1, then when the base is satisfied, the tasks will be split * evenly across the two capacity providers. Using that same logic, if you specify a weight of 1 * for capacityProviderA and a weight of 4 for capacityProviderB, then for every * one task that's run using capacityProviderA, four tasks would use capacityProviderB. */ public void setWeight(Integer weight) { this.weight = weight; } /** *

* The weight value designates the relative percentage of the total number of tasks launched that should use * the specified capacity provider. The weight value is taken into consideration after the * base value, if defined, is satisfied. *

*

* If no weight value is specified, the default value of 0 is used. When multiple capacity * providers are specified within a capacity provider strategy, at least one of the capacity providers must have a * weight value greater than zero and any capacity providers with a weight of 0 can't be used to place * tasks. If you specify multiple capacity providers in a strategy that all have a weight of 0, any * RunTask or CreateService actions using the capacity provider strategy will fail. *

*

* An example scenario for using weights is defining a strategy that contains two capacity providers and both have a * weight of 1, then when the base is satisfied, the tasks will be split evenly across the * two capacity providers. Using that same logic, if you specify a weight of 1 for * capacityProviderA and a weight of 4 for capacityProviderB, then for every one task * that's run using capacityProviderA, four tasks would use capacityProviderB. *

* * @return The weight value designates the relative percentage of the total number of tasks launched that * should use the specified capacity provider. The weight value is taken into consideration * after the base value, if defined, is satisfied.

*

* If no weight value is specified, the default value of 0 is used. When multiple * capacity providers are specified within a capacity provider strategy, at least one of the capacity * providers must have a weight value greater than zero and any capacity providers with a weight of * 0 can't be used to place tasks. If you specify multiple capacity providers in a strategy * that all have a weight of 0, any RunTask or CreateService actions * using the capacity provider strategy will fail. *

*

* An example scenario for using weights is defining a strategy that contains two capacity providers and * both have a weight of 1, then when the base is satisfied, the tasks will be * split evenly across the two capacity providers. Using that same logic, if you specify a weight of * 1 for capacityProviderA and a weight of 4 for capacityProviderB, * then for every one task that's run using capacityProviderA, four tasks would use * capacityProviderB. */ public Integer getWeight() { return this.weight; } /** *

* The weight value designates the relative percentage of the total number of tasks launched that should use * the specified capacity provider. The weight value is taken into consideration after the * base value, if defined, is satisfied. *

*

* If no weight value is specified, the default value of 0 is used. When multiple capacity * providers are specified within a capacity provider strategy, at least one of the capacity providers must have a * weight value greater than zero and any capacity providers with a weight of 0 can't be used to place * tasks. If you specify multiple capacity providers in a strategy that all have a weight of 0, any * RunTask or CreateService actions using the capacity provider strategy will fail. *

*

* An example scenario for using weights is defining a strategy that contains two capacity providers and both have a * weight of 1, then when the base is satisfied, the tasks will be split evenly across the * two capacity providers. Using that same logic, if you specify a weight of 1 for * capacityProviderA and a weight of 4 for capacityProviderB, then for every one task * that's run using capacityProviderA, four tasks would use capacityProviderB. *

* * @param weight * The weight value designates the relative percentage of the total number of tasks launched that * should use the specified capacity provider. The weight value is taken into consideration * after the base value, if defined, is satisfied.

*

* If no weight value is specified, the default value of 0 is used. When multiple * capacity providers are specified within a capacity provider strategy, at least one of the capacity * providers must have a weight value greater than zero and any capacity providers with a weight of * 0 can't be used to place tasks. If you specify multiple capacity providers in a strategy that * all have a weight of 0, any RunTask or CreateService actions using * the capacity provider strategy will fail. *

*

* An example scenario for using weights is defining a strategy that contains two capacity providers and both * have a weight of 1, then when the base is satisfied, the tasks will be split * evenly across the two capacity providers. Using that same logic, if you specify a weight of 1 * for capacityProviderA and a weight of 4 for capacityProviderB, then for every * one task that's run using capacityProviderA, four tasks would use capacityProviderB. * @return Returns a reference to this object so that method calls can be chained together. */ public CapacityProviderStrategyItem withWeight(Integer weight) { setWeight(weight); return this; } /** *

* The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only * one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, * the default value of 0 is used. *

* * @param base * The base value designates how many tasks, at a minimum, to run on the specified capacity provider. * Only one capacity provider in a capacity provider strategy can have a base defined. If no value is * specified, the default value of 0 is used. */ public void setBase(Integer base) { this.base = base; } /** *

* The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only * one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, * the default value of 0 is used. *

* * @return The base value designates how many tasks, at a minimum, to run on the specified capacity provider. * Only one capacity provider in a capacity provider strategy can have a base defined. If no value is * specified, the default value of 0 is used. */ public Integer getBase() { return this.base; } /** *

* The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only * one capacity provider in a capacity provider strategy can have a base defined. If no value is specified, * the default value of 0 is used. *

* * @param base * The base value designates how many tasks, at a minimum, to run on the specified capacity provider. * Only one capacity provider in a capacity provider strategy can have a base defined. If no value is * specified, the default value of 0 is used. * @return Returns a reference to this object so that method calls can be chained together. */ public CapacityProviderStrategyItem withBase(Integer base) { setBase(base); 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 (getCapacityProvider() != null) sb.append("CapacityProvider: ").append(getCapacityProvider()).append(","); if (getWeight() != null) sb.append("Weight: ").append(getWeight()).append(","); if (getBase() != null) sb.append("Base: ").append(getBase()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CapacityProviderStrategyItem == false) return false; CapacityProviderStrategyItem other = (CapacityProviderStrategyItem) obj; if (other.getCapacityProvider() == null ^ this.getCapacityProvider() == null) return false; if (other.getCapacityProvider() != null && other.getCapacityProvider().equals(this.getCapacityProvider()) == false) return false; if (other.getWeight() == null ^ this.getWeight() == null) return false; if (other.getWeight() != null && other.getWeight().equals(this.getWeight()) == false) return false; if (other.getBase() == null ^ this.getBase() == null) return false; if (other.getBase() != null && other.getBase().equals(this.getBase()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getCapacityProvider() == null) ? 0 : getCapacityProvider().hashCode()); hashCode = prime * hashCode + ((getWeight() == null) ? 0 : getWeight().hashCode()); hashCode = prime * hashCode + ((getBase() == null) ? 0 : getBase().hashCode()); return hashCode; } @Override public CapacityProviderStrategyItem clone() { try { return (CapacityProviderStrategyItem) 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.CapacityProviderStrategyItemMarshaller.getInstance().marshall(this, protocolMarshaller); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy