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

software.amazon.awssdk.services.cloudformation.model.UpdateStackSetRequest 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 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.core.util.SdkAutoConstructList;
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 UpdateStackSetRequest extends CloudFormationRequest implements
        ToCopyableBuilder {
    private static final SdkField STACK_SET_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("StackSetName").getter(getter(UpdateStackSetRequest::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)
            .memberName("Description").getter(getter(UpdateStackSetRequest::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)
            .memberName("TemplateBody").getter(getter(UpdateStackSetRequest::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)
            .memberName("TemplateURL").getter(getter(UpdateStackSetRequest::templateURL)).setter(setter(Builder::templateURL))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("TemplateURL").build()).build();

    private static final SdkField USE_PREVIOUS_TEMPLATE_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("UsePreviousTemplate").getter(getter(UpdateStackSetRequest::usePreviousTemplate))
            .setter(setter(Builder::usePreviousTemplate))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("UsePreviousTemplate").build())
            .build();

    private static final SdkField> PARAMETERS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("Parameters")
            .getter(getter(UpdateStackSetRequest::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)
            .memberName("Capabilities")
            .getter(getter(UpdateStackSetRequest::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)
            .memberName("Tags")
            .getter(getter(UpdateStackSetRequest::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 OPERATION_PREFERENCES_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("OperationPreferences")
            .getter(getter(UpdateStackSetRequest::operationPreferences)).setter(setter(Builder::operationPreferences))
            .constructor(StackSetOperationPreferences::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("OperationPreferences").build())
            .build();

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

    private static final SdkField DEPLOYMENT_TARGETS_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("DeploymentTargets")
            .getter(getter(UpdateStackSetRequest::deploymentTargets)).setter(setter(Builder::deploymentTargets))
            .constructor(DeploymentTargets::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DeploymentTargets").build()).build();

    private static final SdkField PERMISSION_MODEL_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("PermissionModel").getter(getter(UpdateStackSetRequest::permissionModelAsString))
            .setter(setter(Builder::permissionModel))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PermissionModel").build()).build();

    private static final SdkField AUTO_DEPLOYMENT_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("AutoDeployment")
            .getter(getter(UpdateStackSetRequest::autoDeployment)).setter(setter(Builder::autoDeployment))
            .constructor(AutoDeployment::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AutoDeployment").build()).build();

    private static final SdkField OPERATION_ID_FIELD = SdkField
            . builder(MarshallingType.STRING)
            .memberName("OperationId")
            .getter(getter(UpdateStackSetRequest::operationId))
            .setter(setter(Builder::operationId))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("OperationId").build(),
                    DefaultValueTrait.idempotencyToken()).build();

    private static final SdkField> ACCOUNTS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("Accounts")
            .getter(getter(UpdateStackSetRequest::accounts))
            .setter(setter(Builder::accounts))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Accounts").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> REGIONS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("Regions")
            .getter(getter(UpdateStackSetRequest::regions))
            .setter(setter(Builder::regions))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Regions").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 CALL_AS_FIELD = SdkField. builder(MarshallingType.STRING).memberName("CallAs")
            .getter(getter(UpdateStackSetRequest::callAsAsString)).setter(setter(Builder::callAs))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CallAs").build()).build();

    private static final SdkField MANAGED_EXECUTION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("ManagedExecution")
            .getter(getter(UpdateStackSetRequest::managedExecution)).setter(setter(Builder::managedExecution))
            .constructor(ManagedExecution::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ManagedExecution").build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(STACK_SET_NAME_FIELD,
            DESCRIPTION_FIELD, TEMPLATE_BODY_FIELD, TEMPLATE_URL_FIELD, USE_PREVIOUS_TEMPLATE_FIELD, PARAMETERS_FIELD,
            CAPABILITIES_FIELD, TAGS_FIELD, OPERATION_PREFERENCES_FIELD, ADMINISTRATION_ROLE_ARN_FIELD,
            EXECUTION_ROLE_NAME_FIELD, DEPLOYMENT_TARGETS_FIELD, PERMISSION_MODEL_FIELD, AUTO_DEPLOYMENT_FIELD,
            OPERATION_ID_FIELD, ACCOUNTS_FIELD, REGIONS_FIELD, CALL_AS_FIELD, MANAGED_EXECUTION_FIELD));

    private final String stackSetName;

    private final String description;

    private final String templateBody;

    private final String templateURL;

    private final Boolean usePreviousTemplate;

    private final List parameters;

    private final List capabilities;

    private final List tags;

    private final StackSetOperationPreferences operationPreferences;

    private final String administrationRoleARN;

    private final String executionRoleName;

    private final DeploymentTargets deploymentTargets;

    private final String permissionModel;

    private final AutoDeployment autoDeployment;

    private final String operationId;

    private final List accounts;

    private final List regions;

    private final String callAs;

    private final ManagedExecution managedExecution;

    private UpdateStackSetRequest(BuilderImpl builder) {
        super(builder);
        this.stackSetName = builder.stackSetName;
        this.description = builder.description;
        this.templateBody = builder.templateBody;
        this.templateURL = builder.templateURL;
        this.usePreviousTemplate = builder.usePreviousTemplate;
        this.parameters = builder.parameters;
        this.capabilities = builder.capabilities;
        this.tags = builder.tags;
        this.operationPreferences = builder.operationPreferences;
        this.administrationRoleARN = builder.administrationRoleARN;
        this.executionRoleName = builder.executionRoleName;
        this.deploymentTargets = builder.deploymentTargets;
        this.permissionModel = builder.permissionModel;
        this.autoDeployment = builder.autoDeployment;
        this.operationId = builder.operationId;
        this.accounts = builder.accounts;
        this.regions = builder.regions;
        this.callAs = builder.callAs;
        this.managedExecution = builder.managedExecution;
    }

    /**
     * 

* The name or unique ID of the stack set that you want to update. *

* * @return The name or unique ID of the stack set that you want to update. */ public final String stackSetName() { return stackSetName; } /** *

* A brief description of updates that you are making. *

* * @return A brief description of updates that you are making. */ public final 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 CloudFormation User Guide. *

*

* Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. *

* * @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 CloudFormation User Guide.

*

* Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. */ public final 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 is located in an Amazon S3 bucket or a Systems Manager document. For more information, see Template Anatomy * in the CloudFormation User Guide. *

*

* Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. *

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

*

* Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. */ public final String templateURL() { return templateURL; } /** *

* Use the existing template that's associated with the stack set that you're updating. *

*

* Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. *

* * @return Use the existing template that's associated with the stack set that you're updating.

*

* Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. */ public final Boolean usePreviousTemplate() { return usePreviousTemplate; } /** * For responses, this returns true if the service returned a value for the Parameters 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 hasParameters() { return parameters != null && !(parameters instanceof SdkAutoConstructList); } /** *

* A list of input parameters for the stack set template. *

*

* 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 #hasParameters} method. *

* * @return A list of input parameters for the stack set template. */ public final List parameters() { return parameters; } /** *

* In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order * for CloudFormation to update the stack set and its associated stack instances. *

*
    *
  • *

    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

    *

    * Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those stacks 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, 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 CloudFormation Templates. *

    *
  • *
  • *

    * CAPABILITY_AUTO_EXPAND *

    *

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

    * *

    * Stack sets with service-managed permissions do not currently support the use of macros in templates. (This * includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this capability * for a stack set with service-managed permissions, if you reference 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. *

*

* 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 #hasCapabilities} method. *

* * @return In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in * order for CloudFormation to update the stack set and its associated stack instances.

*
    *
  • *

    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

    *

    * Some stack templates might include resources that can affect permissions in your Amazon Web Services * account; for example, by creating new Identity and Access Management (IAM) users. For those stacks 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, 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 CloudFormation Templates. *

    *
  • *
  • *

    * CAPABILITY_AUTO_EXPAND *

    *

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

    * *

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

    *
  • */ public final List capabilities() { return CapabilitiesCopier.copyStringToEnum(capabilities); } /** * For responses, this returns true if the service returned a value for the Capabilities 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 hasCapabilities() { return capabilities != null && !(capabilities instanceof SdkAutoConstructList); } /** *

    * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in order * for CloudFormation to update the stack set and its associated stack instances. *

    *
      *
    • *

      * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

      *

      * Some stack templates might include resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those stacks 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, 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 CloudFormation Templates. *

      *
    • *
    • *

      * CAPABILITY_AUTO_EXPAND *

      *

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

      * *

      * Stack sets with service-managed permissions do not currently support the use of macros in templates. (This * includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this capability * for a stack set with service-managed permissions, if you reference 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. *

    *

    * 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 #hasCapabilities} method. *

    * * @return In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in * order for CloudFormation to update the stack set and its associated stack instances.

    *
      *
    • *

      * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

      *

      * Some stack templates might include resources that can affect permissions in your Amazon Web Services * account; for example, by creating new Identity and Access Management (IAM) users. For those stacks 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, 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 CloudFormation Templates. *

      *
    • *
    • *

      * CAPABILITY_AUTO_EXPAND *

      *

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

      * *

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

      *
    • */ public final List capabilitiesAsStrings() { return capabilities; } /** * 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 key-value pairs to associate with this stack set and the stacks created from it. CloudFormation also * propagates these tags to supported resources that are created in the stacks. You can specify a maximum number of * 50 tags. *

      *

      * If you specify tags for this parameter, those tags replace any list of tags that are currently associated with * this stack set. This means: *

      *
        *
      • *

        * If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. *

        *
      • *
      • *

        * If you specify any tags using this parameter, you must specify all the tags that you want * associated with this stack set, even tags you've specified before (for example, when creating the stack set or * during a previous update of the stack set.). Any tags that you don't include in the updated list of tags are * removed from the stack set, and therefore from the stacks and resources as well. *

        *
      • *
      • *

        * If you specify an empty value, CloudFormation removes all currently associated tags. *

        *
      • *
      *

      * If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see if you * have the required IAM permission to tag resources. If you omit tags that are currently associated with the stack * set from the list of tags you specify, CloudFormation assumes that you want to remove those tags from the stack * set, and checks to see if you have permission to untag resources. If you don't have the necessary permission(s), * the entire UpdateStackSet action fails with an access denied error, and the stack set * is not updated. *

      *

      * 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 key-value pairs to associate with this stack set and the stacks created from it. CloudFormation also * propagates these tags to supported resources that are created in the stacks. You can specify a maximum * number of 50 tags.

      *

      * If you specify tags for this parameter, those tags replace any list of tags that are currently associated * with this stack set. This means: *

      *
        *
      • *

        * If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. *

        *
      • *
      • *

        * If you specify any tags using this parameter, you must specify all the tags that you want * associated with this stack set, even tags you've specified before (for example, when creating the stack * set or during a previous update of the stack set.). Any tags that you don't include in the updated list * of tags are removed from the stack set, and therefore from the stacks and resources as well. *

        *
      • *
      • *

        * If you specify an empty value, CloudFormation removes all currently associated tags. *

        *
      • *
      *

      * If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see if * you have the required IAM permission to tag resources. If you omit tags that are currently associated * with the stack set from the list of tags you specify, CloudFormation assumes that you want to remove * those tags from the stack set, and checks to see if you have permission to untag resources. If you don't * have the necessary permission(s), the entire UpdateStackSet action fails with an * access denied error, and the stack set is not updated. */ public final List tags() { return tags; } /** *

      * Preferences for how CloudFormation performs this stack set operation. *

      * * @return Preferences for how CloudFormation performs this stack set operation. */ public final StackSetOperationPreferences operationPreferences() { return operationPreferences; } /** *

      * The Amazon Resource Name (ARN) of the IAM role to use to update 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 Granting Permissions * for Stack Set Operations in the CloudFormation User Guide. *

      *

      * If you specified a customized administrator role when you created the stack set, you must specify a customized * administrator role, even if it is the same customized administrator role used with this stack set previously. *

      * * @return The Amazon Resource Name (ARN) of the IAM role to use to update 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 Granting * Permissions for Stack Set Operations in the CloudFormation User Guide. *

      *

      * If you specified a customized administrator role when you created the stack set, you must specify a * customized administrator role, even if it is the same customized administrator role used with this stack * set previously. */ public final String administrationRoleARN() { return administrationRoleARN; } /** *

      * The name of the IAM execution role to use to update the stack set. If you do not specify an execution role, * 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. *

      *

      * If you specify a customized execution role, CloudFormation uses that role to update the stack. If you do not * specify a customized execution role, CloudFormation performs the update using the role previously associated with * the stack set, so long as you have permissions to perform operations on the stack set. *

      * * @return The name of the IAM execution role to use to update the stack set. If you do not specify an execution * role, 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. *

      *

      * If you specify a customized execution role, CloudFormation uses that role to update the stack. If you do * not specify a customized execution role, CloudFormation performs the update using the role previously * associated with the stack set, so long as you have permissions to perform operations on the stack set. */ public final String executionRoleName() { return executionRoleName; } /** *

      * [Service-managed permissions] The Organizations accounts in which to update associated stack instances. *

      *

      * To update all the stack instances associated with this stack set, do not specify DeploymentTargets * or Regions. *

      *

      * If the stack set update includes changes to the template (that is, if TemplateBody or * TemplateURL is specified), or the Parameters, CloudFormation marks all stack instances * with a status of OUTDATED prior to updating the stack instances in the specified accounts and Amazon * Web Services Regions. If the stack set update doesn't include changes to the template or parameters, * CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack * instances with their existing stack instance status. *

      * * @return [Service-managed permissions] The Organizations accounts in which to update associated stack * instances.

      *

      * To update all the stack instances associated with this stack set, do not specify * DeploymentTargets or Regions. *

      *

      * If the stack set update includes changes to the template (that is, if TemplateBody or * TemplateURL is specified), or the Parameters, CloudFormation marks all stack * instances with a status of OUTDATED prior to updating the stack instances in the specified * accounts and Amazon Web Services Regions. If the stack set update doesn't include changes to the template * or parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while * leaving all other stack instances with their existing stack instance status. */ public final DeploymentTargets deploymentTargets() { return deploymentTargets; } /** *

      * Describes how the IAM roles required for stack set operations are created. You cannot modify * PermissionModel if there are stack instances associated with your stack set. *

      *
        *
      • *

        * With self-managed permissions, you must create the administrator and execution roles required to * deploy to target accounts. For more information, see Grant * Self-Managed Stack Set Permissions. *

        *
      • *
      • *

        * With service-managed permissions, StackSets automatically creates the IAM roles required to deploy * to accounts managed by Organizations. For more information, see Grant Service-Managed Stack Set Permissions. *

        *
      • *
      *

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

      * * @return Describes how the IAM roles required for stack set operations are created. You cannot modify * PermissionModel if there are stack instances associated with your stack set.

      *
        *
      • *

        * With self-managed permissions, you must create the administrator and execution roles * required to deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. *

        *
      • *
      • *

        * With service-managed permissions, StackSets automatically creates the IAM roles required to * deploy to accounts managed by Organizations. For more information, see Grant Service-Managed Stack Set Permissions. *

        *
      • * @see PermissionModels */ public final PermissionModels permissionModel() { return PermissionModels.fromValue(permissionModel); } /** *

        * Describes how the IAM roles required for stack set operations are created. You cannot modify * PermissionModel if there are stack instances associated with your stack set. *

        *
          *
        • *

          * With self-managed permissions, you must create the administrator and execution roles required to * deploy to target accounts. For more information, see Grant * Self-Managed Stack Set Permissions. *

          *
        • *
        • *

          * With service-managed permissions, StackSets automatically creates the IAM roles required to deploy * to accounts managed by Organizations. For more information, see Grant Service-Managed Stack Set Permissions. *

          *
        • *
        *

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

        * * @return Describes how the IAM roles required for stack set operations are created. You cannot modify * PermissionModel if there are stack instances associated with your stack set.

        *
          *
        • *

          * With self-managed permissions, you must create the administrator and execution roles * required to deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. *

          *
        • *
        • *

          * With service-managed permissions, StackSets automatically creates the IAM roles required to * deploy to accounts managed by Organizations. For more information, see Grant Service-Managed Stack Set Permissions. *

          *
        • * @see PermissionModels */ public final String permissionModelAsString() { return permissionModel; } /** *

          * [Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts that * are added to a target organization or organizational unit (OU). *

          *

          * If you specify AutoDeployment, don't specify DeploymentTargets or Regions. *

          * * @return [Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts * that are added to a target organization or organizational unit (OU).

          *

          * If you specify AutoDeployment, don't specify DeploymentTargets or * Regions. */ public final AutoDeployment autoDeployment() { return autoDeployment; } /** *

          * The unique ID for this stack set operation. *

          *

          * The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set * operation only once, even if you retry the request multiple times. You might retry stack set operation requests * to ensure that CloudFormation successfully received them. *

          *

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

          *

          * Repeating this stack set operation with a new operation ID retries all stack instances whose status is * OUTDATED. *

          * * @return The unique ID for this stack set operation.

          *

          * The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack * set operation only once, even if you retry the request multiple times. You might retry stack set * operation requests to ensure that CloudFormation successfully received them. *

          *

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

          *

          * Repeating this stack set operation with a new operation ID retries all stack instances whose status is * OUTDATED. */ public final String operationId() { return operationId; } /** * For responses, this returns true if the service returned a value for the Accounts 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 hasAccounts() { return accounts != null && !(accounts instanceof SdkAutoConstructList); } /** *

          * [Self-managed permissions] The accounts in which to update associated stack instances. If you specify accounts, * you must also specify the Amazon Web Services Regions in which to update stack set instances. *

          *

          * To update all the stack instances associated with this stack set, don't specify the Accounts * or Regions properties. *

          *

          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, CloudFormation marks * all stack instances with a status of OUTDATED prior to updating the stack instances in the specified * accounts and Amazon Web Services Regions. If the stack set update does not include changes to the template or * parameters, CloudFormation updates the stack instances in the specified accounts and Amazon Web Services Regions, * while leaving all other stack instances with their existing stack instance status. *

          *

          * 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 #hasAccounts} method. *

          * * @return [Self-managed permissions] The accounts in which to update associated stack instances. If you specify * accounts, you must also specify the Amazon Web Services Regions in which to update stack set * instances.

          *

          * To update all the stack instances associated with this stack set, don't specify the * Accounts or Regions properties. *

          *

          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, * CloudFormation marks all stack instances with a status of OUTDATED prior to updating the * stack instances in the specified accounts and Amazon Web Services Regions. If the stack set update does * not include changes to the template or parameters, CloudFormation updates the stack instances in the * specified accounts and Amazon Web Services Regions, while leaving all other stack instances with their * existing stack instance status. */ public final List accounts() { return accounts; } /** * For responses, this returns true if the service returned a value for the Regions 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 hasRegions() { return regions != null && !(regions instanceof SdkAutoConstructList); } /** *

          * The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, you must * also specify accounts in which to update stack set instances. *

          *

          * To update all the stack instances associated with this stack set, do not specify the Accounts * or Regions properties. *

          *

          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, CloudFormation marks * all stack instances with a status of OUTDATED prior to updating the stack instances in the specified * accounts and Regions. If the stack set update does not include changes to the template or parameters, * CloudFormation updates the stack instances in the specified accounts and Regions, while leaving all other stack * instances with their existing stack instance status. *

          *

          * 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 #hasRegions} method. *

          * * @return The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, * you must also specify accounts in which to update stack set instances.

          *

          * To update all the stack instances associated with this stack set, do not specify the * Accounts or Regions properties. *

          *

          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, * CloudFormation marks all stack instances with a status of OUTDATED prior to updating the * stack instances in the specified accounts and Regions. If the stack set update does not include changes * to the template or parameters, CloudFormation updates the stack instances in the specified accounts and * Regions, while leaving all other stack instances with their existing stack instance status. */ public final List regions() { return regions; } /** *

          * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's * management account or as a delegated administrator in a member account. *

          *

          * By default, SELF is specified. Use SELF for stack sets with self-managed permissions. *

          *
            *
          • *

            * If you are signed in to the management account, specify SELF. *

            *
          • *
          • *

            * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. *

            *

            * Your Amazon Web Services account must be registered as a delegated administrator in the management account. For * more information, see Register a delegated administrator in the CloudFormation User Guide. *

            *
          • *
          *

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

          * * @return [Service-managed permissions] Specifies whether you are acting as an account administrator in the * organization's management account or as a delegated administrator in a member account.

          *

          * By default, SELF is specified. Use SELF for stack sets with self-managed * permissions. *

          *
            *
          • *

            * If you are signed in to the management account, specify SELF. *

            *
          • *
          • *

            * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. *

            *

            * Your Amazon Web Services account must be registered as a delegated administrator in the management * account. For more information, see Register a delegated administrator in the CloudFormation User Guide. *

            *
          • * @see CallAs */ public final CallAs callAs() { return CallAs.fromValue(callAs); } /** *

            * [Service-managed permissions] Specifies whether you are acting as an account administrator in the organization's * management account or as a delegated administrator in a member account. *

            *

            * By default, SELF is specified. Use SELF for stack sets with self-managed permissions. *

            *
              *
            • *

              * If you are signed in to the management account, specify SELF. *

              *
            • *
            • *

              * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. *

              *

              * Your Amazon Web Services account must be registered as a delegated administrator in the management account. For * more information, see Register a delegated administrator in the CloudFormation User Guide. *

              *
            • *
            *

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

            * * @return [Service-managed permissions] Specifies whether you are acting as an account administrator in the * organization's management account or as a delegated administrator in a member account.

            *

            * By default, SELF is specified. Use SELF for stack sets with self-managed * permissions. *

            *
              *
            • *

              * If you are signed in to the management account, specify SELF. *

              *
            • *
            • *

              * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. *

              *

              * Your Amazon Web Services account must be registered as a delegated administrator in the management * account. For more information, see Register a delegated administrator in the CloudFormation User Guide. *

              *
            • * @see CallAs */ public final String callAsAsString() { return callAs; } /** *

              * Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting operations. *

              * * @return Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting * operations. */ public final ManagedExecution managedExecution() { return managedExecution; } @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 + 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(usePreviousTemplate()); hashCode = 31 * hashCode + Objects.hashCode(hasParameters() ? parameters() : null); hashCode = 31 * hashCode + Objects.hashCode(hasCapabilities() ? capabilitiesAsStrings() : null); hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null); hashCode = 31 * hashCode + Objects.hashCode(operationPreferences()); hashCode = 31 * hashCode + Objects.hashCode(administrationRoleARN()); hashCode = 31 * hashCode + Objects.hashCode(executionRoleName()); hashCode = 31 * hashCode + Objects.hashCode(deploymentTargets()); hashCode = 31 * hashCode + Objects.hashCode(permissionModelAsString()); hashCode = 31 * hashCode + Objects.hashCode(autoDeployment()); hashCode = 31 * hashCode + Objects.hashCode(operationId()); hashCode = 31 * hashCode + Objects.hashCode(hasAccounts() ? accounts() : null); hashCode = 31 * hashCode + Objects.hashCode(hasRegions() ? regions() : null); hashCode = 31 * hashCode + Objects.hashCode(callAsAsString()); hashCode = 31 * hashCode + Objects.hashCode(managedExecution()); return hashCode; } @Override public final boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof UpdateStackSetRequest)) { return false; } UpdateStackSetRequest other = (UpdateStackSetRequest) obj; return Objects.equals(stackSetName(), other.stackSetName()) && Objects.equals(description(), other.description()) && Objects.equals(templateBody(), other.templateBody()) && Objects.equals(templateURL(), other.templateURL()) && Objects.equals(usePreviousTemplate(), other.usePreviousTemplate()) && hasParameters() == other.hasParameters() && Objects.equals(parameters(), other.parameters()) && hasCapabilities() == other.hasCapabilities() && Objects.equals(capabilitiesAsStrings(), other.capabilitiesAsStrings()) && hasTags() == other.hasTags() && Objects.equals(tags(), other.tags()) && Objects.equals(operationPreferences(), other.operationPreferences()) && Objects.equals(administrationRoleARN(), other.administrationRoleARN()) && Objects.equals(executionRoleName(), other.executionRoleName()) && Objects.equals(deploymentTargets(), other.deploymentTargets()) && Objects.equals(permissionModelAsString(), other.permissionModelAsString()) && Objects.equals(autoDeployment(), other.autoDeployment()) && Objects.equals(operationId(), other.operationId()) && hasAccounts() == other.hasAccounts() && Objects.equals(accounts(), other.accounts()) && hasRegions() == other.hasRegions() && Objects.equals(regions(), other.regions()) && Objects.equals(callAsAsString(), other.callAsAsString()) && Objects.equals(managedExecution(), other.managedExecution()); } /** * 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("UpdateStackSetRequest").add("StackSetName", stackSetName()).add("Description", description()) .add("TemplateBody", templateBody()).add("TemplateURL", templateURL()) .add("UsePreviousTemplate", usePreviousTemplate()).add("Parameters", hasParameters() ? parameters() : null) .add("Capabilities", hasCapabilities() ? capabilitiesAsStrings() : null).add("Tags", hasTags() ? tags() : null) .add("OperationPreferences", operationPreferences()).add("AdministrationRoleARN", administrationRoleARN()) .add("ExecutionRoleName", executionRoleName()).add("DeploymentTargets", deploymentTargets()) .add("PermissionModel", permissionModelAsString()).add("AutoDeployment", autoDeployment()) .add("OperationId", operationId()).add("Accounts", hasAccounts() ? accounts() : null) .add("Regions", hasRegions() ? regions() : null).add("CallAs", callAsAsString()) .add("ManagedExecution", managedExecution()).build(); } public final 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 "UsePreviousTemplate": return Optional.ofNullable(clazz.cast(usePreviousTemplate())); 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 "OperationPreferences": return Optional.ofNullable(clazz.cast(operationPreferences())); case "AdministrationRoleARN": return Optional.ofNullable(clazz.cast(administrationRoleARN())); case "ExecutionRoleName": return Optional.ofNullable(clazz.cast(executionRoleName())); case "DeploymentTargets": return Optional.ofNullable(clazz.cast(deploymentTargets())); case "PermissionModel": return Optional.ofNullable(clazz.cast(permissionModelAsString())); case "AutoDeployment": return Optional.ofNullable(clazz.cast(autoDeployment())); case "OperationId": return Optional.ofNullable(clazz.cast(operationId())); case "Accounts": return Optional.ofNullable(clazz.cast(accounts())); case "Regions": return Optional.ofNullable(clazz.cast(regions())); case "CallAs": return Optional.ofNullable(clazz.cast(callAsAsString())); case "ManagedExecution": return Optional.ofNullable(clazz.cast(managedExecution())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((UpdateStackSetRequest) 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 or unique ID of the stack set that you want to update. *

              * * @param stackSetName * The name or unique ID of the stack set that you want to update. * @return Returns a reference to this object so that method calls can be chained together. */ Builder stackSetName(String stackSetName); /** *

              * A brief description of updates that you are making. *

              * * @param description * A brief description of updates that you are making. * @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 CloudFormation User Guide. *

              *

              * Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. *

              * * @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 CloudFormation User Guide.

              *

              * Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. * @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 is located in an Amazon S3 bucket or a Systems Manager document. For more information, * see Template * Anatomy in the CloudFormation User Guide. *

              *

              * Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. *

              * * @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 is located in an Amazon S3 bucket or a Systems Manager document. For more * information, see Template * Anatomy in the CloudFormation User Guide.

              *

              * Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. * @return Returns a reference to this object so that method calls can be chained together. */ Builder templateURL(String templateURL); /** *

              * Use the existing template that's associated with the stack set that you're updating. *

              *

              * Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. *

              * * @param usePreviousTemplate * Use the existing template that's associated with the stack set that you're updating.

              *

              * Conditional: You must specify only one of the following parameters: TemplateBody or * TemplateURL—or set UsePreviousTemplate to true. * @return Returns a reference to this object so that method calls can be chained together. */ Builder usePreviousTemplate(Boolean usePreviousTemplate); /** *

              * A list of input parameters for the stack set template. *

              * * @param parameters * A list of 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); /** *

              * A list of input parameters for the stack set template. *

              * * @param parameters * A list of 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); /** *

              * A list of input parameters for the stack set template. *

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

              * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.cloudformation.model.Parameter.Builder#build()} is called immediately * and its result is passed to {@link #parameters(List)}. * * @param parameters * a consumer that will call methods on * {@link software.amazon.awssdk.services.cloudformation.model.Parameter.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #parameters(java.util.Collection) */ Builder parameters(Consumer... parameters); /** *

              * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities in * order for CloudFormation to update the stack set and its associated stack instances. *

              *
                *
              • *

                * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

                *

                * Some stack templates might include resources that can affect permissions in your Amazon Web Services account; * for example, by creating new Identity and Access Management (IAM) users. For those stacks 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, 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 CloudFormation Templates. *

                *
              • *
              • *

                * CAPABILITY_AUTO_EXPAND *

                *

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

                * *

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

                *
              • *
              * * @param capabilities * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities * in order for CloudFormation to update the stack set and its associated stack instances.

              *
                *
              • *

                * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

                *

                * Some stack templates might include resources that can affect permissions in your Amazon Web Services * account; for example, by creating new Identity and Access Management (IAM) users. For those stacks * 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, 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 CloudFormation Templates. *

                *
              • *
              • *

                * CAPABILITY_AUTO_EXPAND *

                *

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

                * *

                * Stack sets with service-managed permissions do not currently support the use of macros in templates. * (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference 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 explicitly acknowledge that your stack template contains certain capabilities in * order for CloudFormation to update the stack set and its associated stack instances. *

                *
                  *
                • *

                  * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

                  *

                  * Some stack templates might include resources that can affect permissions in your Amazon Web Services account; * for example, by creating new Identity and Access Management (IAM) users. For those stacks 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, 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 CloudFormation Templates. *

                  *
                • *
                • *

                  * CAPABILITY_AUTO_EXPAND *

                  *

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

                  * *

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

                  *
                • *
                * * @param capabilities * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities * in order for CloudFormation to update the stack set and its associated stack instances.

                *
                  *
                • *

                  * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

                  *

                  * Some stack templates might include resources that can affect permissions in your Amazon Web Services * account; for example, by creating new Identity and Access Management (IAM) users. For those stacks * 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, 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 CloudFormation Templates. *

                  *
                • *
                • *

                  * CAPABILITY_AUTO_EXPAND *

                  *

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

                  * *

                  * Stack sets with service-managed permissions do not currently support the use of macros in templates. * (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference 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 explicitly acknowledge that your stack template contains certain capabilities in * order for CloudFormation to update the stack set and its associated stack instances. *

                  *
                    *
                  • *

                    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

                    *

                    * Some stack templates might include resources that can affect permissions in your Amazon Web Services account; * for example, by creating new Identity and Access Management (IAM) users. For those stacks 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, 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 CloudFormation Templates. *

                    *
                  • *
                  • *

                    * CAPABILITY_AUTO_EXPAND *

                    *

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

                    * *

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

                    *
                  • *
                  * * @param capabilities * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities * in order for CloudFormation to update the stack set and its associated stack instances.

                  *
                    *
                  • *

                    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

                    *

                    * Some stack templates might include resources that can affect permissions in your Amazon Web Services * account; for example, by creating new Identity and Access Management (IAM) users. For those stacks * 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, 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 CloudFormation Templates. *

                    *
                  • *
                  • *

                    * CAPABILITY_AUTO_EXPAND *

                    *

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

                    * *

                    * Stack sets with service-managed permissions do not currently support the use of macros in templates. * (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference 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 explicitly acknowledge that your stack template contains certain capabilities in * order for CloudFormation to update the stack set and its associated stack instances. *

                    *
                      *
                    • *

                      * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

                      *

                      * Some stack templates might include resources that can affect permissions in your Amazon Web Services account; * for example, by creating new Identity and Access Management (IAM) users. For those stacks 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, 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 CloudFormation Templates. *

                      *
                    • *
                    • *

                      * CAPABILITY_AUTO_EXPAND *

                      *

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

                      * *

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

                      *
                    • *
                    * * @param capabilities * In some cases, you must explicitly acknowledge that your stack template contains certain capabilities * in order for CloudFormation to update the stack set and its associated stack instances.

                    *
                      *
                    • *

                      * CAPABILITY_IAM and CAPABILITY_NAMED_IAM *

                      *

                      * Some stack templates might include resources that can affect permissions in your Amazon Web Services * account; for example, by creating new Identity and Access Management (IAM) users. For those stacks * 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, 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 CloudFormation Templates. *

                      *
                    • *
                    • *

                      * CAPABILITY_AUTO_EXPAND *

                      *

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

                      * *

                      * Stack sets with service-managed permissions do not currently support the use of macros in templates. * (This includes the AWS::Include and AWS::Serverless transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference 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. CloudFormation also * propagates these tags to supported resources that are created in the stacks. You can specify a maximum number * of 50 tags. *

                      *

                      * If you specify tags for this parameter, those tags replace any list of tags that are currently associated * with this stack set. This means: *

                      *
                        *
                      • *

                        * If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. *

                        *
                      • *
                      • *

                        * If you specify any tags using this parameter, you must specify all the tags that you want * associated with this stack set, even tags you've specified before (for example, when creating the stack set * or during a previous update of the stack set.). Any tags that you don't include in the updated list of tags * are removed from the stack set, and therefore from the stacks and resources as well. *

                        *
                      • *
                      • *

                        * If you specify an empty value, CloudFormation removes all currently associated tags. *

                        *
                      • *
                      *

                      * If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see if you * have the required IAM permission to tag resources. If you omit tags that are currently associated with the * stack set from the list of tags you specify, CloudFormation assumes that you want to remove those tags from * the stack set, and checks to see if you have permission to untag resources. If you don't have the necessary * permission(s), the entire UpdateStackSet action fails with an access denied error, * and the stack set is not updated. *

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

                      *

                      * If you specify tags for this parameter, those tags replace any list of tags that are currently * associated with this stack set. This means: *

                      *
                        *
                      • *

                        * If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. *

                        *
                      • *
                      • *

                        * If you specify any tags using this parameter, you must specify all the tags that you * want associated with this stack set, even tags you've specified before (for example, when creating the * stack set or during a previous update of the stack set.). Any tags that you don't include in the * updated list of tags are removed from the stack set, and therefore from the stacks and resources as * well. *

                        *
                      • *
                      • *

                        * If you specify an empty value, CloudFormation removes all currently associated tags. *

                        *
                      • *
                      *

                      * If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see * if you have the required IAM permission to tag resources. If you omit tags that are currently * associated with the stack set from the list of tags you specify, CloudFormation assumes that you want * to remove those tags from the stack set, and checks to see if you have permission to untag resources. * If you don't have the necessary permission(s), the entire UpdateStackSet action fails * with an access denied error, and the stack set is not updated. * @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. CloudFormation also * propagates these tags to supported resources that are created in the stacks. You can specify a maximum number * of 50 tags. *

                      *

                      * If you specify tags for this parameter, those tags replace any list of tags that are currently associated * with this stack set. This means: *

                      *
                        *
                      • *

                        * If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. *

                        *
                      • *
                      • *

                        * If you specify any tags using this parameter, you must specify all the tags that you want * associated with this stack set, even tags you've specified before (for example, when creating the stack set * or during a previous update of the stack set.). Any tags that you don't include in the updated list of tags * are removed from the stack set, and therefore from the stacks and resources as well. *

                        *
                      • *
                      • *

                        * If you specify an empty value, CloudFormation removes all currently associated tags. *

                        *
                      • *
                      *

                      * If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see if you * have the required IAM permission to tag resources. If you omit tags that are currently associated with the * stack set from the list of tags you specify, CloudFormation assumes that you want to remove those tags from * the stack set, and checks to see if you have permission to untag resources. If you don't have the necessary * permission(s), the entire UpdateStackSet action fails with an access denied error, * and the stack set is not updated. *

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

                      *

                      * If you specify tags for this parameter, those tags replace any list of tags that are currently * associated with this stack set. This means: *

                      *
                        *
                      • *

                        * If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. *

                        *
                      • *
                      • *

                        * If you specify any tags using this parameter, you must specify all the tags that you * want associated with this stack set, even tags you've specified before (for example, when creating the * stack set or during a previous update of the stack set.). Any tags that you don't include in the * updated list of tags are removed from the stack set, and therefore from the stacks and resources as * well. *

                        *
                      • *
                      • *

                        * If you specify an empty value, CloudFormation removes all currently associated tags. *

                        *
                      • *
                      *

                      * If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see * if you have the required IAM permission to tag resources. If you omit tags that are currently * associated with the stack set from the list of tags you specify, CloudFormation assumes that you want * to remove those tags from the stack set, and checks to see if you have permission to untag resources. * If you don't have the necessary permission(s), the entire UpdateStackSet action fails * with an access denied error, and the stack set is not updated. * @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. CloudFormation also * propagates these tags to supported resources that are created in the stacks. You can specify a maximum number * of 50 tags. *

                      *

                      * If you specify tags for this parameter, those tags replace any list of tags that are currently associated * with this stack set. This means: *

                      *
                        *
                      • *

                        * If you don't specify this parameter, CloudFormation doesn't modify the stack's tags. *

                        *
                      • *
                      • *

                        * If you specify any tags using this parameter, you must specify all the tags that you want * associated with this stack set, even tags you've specified before (for example, when creating the stack set * or during a previous update of the stack set.). Any tags that you don't include in the updated list of tags * are removed from the stack set, and therefore from the stacks and resources as well. *

                        *
                      • *
                      • *

                        * If you specify an empty value, CloudFormation removes all currently associated tags. *

                        *
                      • *
                      *

                      * If you specify new tags as part of an UpdateStackSet action, CloudFormation checks to see if you * have the required IAM permission to tag resources. If you omit tags that are currently associated with the * stack set from the list of tags you specify, CloudFormation assumes that you want to remove those tags from * the stack set, and checks to see if you have permission to untag resources. If you don't have the necessary * permission(s), the entire UpdateStackSet action fails with an access denied error, * and the stack set is not updated. *

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

                      * When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.cloudformation.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.cloudformation.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); /** *

                      * Preferences for how CloudFormation performs this stack set operation. *

                      * * @param operationPreferences * Preferences for how CloudFormation performs this stack set operation. * @return Returns a reference to this object so that method calls can be chained together. */ Builder operationPreferences(StackSetOperationPreferences operationPreferences); /** *

                      * Preferences for how CloudFormation performs this stack set operation. *

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

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

                      * The Amazon Resource Name (ARN) of the IAM role to use to update 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 Granting * Permissions for Stack Set Operations in the CloudFormation User Guide. *

                      *

                      * If you specified a customized administrator role when you created the stack set, you must specify a * customized administrator role, even if it is the same customized administrator role used with this stack set * previously. *

                      * * @param administrationRoleARN * The Amazon Resource Name (ARN) of the IAM role to use to update 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 * * Granting Permissions for Stack Set Operations in the CloudFormation User Guide. *

                      *

                      * If you specified a customized administrator role when you created the stack set, you must specify a * customized administrator role, even if it is the same customized administrator role used with this * stack set previously. * @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 update the stack set. If you do not specify an execution role, * 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. *

                      *

                      * If you specify a customized execution role, CloudFormation uses that role to update the stack. If you do not * specify a customized execution role, CloudFormation performs the update using the role previously associated * with the stack set, so long as you have permissions to perform operations on the stack set. *

                      * * @param executionRoleName * The name of the IAM execution role to use to update the stack set. If you do not specify an execution * role, 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. *

                      *

                      * If you specify a customized execution role, CloudFormation uses that role to update the stack. If you * do not specify a customized execution role, CloudFormation performs the update using the role * previously associated with the stack set, so long as you have permissions to perform operations on the * stack set. * @return Returns a reference to this object so that method calls can be chained together. */ Builder executionRoleName(String executionRoleName); /** *

                      * [Service-managed permissions] The Organizations accounts in which to update associated stack instances. *

                      *

                      * To update all the stack instances associated with this stack set, do not specify * DeploymentTargets or Regions. *

                      *

                      * If the stack set update includes changes to the template (that is, if TemplateBody or * TemplateURL is specified), or the Parameters, CloudFormation marks all stack * instances with a status of OUTDATED prior to updating the stack instances in the specified * accounts and Amazon Web Services Regions. If the stack set update doesn't include changes to the template or * parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving * all other stack instances with their existing stack instance status. *

                      * * @param deploymentTargets * [Service-managed permissions] The Organizations accounts in which to update associated stack * instances.

                      *

                      * To update all the stack instances associated with this stack set, do not specify * DeploymentTargets or Regions. *

                      *

                      * If the stack set update includes changes to the template (that is, if TemplateBody or * TemplateURL is specified), or the Parameters, CloudFormation marks all stack * instances with a status of OUTDATED prior to updating the stack instances in the * specified accounts and Amazon Web Services Regions. If the stack set update doesn't include changes to * the template or parameters, CloudFormation updates the stack instances in the specified accounts and * Regions, while leaving all other stack instances with their existing stack instance status. * @return Returns a reference to this object so that method calls can be chained together. */ Builder deploymentTargets(DeploymentTargets deploymentTargets); /** *

                      * [Service-managed permissions] The Organizations accounts in which to update associated stack instances. *

                      *

                      * To update all the stack instances associated with this stack set, do not specify * DeploymentTargets or Regions. *

                      *

                      * If the stack set update includes changes to the template (that is, if TemplateBody or * TemplateURL is specified), or the Parameters, CloudFormation marks all stack * instances with a status of OUTDATED prior to updating the stack instances in the specified * accounts and Amazon Web Services Regions. If the stack set update doesn't include changes to the template or * parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving * all other stack instances with their existing stack instance status. *

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

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

                      * Describes how the IAM roles required for stack set operations are created. You cannot modify * PermissionModel if there are stack instances associated with your stack set. *

                      *
                        *
                      • *

                        * With self-managed permissions, you must create the administrator and execution roles required to * deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. *

                        *
                      • *
                      • *

                        * With service-managed permissions, StackSets automatically creates the IAM roles required to * deploy to accounts managed by Organizations. For more information, see Grant * Service-Managed Stack Set Permissions. *

                        *
                      • *
                      * * @param permissionModel * Describes how the IAM roles required for stack set operations are created. You cannot modify * PermissionModel if there are stack instances associated with your stack set.

                      *
                        *
                      • *

                        * With self-managed permissions, you must create the administrator and execution roles * required to deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. *

                        *
                      • *
                      • *

                        * With service-managed permissions, StackSets automatically creates the IAM roles required * to deploy to accounts managed by Organizations. For more information, see Grant Service-Managed Stack Set Permissions. *

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

                        * Describes how the IAM roles required for stack set operations are created. You cannot modify * PermissionModel if there are stack instances associated with your stack set. *

                        *
                          *
                        • *

                          * With self-managed permissions, you must create the administrator and execution roles required to * deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. *

                          *
                        • *
                        • *

                          * With service-managed permissions, StackSets automatically creates the IAM roles required to * deploy to accounts managed by Organizations. For more information, see Grant * Service-Managed Stack Set Permissions. *

                          *
                        • *
                        * * @param permissionModel * Describes how the IAM roles required for stack set operations are created. You cannot modify * PermissionModel if there are stack instances associated with your stack set.

                        *
                          *
                        • *

                          * With self-managed permissions, you must create the administrator and execution roles * required to deploy to target accounts. For more information, see Grant Self-Managed Stack Set Permissions. *

                          *
                        • *
                        • *

                          * With service-managed permissions, StackSets automatically creates the IAM roles required * to deploy to accounts managed by Organizations. For more information, see Grant Service-Managed Stack Set Permissions. *

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

                          * [Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts * that are added to a target organization or organizational unit (OU). *

                          *

                          * If you specify AutoDeployment, don't specify DeploymentTargets or * Regions. *

                          * * @param autoDeployment * [Service-managed permissions] Describes whether StackSets automatically deploys to Organizations * accounts that are added to a target organization or organizational unit (OU).

                          *

                          * If you specify AutoDeployment, don't specify DeploymentTargets or * Regions. * @return Returns a reference to this object so that method calls can be chained together. */ Builder autoDeployment(AutoDeployment autoDeployment); /** *

                          * [Service-managed permissions] Describes whether StackSets automatically deploys to Organizations accounts * that are added to a target organization or organizational unit (OU). *

                          *

                          * If you specify AutoDeployment, don't specify DeploymentTargets or * Regions. *

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

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

                          * The unique ID for this stack set operation. *

                          *

                          * The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the stack set * operation only once, even if you retry the request multiple times. You might retry stack set operation * requests to ensure that CloudFormation successfully received them. *

                          *

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

                          *

                          * Repeating this stack set operation with a new operation ID retries all stack instances whose status is * OUTDATED. *

                          * * @param operationId * The unique ID for this stack set operation.

                          *

                          * The operation ID also functions as an idempotency token, to ensure that CloudFormation performs the * stack set operation only once, even if you retry the request multiple times. You might retry stack set * operation requests to ensure that CloudFormation successfully received them. *

                          *

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

                          *

                          * Repeating this stack set operation with a new operation ID retries all stack instances whose status is * OUTDATED. * @return Returns a reference to this object so that method calls can be chained together. */ Builder operationId(String operationId); /** *

                          * [Self-managed permissions] The accounts in which to update associated stack instances. If you specify * accounts, you must also specify the Amazon Web Services Regions in which to update stack set instances. *

                          *

                          * To update all the stack instances associated with this stack set, don't specify the * Accounts or Regions properties. *

                          *

                          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, CloudFormation * marks all stack instances with a status of OUTDATED prior to updating the stack instances in the * specified accounts and Amazon Web Services Regions. If the stack set update does not include changes to the * template or parameters, CloudFormation updates the stack instances in the specified accounts and Amazon Web * Services Regions, while leaving all other stack instances with their existing stack instance status. *

                          * * @param accounts * [Self-managed permissions] The accounts in which to update associated stack instances. If you specify * accounts, you must also specify the Amazon Web Services Regions in which to update stack set * instances.

                          *

                          * To update all the stack instances associated with this stack set, don't specify the * Accounts or Regions properties. *

                          *

                          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, * CloudFormation marks all stack instances with a status of OUTDATED prior to updating the * stack instances in the specified accounts and Amazon Web Services Regions. If the stack set update * does not include changes to the template or parameters, CloudFormation updates the stack instances in * the specified accounts and Amazon Web Services Regions, while leaving all other stack instances with * their existing stack instance status. * @return Returns a reference to this object so that method calls can be chained together. */ Builder accounts(Collection accounts); /** *

                          * [Self-managed permissions] The accounts in which to update associated stack instances. If you specify * accounts, you must also specify the Amazon Web Services Regions in which to update stack set instances. *

                          *

                          * To update all the stack instances associated with this stack set, don't specify the * Accounts or Regions properties. *

                          *

                          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, CloudFormation * marks all stack instances with a status of OUTDATED prior to updating the stack instances in the * specified accounts and Amazon Web Services Regions. If the stack set update does not include changes to the * template or parameters, CloudFormation updates the stack instances in the specified accounts and Amazon Web * Services Regions, while leaving all other stack instances with their existing stack instance status. *

                          * * @param accounts * [Self-managed permissions] The accounts in which to update associated stack instances. If you specify * accounts, you must also specify the Amazon Web Services Regions in which to update stack set * instances.

                          *

                          * To update all the stack instances associated with this stack set, don't specify the * Accounts or Regions properties. *

                          *

                          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, * CloudFormation marks all stack instances with a status of OUTDATED prior to updating the * stack instances in the specified accounts and Amazon Web Services Regions. If the stack set update * does not include changes to the template or parameters, CloudFormation updates the stack instances in * the specified accounts and Amazon Web Services Regions, while leaving all other stack instances with * their existing stack instance status. * @return Returns a reference to this object so that method calls can be chained together. */ Builder accounts(String... accounts); /** *

                          * The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, you * must also specify accounts in which to update stack set instances. *

                          *

                          * To update all the stack instances associated with this stack set, do not specify the * Accounts or Regions properties. *

                          *

                          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, CloudFormation * marks all stack instances with a status of OUTDATED prior to updating the stack instances in the * specified accounts and Regions. If the stack set update does not include changes to the template or * parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving * all other stack instances with their existing stack instance status. *

                          * * @param regions * The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, * you must also specify accounts in which to update stack set instances.

                          *

                          * To update all the stack instances associated with this stack set, do not specify the * Accounts or Regions properties. *

                          *

                          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, * CloudFormation marks all stack instances with a status of OUTDATED prior to updating the * stack instances in the specified accounts and Regions. If the stack set update does not include * changes to the template or parameters, CloudFormation updates the stack instances in the specified * accounts and Regions, while leaving all other stack instances with their existing stack instance * status. * @return Returns a reference to this object so that method calls can be chained together. */ Builder regions(Collection regions); /** *

                          * The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, you * must also specify accounts in which to update stack set instances. *

                          *

                          * To update all the stack instances associated with this stack set, do not specify the * Accounts or Regions properties. *

                          *

                          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, CloudFormation * marks all stack instances with a status of OUTDATED prior to updating the stack instances in the * specified accounts and Regions. If the stack set update does not include changes to the template or * parameters, CloudFormation updates the stack instances in the specified accounts and Regions, while leaving * all other stack instances with their existing stack instance status. *

                          * * @param regions * The Amazon Web Services Regions in which to update associated stack instances. If you specify Regions, * you must also specify accounts in which to update stack set instances.

                          *

                          * To update all the stack instances associated with this stack set, do not specify the * Accounts or Regions properties. *

                          *

                          * If the stack set update includes changes to the template (that is, if the TemplateBody or * TemplateURL properties are specified), or the Parameters property, * CloudFormation marks all stack instances with a status of OUTDATED prior to updating the * stack instances in the specified accounts and Regions. If the stack set update does not include * changes to the template or parameters, CloudFormation updates the stack instances in the specified * accounts and Regions, while leaving all other stack instances with their existing stack instance * status. * @return Returns a reference to this object so that method calls can be chained together. */ Builder regions(String... regions); /** *

                          * [Service-managed permissions] Specifies whether you are acting as an account administrator in the * organization's management account or as a delegated administrator in a member account. *

                          *

                          * By default, SELF is specified. Use SELF for stack sets with self-managed * permissions. *

                          *
                            *
                          • *

                            * If you are signed in to the management account, specify SELF. *

                            *
                          • *
                          • *

                            * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. *

                            *

                            * Your Amazon Web Services account must be registered as a delegated administrator in the management account. * For more information, see Register a delegated administrator in the CloudFormation User Guide. *

                            *
                          • *
                          * * @param callAs * [Service-managed permissions] Specifies whether you are acting as an account administrator in the * organization's management account or as a delegated administrator in a member account.

                          *

                          * By default, SELF is specified. Use SELF for stack sets with self-managed * permissions. *

                          *
                            *
                          • *

                            * If you are signed in to the management account, specify SELF. *

                            *
                          • *
                          • *

                            * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. *

                            *

                            * Your Amazon Web Services account must be registered as a delegated administrator in the management * account. For more information, see Register a delegated administrator in the CloudFormation User Guide. *

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

                            * [Service-managed permissions] Specifies whether you are acting as an account administrator in the * organization's management account or as a delegated administrator in a member account. *

                            *

                            * By default, SELF is specified. Use SELF for stack sets with self-managed * permissions. *

                            *
                              *
                            • *

                              * If you are signed in to the management account, specify SELF. *

                              *
                            • *
                            • *

                              * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. *

                              *

                              * Your Amazon Web Services account must be registered as a delegated administrator in the management account. * For more information, see Register a delegated administrator in the CloudFormation User Guide. *

                              *
                            • *
                            * * @param callAs * [Service-managed permissions] Specifies whether you are acting as an account administrator in the * organization's management account or as a delegated administrator in a member account.

                            *

                            * By default, SELF is specified. Use SELF for stack sets with self-managed * permissions. *

                            *
                              *
                            • *

                              * If you are signed in to the management account, specify SELF. *

                              *
                            • *
                            • *

                              * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN. *

                              *

                              * Your Amazon Web Services account must be registered as a delegated administrator in the management * account. For more information, see Register a delegated administrator in the CloudFormation User Guide. *

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

                              * Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting * operations. *

                              * * @param managedExecution * Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting * operations. * @return Returns a reference to this object so that method calls can be chained together. */ Builder managedExecution(ManagedExecution managedExecution); /** *

                              * Describes whether StackSets performs non-conflicting operations concurrently and queues conflicting * operations. *

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

                              * When the {@link Consumer} completes, {@link ManagedExecution.Builder#build()} is called immediately and its * result is passed to {@link #managedExecution(ManagedExecution)}. * * @param managedExecution * a consumer that will call methods on {@link ManagedExecution.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #managedExecution(ManagedExecution) */ default Builder managedExecution(Consumer managedExecution) { return managedExecution(ManagedExecution.builder().applyMutation(managedExecution).build()); } @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 Boolean usePreviousTemplate; private List parameters = DefaultSdkAutoConstructList.getInstance(); private List capabilities = DefaultSdkAutoConstructList.getInstance(); private List tags = DefaultSdkAutoConstructList.getInstance(); private StackSetOperationPreferences operationPreferences; private String administrationRoleARN; private String executionRoleName; private DeploymentTargets deploymentTargets; private String permissionModel; private AutoDeployment autoDeployment; private String operationId; private List accounts = DefaultSdkAutoConstructList.getInstance(); private List regions = DefaultSdkAutoConstructList.getInstance(); private String callAs; private ManagedExecution managedExecution; private BuilderImpl() { } private BuilderImpl(UpdateStackSetRequest model) { super(model); stackSetName(model.stackSetName); description(model.description); templateBody(model.templateBody); templateURL(model.templateURL); usePreviousTemplate(model.usePreviousTemplate); parameters(model.parameters); capabilitiesWithStrings(model.capabilities); tags(model.tags); operationPreferences(model.operationPreferences); administrationRoleARN(model.administrationRoleARN); executionRoleName(model.executionRoleName); deploymentTargets(model.deploymentTargets); permissionModel(model.permissionModel); autoDeployment(model.autoDeployment); operationId(model.operationId); accounts(model.accounts); regions(model.regions); callAs(model.callAs); managedExecution(model.managedExecution); } public final String getStackSetName() { return stackSetName; } public final void setStackSetName(String stackSetName) { this.stackSetName = stackSetName; } @Override public final Builder stackSetName(String stackSetName) { this.stackSetName = stackSetName; return this; } public final String getDescription() { return description; } public final void setDescription(String description) { this.description = description; } @Override public final Builder description(String description) { this.description = description; return this; } public final String getTemplateBody() { return templateBody; } public final void setTemplateBody(String templateBody) { this.templateBody = templateBody; } @Override public final Builder templateBody(String templateBody) { this.templateBody = templateBody; return this; } public final String getTemplateURL() { return templateURL; } public final void setTemplateURL(String templateURL) { this.templateURL = templateURL; } @Override public final Builder templateURL(String templateURL) { this.templateURL = templateURL; return this; } public final Boolean getUsePreviousTemplate() { return usePreviousTemplate; } public final void setUsePreviousTemplate(Boolean usePreviousTemplate) { this.usePreviousTemplate = usePreviousTemplate; } @Override public final Builder usePreviousTemplate(Boolean usePreviousTemplate) { this.usePreviousTemplate = usePreviousTemplate; return this; } public final List getParameters() { List result = ParametersCopier.copyToBuilder(this.parameters); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setParameters(Collection parameters) { this.parameters = ParametersCopier.copyFromBuilder(parameters); } @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 Collection getCapabilities() { if (capabilities instanceof SdkAutoConstructList) { return null; } return capabilities; } public final void setCapabilities(Collection capabilities) { this.capabilities = CapabilitiesCopier.copy(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 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; } public final StackSetOperationPreferences.Builder getOperationPreferences() { return operationPreferences != null ? operationPreferences.toBuilder() : null; } public final void setOperationPreferences(StackSetOperationPreferences.BuilderImpl operationPreferences) { this.operationPreferences = operationPreferences != null ? operationPreferences.build() : null; } @Override public final Builder operationPreferences(StackSetOperationPreferences operationPreferences) { this.operationPreferences = operationPreferences; return this; } public final String getAdministrationRoleARN() { return administrationRoleARN; } public final void setAdministrationRoleARN(String administrationRoleARN) { this.administrationRoleARN = administrationRoleARN; } @Override public final Builder administrationRoleARN(String administrationRoleARN) { this.administrationRoleARN = administrationRoleARN; return this; } public final String getExecutionRoleName() { return executionRoleName; } public final void setExecutionRoleName(String executionRoleName) { this.executionRoleName = executionRoleName; } @Override public final Builder executionRoleName(String executionRoleName) { this.executionRoleName = executionRoleName; return this; } public final DeploymentTargets.Builder getDeploymentTargets() { return deploymentTargets != null ? deploymentTargets.toBuilder() : null; } public final void setDeploymentTargets(DeploymentTargets.BuilderImpl deploymentTargets) { this.deploymentTargets = deploymentTargets != null ? deploymentTargets.build() : null; } @Override public final Builder deploymentTargets(DeploymentTargets deploymentTargets) { this.deploymentTargets = deploymentTargets; return this; } public final String getPermissionModel() { return permissionModel; } public final void setPermissionModel(String permissionModel) { this.permissionModel = permissionModel; } @Override public final Builder permissionModel(String permissionModel) { this.permissionModel = permissionModel; return this; } @Override public final Builder permissionModel(PermissionModels permissionModel) { this.permissionModel(permissionModel == null ? null : permissionModel.toString()); return this; } public final AutoDeployment.Builder getAutoDeployment() { return autoDeployment != null ? autoDeployment.toBuilder() : null; } public final void setAutoDeployment(AutoDeployment.BuilderImpl autoDeployment) { this.autoDeployment = autoDeployment != null ? autoDeployment.build() : null; } @Override public final Builder autoDeployment(AutoDeployment autoDeployment) { this.autoDeployment = autoDeployment; return this; } public final String getOperationId() { return operationId; } public final void setOperationId(String operationId) { this.operationId = operationId; } @Override public final Builder operationId(String operationId) { this.operationId = operationId; return this; } public final Collection getAccounts() { if (accounts instanceof SdkAutoConstructList) { return null; } return accounts; } public final void setAccounts(Collection accounts) { this.accounts = AccountListCopier.copy(accounts); } @Override public final Builder accounts(Collection accounts) { this.accounts = AccountListCopier.copy(accounts); return this; } @Override @SafeVarargs public final Builder accounts(String... accounts) { accounts(Arrays.asList(accounts)); return this; } public final Collection getRegions() { if (regions instanceof SdkAutoConstructList) { return null; } return regions; } public final void setRegions(Collection regions) { this.regions = RegionListCopier.copy(regions); } @Override public final Builder regions(Collection regions) { this.regions = RegionListCopier.copy(regions); return this; } @Override @SafeVarargs public final Builder regions(String... regions) { regions(Arrays.asList(regions)); return this; } public final String getCallAs() { return callAs; } public final void setCallAs(String callAs) { this.callAs = callAs; } @Override public final Builder callAs(String callAs) { this.callAs = callAs; return this; } @Override public final Builder callAs(CallAs callAs) { this.callAs(callAs == null ? null : callAs.toString()); return this; } public final ManagedExecution.Builder getManagedExecution() { return managedExecution != null ? managedExecution.toBuilder() : null; } public final void setManagedExecution(ManagedExecution.BuilderImpl managedExecution) { this.managedExecution = managedExecution != null ? managedExecution.build() : null; } @Override public final Builder managedExecution(ManagedExecution managedExecution) { this.managedExecution = managedExecution; return this; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public UpdateStackSetRequest build() { return new UpdateStackSetRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy