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

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

    private static final SdkField> ACCOUNTS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .getter(getter(UpdateStackInstancesRequest::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 DEPLOYMENT_TARGETS_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).getter(getter(UpdateStackInstancesRequest::deploymentTargets))
            .setter(setter(Builder::deploymentTargets)).constructor(DeploymentTargets::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DeploymentTargets").build()).build();

    private static final SdkField> REGIONS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .getter(getter(UpdateStackInstancesRequest::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> PARAMETER_OVERRIDES_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .getter(getter(UpdateStackInstancesRequest::parameterOverrides))
            .setter(setter(Builder::parameterOverrides))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ParameterOverrides").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 OPERATION_PREFERENCES_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO)
            .getter(getter(UpdateStackInstancesRequest::operationPreferences)).setter(setter(Builder::operationPreferences))
            .constructor(StackSetOperationPreferences::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("OperationPreferences").build())
            .build();

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

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(STACK_SET_NAME_FIELD,
            ACCOUNTS_FIELD, DEPLOYMENT_TARGETS_FIELD, REGIONS_FIELD, PARAMETER_OVERRIDES_FIELD, OPERATION_PREFERENCES_FIELD,
            OPERATION_ID_FIELD));

    private final String stackSetName;

    private final List accounts;

    private final DeploymentTargets deploymentTargets;

    private final List regions;

    private final List parameterOverrides;

    private final StackSetOperationPreferences operationPreferences;

    private final String operationId;

    private UpdateStackInstancesRequest(BuilderImpl builder) {
        super(builder);
        this.stackSetName = builder.stackSetName;
        this.accounts = builder.accounts;
        this.deploymentTargets = builder.deploymentTargets;
        this.regions = builder.regions;
        this.parameterOverrides = builder.parameterOverrides;
        this.operationPreferences = builder.operationPreferences;
        this.operationId = builder.operationId;
    }

    /**
     * 

* The name or unique ID of the stack set associated with the stack instances. *

* * @return The name or unique ID of the stack set associated with the stack instances. */ public String stackSetName() { return stackSetName; } /** * Returns true if the Accounts property was specified by the sender (it may be empty), or false if the sender did * not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS service. */ public boolean hasAccounts() { return accounts != null && !(accounts instanceof SdkAutoConstructList); } /** *

* [Self-managed permissions] The names of one or more AWS accounts for which you want to update * parameter values for stack instances. The overridden parameter values will be applied to all stack instances in * the specified accounts and Regions. *

*

* You can specify Accounts or DeploymentTargets, but not both. *

*

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

*

* You can use {@link #hasAccounts()} to see if a value was sent in this field. *

* * @return [Self-managed permissions] The names of one or more AWS accounts for which you want to * update parameter values for stack instances. The overridden parameter values will be applied to all stack * instances in the specified accounts and Regions.

*

* You can specify Accounts or DeploymentTargets, but not both. */ public List accounts() { return accounts; } /** *

* [Service-managed permissions] The AWS Organizations accounts for which you want to update parameter * values for stack instances. If your update targets OUs, the overridden parameter values only apply to the * accounts that are currently in the target OUs and their child OUs. Accounts added to the target OUs and their * child OUs in the future won't use the overridden values. *

*

* You can specify Accounts or DeploymentTargets, but not both. *

* * @return [Service-managed permissions] The AWS Organizations accounts for which you want to update * parameter values for stack instances. If your update targets OUs, the overridden parameter values only * apply to the accounts that are currently in the target OUs and their child OUs. Accounts added to the * target OUs and their child OUs in the future won't use the overridden values.

*

* You can specify Accounts or DeploymentTargets, but not both. */ public DeploymentTargets deploymentTargets() { return deploymentTargets; } /** * Returns true if the Regions property was specified by the sender (it may be empty), or false if the sender did * not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS service. */ public boolean hasRegions() { return regions != null && !(regions instanceof SdkAutoConstructList); } /** *

* The names of one or more Regions in which you want to update parameter values for stack instances. The overridden * parameter values will be applied to all stack instances in the specified accounts and Regions. *

*

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

*

* You can use {@link #hasRegions()} to see if a value was sent in this field. *

* * @return The names of one or more Regions in which you want to update parameter values for stack instances. The * overridden parameter values will be applied to all stack instances in the specified accounts and Regions. */ public List regions() { return regions; } /** * Returns true if the ParameterOverrides property was specified by the sender (it may be empty), or false if the * sender did not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS * service. */ public boolean hasParameterOverrides() { return parameterOverrides != null && !(parameterOverrides instanceof SdkAutoConstructList); } /** *

* A list of input parameters whose values you want to update for the specified stack instances. *

*

* Any overridden parameter values will be applied to all stack instances in the specified accounts and Regions. * When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during * stack instance update operations: *

*
    *
  • *

    * To override the current value for a parameter, include the parameter and specify its value. *

    *
  • *
  • *

    * To leave a parameter set to its present value, you can do one of the following: *

    *
      *
    • *

      * Do not include the parameter in the list. *

      *
    • *
    • *

      * Include the parameter and specify UsePreviousValue as true. (You cannot specify both a * value and set UsePreviousValue to true.) *

      *
    • *
    *
  • *
  • *

    * To set all overridden parameter back to the values specified in the stack set, specify a parameter list but do * not include any parameters. *

    *
  • *
  • *

    * To leave all parameters set to their present values, do not specify this property at all. *

    *
  • *
*

* During stack set updates, any parameter values overridden for a stack instance are not updated, but retain their * overridden value. *

*

* You can only override the parameter values that are specified in the stack set; to add or delete a * parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to a * template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet to update all stack instances with the updated template and parameter value specified in the * stack set. Once a stack instance has been updated with the new parameter, you can then override the parameter * value using UpdateStackInstances. *

*

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

*

* You can use {@link #hasParameterOverrides()} to see if a value was sent in this field. *

* * @return A list of input parameters whose values you want to update for the specified stack instances.

*

* Any overridden parameter values will be applied to all stack instances in the specified accounts and * Regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter * values during stack instance update operations: *

*
    *
  • *

    * To override the current value for a parameter, include the parameter and specify its value. *

    *
  • *
  • *

    * To leave a parameter set to its present value, you can do one of the following: *

    *
      *
    • *

      * Do not include the parameter in the list. *

      *
    • *
    • *

      * Include the parameter and specify UsePreviousValue as true. (You cannot specify * both a value and set UsePreviousValue to true.) *

      *
    • *
    *
  • *
  • *

    * To set all overridden parameter back to the values specified in the stack set, specify a parameter list * but do not include any parameters. *

    *
  • *
  • *

    * To leave all parameters set to their present values, do not specify this property at all. *

    *
  • *
*

* During stack set updates, any parameter values overridden for a stack instance are not updated, but * retain their overridden value. *

*

* You can only override the parameter values that are specified in the stack set; to add or delete a * parameter itself, use UpdateStackSet to update the stack set template. If you add a * parameter to a template, before you can override the parameter value specified in the stack set you must * first use UpdateStackSet to update all stack instances with the updated template and parameter value specified * in the stack set. Once a stack instance has been updated with the new parameter, you can then override * the parameter value using UpdateStackInstances. */ public List parameterOverrides() { return parameterOverrides; } /** *

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

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

* The unique identifier for this stack set operation. *

*

* The operation ID also functions as an idempotency token, to ensure that AWS 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 AWS CloudFormation successfully received them. *

*

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

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

*

* The operation ID also functions as an idempotency token, to ensure that AWS 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 AWS CloudFormation successfully received them. *

*

* If you don't specify an operation ID, the SDK generates one automatically. */ public String operationId() { return operationId; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(stackSetName()); hashCode = 31 * hashCode + Objects.hashCode(accounts()); hashCode = 31 * hashCode + Objects.hashCode(deploymentTargets()); hashCode = 31 * hashCode + Objects.hashCode(regions()); hashCode = 31 * hashCode + Objects.hashCode(parameterOverrides()); hashCode = 31 * hashCode + Objects.hashCode(operationPreferences()); hashCode = 31 * hashCode + Objects.hashCode(operationId()); return hashCode; } @Override public boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof UpdateStackInstancesRequest)) { return false; } UpdateStackInstancesRequest other = (UpdateStackInstancesRequest) obj; return Objects.equals(stackSetName(), other.stackSetName()) && Objects.equals(accounts(), other.accounts()) && Objects.equals(deploymentTargets(), other.deploymentTargets()) && Objects.equals(regions(), other.regions()) && Objects.equals(parameterOverrides(), other.parameterOverrides()) && Objects.equals(operationPreferences(), other.operationPreferences()) && Objects.equals(operationId(), other.operationId()); } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. */ @Override public String toString() { return ToString.builder("UpdateStackInstancesRequest").add("StackSetName", stackSetName()).add("Accounts", accounts()) .add("DeploymentTargets", deploymentTargets()).add("Regions", regions()) .add("ParameterOverrides", parameterOverrides()).add("OperationPreferences", operationPreferences()) .add("OperationId", operationId()).build(); } public Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "StackSetName": return Optional.ofNullable(clazz.cast(stackSetName())); case "Accounts": return Optional.ofNullable(clazz.cast(accounts())); case "DeploymentTargets": return Optional.ofNullable(clazz.cast(deploymentTargets())); case "Regions": return Optional.ofNullable(clazz.cast(regions())); case "ParameterOverrides": return Optional.ofNullable(clazz.cast(parameterOverrides())); case "OperationPreferences": return Optional.ofNullable(clazz.cast(operationPreferences())); case "OperationId": return Optional.ofNullable(clazz.cast(operationId())); default: return Optional.empty(); } } @Override public List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((UpdateStackInstancesRequest) 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 associated with the stack instances. *

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

* [Self-managed permissions] The names of one or more AWS accounts for which you want to update * parameter values for stack instances. The overridden parameter values will be applied to all stack instances * in the specified accounts and Regions. *

*

* You can specify Accounts or DeploymentTargets, but not both. *

* * @param accounts * [Self-managed permissions] The names of one or more AWS accounts for which you want to * update parameter values for stack instances. The overridden parameter values will be applied to all * stack instances in the specified accounts and Regions.

*

* You can specify Accounts or DeploymentTargets, but not both. * @return Returns a reference to this object so that method calls can be chained together. */ Builder accounts(Collection accounts); /** *

* [Self-managed permissions] The names of one or more AWS accounts for which you want to update * parameter values for stack instances. The overridden parameter values will be applied to all stack instances * in the specified accounts and Regions. *

*

* You can specify Accounts or DeploymentTargets, but not both. *

* * @param accounts * [Self-managed permissions] The names of one or more AWS accounts for which you want to * update parameter values for stack instances. The overridden parameter values will be applied to all * stack instances in the specified accounts and Regions.

*

* You can specify Accounts or DeploymentTargets, but not both. * @return Returns a reference to this object so that method calls can be chained together. */ Builder accounts(String... accounts); /** *

* [Service-managed permissions] The AWS Organizations accounts for which you want to update * parameter values for stack instances. If your update targets OUs, the overridden parameter values only apply * to the accounts that are currently in the target OUs and their child OUs. Accounts added to the target OUs * and their child OUs in the future won't use the overridden values. *

*

* You can specify Accounts or DeploymentTargets, but not both. *

* * @param deploymentTargets * [Service-managed permissions] The AWS Organizations accounts for which you want to update * parameter values for stack instances. If your update targets OUs, the overridden parameter values only * apply to the accounts that are currently in the target OUs and their child OUs. Accounts added to the * target OUs and their child OUs in the future won't use the overridden values.

*

* You can specify Accounts or DeploymentTargets, but not both. * @return Returns a reference to this object so that method calls can be chained together. */ Builder deploymentTargets(DeploymentTargets deploymentTargets); /** *

* [Service-managed permissions] The AWS Organizations accounts for which you want to update * parameter values for stack instances. If your update targets OUs, the overridden parameter values only apply * to the accounts that are currently in the target OUs and their child OUs. Accounts added to the target OUs * and their child OUs in the future won't use the overridden values. *

*

* You can specify Accounts or DeploymentTargets, but not both. *

* This is a convenience 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()); } /** *

* The names of one or more Regions in which you want to update parameter values for stack instances. The * overridden parameter values will be applied to all stack instances in the specified accounts and Regions. *

* * @param regions * The names of one or more Regions in which you want to update parameter values for stack instances. The * overridden parameter values will be applied to all stack instances in the specified accounts and * Regions. * @return Returns a reference to this object so that method calls can be chained together. */ Builder regions(Collection regions); /** *

* The names of one or more Regions in which you want to update parameter values for stack instances. The * overridden parameter values will be applied to all stack instances in the specified accounts and Regions. *

* * @param regions * The names of one or more Regions in which you want to update parameter values for stack instances. The * overridden parameter values will be applied to all stack instances in the specified accounts and * Regions. * @return Returns a reference to this object so that method calls can be chained together. */ Builder regions(String... regions); /** *

* A list of input parameters whose values you want to update for the specified stack instances. *

*

* Any overridden parameter values will be applied to all stack instances in the specified accounts and Regions. * When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during * stack instance update operations: *

*
    *
  • *

    * To override the current value for a parameter, include the parameter and specify its value. *

    *
  • *
  • *

    * To leave a parameter set to its present value, you can do one of the following: *

    *
      *
    • *

      * Do not include the parameter in the list. *

      *
    • *
    • *

      * Include the parameter and specify UsePreviousValue as true. (You cannot specify * both a value and set UsePreviousValue to true.) *

      *
    • *
    *
  • *
  • *

    * To set all overridden parameter back to the values specified in the stack set, specify a parameter list but * do not include any parameters. *

    *
  • *
  • *

    * To leave all parameters set to their present values, do not specify this property at all. *

    *
  • *
*

* During stack set updates, any parameter values overridden for a stack instance are not updated, but retain * their overridden value. *

*

* You can only override the parameter values that are specified in the stack set; to add or delete a * parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to * a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet * to update all stack instances with the updated template and parameter value specified in the stack set. * Once a stack instance has been updated with the new parameter, you can then override the parameter value * using UpdateStackInstances. *

* * @param parameterOverrides * A list of input parameters whose values you want to update for the specified stack instances.

*

* Any overridden parameter values will be applied to all stack instances in the specified accounts and * Regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets * parameter values during stack instance update operations: *

*
    *
  • *

    * To override the current value for a parameter, include the parameter and specify its value. *

    *
  • *
  • *

    * To leave a parameter set to its present value, you can do one of the following: *

    *
      *
    • *

      * Do not include the parameter in the list. *

      *
    • *
    • *

      * Include the parameter and specify UsePreviousValue as true. (You cannot * specify both a value and set UsePreviousValue to true.) *

      *
    • *
    *
  • *
  • *

    * To set all overridden parameter back to the values specified in the stack set, specify a parameter * list but do not include any parameters. *

    *
  • *
  • *

    * To leave all parameters set to their present values, do not specify this property at all. *

    *
  • *
*

* During stack set updates, any parameter values overridden for a stack instance are not updated, but * retain their overridden value. *

*

* You can only override the parameter values that are specified in the stack set; to add or * delete a parameter itself, use UpdateStackSet to update the stack set template. If you * add a parameter to a template, before you can override the parameter value specified in the stack set * you must first use UpdateStackSet to update all stack instances with the updated template and parameter value * specified in the stack set. Once a stack instance has been updated with the new parameter, you can * then override the parameter value using UpdateStackInstances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder parameterOverrides(Collection parameterOverrides); /** *

* A list of input parameters whose values you want to update for the specified stack instances. *

*

* Any overridden parameter values will be applied to all stack instances in the specified accounts and Regions. * When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during * stack instance update operations: *

*
    *
  • *

    * To override the current value for a parameter, include the parameter and specify its value. *

    *
  • *
  • *

    * To leave a parameter set to its present value, you can do one of the following: *

    *
      *
    • *

      * Do not include the parameter in the list. *

      *
    • *
    • *

      * Include the parameter and specify UsePreviousValue as true. (You cannot specify * both a value and set UsePreviousValue to true.) *

      *
    • *
    *
  • *
  • *

    * To set all overridden parameter back to the values specified in the stack set, specify a parameter list but * do not include any parameters. *

    *
  • *
  • *

    * To leave all parameters set to their present values, do not specify this property at all. *

    *
  • *
*

* During stack set updates, any parameter values overridden for a stack instance are not updated, but retain * their overridden value. *

*

* You can only override the parameter values that are specified in the stack set; to add or delete a * parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to * a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet * to update all stack instances with the updated template and parameter value specified in the stack set. * Once a stack instance has been updated with the new parameter, you can then override the parameter value * using UpdateStackInstances. *

* * @param parameterOverrides * A list of input parameters whose values you want to update for the specified stack instances.

*

* Any overridden parameter values will be applied to all stack instances in the specified accounts and * Regions. When specifying parameters and their values, be aware of how AWS CloudFormation sets * parameter values during stack instance update operations: *

*
    *
  • *

    * To override the current value for a parameter, include the parameter and specify its value. *

    *
  • *
  • *

    * To leave a parameter set to its present value, you can do one of the following: *

    *
      *
    • *

      * Do not include the parameter in the list. *

      *
    • *
    • *

      * Include the parameter and specify UsePreviousValue as true. (You cannot * specify both a value and set UsePreviousValue to true.) *

      *
    • *
    *
  • *
  • *

    * To set all overridden parameter back to the values specified in the stack set, specify a parameter * list but do not include any parameters. *

    *
  • *
  • *

    * To leave all parameters set to their present values, do not specify this property at all. *

    *
  • *
*

* During stack set updates, any parameter values overridden for a stack instance are not updated, but * retain their overridden value. *

*

* You can only override the parameter values that are specified in the stack set; to add or * delete a parameter itself, use UpdateStackSet to update the stack set template. If you * add a parameter to a template, before you can override the parameter value specified in the stack set * you must first use UpdateStackSet to update all stack instances with the updated template and parameter value * specified in the stack set. Once a stack instance has been updated with the new parameter, you can * then override the parameter value using UpdateStackInstances. * @return Returns a reference to this object so that method calls can be chained together. */ Builder parameterOverrides(Parameter... parameterOverrides); /** *

* A list of input parameters whose values you want to update for the specified stack instances. *

*

* Any overridden parameter values will be applied to all stack instances in the specified accounts and Regions. * When specifying parameters and their values, be aware of how AWS CloudFormation sets parameter values during * stack instance update operations: *

*
    *
  • *

    * To override the current value for a parameter, include the parameter and specify its value. *

    *
  • *
  • *

    * To leave a parameter set to its present value, you can do one of the following: *

    *
      *
    • *

      * Do not include the parameter in the list. *

      *
    • *
    • *

      * Include the parameter and specify UsePreviousValue as true. (You cannot specify * both a value and set UsePreviousValue to true.) *

      *
    • *
    *
  • *
  • *

    * To set all overridden parameter back to the values specified in the stack set, specify a parameter list but * do not include any parameters. *

    *
  • *
  • *

    * To leave all parameters set to their present values, do not specify this property at all. *

    *
  • *
*

* During stack set updates, any parameter values overridden for a stack instance are not updated, but retain * their overridden value. *

*

* You can only override the parameter values that are specified in the stack set; to add or delete a * parameter itself, use UpdateStackSet to update the stack set template. If you add a parameter to * a template, before you can override the parameter value specified in the stack set you must first use UpdateStackSet * to update all stack instances with the updated template and parameter value specified in the stack set. * Once a stack instance has been updated with the new parameter, you can then override the parameter value * using UpdateStackInstances. *

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

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

* * @param operationPreferences * Preferences for how AWS 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 AWS CloudFormation performs this stack set operation. *

* This is a convenience 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 unique identifier for this stack set operation. *

*

* The operation ID also functions as an idempotency token, to ensure that AWS 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 AWS CloudFormation successfully received them. *

*

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

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

*

* The operation ID also functions as an idempotency token, to ensure that AWS 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 AWS CloudFormation successfully received them. *

*

* If you don't specify an operation ID, the SDK generates one automatically. * @return Returns a reference to this object so that method calls can be chained together. */ Builder operationId(String operationId); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends CloudFormationRequest.BuilderImpl implements Builder { private String stackSetName; private List accounts = DefaultSdkAutoConstructList.getInstance(); private DeploymentTargets deploymentTargets; private List regions = DefaultSdkAutoConstructList.getInstance(); private List parameterOverrides = DefaultSdkAutoConstructList.getInstance(); private StackSetOperationPreferences operationPreferences; private String operationId; private BuilderImpl() { } private BuilderImpl(UpdateStackInstancesRequest model) { super(model); stackSetName(model.stackSetName); accounts(model.accounts); deploymentTargets(model.deploymentTargets); regions(model.regions); parameterOverrides(model.parameterOverrides); operationPreferences(model.operationPreferences); operationId(model.operationId); } public final String getStackSetName() { return stackSetName; } @Override public final Builder stackSetName(String stackSetName) { this.stackSetName = stackSetName; return this; } public final void setStackSetName(String stackSetName) { this.stackSetName = stackSetName; } public final Collection getAccounts() { return 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 void setAccounts(Collection accounts) { this.accounts = AccountListCopier.copy(accounts); } public final DeploymentTargets.Builder getDeploymentTargets() { return deploymentTargets != null ? deploymentTargets.toBuilder() : null; } @Override public final Builder deploymentTargets(DeploymentTargets deploymentTargets) { this.deploymentTargets = deploymentTargets; return this; } public final void setDeploymentTargets(DeploymentTargets.BuilderImpl deploymentTargets) { this.deploymentTargets = deploymentTargets != null ? deploymentTargets.build() : null; } public final Collection getRegions() { return 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 void setRegions(Collection regions) { this.regions = RegionListCopier.copy(regions); } public final Collection getParameterOverrides() { return parameterOverrides != null ? parameterOverrides.stream().map(Parameter::toBuilder) .collect(Collectors.toList()) : null; } @Override public final Builder parameterOverrides(Collection parameterOverrides) { this.parameterOverrides = ParametersCopier.copy(parameterOverrides); return this; } @Override @SafeVarargs public final Builder parameterOverrides(Parameter... parameterOverrides) { parameterOverrides(Arrays.asList(parameterOverrides)); return this; } @Override @SafeVarargs public final Builder parameterOverrides(Consumer... parameterOverrides) { parameterOverrides(Stream.of(parameterOverrides).map(c -> Parameter.builder().applyMutation(c).build()) .collect(Collectors.toList())); return this; } public final void setParameterOverrides(Collection parameterOverrides) { this.parameterOverrides = ParametersCopier.copyFromBuilder(parameterOverrides); } public final StackSetOperationPreferences.Builder getOperationPreferences() { return operationPreferences != null ? operationPreferences.toBuilder() : null; } @Override public final Builder operationPreferences(StackSetOperationPreferences operationPreferences) { this.operationPreferences = operationPreferences; return this; } public final void setOperationPreferences(StackSetOperationPreferences.BuilderImpl operationPreferences) { this.operationPreferences = operationPreferences != null ? operationPreferences.build() : null; } public final String getOperationId() { return operationId; } @Override public final Builder operationId(String operationId) { this.operationId = operationId; return this; } public final void setOperationId(String operationId) { this.operationId = operationId; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public UpdateStackInstancesRequest build() { return new UpdateStackInstancesRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy