/* * Copyright 2018-2023 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 com.amazonaws.services.applicationautoscaling.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Represents a scaling policy to use with Application Auto Scaling. *
** For more information about configuring scaling policies for a specific service, see Amazon Web * Services services that you can use with Application Auto Scaling in the Application Auto Scaling User * Guide. *
* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class ScalingPolicy implements Serializable, Cloneable, StructuredPojo { /** ** The Amazon Resource Name (ARN) of the scaling policy. *
*/ private String policyARN; /** ** The name of the scaling policy. *
*/ private String policyName; /** *
     * The namespace of the Amazon Web Services service that provides the resource, or a custom-resource.
     * 
* The identifier of the resource associated with the scaling policy. This string consists of the resource type and * unique identifier. *
*
     * ECS service - The resource type is service and the unique identifier is the cluster name and service
     * name. Example: service/default/sample-webapp.
     * 
     * Spot Fleet - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet
     * request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
     * 
     * EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and
     * instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
     * 
     * AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name.
     * Example: fleet/sample-fleet.
     * 
     * DynamoDB table - The resource type is table and the unique identifier is the table name. Example:
     * table/my-table.
     * 
     * DynamoDB global secondary index - The resource type is index and the unique identifier is the index
     * name. Example: table/my-table/index/my-table-index.
     * 
     * Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name.
     * Example: cluster:my-db-cluster.
     * 
     * SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource
     * ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     * 
     * Custom resources are not supported with a resource type. This parameter must specify the OutputValue
     * from the CloudFormation template stack used to access the resources. The unique identifier is defined by the
     * service provider. More information is available in our GitHub repository.
     * 
     * Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using
     * the endpoint ARN. Example:
     * arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
     * 
     * Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the
     * endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
     * 
     * Lambda provisioned concurrency - The resource type is function and the unique identifier is the
     * function name with a function version or alias name suffix that is not $LATEST. Example:
     * function:my-function:prod or function:my-function:1.
     * 
     * Amazon Keyspaces table - The resource type is table and the unique identifier is the table name.
     * Example: keyspace/mykeyspace/table/mytable.
     * 
     * Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example:
     * arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
     * 
     * Amazon ElastiCache replication group - The resource type is replication-group and the unique
     * identifier is the replication group name. Example: replication-group/mycluster.
     * 
     * Neptune cluster - The resource type is cluster and the unique identifier is the cluster name.
     * Example: cluster:mycluster.
     * 
     * SageMaker Serverless endpoint - The resource type is variant and the unique identifier is the
     * resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     * 
* The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *
*
     * ecs:service:DesiredCount - The desired task count of an ECS service.
     * 
     * elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     * 
     * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     * 
     * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     * 
     * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     * 
     * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     * 
     * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary
     * index.
     * 
     * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary
     * index.
     * 
     * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for
     * Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     * 
     * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint
     * variant.
     * 
     * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by
     * your own application or service.
     * 
     * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend document classification endpoint.
     * 
     * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend entity recognizer endpoint.
     * 
     * lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     * 
     * cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table.
     * 
     * cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table.
     * 
     * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK
     * cluster.
     * 
     * elasticache:replication-group:NodeGroups - The number of node groups for an Amazon ElastiCache
     * replication group.
     * 
     * elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     * ElastiCache replication group.
     * 
     * neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB cluster.
     * 
     * sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     * Serverless endpoint.
     * 
* The scaling policy type. *
** The following policy types are supported: *
*
     * TargetTrackingScaling—Not supported for Amazon EMR
     * 
     * StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK,
     * Amazon ElastiCache, or Neptune.
     * 
* A step scaling policy. *
*/ private StepScalingPolicyConfiguration stepScalingPolicyConfiguration; /** ** A target tracking scaling policy. *
*/ private TargetTrackingScalingPolicyConfiguration targetTrackingScalingPolicyConfiguration; /** ** The CloudWatch alarms associated with the scaling policy. *
*/ private java.util.List* The Unix timestamp for when the scaling policy was created. *
*/ private java.util.Date creationTime; /** ** The Amazon Resource Name (ARN) of the scaling policy. *
* * @param policyARN * The Amazon Resource Name (ARN) of the scaling policy. */ public void setPolicyARN(String policyARN) { this.policyARN = policyARN; } /** ** The Amazon Resource Name (ARN) of the scaling policy. *
* * @return The Amazon Resource Name (ARN) of the scaling policy. */ public String getPolicyARN() { return this.policyARN; } /** ** The Amazon Resource Name (ARN) of the scaling policy. *
* * @param policyARN * The Amazon Resource Name (ARN) of the scaling policy. * @return Returns a reference to this object so that method calls can be chained together. */ public ScalingPolicy withPolicyARN(String policyARN) { setPolicyARN(policyARN); return this; } /** ** The name of the scaling policy. *
* * @param policyName * The name of the scaling policy. */ public void setPolicyName(String policyName) { this.policyName = policyName; } /** ** The name of the scaling policy. *
* * @return The name of the scaling policy. */ public String getPolicyName() { return this.policyName; } /** ** The name of the scaling policy. *
* * @param policyName * The name of the scaling policy. * @return Returns a reference to this object so that method calls can be chained together. */ public ScalingPolicy withPolicyName(String policyName) { setPolicyName(policyName); return this; } /** *
     * The namespace of the Amazon Web Services service that provides the resource, or a custom-resource.
     * 
custom-resource.
     * @see ServiceNamespace
     */
    public void setServiceNamespace(String serviceNamespace) {
        this.serviceNamespace = serviceNamespace;
    }
    /**
     * 
     * The namespace of the Amazon Web Services service that provides the resource, or a custom-resource.
     * 
custom-resource.
     * @see ServiceNamespace
     */
    public String getServiceNamespace() {
        return this.serviceNamespace;
    }
    /**
     * 
     * The namespace of the Amazon Web Services service that provides the resource, or a custom-resource.
     * 
custom-resource.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see ServiceNamespace
     */
    public ScalingPolicy withServiceNamespace(String serviceNamespace) {
        setServiceNamespace(serviceNamespace);
        return this;
    }
    /**
     * 
     * The namespace of the Amazon Web Services service that provides the resource, or a custom-resource.
     * 
custom-resource.
     * @see ServiceNamespace
     */
    public void setServiceNamespace(ServiceNamespace serviceNamespace) {
        withServiceNamespace(serviceNamespace);
    }
    /**
     * 
     * The namespace of the Amazon Web Services service that provides the resource, or a custom-resource.
     * 
custom-resource.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see ServiceNamespace
     */
    public ScalingPolicy withServiceNamespace(ServiceNamespace serviceNamespace) {
        this.serviceNamespace = serviceNamespace.toString();
        return this;
    }
    /**
     * * The identifier of the resource associated with the scaling policy. This string consists of the resource type and * unique identifier. *
*
     * ECS service - The resource type is service and the unique identifier is the cluster name and service
     * name. Example: service/default/sample-webapp.
     * 
     * Spot Fleet - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet
     * request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
     * 
     * EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and
     * instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
     * 
     * AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name.
     * Example: fleet/sample-fleet.
     * 
     * DynamoDB table - The resource type is table and the unique identifier is the table name. Example:
     * table/my-table.
     * 
     * DynamoDB global secondary index - The resource type is index and the unique identifier is the index
     * name. Example: table/my-table/index/my-table-index.
     * 
     * Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name.
     * Example: cluster:my-db-cluster.
     * 
     * SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource
     * ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     * 
     * Custom resources are not supported with a resource type. This parameter must specify the OutputValue
     * from the CloudFormation template stack used to access the resources. The unique identifier is defined by the
     * service provider. More information is available in our GitHub repository.
     * 
     * Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using
     * the endpoint ARN. Example:
     * arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
     * 
     * Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the
     * endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
     * 
     * Lambda provisioned concurrency - The resource type is function and the unique identifier is the
     * function name with a function version or alias name suffix that is not $LATEST. Example:
     * function:my-function:prod or function:my-function:1.
     * 
     * Amazon Keyspaces table - The resource type is table and the unique identifier is the table name.
     * Example: keyspace/mykeyspace/table/mytable.
     * 
     * Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example:
     * arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
     * 
     * Amazon ElastiCache replication group - The resource type is replication-group and the unique
     * identifier is the replication group name. Example: replication-group/mycluster.
     * 
     * Neptune cluster - The resource type is cluster and the unique identifier is the cluster name.
     * Example: cluster:mycluster.
     * 
     * SageMaker Serverless endpoint - The resource type is variant and the unique identifier is the
     * resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     * 
     *        ECS service - The resource type is service and the unique identifier is the cluster name and
     *        service name. Example: service/default/sample-webapp.
     *        
     *        Spot Fleet - The resource type is spot-fleet-request and the unique identifier is the Spot
     *        Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
     *        
     *        EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID
     *        and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
     *        
     *        AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name.
     *        Example: fleet/sample-fleet.
     *        
     *        DynamoDB table - The resource type is table and the unique identifier is the table name.
     *        Example: table/my-table.
     *        
     *        DynamoDB global secondary index - The resource type is index and the unique identifier is the
     *        index name. Example: table/my-table/index/my-table-index.
     *        
     *        Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster
     *        name. Example: cluster:my-db-cluster.
     *        
     *        SageMaker endpoint variant - The resource type is variant and the unique identifier is the
     *        resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     *        
     *        Custom resources are not supported with a resource type. This parameter must specify the
     *        OutputValue from the CloudFormation template stack used to access the resources. The unique
     *        identifier is defined by the service provider. More information is available in our GitHub repository.
     *        
     *        Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified
     *        using the endpoint ARN. Example:
     *        arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
     *        
     *        Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using
     *        the endpoint ARN. Example:
     *        arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
     *        
     *        Lambda provisioned concurrency - The resource type is function and the unique identifier is
     *        the function name with a function version or alias name suffix that is not $LATEST. Example:
     *        function:my-function:prod or function:my-function:1.
     *        
     *        Amazon Keyspaces table - The resource type is table and the unique identifier is the table
     *        name. Example: keyspace/mykeyspace/table/mytable.
     *        
     *        Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example:
     *        arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5
     *        .
     *        
     *        Amazon ElastiCache replication group - The resource type is replication-group and the unique
     *        identifier is the replication group name. Example: replication-group/mycluster.
     *        
     *        Neptune cluster - The resource type is cluster and the unique identifier is the cluster name.
     *        Example: cluster:mycluster.
     *        
     *        SageMaker Serverless endpoint - The resource type is variant and the unique identifier is the
     *        resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     *        
* The identifier of the resource associated with the scaling policy. This string consists of the resource type and * unique identifier. *
*
     * ECS service - The resource type is service and the unique identifier is the cluster name and service
     * name. Example: service/default/sample-webapp.
     * 
     * Spot Fleet - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet
     * request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
     * 
     * EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and
     * instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
     * 
     * AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name.
     * Example: fleet/sample-fleet.
     * 
     * DynamoDB table - The resource type is table and the unique identifier is the table name. Example:
     * table/my-table.
     * 
     * DynamoDB global secondary index - The resource type is index and the unique identifier is the index
     * name. Example: table/my-table/index/my-table-index.
     * 
     * Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name.
     * Example: cluster:my-db-cluster.
     * 
     * SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource
     * ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     * 
     * Custom resources are not supported with a resource type. This parameter must specify the OutputValue
     * from the CloudFormation template stack used to access the resources. The unique identifier is defined by the
     * service provider. More information is available in our GitHub repository.
     * 
     * Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using
     * the endpoint ARN. Example:
     * arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
     * 
     * Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the
     * endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
     * 
     * Lambda provisioned concurrency - The resource type is function and the unique identifier is the
     * function name with a function version or alias name suffix that is not $LATEST. Example:
     * function:my-function:prod or function:my-function:1.
     * 
     * Amazon Keyspaces table - The resource type is table and the unique identifier is the table name.
     * Example: keyspace/mykeyspace/table/mytable.
     * 
     * Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example:
     * arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
     * 
     * Amazon ElastiCache replication group - The resource type is replication-group and the unique
     * identifier is the replication group name. Example: replication-group/mycluster.
     * 
     * Neptune cluster - The resource type is cluster and the unique identifier is the cluster name.
     * Example: cluster:mycluster.
     * 
     * SageMaker Serverless endpoint - The resource type is variant and the unique identifier is the
     * resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     * 
     *         ECS service - The resource type is service and the unique identifier is the cluster name and
     *         service name. Example: service/default/sample-webapp.
     *         
     *         Spot Fleet - The resource type is spot-fleet-request and the unique identifier is the Spot
     *         Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
     *         
     *         EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID
     *         and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
     *         
     *         AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet
     *         name. Example: fleet/sample-fleet.
     *         
     *         DynamoDB table - The resource type is table and the unique identifier is the table name.
     *         Example: table/my-table.
     *         
     *         DynamoDB global secondary index - The resource type is index and the unique identifier is
     *         the index name. Example: table/my-table/index/my-table-index.
     *         
     *         Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster
     *         name. Example: cluster:my-db-cluster.
     *         
     *         SageMaker endpoint variant - The resource type is variant and the unique identifier is the
     *         resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     *         
     *         Custom resources are not supported with a resource type. This parameter must specify the
     *         OutputValue from the CloudFormation template stack used to access the resources. The unique
     *         identifier is defined by the service provider. More information is available in our GitHub repository.
     *         
     *         Amazon Comprehend document classification endpoint - The resource type and unique identifier are
     *         specified using the endpoint ARN. Example:
     *         arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
     *         
     *         Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified
     *         using the endpoint ARN. Example:
     *         arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
     *         
     *         Lambda provisioned concurrency - The resource type is function and the unique identifier is
     *         the function name with a function version or alias name suffix that is not $LATEST. Example:
     *         function:my-function:prod or function:my-function:1.
     *         
     *         Amazon Keyspaces table - The resource type is table and the unique identifier is the table
     *         name. Example: keyspace/mykeyspace/table/mytable.
     *         
     *         Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN.
     *         Example:
     *         arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5
     *         .
     *         
     *         Amazon ElastiCache replication group - The resource type is replication-group and the unique
     *         identifier is the replication group name. Example: replication-group/mycluster.
     *         
     *         Neptune cluster - The resource type is cluster and the unique identifier is the cluster
     *         name. Example: cluster:mycluster.
     *         
     *         SageMaker Serverless endpoint - The resource type is variant and the unique identifier is
     *         the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     *         
* The identifier of the resource associated with the scaling policy. This string consists of the resource type and * unique identifier. *
*
     * ECS service - The resource type is service and the unique identifier is the cluster name and service
     * name. Example: service/default/sample-webapp.
     * 
     * Spot Fleet - The resource type is spot-fleet-request and the unique identifier is the Spot Fleet
     * request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
     * 
     * EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and
     * instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
     * 
     * AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name.
     * Example: fleet/sample-fleet.
     * 
     * DynamoDB table - The resource type is table and the unique identifier is the table name. Example:
     * table/my-table.
     * 
     * DynamoDB global secondary index - The resource type is index and the unique identifier is the index
     * name. Example: table/my-table/index/my-table-index.
     * 
     * Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster name.
     * Example: cluster:my-db-cluster.
     * 
     * SageMaker endpoint variant - The resource type is variant and the unique identifier is the resource
     * ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     * 
     * Custom resources are not supported with a resource type. This parameter must specify the OutputValue
     * from the CloudFormation template stack used to access the resources. The unique identifier is defined by the
     * service provider. More information is available in our GitHub repository.
     * 
     * Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using
     * the endpoint ARN. Example:
     * arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
     * 
     * Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the
     * endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
     * 
     * Lambda provisioned concurrency - The resource type is function and the unique identifier is the
     * function name with a function version or alias name suffix that is not $LATEST. Example:
     * function:my-function:prod or function:my-function:1.
     * 
     * Amazon Keyspaces table - The resource type is table and the unique identifier is the table name.
     * Example: keyspace/mykeyspace/table/mytable.
     * 
     * Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example:
     * arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5.
     * 
     * Amazon ElastiCache replication group - The resource type is replication-group and the unique
     * identifier is the replication group name. Example: replication-group/mycluster.
     * 
     * Neptune cluster - The resource type is cluster and the unique identifier is the cluster name.
     * Example: cluster:mycluster.
     * 
     * SageMaker Serverless endpoint - The resource type is variant and the unique identifier is the
     * resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     * 
     *        ECS service - The resource type is service and the unique identifier is the cluster name and
     *        service name. Example: service/default/sample-webapp.
     *        
     *        Spot Fleet - The resource type is spot-fleet-request and the unique identifier is the Spot
     *        Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE.
     *        
     *        EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID
     *        and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.
     *        
     *        AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name.
     *        Example: fleet/sample-fleet.
     *        
     *        DynamoDB table - The resource type is table and the unique identifier is the table name.
     *        Example: table/my-table.
     *        
     *        DynamoDB global secondary index - The resource type is index and the unique identifier is the
     *        index name. Example: table/my-table/index/my-table-index.
     *        
     *        Aurora DB cluster - The resource type is cluster and the unique identifier is the cluster
     *        name. Example: cluster:my-db-cluster.
     *        
     *        SageMaker endpoint variant - The resource type is variant and the unique identifier is the
     *        resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     *        
     *        Custom resources are not supported with a resource type. This parameter must specify the
     *        OutputValue from the CloudFormation template stack used to access the resources. The unique
     *        identifier is defined by the service provider. More information is available in our GitHub repository.
     *        
     *        Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified
     *        using the endpoint ARN. Example:
     *        arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE.
     *        
     *        Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using
     *        the endpoint ARN. Example:
     *        arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE.
     *        
     *        Lambda provisioned concurrency - The resource type is function and the unique identifier is
     *        the function name with a function version or alias name suffix that is not $LATEST. Example:
     *        function:my-function:prod or function:my-function:1.
     *        
     *        Amazon Keyspaces table - The resource type is table and the unique identifier is the table
     *        name. Example: keyspace/mykeyspace/table/mytable.
     *        
     *        Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example:
     *        arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5
     *        .
     *        
     *        Amazon ElastiCache replication group - The resource type is replication-group and the unique
     *        identifier is the replication group name. Example: replication-group/mycluster.
     *        
     *        Neptune cluster - The resource type is cluster and the unique identifier is the cluster name.
     *        Example: cluster:mycluster.
     *        
     *        SageMaker Serverless endpoint - The resource type is variant and the unique identifier is the
     *        resource ID. Example: endpoint/my-end-point/variant/KMeansClustering.
     *        
* The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *
*
     * ecs:service:DesiredCount - The desired task count of an ECS service.
     * 
     * elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     * 
     * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     * 
     * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     * 
     * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     * 
     * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     * 
     * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary
     * index.
     * 
     * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary
     * index.
     * 
     * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for
     * Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     * 
     * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint
     * variant.
     * 
     * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by
     * your own application or service.
     * 
     * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend document classification endpoint.
     * 
     * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend entity recognizer endpoint.
     * 
     * lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     * 
     * cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table.
     * 
     * cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table.
     * 
     * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK
     * cluster.
     * 
     * elasticache:replication-group:NodeGroups - The number of node groups for an Amazon ElastiCache
     * replication group.
     * 
     * elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     * ElastiCache replication group.
     * 
     * neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB cluster.
     * 
     * sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     * Serverless endpoint.
     * 
     *        ecs:service:DesiredCount - The desired task count of an ECS service.
     *        
     *        elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     *        
     *        ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     *        
     *        appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     *        
     *        dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     *        
     *        dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     *        
     *        dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global
     *        secondary index.
     *        
     *        dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global
     *        secondary index.
     *        
     *        rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster.
     *        Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     *        
     *        sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model
     *        endpoint variant.
     *        
     *        custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided
     *        by your own application or service.
     *        
     *        comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units
     *        for an Amazon Comprehend document classification endpoint.
     *        
     *        comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units
     *        for an Amazon Comprehend entity recognizer endpoint.
     *        
     *        lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     *        
     *        cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces
     *        table.
     *        
     *        cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces
     *        table.
     *        
     *        kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an
     *        Amazon MSK cluster.
     *        
     *        elasticache:replication-group:NodeGroups - The number of node groups for an Amazon
     *        ElastiCache replication group.
     *        
     *        elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     *        ElastiCache replication group.
     *        
     *        neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB
     *        cluster.
     *        
     *        sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     *        Serverless endpoint.
     *        
* The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *
*
     * ecs:service:DesiredCount - The desired task count of an ECS service.
     * 
     * elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     * 
     * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     * 
     * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     * 
     * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     * 
     * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     * 
     * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary
     * index.
     * 
     * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary
     * index.
     * 
     * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for
     * Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     * 
     * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint
     * variant.
     * 
     * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by
     * your own application or service.
     * 
     * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend document classification endpoint.
     * 
     * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend entity recognizer endpoint.
     * 
     * lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     * 
     * cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table.
     * 
     * cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table.
     * 
     * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK
     * cluster.
     * 
     * elasticache:replication-group:NodeGroups - The number of node groups for an Amazon ElastiCache
     * replication group.
     * 
     * elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     * ElastiCache replication group.
     * 
     * neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB cluster.
     * 
     * sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     * Serverless endpoint.
     * 
     *         ecs:service:DesiredCount - The desired task count of an ECS service.
     *         
     *         elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     *         
     *         ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     *         
     *         appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     *         
     *         dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     *         
     *         dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     *         
     *         dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global
     *         secondary index.
     *         
     *         dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global
     *         secondary index.
     *         
     *         rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster.
     *         Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     *         
     *         sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model
     *         endpoint variant.
     *         
     *         custom-resource:ResourceType:Property - The scalable dimension for a custom resource
     *         provided by your own application or service.
     *         
     *         comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference
     *         units for an Amazon Comprehend document classification endpoint.
     *         
     *         comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units
     *         for an Amazon Comprehend entity recognizer endpoint.
     *         
     *         lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     *         
     *         cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces
     *         table.
     *         
     *         cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces
     *         table.
     *         
     *         kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an
     *         Amazon MSK cluster.
     *         
     *         elasticache:replication-group:NodeGroups - The number of node groups for an Amazon
     *         ElastiCache replication group.
     *         
     *         elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     *         ElastiCache replication group.
     *         
     *         neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB
     *         cluster.
     *         
     *         sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a
     *         SageMaker Serverless endpoint.
     *         
* The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *
*
     * ecs:service:DesiredCount - The desired task count of an ECS service.
     * 
     * elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     * 
     * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     * 
     * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     * 
     * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     * 
     * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     * 
     * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary
     * index.
     * 
     * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary
     * index.
     * 
     * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for
     * Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     * 
     * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint
     * variant.
     * 
     * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by
     * your own application or service.
     * 
     * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend document classification endpoint.
     * 
     * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend entity recognizer endpoint.
     * 
     * lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     * 
     * cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table.
     * 
     * cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table.
     * 
     * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK
     * cluster.
     * 
     * elasticache:replication-group:NodeGroups - The number of node groups for an Amazon ElastiCache
     * replication group.
     * 
     * elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     * ElastiCache replication group.
     * 
     * neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB cluster.
     * 
     * sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     * Serverless endpoint.
     * 
     *        ecs:service:DesiredCount - The desired task count of an ECS service.
     *        
     *        elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     *        
     *        ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     *        
     *        appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     *        
     *        dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     *        
     *        dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     *        
     *        dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global
     *        secondary index.
     *        
     *        dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global
     *        secondary index.
     *        
     *        rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster.
     *        Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     *        
     *        sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model
     *        endpoint variant.
     *        
     *        custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided
     *        by your own application or service.
     *        
     *        comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units
     *        for an Amazon Comprehend document classification endpoint.
     *        
     *        comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units
     *        for an Amazon Comprehend entity recognizer endpoint.
     *        
     *        lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     *        
     *        cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces
     *        table.
     *        
     *        cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces
     *        table.
     *        
     *        kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an
     *        Amazon MSK cluster.
     *        
     *        elasticache:replication-group:NodeGroups - The number of node groups for an Amazon
     *        ElastiCache replication group.
     *        
     *        elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     *        ElastiCache replication group.
     *        
     *        neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB
     *        cluster.
     *        
     *        sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     *        Serverless endpoint.
     *        
* The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *
*
     * ecs:service:DesiredCount - The desired task count of an ECS service.
     * 
     * elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     * 
     * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     * 
     * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     * 
     * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     * 
     * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     * 
     * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary
     * index.
     * 
     * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary
     * index.
     * 
     * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for
     * Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     * 
     * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint
     * variant.
     * 
     * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by
     * your own application or service.
     * 
     * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend document classification endpoint.
     * 
     * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend entity recognizer endpoint.
     * 
     * lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     * 
     * cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table.
     * 
     * cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table.
     * 
     * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK
     * cluster.
     * 
     * elasticache:replication-group:NodeGroups - The number of node groups for an Amazon ElastiCache
     * replication group.
     * 
     * elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     * ElastiCache replication group.
     * 
     * neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB cluster.
     * 
     * sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     * Serverless endpoint.
     * 
     *        ecs:service:DesiredCount - The desired task count of an ECS service.
     *        
     *        elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     *        
     *        ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     *        
     *        appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     *        
     *        dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     *        
     *        dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     *        
     *        dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global
     *        secondary index.
     *        
     *        dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global
     *        secondary index.
     *        
     *        rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster.
     *        Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     *        
     *        sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model
     *        endpoint variant.
     *        
     *        custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided
     *        by your own application or service.
     *        
     *        comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units
     *        for an Amazon Comprehend document classification endpoint.
     *        
     *        comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units
     *        for an Amazon Comprehend entity recognizer endpoint.
     *        
     *        lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     *        
     *        cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces
     *        table.
     *        
     *        cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces
     *        table.
     *        
     *        kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an
     *        Amazon MSK cluster.
     *        
     *        elasticache:replication-group:NodeGroups - The number of node groups for an Amazon
     *        ElastiCache replication group.
     *        
     *        elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     *        ElastiCache replication group.
     *        
     *        neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB
     *        cluster.
     *        
     *        sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     *        Serverless endpoint.
     *        
* The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *
*
     * ecs:service:DesiredCount - The desired task count of an ECS service.
     * 
     * elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     * 
     * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     * 
     * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     * 
     * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     * 
     * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     * 
     * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary
     * index.
     * 
     * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary
     * index.
     * 
     * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for
     * Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     * 
     * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model endpoint
     * variant.
     * 
     * custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided by
     * your own application or service.
     * 
     * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend document classification endpoint.
     * 
     * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units for an
     * Amazon Comprehend entity recognizer endpoint.
     * 
     * lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     * 
     * cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces table.
     * 
     * cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces table.
     * 
     * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an Amazon MSK
     * cluster.
     * 
     * elasticache:replication-group:NodeGroups - The number of node groups for an Amazon ElastiCache
     * replication group.
     * 
     * elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     * ElastiCache replication group.
     * 
     * neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB cluster.
     * 
     * sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     * Serverless endpoint.
     * 
     *        ecs:service:DesiredCount - The desired task count of an ECS service.
     *        
     *        elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
     *        
     *        ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot Fleet.
     *        
     *        appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
     *        
     *        dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table.
     *        
     *        dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table.
     *        
     *        dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global
     *        secondary index.
     *        
     *        dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global
     *        secondary index.
     *        
     *        rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster.
     *        Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
     *        
     *        sagemaker:variant:DesiredInstanceCount - The number of EC2 instances for a SageMaker model
     *        endpoint variant.
     *        
     *        custom-resource:ResourceType:Property - The scalable dimension for a custom resource provided
     *        by your own application or service.
     *        
     *        comprehend:document-classifier-endpoint:DesiredInferenceUnits - The number of inference units
     *        for an Amazon Comprehend document classification endpoint.
     *        
     *        comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number of inference units
     *        for an Amazon Comprehend entity recognizer endpoint.
     *        
     *        lambda:function:ProvisionedConcurrency - The provisioned concurrency for a Lambda function.
     *        
     *        cassandra:table:ReadCapacityUnits - The provisioned read capacity for an Amazon Keyspaces
     *        table.
     *        
     *        cassandra:table:WriteCapacityUnits - The provisioned write capacity for an Amazon Keyspaces
     *        table.
     *        
     *        kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) for brokers in an
     *        Amazon MSK cluster.
     *        
     *        elasticache:replication-group:NodeGroups - The number of node groups for an Amazon
     *        ElastiCache replication group.
     *        
     *        elasticache:replication-group:Replicas - The number of replicas per node group for an Amazon
     *        ElastiCache replication group.
     *        
     *        neptune:cluster:ReadReplicaCount - The count of read replicas in an Amazon Neptune DB
     *        cluster.
     *        
     *        sagemaker:variant:DesiredProvisionedConcurrency - The provisioned concurrency for a SageMaker
     *        Serverless endpoint.
     *        
* The scaling policy type. *
** The following policy types are supported: *
*
     * TargetTrackingScaling—Not supported for Amazon EMR
     * 
     * StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK,
     * Amazon ElastiCache, or Neptune.
     * 
* The following policy types are supported: *
*
     *        TargetTrackingScaling—Not supported for Amazon EMR
     *        
     *        StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon
     *        MSK, Amazon ElastiCache, or Neptune.
     * @see PolicyType
     */
    public void setPolicyType(String policyType) {
        this.policyType = policyType;
    }
    /**
     * 
* The scaling policy type. *
** The following policy types are supported: *
*
     * TargetTrackingScaling—Not supported for Amazon EMR
     * 
     * StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK,
     * Amazon ElastiCache, or Neptune.
     * 
* The following policy types are supported: *
*
     *         TargetTrackingScaling—Not supported for Amazon EMR
     *         
     *         StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon
     *         MSK, Amazon ElastiCache, or Neptune.
     * @see PolicyType
     */
    public String getPolicyType() {
        return this.policyType;
    }
    /**
     * 
* The scaling policy type. *
** The following policy types are supported: *
*
     * TargetTrackingScaling—Not supported for Amazon EMR
     * 
     * StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK,
     * Amazon ElastiCache, or Neptune.
     * 
* The following policy types are supported: *
*
     *        TargetTrackingScaling—Not supported for Amazon EMR
     *        
     *        StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon
     *        MSK, Amazon ElastiCache, or Neptune.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see PolicyType
     */
    public ScalingPolicy withPolicyType(String policyType) {
        setPolicyType(policyType);
        return this;
    }
    /**
     * 
* The scaling policy type. *
** The following policy types are supported: *
*
     * TargetTrackingScaling—Not supported for Amazon EMR
     * 
     * StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK,
     * Amazon ElastiCache, or Neptune.
     * 
* The following policy types are supported: *
*
     *        TargetTrackingScaling—Not supported for Amazon EMR
     *        
     *        StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon
     *        MSK, Amazon ElastiCache, or Neptune.
     * @see PolicyType
     */
    public void setPolicyType(PolicyType policyType) {
        withPolicyType(policyType);
    }
    /**
     * 
* The scaling policy type. *
** The following policy types are supported: *
*
     * TargetTrackingScaling—Not supported for Amazon EMR
     * 
     * StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK,
     * Amazon ElastiCache, or Neptune.
     * 
* The following policy types are supported: *
*
     *        TargetTrackingScaling—Not supported for Amazon EMR
     *        
     *        StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon
     *        MSK, Amazon ElastiCache, or Neptune.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see PolicyType
     */
    public ScalingPolicy withPolicyType(PolicyType policyType) {
        this.policyType = policyType.toString();
        return this;
    }
    /**
     * 
* A step scaling policy. *
* * @param stepScalingPolicyConfiguration * A step scaling policy. */ public void setStepScalingPolicyConfiguration(StepScalingPolicyConfiguration stepScalingPolicyConfiguration) { this.stepScalingPolicyConfiguration = stepScalingPolicyConfiguration; } /** ** A step scaling policy. *
* * @return A step scaling policy. */ public StepScalingPolicyConfiguration getStepScalingPolicyConfiguration() { return this.stepScalingPolicyConfiguration; } /** ** A step scaling policy. *
* * @param stepScalingPolicyConfiguration * A step scaling policy. * @return Returns a reference to this object so that method calls can be chained together. */ public ScalingPolicy withStepScalingPolicyConfiguration(StepScalingPolicyConfiguration stepScalingPolicyConfiguration) { setStepScalingPolicyConfiguration(stepScalingPolicyConfiguration); return this; } /** ** A target tracking scaling policy. *
* * @param targetTrackingScalingPolicyConfiguration * A target tracking scaling policy. */ public void setTargetTrackingScalingPolicyConfiguration(TargetTrackingScalingPolicyConfiguration targetTrackingScalingPolicyConfiguration) { this.targetTrackingScalingPolicyConfiguration = targetTrackingScalingPolicyConfiguration; } /** ** A target tracking scaling policy. *
* * @return A target tracking scaling policy. */ public TargetTrackingScalingPolicyConfiguration getTargetTrackingScalingPolicyConfiguration() { return this.targetTrackingScalingPolicyConfiguration; } /** ** A target tracking scaling policy. *
* * @param targetTrackingScalingPolicyConfiguration * A target tracking scaling policy. * @return Returns a reference to this object so that method calls can be chained together. */ public ScalingPolicy withTargetTrackingScalingPolicyConfiguration(TargetTrackingScalingPolicyConfiguration targetTrackingScalingPolicyConfiguration) { setTargetTrackingScalingPolicyConfiguration(targetTrackingScalingPolicyConfiguration); return this; } /** ** The CloudWatch alarms associated with the scaling policy. *
* * @return The CloudWatch alarms associated with the scaling policy. */ public java.util.List* The CloudWatch alarms associated with the scaling policy. *
* * @param alarms * The CloudWatch alarms associated with the scaling policy. */ public void setAlarms(java.util.Collection* The CloudWatch alarms associated with the scaling policy. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setAlarms(java.util.Collection)} or {@link #withAlarms(java.util.Collection)} if you want to override the * existing values. *
* * @param alarms * The CloudWatch alarms associated with the scaling policy. * @return Returns a reference to this object so that method calls can be chained together. */ public ScalingPolicy withAlarms(Alarm... alarms) { if (this.alarms == null) { setAlarms(new java.util.ArrayList* The CloudWatch alarms associated with the scaling policy. *
* * @param alarms * The CloudWatch alarms associated with the scaling policy. * @return Returns a reference to this object so that method calls can be chained together. */ public ScalingPolicy withAlarms(java.util.Collection* The Unix timestamp for when the scaling policy was created. *
* * @param creationTime * The Unix timestamp for when the scaling policy was created. */ public void setCreationTime(java.util.Date creationTime) { this.creationTime = creationTime; } /** ** The Unix timestamp for when the scaling policy was created. *
* * @return The Unix timestamp for when the scaling policy was created. */ public java.util.Date getCreationTime() { return this.creationTime; } /** ** The Unix timestamp for when the scaling policy was created. *
* * @param creationTime * The Unix timestamp for when the scaling policy was created. * @return Returns a reference to this object so that method calls can be chained together. */ public ScalingPolicy withCreationTime(java.util.Date creationTime) { setCreationTime(creationTime); return this; } /** * 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. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getPolicyARN() != null) sb.append("PolicyARN: ").append(getPolicyARN()).append(","); if (getPolicyName() != null) sb.append("PolicyName: ").append(getPolicyName()).append(","); if (getServiceNamespace() != null) sb.append("ServiceNamespace: ").append(getServiceNamespace()).append(","); if (getResourceId() != null) sb.append("ResourceId: ").append(getResourceId()).append(","); if (getScalableDimension() != null) sb.append("ScalableDimension: ").append(getScalableDimension()).append(","); if (getPolicyType() != null) sb.append("PolicyType: ").append(getPolicyType()).append(","); if (getStepScalingPolicyConfiguration() != null) sb.append("StepScalingPolicyConfiguration: ").append(getStepScalingPolicyConfiguration()).append(","); if (getTargetTrackingScalingPolicyConfiguration() != null) sb.append("TargetTrackingScalingPolicyConfiguration: ").append(getTargetTrackingScalingPolicyConfiguration()).append(","); if (getAlarms() != null) sb.append("Alarms: ").append(getAlarms()).append(","); if (getCreationTime() != null) sb.append("CreationTime: ").append(getCreationTime()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof ScalingPolicy == false) return false; ScalingPolicy other = (ScalingPolicy) obj; if (other.getPolicyARN() == null ^ this.getPolicyARN() == null) return false; if (other.getPolicyARN() != null && other.getPolicyARN().equals(this.getPolicyARN()) == false) return false; if (other.getPolicyName() == null ^ this.getPolicyName() == null) return false; if (other.getPolicyName() != null && other.getPolicyName().equals(this.getPolicyName()) == false) return false; if (other.getServiceNamespace() == null ^ this.getServiceNamespace() == null) return false; if (other.getServiceNamespace() != null && other.getServiceNamespace().equals(this.getServiceNamespace()) == false) return false; if (other.getResourceId() == null ^ this.getResourceId() == null) return false; if (other.getResourceId() != null && other.getResourceId().equals(this.getResourceId()) == false) return false; if (other.getScalableDimension() == null ^ this.getScalableDimension() == null) return false; if (other.getScalableDimension() != null && other.getScalableDimension().equals(this.getScalableDimension()) == false) return false; if (other.getPolicyType() == null ^ this.getPolicyType() == null) return false; if (other.getPolicyType() != null && other.getPolicyType().equals(this.getPolicyType()) == false) return false; if (other.getStepScalingPolicyConfiguration() == null ^ this.getStepScalingPolicyConfiguration() == null) return false; if (other.getStepScalingPolicyConfiguration() != null && other.getStepScalingPolicyConfiguration().equals(this.getStepScalingPolicyConfiguration()) == false) return false; if (other.getTargetTrackingScalingPolicyConfiguration() == null ^ this.getTargetTrackingScalingPolicyConfiguration() == null) return false; if (other.getTargetTrackingScalingPolicyConfiguration() != null && other.getTargetTrackingScalingPolicyConfiguration().equals(this.getTargetTrackingScalingPolicyConfiguration()) == false) return false; if (other.getAlarms() == null ^ this.getAlarms() == null) return false; if (other.getAlarms() != null && other.getAlarms().equals(this.getAlarms()) == false) return false; if (other.getCreationTime() == null ^ this.getCreationTime() == null) return false; if (other.getCreationTime() != null && other.getCreationTime().equals(this.getCreationTime()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getPolicyARN() == null) ? 0 : getPolicyARN().hashCode()); hashCode = prime * hashCode + ((getPolicyName() == null) ? 0 : getPolicyName().hashCode()); hashCode = prime * hashCode + ((getServiceNamespace() == null) ? 0 : getServiceNamespace().hashCode()); hashCode = prime * hashCode + ((getResourceId() == null) ? 0 : getResourceId().hashCode()); hashCode = prime * hashCode + ((getScalableDimension() == null) ? 0 : getScalableDimension().hashCode()); hashCode = prime * hashCode + ((getPolicyType() == null) ? 0 : getPolicyType().hashCode()); hashCode = prime * hashCode + ((getStepScalingPolicyConfiguration() == null) ? 0 : getStepScalingPolicyConfiguration().hashCode()); hashCode = prime * hashCode + ((getTargetTrackingScalingPolicyConfiguration() == null) ? 0 : getTargetTrackingScalingPolicyConfiguration().hashCode()); hashCode = prime * hashCode + ((getAlarms() == null) ? 0 : getAlarms().hashCode()); hashCode = prime * hashCode + ((getCreationTime() == null) ? 0 : getCreationTime().hashCode()); return hashCode; } @Override public ScalingPolicy clone() { try { return (ScalingPolicy) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.applicationautoscaling.model.transform.ScalingPolicyMarshaller.getInstance().marshall(this, protocolMarshaller); } }