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

software.amazon.awssdk.services.cloudformation.model.CreateStackSetRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS CloudFormation module holds the client classes that are used for communicating with AWS CloudFormation Service

There is a newer version: 2.29.39
Show newest version
/*
 * Copyright 2014-2019 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.cloudformation.model;

import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
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.awscore.AwsRequestOverrideConfiguration;
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.DefaultValueTrait;
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.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 */
@Generated("software.amazon.awssdk:codegen")
public final class CreateStackSetRequest extends CloudFormationRequest implements
        ToCopyableBuilder {
    private static final SdkField STACK_SET_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .getter(getter(CreateStackSetRequest::stackSetName)).setter(setter(Builder::stackSetName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("StackSetName").build()).build();

    private static final SdkField DESCRIPTION_FIELD = SdkField. builder(MarshallingType.STRING)
            .getter(getter(CreateStackSetRequest::description)).setter(setter(Builder::description))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Description").build()).build();

    private static final SdkField TEMPLATE_BODY_FIELD = SdkField. builder(MarshallingType.STRING)
            .getter(getter(CreateStackSetRequest::templateBody)).setter(setter(Builder::templateBody))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("TemplateBody").build()).build();

    private static final SdkField TEMPLATE_URL_FIELD = SdkField. builder(MarshallingType.STRING)
            .getter(getter(CreateStackSetRequest::templateURL)).setter(setter(Builder::templateURL))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("TemplateURL").build()).build();

    private static final SdkField> PARAMETERS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .getter(getter(CreateStackSetRequest::parameters))
            .setter(setter(Builder::parameters))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Parameters").build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(Parameter::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final SdkField> CAPABILITIES_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .getter(getter(CreateStackSetRequest::capabilitiesAsStrings))
            .setter(setter(Builder::capabilitiesWithStrings))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Capabilities").build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.STRING)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final SdkField> TAGS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .getter(getter(CreateStackSetRequest::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 SdkField ADMINISTRATION_ROLE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
            .getter(getter(CreateStackSetRequest::administrationRoleARN)).setter(setter(Builder::administrationRoleARN))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AdministrationRoleARN").build())
            .build();

    private static final SdkField EXECUTION_ROLE_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .getter(getter(CreateStackSetRequest::executionRoleName)).setter(setter(Builder::executionRoleName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ExecutionRoleName").build()).build();

    private static final SdkField CLIENT_REQUEST_TOKEN_FIELD = SdkField
            . builder(MarshallingType.STRING)
            .getter(getter(CreateStackSetRequest::clientRequestToken))
            .setter(setter(Builder::clientRequestToken))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClientRequestToken").build(),
                    DefaultValueTrait.idempotencyToken()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(STACK_SET_NAME_FIELD,
            DESCRIPTION_FIELD, TEMPLATE_BODY_FIELD, TEMPLATE_URL_FIELD, PARAMETERS_FIELD, CAPABILITIES_FIELD, TAGS_FIELD,
            ADMINISTRATION_ROLE_ARN_FIELD, EXECUTION_ROLE_NAME_FIELD, CLIENT_REQUEST_TOKEN_FIELD));

    private final String stackSetName;

    private final String description;

    private final String templateBody;

    private final String templateURL;

    private final List parameters;

    private final List capabilities;

    private final List tags;

    private final String administrationRoleARN;

    private final String executionRoleName;

    private final String clientRequestToken;

    private CreateStackSetRequest(BuilderImpl builder) {
        super(builder);
        this.stackSetName = builder.stackSetName;
        this.description = builder.description;
        this.templateBody = builder.templateBody;
        this.templateURL = builder.templateURL;
        this.parameters = builder.parameters;
        this.capabilities = builder.capabilities;
        this.tags = builder.tags;
        this.administrationRoleARN = builder.administrationRoleARN;
        this.executionRoleName = builder.executionRoleName;
        this.clientRequestToken = builder.clientRequestToken;
    }

    /**
     * 

* The name to associate with the stack set. The name must be unique in the region where you create your stack set. *

* *

* A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters. *

*
* * @return The name to associate with the stack set. The name must be unique in the region where you create your * stack set.

*

* A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters. *

*/ public String stackSetName() { return stackSetName; } /** *

* A description of the stack set. You can use the description to identify the stack set's purpose or other * important information. *

* * @return A description of the stack set. You can use the description to identify the stack set's purpose or other * important information. */ public String description() { return description; } /** *

* The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 * bytes. For more information, see Template Anatomy * in the AWS CloudFormation User Guide. *

*

* Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. *

* * @return The structure that contains the template body, with a minimum length of 1 byte and a maximum length of * 51,200 bytes. For more information, see Template * Anatomy in the AWS CloudFormation User Guide.

*

* Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. */ public String templateBody() { return templateBody; } /** *

* The location of the file that contains the template body. The URL must point to a template (maximum size: 460,800 * bytes) that's located in an Amazon S3 bucket. For more information, see Template Anatomy * in the AWS CloudFormation User Guide. *

*

* Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. *

* * @return The location of the file that contains the template body. The URL must point to a template (maximum size: * 460,800 bytes) that's located in an Amazon S3 bucket. For more information, see Template * Anatomy in the AWS CloudFormation User Guide.

*

* Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. */ public String templateURL() { return templateURL; } /** *

* The input parameters for the stack set template. *

*

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

* * @return The input parameters for the stack set template. */ public List parameters() { return parameters; } /** *

* In some cases, you must explicity acknowledge that your stack set template contains certain capabilities in order * for AWS CloudFormation to create the stack set and related stack instances. *

*
    *
  • *

    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

    *

    * Some stack templates might include resources that can affect permissions in your AWS account; for example, by * creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly * acknowledge this by specifying one of these capabilities. *

    *

    * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

    *
      *
    • *

      * If you have IAM resources, you can specify either capability. *

      *
    • *
    • *

      * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. *

      *
    • *
    • *

      * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

      *
    • *
    *

    * If your stack template contains these resources, we recommend that you review all permissions associated with * them and edit their permissions if necessary. *

    * *

    * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

    *
  • *
  • *

    * CAPABILITY_AUTO_EXPAND *

    *

    * Some templates contain macros. If your stack template contains one or more macros, and you choose to create a * stack directly from the processed template, without first reviewing the resulting changes in a change set, you * must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

    * *

    * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this * capability, if you include a macro in your template the stack set operation will fail. *

    *
  • *
*

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

* * @return In some cases, you must explicity acknowledge that your stack set template contains certain capabilities * in order for AWS CloudFormation to create the stack set and related stack instances.

*
    *
  • *

    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

    *

    * Some stack templates might include resources that can affect permissions in your AWS account; for * example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must * explicitly acknowledge this by specifying one of these capabilities. *

    *

    * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

    *
      *
    • *

      * If you have IAM resources, you can specify either capability. *

      *
    • *
    • *

      * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. *

      *
    • *
    • *

      * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

      *
    • *
    *

    * If your stack template contains these resources, we recommend that you review all permissions associated * with them and edit their permissions if necessary. *

    * *

    * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

    *
  • *
  • *

    * CAPABILITY_AUTO_EXPAND *

    *

    * Some templates contain macros. If your stack template contains one or more macros, and you choose to * create a stack directly from the processed template, without first reviewing the resulting changes in a * change set, you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

    * *

    * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this * capability, if you include a macro in your template the stack set operation will fail. *

    *
  • */ public List capabilities() { return CapabilitiesCopier.copyStringToEnum(capabilities); } /** *

    * In some cases, you must explicity acknowledge that your stack set template contains certain capabilities in order * for AWS CloudFormation to create the stack set and related stack instances. *

    *
      *
    • *

      * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

      *

      * Some stack templates might include resources that can affect permissions in your AWS account; for example, by * creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly * acknowledge this by specifying one of these capabilities. *

      *

      * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

      *
        *
      • *

        * If you have IAM resources, you can specify either capability. *

        *
      • *
      • *

        * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. *

        *
      • *
      • *

        * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

        *
      • *
      *

      * If your stack template contains these resources, we recommend that you review all permissions associated with * them and edit their permissions if necessary. *

      * *

      * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

      *
    • *
    • *

      * CAPABILITY_AUTO_EXPAND *

      *

      * Some templates contain macros. If your stack template contains one or more macros, and you choose to create a * stack directly from the processed template, without first reviewing the resulting changes in a change set, you * must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

      * *

      * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this * capability, if you include a macro in your template the stack set operation will fail. *

      *
    • *
    *

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

    * * @return In some cases, you must explicity acknowledge that your stack set template contains certain capabilities * in order for AWS CloudFormation to create the stack set and related stack instances.

    *
      *
    • *

      * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

      *

      * Some stack templates might include resources that can affect permissions in your AWS account; for * example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must * explicitly acknowledge this by specifying one of these capabilities. *

      *

      * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

      *
        *
      • *

        * If you have IAM resources, you can specify either capability. *

        *
      • *
      • *

        * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. *

        *
      • *
      • *

        * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

        *
      • *
      *

      * If your stack template contains these resources, we recommend that you review all permissions associated * with them and edit their permissions if necessary. *

      * *

      * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

      *
    • *
    • *

      * CAPABILITY_AUTO_EXPAND *

      *

      * Some templates contain macros. If your stack template contains one or more macros, and you choose to * create a stack directly from the processed template, without first reviewing the resulting changes in a * change set, you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

      * *

      * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this * capability, if you include a macro in your template the stack set operation will fail. *

      *
    • */ public List capabilitiesAsStrings() { return capabilities; } /** *

      * The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also * propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can be * specified. *

      *

      * If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see if you have * the required IAM permission to tag resources. If you don't, the entire CreateStackSet action fails * with an access denied error, and the stack set is not created. *

      *

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

      * * @return The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation * also propagates these tags to supported resources that are created in the stacks. A maximum number of 50 * tags can be specified.

      *

      * If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see if * you have the required IAM permission to tag resources. If you don't, the entire * CreateStackSet action fails with an access denied error, and the stack set is * not created. */ public List tags() { return tags; } /** *

      * The Amazon Resource Number (ARN) of the IAM role to use to create this stack set. *

      *

      * Specify an IAM role only if you are using customized administrator roles to control which users or groups can * manage specific stack sets within the same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the AWS CloudFormation User Guide. *

      * * @return The Amazon Resource Number (ARN) of the IAM role to use to create this stack set.

      *

      * Specify an IAM role only if you are using customized administrator roles to control which users or groups * can manage specific stack sets within the same administrator account. For more information, see Prerequisites: Granting Permissions for Stack Set Operations in the AWS CloudFormation User * Guide. */ public String administrationRoleARN() { return administrationRoleARN; } /** *

      * The name of the IAM execution role to use to create the stack set. If you do not specify an execution role, AWS * CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set operation. *

      *

      * Specify an IAM role only if you are using customized execution roles to control which stack resources users and * groups can include in their stack sets. *

      * * @return The name of the IAM execution role to use to create the stack set. If you do not specify an execution * role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack * set operation.

      *

      * Specify an IAM role only if you are using customized execution roles to control which stack resources * users and groups can include in their stack sets. */ public String executionRoleName() { return executionRoleName; } /** *

      * A unique identifier for this CreateStackSet request. Specify this token if you plan to retry * requests so that AWS CloudFormation knows that you're not attempting to create another stack set with the same * name. You might retry CreateStackSet requests to ensure that AWS CloudFormation successfully * received them. *

      *

      * If you don't specify an operation ID, the SDK generates one automatically. *

      * * @return A unique identifier for this CreateStackSet request. Specify this token if you plan to retry * requests so that AWS CloudFormation knows that you're not attempting to create another stack set with the * same name. You might retry CreateStackSet requests to ensure that AWS CloudFormation * successfully received them.

      *

      * If you don't specify an operation ID, the SDK generates one automatically. */ public String clientRequestToken() { return clientRequestToken; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(stackSetName()); hashCode = 31 * hashCode + Objects.hashCode(description()); hashCode = 31 * hashCode + Objects.hashCode(templateBody()); hashCode = 31 * hashCode + Objects.hashCode(templateURL()); hashCode = 31 * hashCode + Objects.hashCode(parameters()); hashCode = 31 * hashCode + Objects.hashCode(capabilitiesAsStrings()); hashCode = 31 * hashCode + Objects.hashCode(tags()); hashCode = 31 * hashCode + Objects.hashCode(administrationRoleARN()); hashCode = 31 * hashCode + Objects.hashCode(executionRoleName()); hashCode = 31 * hashCode + Objects.hashCode(clientRequestToken()); return hashCode; } @Override public boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof CreateStackSetRequest)) { return false; } CreateStackSetRequest other = (CreateStackSetRequest) obj; return Objects.equals(stackSetName(), other.stackSetName()) && Objects.equals(description(), other.description()) && Objects.equals(templateBody(), other.templateBody()) && Objects.equals(templateURL(), other.templateURL()) && Objects.equals(parameters(), other.parameters()) && Objects.equals(capabilitiesAsStrings(), other.capabilitiesAsStrings()) && Objects.equals(tags(), other.tags()) && Objects.equals(administrationRoleARN(), other.administrationRoleARN()) && Objects.equals(executionRoleName(), other.executionRoleName()) && Objects.equals(clientRequestToken(), other.clientRequestToken()); } /** * 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 String toString() { return ToString.builder("CreateStackSetRequest").add("StackSetName", stackSetName()).add("Description", description()) .add("TemplateBody", templateBody()).add("TemplateURL", templateURL()).add("Parameters", parameters()) .add("Capabilities", capabilitiesAsStrings()).add("Tags", tags()) .add("AdministrationRoleARN", administrationRoleARN()).add("ExecutionRoleName", executionRoleName()) .add("ClientRequestToken", clientRequestToken()).build(); } public Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "StackSetName": return Optional.ofNullable(clazz.cast(stackSetName())); case "Description": return Optional.ofNullable(clazz.cast(description())); case "TemplateBody": return Optional.ofNullable(clazz.cast(templateBody())); case "TemplateURL": return Optional.ofNullable(clazz.cast(templateURL())); case "Parameters": return Optional.ofNullable(clazz.cast(parameters())); case "Capabilities": return Optional.ofNullable(clazz.cast(capabilitiesAsStrings())); case "Tags": return Optional.ofNullable(clazz.cast(tags())); case "AdministrationRoleARN": return Optional.ofNullable(clazz.cast(administrationRoleARN())); case "ExecutionRoleName": return Optional.ofNullable(clazz.cast(executionRoleName())); case "ClientRequestToken": return Optional.ofNullable(clazz.cast(clientRequestToken())); default: return Optional.empty(); } } @Override public List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((CreateStackSetRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends CloudFormationRequest.Builder, SdkPojo, CopyableBuilder { /** *

      * The name to associate with the stack set. The name must be unique in the region where you create your stack * set. *

      * *

      * A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters. *

      *
      * * @param stackSetName * The name to associate with the stack set. The name must be unique in the region where you create your * stack set.

      *

      * A stack name can contain only alphanumeric characters (case-sensitive) and hyphens. It must start with * an alphabetic character and can't be longer than 128 characters. *

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

      * A description of the stack set. You can use the description to identify the stack set's purpose or other * important information. *

      * * @param description * A description of the stack set. You can use the description to identify the stack set's purpose or * other important information. * @return Returns a reference to this object so that method calls can be chained together. */ Builder description(String description); /** *

      * The structure that contains the template body, with a minimum length of 1 byte and a maximum length of 51,200 * bytes. For more information, see Template * Anatomy in the AWS CloudFormation User Guide. *

      *

      * Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. *

      * * @param templateBody * The structure that contains the template body, with a minimum length of 1 byte and a maximum length of * 51,200 bytes. For more information, see Template * Anatomy in the AWS CloudFormation User Guide.

      *

      * Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. * @return Returns a reference to this object so that method calls can be chained together. */ Builder templateBody(String templateBody); /** *

      * The location of the file that contains the template body. The URL must point to a template (maximum size: * 460,800 bytes) that's located in an Amazon S3 bucket. For more information, see Template * Anatomy in the AWS CloudFormation User Guide. *

      *

      * Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. *

      * * @param templateURL * The location of the file that contains the template body. The URL must point to a template (maximum * size: 460,800 bytes) that's located in an Amazon S3 bucket. For more information, see Template * Anatomy in the AWS CloudFormation User Guide.

      *

      * Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both. * @return Returns a reference to this object so that method calls can be chained together. */ Builder templateURL(String templateURL); /** *

      * The input parameters for the stack set template. *

      * * @param parameters * The input parameters for the stack set template. * @return Returns a reference to this object so that method calls can be chained together. */ Builder parameters(Collection parameters); /** *

      * The input parameters for the stack set template. *

      * * @param parameters * The input parameters for the stack set template. * @return Returns a reference to this object so that method calls can be chained together. */ Builder parameters(Parameter... parameters); /** *

      * The input parameters for the stack set template. *

      * This is a convenience that creates an instance of the {@link List.Builder} avoiding the need to * create one manually via {@link List#builder()}. * * When the {@link Consumer} completes, {@link List.Builder#build()} is called immediately and its * result is passed to {@link #parameters(List)}. * * @param parameters * a consumer that will call methods on {@link List.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #parameters(List) */ Builder parameters(Consumer... parameters); /** *

      * In some cases, you must explicity acknowledge that your stack set template contains certain capabilities in * order for AWS CloudFormation to create the stack set and related stack instances. *

      *
        *
      • *

        * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

        *

        * Some stack templates might include resources that can affect permissions in your AWS account; for example, by * creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly * acknowledge this by specifying one of these capabilities. *

        *

        * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

        *
          *
        • *

          * If you have IAM resources, you can specify either capability. *

          *
        • *
        • *

          * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. *

          *
        • *
        • *

          * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

          *
        • *
        *

        * If your stack template contains these resources, we recommend that you review all permissions associated with * them and edit their permissions if necessary. *

        * *

        * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

        *
      • *
      • *

        * CAPABILITY_AUTO_EXPAND *

        *

        * Some templates contain macros. If your stack template contains one or more macros, and you choose to create a * stack directly from the processed template, without first reviewing the resulting changes in a change set, * you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

        * *

        * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this * capability, if you include a macro in your template the stack set operation will fail. *

        *
      • *
      * * @param capabilities * In some cases, you must explicity acknowledge that your stack set template contains certain * capabilities in order for AWS CloudFormation to create the stack set and related stack instances.

      *
        *
      • *

        * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

        *

        * Some stack templates might include resources that can affect permissions in your AWS account; for * example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you * must explicitly acknowledge this by specifying one of these capabilities. *

        *

        * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

        *
          *
        • *

          * If you have IAM resources, you can specify either capability. *

          *
        • *
        • *

          * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM * . *

          *
        • *
        • *

          * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

          *
        • *
        *

        * If your stack template contains these resources, we recommend that you review all permissions * associated with them and edit their permissions if necessary. *

        * *

        * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

        *
      • *
      • *

        * CAPABILITY_AUTO_EXPAND *

        *

        * Some templates contain macros. If your stack template contains one or more macros, and you choose to * create a stack directly from the processed template, without first reviewing the resulting changes in * a change set, you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

        * *

        * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify * this capability, if you include a macro in your template the stack set operation will fail. *

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

        * In some cases, you must explicity acknowledge that your stack set template contains certain capabilities in * order for AWS CloudFormation to create the stack set and related stack instances. *

        *
          *
        • *

          * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

          *

          * Some stack templates might include resources that can affect permissions in your AWS account; for example, by * creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly * acknowledge this by specifying one of these capabilities. *

          *

          * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

          *
            *
          • *

            * If you have IAM resources, you can specify either capability. *

            *
          • *
          • *

            * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. *

            *
          • *
          • *

            * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

            *
          • *
          *

          * If your stack template contains these resources, we recommend that you review all permissions associated with * them and edit their permissions if necessary. *

          * *

          * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

          *
        • *
        • *

          * CAPABILITY_AUTO_EXPAND *

          *

          * Some templates contain macros. If your stack template contains one or more macros, and you choose to create a * stack directly from the processed template, without first reviewing the resulting changes in a change set, * you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

          * *

          * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this * capability, if you include a macro in your template the stack set operation will fail. *

          *
        • *
        * * @param capabilities * In some cases, you must explicity acknowledge that your stack set template contains certain * capabilities in order for AWS CloudFormation to create the stack set and related stack instances.

        *
          *
        • *

          * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

          *

          * Some stack templates might include resources that can affect permissions in your AWS account; for * example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you * must explicitly acknowledge this by specifying one of these capabilities. *

          *

          * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

          *
            *
          • *

            * If you have IAM resources, you can specify either capability. *

            *
          • *
          • *

            * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM * . *

            *
          • *
          • *

            * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

            *
          • *
          *

          * If your stack template contains these resources, we recommend that you review all permissions * associated with them and edit their permissions if necessary. *

          * *

          * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

          *
        • *
        • *

          * CAPABILITY_AUTO_EXPAND *

          *

          * Some templates contain macros. If your stack template contains one or more macros, and you choose to * create a stack directly from the processed template, without first reviewing the resulting changes in * a change set, you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

          * *

          * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify * this capability, if you include a macro in your template the stack set operation will fail. *

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

          * In some cases, you must explicity acknowledge that your stack set template contains certain capabilities in * order for AWS CloudFormation to create the stack set and related stack instances. *

          *
            *
          • *

            * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

            *

            * Some stack templates might include resources that can affect permissions in your AWS account; for example, by * creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly * acknowledge this by specifying one of these capabilities. *

            *

            * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

            *
              *
            • *

              * If you have IAM resources, you can specify either capability. *

              *
            • *
            • *

              * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. *

              *
            • *
            • *

              * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

              *
            • *
            *

            * If your stack template contains these resources, we recommend that you review all permissions associated with * them and edit their permissions if necessary. *

            * *

            * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

            *
          • *
          • *

            * CAPABILITY_AUTO_EXPAND *

            *

            * Some templates contain macros. If your stack template contains one or more macros, and you choose to create a * stack directly from the processed template, without first reviewing the resulting changes in a change set, * you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

            * *

            * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this * capability, if you include a macro in your template the stack set operation will fail. *

            *
          • *
          * * @param capabilities * In some cases, you must explicity acknowledge that your stack set template contains certain * capabilities in order for AWS CloudFormation to create the stack set and related stack instances.

          *
            *
          • *

            * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

            *

            * Some stack templates might include resources that can affect permissions in your AWS account; for * example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you * must explicitly acknowledge this by specifying one of these capabilities. *

            *

            * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

            *
              *
            • *

              * If you have IAM resources, you can specify either capability. *

              *
            • *
            • *

              * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM * . *

              *
            • *
            • *

              * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

              *
            • *
            *

            * If your stack template contains these resources, we recommend that you review all permissions * associated with them and edit their permissions if necessary. *

            * *

            * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

            *
          • *
          • *

            * CAPABILITY_AUTO_EXPAND *

            *

            * Some templates contain macros. If your stack template contains one or more macros, and you choose to * create a stack directly from the processed template, without first reviewing the resulting changes in * a change set, you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

            * *

            * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify * this capability, if you include a macro in your template the stack set operation will fail. *

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

            * In some cases, you must explicity acknowledge that your stack set template contains certain capabilities in * order for AWS CloudFormation to create the stack set and related stack instances. *

            *
              *
            • *

              * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

              *

              * Some stack templates might include resources that can affect permissions in your AWS account; for example, by * creating new AWS Identity and Access Management (IAM) users. For those stack sets, you must explicitly * acknowledge this by specifying one of these capabilities. *

              *

              * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

              *
                *
              • *

                * If you have IAM resources, you can specify either capability. *

                *
              • *
              • *

                * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM. *

                *
              • *
              • *

                * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

                *
              • *
              *

              * If your stack template contains these resources, we recommend that you review all permissions associated with * them and edit their permissions if necessary. *

              * *

              * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

              *
            • *
            • *

              * CAPABILITY_AUTO_EXPAND *

              *

              * Some templates contain macros. If your stack template contains one or more macros, and you choose to create a * stack directly from the processed template, without first reviewing the resulting changes in a change set, * you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

              * *

              * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify this * capability, if you include a macro in your template the stack set operation will fail. *

              *
            • *
            * * @param capabilities * In some cases, you must explicity acknowledge that your stack set template contains certain * capabilities in order for AWS CloudFormation to create the stack set and related stack instances.

            *
              *
            • *

              * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

              *

              * Some stack templates might include resources that can affect permissions in your AWS account; for * example, by creating new AWS Identity and Access Management (IAM) users. For those stack sets, you * must explicitly acknowledge this by specifying one of these capabilities. *

              *

              * The following IAM resources require you to specify either the CAPABILITY_IAM or * CAPABILITY_NAMED_IAM capability. *

              *
                *
              • *

                * If you have IAM resources, you can specify either capability. *

                *
              • *
              • *

                * If you have IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM * . *

                *
              • *
              • *

                * If you don't specify either of these capabilities, AWS CloudFormation returns an * InsufficientCapabilities error. *

                *
              • *
              *

              * If your stack template contains these resources, we recommend that you review all permissions * associated with them and edit their permissions if necessary. *

              * *

              * For more information, see Acknowledging IAM Resources in AWS CloudFormation Templates. *

              *
            • *
            • *

              * CAPABILITY_AUTO_EXPAND *

              *

              * Some templates contain macros. If your stack template contains one or more macros, and you choose to * create a stack directly from the processed template, without first reviewing the resulting changes in * a change set, you must acknowledge this capability. For more information, see Using AWS * CloudFormation Macros to Perform Custom Processing on Templates. *

              * *

              * Stack sets do not currently support macros in stack templates. (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by AWS CloudFormation.) Even if you specify * this capability, if you include a macro in your template the stack set operation will fail. *

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

              * The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also * propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can * be specified. *

              *

              * If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see if you * have the required IAM permission to tag resources. If you don't, the entire CreateStackSet * action fails with an access denied error, and the stack set is not created. *

              * * @param tags * The key-value pairs to associate with this stack set and the stacks created from it. AWS * CloudFormation also propagates these tags to supported resources that are created in the stacks. A * maximum number of 50 tags can be specified.

              *

              * If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see * if you have the required IAM permission to tag resources. If you don't, the entire * CreateStackSet action fails with an access denied error, and the stack set * is not created. * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Collection tags); /** *

              * The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also * propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can * be specified. *

              *

              * If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see if you * have the required IAM permission to tag resources. If you don't, the entire CreateStackSet * action fails with an access denied error, and the stack set is not created. *

              * * @param tags * The key-value pairs to associate with this stack set and the stacks created from it. AWS * CloudFormation also propagates these tags to supported resources that are created in the stacks. A * maximum number of 50 tags can be specified.

              *

              * If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see * if you have the required IAM permission to tag resources. If you don't, the entire * CreateStackSet action fails with an access denied error, and the stack set * is not created. * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Tag... tags); /** *

              * The key-value pairs to associate with this stack set and the stacks created from it. AWS CloudFormation also * propagates these tags to supported resources that are created in the stacks. A maximum number of 50 tags can * be specified. *

              *

              * If you specify tags as part of a CreateStackSet action, AWS CloudFormation checks to see if you * have the required IAM permission to tag resources. If you don't, the entire CreateStackSet * action fails with an access denied error, and the stack set is not created. *

              * This is a convenience that creates an instance of the {@link List.Builder} avoiding the need to create * one manually via {@link List#builder()}. * * When the {@link Consumer} completes, {@link List.Builder#build()} is called immediately and its result * is passed to {@link #tags(List)}. * * @param tags * a consumer that will call methods on {@link List.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #tags(List) */ Builder tags(Consumer... tags); /** *

              * The Amazon Resource Number (ARN) of the IAM role to use to create this stack set. *

              *

              * Specify an IAM role only if you are using customized administrator roles to control which users or groups can * manage specific stack sets within the same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the AWS CloudFormation User Guide. *

              * * @param administrationRoleARN * The Amazon Resource Number (ARN) of the IAM role to use to create this stack set.

              *

              * Specify an IAM role only if you are using customized administrator roles to control which users or * groups can manage specific stack sets within the same administrator account. For more information, see * * Prerequisites: Granting Permissions for Stack Set Operations in the AWS CloudFormation User * Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder administrationRoleARN(String administrationRoleARN); /** *

              * The name of the IAM execution role to use to create the stack set. If you do not specify an execution role, * AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the stack set * operation. *

              *

              * Specify an IAM role only if you are using customized execution roles to control which stack resources users * and groups can include in their stack sets. *

              * * @param executionRoleName * The name of the IAM execution role to use to create the stack set. If you do not specify an execution * role, AWS CloudFormation uses the AWSCloudFormationStackSetExecutionRole role for the * stack set operation.

              *

              * Specify an IAM role only if you are using customized execution roles to control which stack resources * users and groups can include in their stack sets. * @return Returns a reference to this object so that method calls can be chained together. */ Builder executionRoleName(String executionRoleName); /** *

              * A unique identifier for this CreateStackSet request. Specify this token if you plan to retry * requests so that AWS CloudFormation knows that you're not attempting to create another stack set with the * same name. You might retry CreateStackSet requests to ensure that AWS CloudFormation * successfully received them. *

              *

              * If you don't specify an operation ID, the SDK generates one automatically. *

              * * @param clientRequestToken * A unique identifier for this CreateStackSet request. Specify this token if you plan to * retry requests so that AWS CloudFormation knows that you're not attempting to create another stack set * with the same name. You might retry CreateStackSet requests to ensure that AWS * CloudFormation successfully received them.

              *

              * If you don't specify an operation ID, the SDK generates one automatically. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clientRequestToken(String clientRequestToken); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends CloudFormationRequest.BuilderImpl implements Builder { private String stackSetName; private String description; private String templateBody; private String templateURL; private List parameters = DefaultSdkAutoConstructList.getInstance(); private List capabilities = DefaultSdkAutoConstructList.getInstance(); private List tags = DefaultSdkAutoConstructList.getInstance(); private String administrationRoleARN; private String executionRoleName; private String clientRequestToken; private BuilderImpl() { } private BuilderImpl(CreateStackSetRequest model) { super(model); stackSetName(model.stackSetName); description(model.description); templateBody(model.templateBody); templateURL(model.templateURL); parameters(model.parameters); capabilitiesWithStrings(model.capabilities); tags(model.tags); administrationRoleARN(model.administrationRoleARN); executionRoleName(model.executionRoleName); clientRequestToken(model.clientRequestToken); } public final String getStackSetName() { return stackSetName; } @Override public final Builder stackSetName(String stackSetName) { this.stackSetName = stackSetName; return this; } public final void setStackSetName(String stackSetName) { this.stackSetName = stackSetName; } public final String getDescription() { return description; } @Override public final Builder description(String description) { this.description = description; return this; } public final void setDescription(String description) { this.description = description; } public final String getTemplateBody() { return templateBody; } @Override public final Builder templateBody(String templateBody) { this.templateBody = templateBody; return this; } public final void setTemplateBody(String templateBody) { this.templateBody = templateBody; } public final String getTemplateURL() { return templateURL; } @Override public final Builder templateURL(String templateURL) { this.templateURL = templateURL; return this; } public final void setTemplateURL(String templateURL) { this.templateURL = templateURL; } public final Collection getParameters() { return parameters != null ? parameters.stream().map(Parameter::toBuilder).collect(Collectors.toList()) : null; } @Override public final Builder parameters(Collection parameters) { this.parameters = ParametersCopier.copy(parameters); return this; } @Override @SafeVarargs public final Builder parameters(Parameter... parameters) { parameters(Arrays.asList(parameters)); return this; } @Override @SafeVarargs public final Builder parameters(Consumer... parameters) { parameters(Stream.of(parameters).map(c -> Parameter.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final void setParameters(Collection parameters) { this.parameters = ParametersCopier.copyFromBuilder(parameters); } public final Collection getCapabilitiesAsStrings() { return capabilities; } @Override public final Builder capabilitiesWithStrings(Collection capabilities) { this.capabilities = CapabilitiesCopier.copy(capabilities); return this; } @Override @SafeVarargs public final Builder capabilitiesWithStrings(String... capabilities) { capabilitiesWithStrings(Arrays.asList(capabilities)); return this; } @Override public final Builder capabilities(Collection capabilities) { this.capabilities = CapabilitiesCopier.copyEnumToString(capabilities); return this; } @Override @SafeVarargs public final Builder capabilities(Capability... capabilities) { capabilities(Arrays.asList(capabilities)); return this; } public final void setCapabilitiesWithStrings(Collection capabilities) { this.capabilities = CapabilitiesCopier.copy(capabilities); } public final Collection getTags() { return tags != null ? tags.stream().map(Tag::toBuilder).collect(Collectors.toList()) : null; } @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; } public final void setTags(Collection tags) { this.tags = TagsCopier.copyFromBuilder(tags); } public final String getAdministrationRoleARN() { return administrationRoleARN; } @Override public final Builder administrationRoleARN(String administrationRoleARN) { this.administrationRoleARN = administrationRoleARN; return this; } public final void setAdministrationRoleARN(String administrationRoleARN) { this.administrationRoleARN = administrationRoleARN; } public final String getExecutionRoleName() { return executionRoleName; } @Override public final Builder executionRoleName(String executionRoleName) { this.executionRoleName = executionRoleName; return this; } public final void setExecutionRoleName(String executionRoleName) { this.executionRoleName = executionRoleName; } public final String getClientRequestToken() { return clientRequestToken; } @Override public final Builder clientRequestToken(String clientRequestToken) { this.clientRequestToken = clientRequestToken; return this; } public final void setClientRequestToken(String clientRequestToken) { this.clientRequestToken = clientRequestToken; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public CreateStackSetRequest build() { return new CreateStackSetRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy