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

software.amazon.awssdk.services.ecs.model.CapacityProvider 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: 2.30.1
Show newest version
/*
 * 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.
 */

package software.amazon.awssdk.services.ecs.model;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 * 

* The details for a capacity provider. *

*/ @Generated("software.amazon.awssdk:codegen") public final class CapacityProvider implements SdkPojo, Serializable, ToCopyableBuilder { private static final SdkField CAPACITY_PROVIDER_ARN_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("capacityProviderArn").getter(getter(CapacityProvider::capacityProviderArn)) .setter(setter(Builder::capacityProviderArn)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("capacityProviderArn").build()) .build(); private static final SdkField NAME_FIELD = SdkField. builder(MarshallingType.STRING).memberName("name") .getter(getter(CapacityProvider::name)).setter(setter(Builder::name)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("name").build()).build(); private static final SdkField STATUS_FIELD = SdkField. builder(MarshallingType.STRING).memberName("status") .getter(getter(CapacityProvider::statusAsString)).setter(setter(Builder::status)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("status").build()).build(); private static final SdkField AUTO_SCALING_GROUP_PROVIDER_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("autoScalingGroupProvider") .getter(getter(CapacityProvider::autoScalingGroupProvider)).setter(setter(Builder::autoScalingGroupProvider)) .constructor(AutoScalingGroupProvider::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("autoScalingGroupProvider").build()) .build(); private static final SdkField UPDATE_STATUS_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("updateStatus").getter(getter(CapacityProvider::updateStatusAsString)) .setter(setter(Builder::updateStatus)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("updateStatus").build()).build(); private static final SdkField UPDATE_STATUS_REASON_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("updateStatusReason").getter(getter(CapacityProvider::updateStatusReason)) .setter(setter(Builder::updateStatusReason)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("updateStatusReason").build()) .build(); private static final SdkField> TAGS_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("tags") .getter(getter(CapacityProvider::tags)) .setter(setter(Builder::tags)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("tags").build(), ListTrait .builder() .memberLocationName(null) .memberFieldInfo( SdkField. builder(MarshallingType.SDK_POJO) .constructor(Tag::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("member").build()).build()).build()).build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(CAPACITY_PROVIDER_ARN_FIELD, NAME_FIELD, STATUS_FIELD, AUTO_SCALING_GROUP_PROVIDER_FIELD, UPDATE_STATUS_FIELD, UPDATE_STATUS_REASON_FIELD, TAGS_FIELD)); private static final Map> SDK_NAME_TO_FIELD = memberNameToFieldInitializer(); private static final long serialVersionUID = 1L; private final String capacityProviderArn; private final String name; private final String status; private final AutoScalingGroupProvider autoScalingGroupProvider; private final String updateStatus; private final String updateStatusReason; private final List tags; private CapacityProvider(BuilderImpl builder) { this.capacityProviderArn = builder.capacityProviderArn; this.name = builder.name; this.status = builder.status; this.autoScalingGroupProvider = builder.autoScalingGroupProvider; this.updateStatus = builder.updateStatus; this.updateStatusReason = builder.updateStatusReason; this.tags = builder.tags; } /** *

* The Amazon Resource Name (ARN) that identifies the capacity provider. *

* * @return The Amazon Resource Name (ARN) that identifies the capacity provider. */ public final String capacityProviderArn() { return capacityProviderArn; } /** *

* The name of the capacity provider. *

* * @return The name of the capacity provider. */ public final String name() { return name; } /** *

* The current status of the capacity provider. Only capacity providers in an ACTIVE state can be used * in a cluster. When a capacity provider is successfully deleted, it has an INACTIVE status. *

*

* If the service returns an enum value that is not available in the current SDK version, {@link #status} will * return {@link CapacityProviderStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #statusAsString}. *

* * @return The current status of the capacity provider. Only capacity providers in an ACTIVE state can * be used in a cluster. When a capacity provider is successfully deleted, it has an INACTIVE * status. * @see CapacityProviderStatus */ public final CapacityProviderStatus status() { return CapacityProviderStatus.fromValue(status); } /** *

* The current status of the capacity provider. Only capacity providers in an ACTIVE state can be used * in a cluster. When a capacity provider is successfully deleted, it has an INACTIVE status. *

*

* If the service returns an enum value that is not available in the current SDK version, {@link #status} will * return {@link CapacityProviderStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #statusAsString}. *

* * @return The current status of the capacity provider. Only capacity providers in an ACTIVE state can * be used in a cluster. When a capacity provider is successfully deleted, it has an INACTIVE * status. * @see CapacityProviderStatus */ public final String statusAsString() { return status; } /** *

* The Auto Scaling group settings for the capacity provider. *

* * @return The Auto Scaling group settings for the capacity provider. */ public final AutoScalingGroupProvider autoScalingGroupProvider() { return autoScalingGroupProvider; } /** *

* The update status of the capacity provider. The following are the possible states that is returned. *

*
*
DELETE_IN_PROGRESS
*
*

* The capacity provider is in the process of being deleted. *

*
*
DELETE_COMPLETE
*
*

* The capacity provider was successfully deleted and has an INACTIVE status. *

*
*
DELETE_FAILED
*
*

* The capacity provider can't be deleted. The update status reason provides further details about why the delete * failed. *

*
*
*

* If the service returns an enum value that is not available in the current SDK version, {@link #updateStatus} will * return {@link CapacityProviderUpdateStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is * available from {@link #updateStatusAsString}. *

* * @return The update status of the capacity provider. The following are the possible states that is returned.

*
*
DELETE_IN_PROGRESS
*
*

* The capacity provider is in the process of being deleted. *

*
*
DELETE_COMPLETE
*
*

* The capacity provider was successfully deleted and has an INACTIVE status. *

*
*
DELETE_FAILED
*
*

* The capacity provider can't be deleted. The update status reason provides further details about why the * delete failed. *

*
* @see CapacityProviderUpdateStatus */ public final CapacityProviderUpdateStatus updateStatus() { return CapacityProviderUpdateStatus.fromValue(updateStatus); } /** *

* The update status of the capacity provider. The following are the possible states that is returned. *

*
*
DELETE_IN_PROGRESS
*
*

* The capacity provider is in the process of being deleted. *

*
*
DELETE_COMPLETE
*
*

* The capacity provider was successfully deleted and has an INACTIVE status. *

*
*
DELETE_FAILED
*
*

* The capacity provider can't be deleted. The update status reason provides further details about why the delete * failed. *

*
*
*

* If the service returns an enum value that is not available in the current SDK version, {@link #updateStatus} will * return {@link CapacityProviderUpdateStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is * available from {@link #updateStatusAsString}. *

* * @return The update status of the capacity provider. The following are the possible states that is returned.

*
*
DELETE_IN_PROGRESS
*
*

* The capacity provider is in the process of being deleted. *

*
*
DELETE_COMPLETE
*
*

* The capacity provider was successfully deleted and has an INACTIVE status. *

*
*
DELETE_FAILED
*
*

* The capacity provider can't be deleted. The update status reason provides further details about why the * delete failed. *

*
* @see CapacityProviderUpdateStatus */ public final String updateStatusAsString() { return updateStatus; } /** *

* The update status reason. This provides further details about the update status for the capacity provider. *

* * @return The update status reason. This provides further details about the update status for the capacity * provider. */ public final String updateStatusReason() { return updateStatusReason; } /** * For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that * the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is useful * because the SDK will never return a null collection or map, but you may need to differentiate between the service * returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true * if a value for the property was specified in the request builder, and false if a value was not specified. */ public final boolean hasTags() { return tags != null && !(tags instanceof SdkAutoConstructList); } /** *

* The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag consists of * a key and an optional value. You define both. *

*

* The following basic restrictions apply to tags: *

*
    *
  • *

    * Maximum number of tags per resource - 50 *

    *
  • *
  • *

    * For each resource, each tag key must be unique, and each tag key can have only one value. *

    *
  • *
  • *

    * Maximum key length - 128 Unicode characters in UTF-8 *

    *
  • *
  • *

    * Maximum value length - 256 Unicode characters in UTF-8 *

    *
  • *
  • *

    * If your tagging schema is used across multiple services and resources, remember that other services may have * restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable * in UTF-8, and the following characters: + - = . _ : / @. *

    *
  • *
  • *

    * Tag keys and values are case-sensitive. *

    *
  • *
  • *

    * Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for * either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values * with this prefix. Tags with this prefix do not count against your tags per resource limit. *

    *
  • *
*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasTags} method. *

* * @return The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag * consists of a key and an optional value. You define both.

*

* The following basic restrictions apply to tags: *

*
    *
  • *

    * Maximum number of tags per resource - 50 *

    *
  • *
  • *

    * For each resource, each tag key must be unique, and each tag key can have only one value. *

    *
  • *
  • *

    * Maximum key length - 128 Unicode characters in UTF-8 *

    *
  • *
  • *

    * Maximum value length - 256 Unicode characters in UTF-8 *

    *
  • *
  • *

    * If your tagging schema is used across multiple services and resources, remember that other services may * have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @. *

    *
  • *
  • *

    * Tag keys and values are case-sensitive. *

    *
  • *
  • *

    * Do not use aws:, AWS:, or any upper or lowercase combination of such as a * prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete * tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource * limit. *

    *
  • */ public final List tags() { return tags; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + Objects.hashCode(capacityProviderArn()); hashCode = 31 * hashCode + Objects.hashCode(name()); hashCode = 31 * hashCode + Objects.hashCode(statusAsString()); hashCode = 31 * hashCode + Objects.hashCode(autoScalingGroupProvider()); hashCode = 31 * hashCode + Objects.hashCode(updateStatusAsString()); hashCode = 31 * hashCode + Objects.hashCode(updateStatusReason()); hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null); return hashCode; } @Override public final boolean equals(Object obj) { return equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof CapacityProvider)) { return false; } CapacityProvider other = (CapacityProvider) obj; return Objects.equals(capacityProviderArn(), other.capacityProviderArn()) && Objects.equals(name(), other.name()) && Objects.equals(statusAsString(), other.statusAsString()) && Objects.equals(autoScalingGroupProvider(), other.autoScalingGroupProvider()) && Objects.equals(updateStatusAsString(), other.updateStatusAsString()) && Objects.equals(updateStatusReason(), other.updateStatusReason()) && hasTags() == other.hasTags() && Objects.equals(tags(), other.tags()); } /** * 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. */ @Override public final String toString() { return ToString.builder("CapacityProvider").add("CapacityProviderArn", capacityProviderArn()).add("Name", name()) .add("Status", statusAsString()).add("AutoScalingGroupProvider", autoScalingGroupProvider()) .add("UpdateStatus", updateStatusAsString()).add("UpdateStatusReason", updateStatusReason()) .add("Tags", hasTags() ? tags() : null).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "capacityProviderArn": return Optional.ofNullable(clazz.cast(capacityProviderArn())); case "name": return Optional.ofNullable(clazz.cast(name())); case "status": return Optional.ofNullable(clazz.cast(statusAsString())); case "autoScalingGroupProvider": return Optional.ofNullable(clazz.cast(autoScalingGroupProvider())); case "updateStatus": return Optional.ofNullable(clazz.cast(updateStatusAsString())); case "updateStatusReason": return Optional.ofNullable(clazz.cast(updateStatusReason())); case "tags": return Optional.ofNullable(clazz.cast(tags())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } @Override public final Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } private static Map> memberNameToFieldInitializer() { Map> map = new HashMap<>(); map.put("capacityProviderArn", CAPACITY_PROVIDER_ARN_FIELD); map.put("name", NAME_FIELD); map.put("status", STATUS_FIELD); map.put("autoScalingGroupProvider", AUTO_SCALING_GROUP_PROVIDER_FIELD); map.put("updateStatus", UPDATE_STATUS_FIELD); map.put("updateStatusReason", UPDATE_STATUS_REASON_FIELD); map.put("tags", TAGS_FIELD); return Collections.unmodifiableMap(map); } private static Function getter(Function g) { return obj -> g.apply((CapacityProvider) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder { /** *

    * The Amazon Resource Name (ARN) that identifies the capacity provider. *

    * * @param capacityProviderArn * The Amazon Resource Name (ARN) that identifies the capacity provider. * @return Returns a reference to this object so that method calls can be chained together. */ Builder capacityProviderArn(String capacityProviderArn); /** *

    * The name of the capacity provider. *

    * * @param name * The name of the capacity provider. * @return Returns a reference to this object so that method calls can be chained together. */ Builder name(String name); /** *

    * The current status of the capacity provider. Only capacity providers in an ACTIVE state can be * used in a cluster. When a capacity provider is successfully deleted, it has an INACTIVE status. *

    * * @param status * The current status of the capacity provider. Only capacity providers in an ACTIVE state * can be used in a cluster. When a capacity provider is successfully deleted, it has an * INACTIVE status. * @see CapacityProviderStatus * @return Returns a reference to this object so that method calls can be chained together. * @see CapacityProviderStatus */ Builder status(String status); /** *

    * The current status of the capacity provider. Only capacity providers in an ACTIVE state can be * used in a cluster. When a capacity provider is successfully deleted, it has an INACTIVE status. *

    * * @param status * The current status of the capacity provider. Only capacity providers in an ACTIVE state * can be used in a cluster. When a capacity provider is successfully deleted, it has an * INACTIVE status. * @see CapacityProviderStatus * @return Returns a reference to this object so that method calls can be chained together. * @see CapacityProviderStatus */ Builder status(CapacityProviderStatus status); /** *

    * The Auto Scaling group settings for the capacity provider. *

    * * @param autoScalingGroupProvider * The Auto Scaling group settings for the capacity provider. * @return Returns a reference to this object so that method calls can be chained together. */ Builder autoScalingGroupProvider(AutoScalingGroupProvider autoScalingGroupProvider); /** *

    * The Auto Scaling group settings for the capacity provider. *

    * This is a convenience method that creates an instance of the {@link AutoScalingGroupProvider.Builder} * avoiding the need to create one manually via {@link AutoScalingGroupProvider#builder()}. * *

    * When the {@link Consumer} completes, {@link AutoScalingGroupProvider.Builder#build()} is called immediately * and its result is passed to {@link #autoScalingGroupProvider(AutoScalingGroupProvider)}. * * @param autoScalingGroupProvider * a consumer that will call methods on {@link AutoScalingGroupProvider.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #autoScalingGroupProvider(AutoScalingGroupProvider) */ default Builder autoScalingGroupProvider(Consumer autoScalingGroupProvider) { return autoScalingGroupProvider(AutoScalingGroupProvider.builder().applyMutation(autoScalingGroupProvider).build()); } /** *

    * The update status of the capacity provider. The following are the possible states that is returned. *

    *
    *
    DELETE_IN_PROGRESS
    *
    *

    * The capacity provider is in the process of being deleted. *

    *
    *
    DELETE_COMPLETE
    *
    *

    * The capacity provider was successfully deleted and has an INACTIVE status. *

    *
    *
    DELETE_FAILED
    *
    *

    * The capacity provider can't be deleted. The update status reason provides further details about why the * delete failed. *

    *
    *
    * * @param updateStatus * The update status of the capacity provider. The following are the possible states that is * returned.

    *
    *
    DELETE_IN_PROGRESS
    *
    *

    * The capacity provider is in the process of being deleted. *

    *
    *
    DELETE_COMPLETE
    *
    *

    * The capacity provider was successfully deleted and has an INACTIVE status. *

    *
    *
    DELETE_FAILED
    *
    *

    * The capacity provider can't be deleted. The update status reason provides further details about why * the delete failed. *

    *
    * @see CapacityProviderUpdateStatus * @return Returns a reference to this object so that method calls can be chained together. * @see CapacityProviderUpdateStatus */ Builder updateStatus(String updateStatus); /** *

    * The update status of the capacity provider. The following are the possible states that is returned. *

    *
    *
    DELETE_IN_PROGRESS
    *
    *

    * The capacity provider is in the process of being deleted. *

    *
    *
    DELETE_COMPLETE
    *
    *

    * The capacity provider was successfully deleted and has an INACTIVE status. *

    *
    *
    DELETE_FAILED
    *
    *

    * The capacity provider can't be deleted. The update status reason provides further details about why the * delete failed. *

    *
    *
    * * @param updateStatus * The update status of the capacity provider. The following are the possible states that is * returned.

    *
    *
    DELETE_IN_PROGRESS
    *
    *

    * The capacity provider is in the process of being deleted. *

    *
    *
    DELETE_COMPLETE
    *
    *

    * The capacity provider was successfully deleted and has an INACTIVE status. *

    *
    *
    DELETE_FAILED
    *
    *

    * The capacity provider can't be deleted. The update status reason provides further details about why * the delete failed. *

    *
    * @see CapacityProviderUpdateStatus * @return Returns a reference to this object so that method calls can be chained together. * @see CapacityProviderUpdateStatus */ Builder updateStatus(CapacityProviderUpdateStatus updateStatus); /** *

    * The update status reason. This provides further details about the update status for the capacity provider. *

    * * @param updateStatusReason * The update status reason. This provides further details about the update status for the capacity * provider. * @return Returns a reference to this object so that method calls can be chained together. */ Builder updateStatusReason(String updateStatusReason); /** *

    * The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag * consists of a key and an optional value. You define both. *

    *

    * The following basic restrictions apply to tags: *

    *
      *
    • *

      * Maximum number of tags per resource - 50 *

      *
    • *
    • *

      * For each resource, each tag key must be unique, and each tag key can have only one value. *

      *
    • *
    • *

      * Maximum key length - 128 Unicode characters in UTF-8 *

      *
    • *
    • *

      * Maximum value length - 256 Unicode characters in UTF-8 *

      *
    • *
    • *

      * If your tagging schema is used across multiple services and resources, remember that other services may have * restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @. *

      *
    • *
    • *

      * Tag keys and values are case-sensitive. *

      *
    • *
    • *

      * Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix * for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys * or values with this prefix. Tags with this prefix do not count against your tags per resource limit. *

      *
    • *
    * * @param tags * The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag * consists of a key and an optional value. You define both.

    *

    * The following basic restrictions apply to tags: *

    *
      *
    • *

      * Maximum number of tags per resource - 50 *

      *
    • *
    • *

      * For each resource, each tag key must be unique, and each tag key can have only one value. *

      *
    • *
    • *

      * Maximum key length - 128 Unicode characters in UTF-8 *

      *
    • *
    • *

      * Maximum value length - 256 Unicode characters in UTF-8 *

      *
    • *
    • *

      * If your tagging schema is used across multiple services and resources, remember that other services * may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and * spaces representable in UTF-8, and the following characters: + - = . _ : / @. *

      *
    • *
    • *

      * Tag keys and values are case-sensitive. *

      *
    • *
    • *

      * Do not use aws:, AWS:, or any upper or lowercase combination of such as a * prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or * delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per * resource limit. *

      *
    • * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Collection tags); /** *

      * The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag * consists of a key and an optional value. You define both. *

      *

      * The following basic restrictions apply to tags: *

      *
        *
      • *

        * Maximum number of tags per resource - 50 *

        *
      • *
      • *

        * For each resource, each tag key must be unique, and each tag key can have only one value. *

        *
      • *
      • *

        * Maximum key length - 128 Unicode characters in UTF-8 *

        *
      • *
      • *

        * Maximum value length - 256 Unicode characters in UTF-8 *

        *
      • *
      • *

        * If your tagging schema is used across multiple services and resources, remember that other services may have * restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @. *

        *
      • *
      • *

        * Tag keys and values are case-sensitive. *

        *
      • *
      • *

        * Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix * for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys * or values with this prefix. Tags with this prefix do not count against your tags per resource limit. *

        *
      • *
      * * @param tags * The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag * consists of a key and an optional value. You define both.

      *

      * The following basic restrictions apply to tags: *

      *
        *
      • *

        * Maximum number of tags per resource - 50 *

        *
      • *
      • *

        * For each resource, each tag key must be unique, and each tag key can have only one value. *

        *
      • *
      • *

        * Maximum key length - 128 Unicode characters in UTF-8 *

        *
      • *
      • *

        * Maximum value length - 256 Unicode characters in UTF-8 *

        *
      • *
      • *

        * If your tagging schema is used across multiple services and resources, remember that other services * may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and * spaces representable in UTF-8, and the following characters: + - = . _ : / @. *

        *
      • *
      • *

        * Tag keys and values are case-sensitive. *

        *
      • *
      • *

        * Do not use aws:, AWS:, or any upper or lowercase combination of such as a * prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or * delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per * resource limit. *

        *
      • * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Tag... tags); /** *

        * The metadata that you apply to the capacity provider to help you categorize and organize it. Each tag * consists of a key and an optional value. You define both. *

        *

        * The following basic restrictions apply to tags: *

        *
          *
        • *

          * Maximum number of tags per resource - 50 *

          *
        • *
        • *

          * For each resource, each tag key must be unique, and each tag key can have only one value. *

          *
        • *
        • *

          * Maximum key length - 128 Unicode characters in UTF-8 *

          *
        • *
        • *

          * Maximum value length - 256 Unicode characters in UTF-8 *

          *
        • *
        • *

          * If your tagging schema is used across multiple services and resources, remember that other services may have * restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces * representable in UTF-8, and the following characters: + - = . _ : / @. *

          *
        • *
        • *

          * Tag keys and values are case-sensitive. *

          *
        • *
        • *

          * Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix * for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys * or values with this prefix. Tags with this prefix do not count against your tags per resource limit. *

          *
        • *
        * This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.ecs.model.Tag.Builder} avoiding the need to create one manually via * {@link software.amazon.awssdk.services.ecs.model.Tag#builder()}. * *

        * When the {@link Consumer} completes, {@link software.amazon.awssdk.services.ecs.model.Tag.Builder#build()} is * called immediately and its result is passed to {@link #tags(List)}. * * @param tags * a consumer that will call methods on {@link software.amazon.awssdk.services.ecs.model.Tag.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #tags(java.util.Collection) */ Builder tags(Consumer... tags); } static final class BuilderImpl implements Builder { private String capacityProviderArn; private String name; private String status; private AutoScalingGroupProvider autoScalingGroupProvider; private String updateStatus; private String updateStatusReason; private List tags = DefaultSdkAutoConstructList.getInstance(); private BuilderImpl() { } private BuilderImpl(CapacityProvider model) { capacityProviderArn(model.capacityProviderArn); name(model.name); status(model.status); autoScalingGroupProvider(model.autoScalingGroupProvider); updateStatus(model.updateStatus); updateStatusReason(model.updateStatusReason); tags(model.tags); } public final String getCapacityProviderArn() { return capacityProviderArn; } public final void setCapacityProviderArn(String capacityProviderArn) { this.capacityProviderArn = capacityProviderArn; } @Override public final Builder capacityProviderArn(String capacityProviderArn) { this.capacityProviderArn = capacityProviderArn; return this; } public final String getName() { return name; } public final void setName(String name) { this.name = name; } @Override public final Builder name(String name) { this.name = name; return this; } public final String getStatus() { return status; } public final void setStatus(String status) { this.status = status; } @Override public final Builder status(String status) { this.status = status; return this; } @Override public final Builder status(CapacityProviderStatus status) { this.status(status == null ? null : status.toString()); return this; } public final AutoScalingGroupProvider.Builder getAutoScalingGroupProvider() { return autoScalingGroupProvider != null ? autoScalingGroupProvider.toBuilder() : null; } public final void setAutoScalingGroupProvider(AutoScalingGroupProvider.BuilderImpl autoScalingGroupProvider) { this.autoScalingGroupProvider = autoScalingGroupProvider != null ? autoScalingGroupProvider.build() : null; } @Override public final Builder autoScalingGroupProvider(AutoScalingGroupProvider autoScalingGroupProvider) { this.autoScalingGroupProvider = autoScalingGroupProvider; return this; } public final String getUpdateStatus() { return updateStatus; } public final void setUpdateStatus(String updateStatus) { this.updateStatus = updateStatus; } @Override public final Builder updateStatus(String updateStatus) { this.updateStatus = updateStatus; return this; } @Override public final Builder updateStatus(CapacityProviderUpdateStatus updateStatus) { this.updateStatus(updateStatus == null ? null : updateStatus.toString()); return this; } public final String getUpdateStatusReason() { return updateStatusReason; } public final void setUpdateStatusReason(String updateStatusReason) { this.updateStatusReason = updateStatusReason; } @Override public final Builder updateStatusReason(String updateStatusReason) { this.updateStatusReason = updateStatusReason; return this; } public final List getTags() { List result = TagsCopier.copyToBuilder(this.tags); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setTags(Collection tags) { this.tags = TagsCopier.copyFromBuilder(tags); } @Override public final Builder tags(Collection tags) { this.tags = TagsCopier.copy(tags); return this; } @Override @SafeVarargs public final Builder tags(Tag... tags) { tags(Arrays.asList(tags)); return this; } @Override @SafeVarargs public final Builder tags(Consumer... tags) { tags(Stream.of(tags).map(c -> Tag.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } @Override public CapacityProvider build() { return new CapacityProvider(this); } @Override public List> sdkFields() { return SDK_FIELDS; } @Override public Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy