public Version withRequiredCapabilities(String... requiredCapabilities) {
        if (this.requiredCapabilities == null) {
            setRequiredCapabilities(new java.util.ArrayList<String>(requiredCapabilities.length));
        }
        for (String ele : requiredCapabilities) {
            this.requiredCapabilities.add(ele);
        }
        return this;
    }
public Version withRequiredCapabilities ( String ... requiredCapabilities ) { if ( this . requiredCapabilities == null ) { setRequiredCapabilities ( new java . util . ArrayList < String > ( requiredCapabilities . length ) ) ; } for ( String ele : requiredCapabilities ) { this . requiredCapabilities . add ( ele ) ; } return this ; }
<p>
A list of values that you must specify before you can deploy certain applications. Some applications might
include resources that can affect permissions in your AWS account, for example, by creating new AWS Identity and
Access Management (IAM) users. For those applications, you must explicitly acknowledge their capabilities by
specifying this parameter.
</p>
<p>
The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_RESOURCE_POLICY, and
CAPABILITY_AUTO_EXPAND.
</p>
<p>
The following resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM: <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"
>AWS::IAM::Group</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"
>AWS::IAM::InstanceProfile</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html"
>AWS::IAM::Policy</a>, and <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"
>AWS::IAM::Role</a>. If the application contains IAM resources, you can specify either CAPABILITY_IAM or
CAPABILITY_NAMED_IAM. If the application contains IAM resources with custom names, you must specify
CAPABILITY_NAMED_IAM.
</p>
<p>
The following resources require you to specify CAPABILITY_RESOURCE_POLICY: <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html"
>AWS::Lambda::Permission</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html"
>AWS::IAM:Policy</a>, <a href=
"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html"
>AWS::ApplicationAutoScaling::ScalingPolicy</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html"
>AWS::S3::BucketPolicy</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html"
>AWS::SQS::QueuePolicy</a>, and <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html"
>AWS::SNS::TopicPolicy</a>.
</p>
<p>
Applications that contain one or more nested applications require you to specify CAPABILITY_AUTO_EXPAND.
</p>
<p>
If your application template contains any of the above resources, we recommend that you review all permissions
associated with the application before deploying. If you don't specify this parameter for an application that
requires capabilities, the call will fail.
</p>
<p>
<b>NOTE:</b> This method appends the values to the existing list (if any). Use
{@link #setRequiredCapabilities(java.util.Collection)} or {@link #withRequiredCapabilities(java.util.Collection)}
if you want to override the existing values.
</p>

@param requiredCapabilities
A list of values that you must specify before you can deploy certain applications. Some applications might
include resources that can affect permissions in your AWS account, for example, by creating new AWS
Identity and Access Management (IAM) users. For those applications, you must explicitly acknowledge their
capabilities by specifying this parameter.</p>
<p>
The only valid values are CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_RESOURCE_POLICY, and
CAPABILITY_AUTO_EXPAND.
</p>
<p>
The following resources require you to specify CAPABILITY_IAM or CAPABILITY_NAMED_IAM: <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html"
>AWS::IAM::Group</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html"
>AWS::IAM::InstanceProfile</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html"
>AWS::IAM::Policy</a>, and <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html"
>AWS::IAM::Role</a>. If the application contains IAM resources, you can specify either CAPABILITY_IAM or
CAPABILITY_NAMED_IAM. If the application contains IAM resources with custom names, you must specify
CAPABILITY_NAMED_IAM.
</p>
<p>
The following resources require you to specify CAPABILITY_RESOURCE_POLICY: <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html"
>AWS::Lambda::Permission</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html"
>AWS::IAM:Policy</a>, <a href=
"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html"
>AWS::ApplicationAutoScaling::ScalingPolicy</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html"
>AWS::S3::BucketPolicy</a>, <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html"
>AWS::SQS::QueuePolicy</a>, and <a
href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html"
>AWS::SNS::TopicPolicy</a>.
</p>
<p>
Applications that contain one or more nested applications require you to specify CAPABILITY_AUTO_EXPAND.
</p>
<p>
If your application template contains any of the above resources, we recommend that you review all
permissions associated with the application before deploying. If you don't specify this parameter for an
application that requires capabilities, the call will fail.
@return Returns a reference to this object so that method calls can be chained together.
@see Capability