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

software.amazon.awssdk.services.applicationautoscaling.model.PutScalingPolicyRequest Maven / Gradle / Ivy

/*
 * 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.applicationautoscaling.model;

import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
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.LocationTrait;
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 PutScalingPolicyRequest extends ApplicationAutoScalingRequest implements
        ToCopyableBuilder {
    private static final SdkField POLICY_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("PolicyName").getter(getter(PutScalingPolicyRequest::policyName)).setter(setter(Builder::policyName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PolicyName").build()).build();

    private static final SdkField SERVICE_NAMESPACE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("ServiceNamespace").getter(getter(PutScalingPolicyRequest::serviceNamespaceAsString))
            .setter(setter(Builder::serviceNamespace))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ServiceNamespace").build()).build();

    private static final SdkField RESOURCE_ID_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("ResourceId").getter(getter(PutScalingPolicyRequest::resourceId)).setter(setter(Builder::resourceId))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ResourceId").build()).build();

    private static final SdkField SCALABLE_DIMENSION_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("ScalableDimension").getter(getter(PutScalingPolicyRequest::scalableDimensionAsString))
            .setter(setter(Builder::scalableDimension))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ScalableDimension").build()).build();

    private static final SdkField POLICY_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("PolicyType").getter(getter(PutScalingPolicyRequest::policyTypeAsString))
            .setter(setter(Builder::policyType))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PolicyType").build()).build();

    private static final SdkField STEP_SCALING_POLICY_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO)
            .memberName("StepScalingPolicyConfiguration")
            .getter(getter(PutScalingPolicyRequest::stepScalingPolicyConfiguration))
            .setter(setter(Builder::stepScalingPolicyConfiguration))
            .constructor(StepScalingPolicyConfiguration::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("StepScalingPolicyConfiguration")
                    .build()).build();

    private static final SdkField TARGET_TRACKING_SCALING_POLICY_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO)
            .memberName("TargetTrackingScalingPolicyConfiguration")
            .getter(getter(PutScalingPolicyRequest::targetTrackingScalingPolicyConfiguration))
            .setter(setter(Builder::targetTrackingScalingPolicyConfiguration))
            .constructor(TargetTrackingScalingPolicyConfiguration::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                    .locationName("TargetTrackingScalingPolicyConfiguration").build()).build();

    private static final SdkField PREDICTIVE_SCALING_POLICY_CONFIGURATION_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO)
            .memberName("PredictiveScalingPolicyConfiguration")
            .getter(getter(PutScalingPolicyRequest::predictiveScalingPolicyConfiguration))
            .setter(setter(Builder::predictiveScalingPolicyConfiguration))
            .constructor(PredictiveScalingPolicyConfiguration::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                    .locationName("PredictiveScalingPolicyConfiguration").build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(POLICY_NAME_FIELD,
            SERVICE_NAMESPACE_FIELD, RESOURCE_ID_FIELD, SCALABLE_DIMENSION_FIELD, POLICY_TYPE_FIELD,
            STEP_SCALING_POLICY_CONFIGURATION_FIELD, TARGET_TRACKING_SCALING_POLICY_CONFIGURATION_FIELD,
            PREDICTIVE_SCALING_POLICY_CONFIGURATION_FIELD));

    private static final Map> SDK_NAME_TO_FIELD = Collections
            .unmodifiableMap(new HashMap>() {
                {
                    put("PolicyName", POLICY_NAME_FIELD);
                    put("ServiceNamespace", SERVICE_NAMESPACE_FIELD);
                    put("ResourceId", RESOURCE_ID_FIELD);
                    put("ScalableDimension", SCALABLE_DIMENSION_FIELD);
                    put("PolicyType", POLICY_TYPE_FIELD);
                    put("StepScalingPolicyConfiguration", STEP_SCALING_POLICY_CONFIGURATION_FIELD);
                    put("TargetTrackingScalingPolicyConfiguration", TARGET_TRACKING_SCALING_POLICY_CONFIGURATION_FIELD);
                    put("PredictiveScalingPolicyConfiguration", PREDICTIVE_SCALING_POLICY_CONFIGURATION_FIELD);
                }
            });

    private final String policyName;

    private final String serviceNamespace;

    private final String resourceId;

    private final String scalableDimension;

    private final String policyType;

    private final StepScalingPolicyConfiguration stepScalingPolicyConfiguration;

    private final TargetTrackingScalingPolicyConfiguration targetTrackingScalingPolicyConfiguration;

    private final PredictiveScalingPolicyConfiguration predictiveScalingPolicyConfiguration;

    private PutScalingPolicyRequest(BuilderImpl builder) {
        super(builder);
        this.policyName = builder.policyName;
        this.serviceNamespace = builder.serviceNamespace;
        this.resourceId = builder.resourceId;
        this.scalableDimension = builder.scalableDimension;
        this.policyType = builder.policyType;
        this.stepScalingPolicyConfiguration = builder.stepScalingPolicyConfiguration;
        this.targetTrackingScalingPolicyConfiguration = builder.targetTrackingScalingPolicyConfiguration;
        this.predictiveScalingPolicyConfiguration = builder.predictiveScalingPolicyConfiguration;
    }

    /**
     * 

* The name of the scaling policy. *

*

* You cannot change the name of a scaling policy, but you can delete the original scaling policy and create a new * scaling policy with the same settings and a different name. *

* * @return The name of the scaling policy.

*

* You cannot change the name of a scaling policy, but you can delete the original scaling policy and create * a new scaling policy with the same settings and a different name. */ public final String policyName() { return policyName; } /** *

* The namespace of the Amazon Web Services service that provides the resource. For a resource provided by your own * application or service, use custom-resource instead. *

*

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

* * @return The namespace of the Amazon Web Services service that provides the resource. For a resource provided by * your own application or service, use custom-resource instead. * @see ServiceNamespace */ public final ServiceNamespace serviceNamespace() { return ServiceNamespace.fromValue(serviceNamespace); } /** *

* The namespace of the Amazon Web Services service that provides the resource. For a resource provided by your own * application or service, use custom-resource instead. *

*

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

* * @return The namespace of the Amazon Web Services service that provides the resource. For a resource provided by * your own application or service, use custom-resource instead. * @see ServiceNamespace */ public final String serviceNamespaceAsString() { return serviceNamespace; } /** *

* 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/my-cluster/my-service. *

    *
  • *
  • *

    * 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. *

    *
  • *
  • *

    * SageMaker inference component - The resource type is inference-component and the unique identifier * is the resource ID. Example: inference-component/my-inference-component. *

    *
  • *
  • *

    * Pool of WorkSpaces - The resource type is workspacespool and the unique identifier is the pool ID. * Example: workspacespool/wspool-123456. *

    *
  • *
* * @return 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/my-cluster/my-service. *

    *
  • *
  • *

    * 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. *

    *
  • *
  • *

    * SageMaker inference component - The resource type is inference-component and the unique * identifier is the resource ID. Example: inference-component/my-inference-component. *

    *
  • *
  • *

    * Pool of WorkSpaces - The resource type is workspacespool and the unique identifier is the * pool ID. Example: workspacespool/wspool-123456. *

    *
  • */ public final String resourceId() { return resourceId; } /** *

    * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *

    *
      *
    • *

      * ecs:service:DesiredCount - The 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 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. *

      *
    • *
    • *

      * sagemaker:inference-component:DesiredCopyCount - The number of copies across an endpoint for a * SageMaker inference component. *

      *
    • *
    • *

      * workspaces:workspacespool:DesiredUserSessions - The number of user sessions for the WorkSpaces in * the pool. *

      *
    • *
    *

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

    * * @return The scalable dimension. This string consists of the service namespace, resource type, and scaling * property.

    *
      *
    • *

      * ecs:service:DesiredCount - The 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 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. *

      *
    • *
    • *

      * sagemaker:inference-component:DesiredCopyCount - The number of copies across an endpoint for * a SageMaker inference component. *

      *
    • *
    • *

      * workspaces:workspacespool:DesiredUserSessions - The number of user sessions for the * WorkSpaces in the pool. *

      *
    • * @see ScalableDimension */ public final ScalableDimension scalableDimension() { return ScalableDimension.fromValue(scalableDimension); } /** *

      * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *

      *
        *
      • *

        * ecs:service:DesiredCount - The 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 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. *

        *
      • *
      • *

        * sagemaker:inference-component:DesiredCopyCount - The number of copies across an endpoint for a * SageMaker inference component. *

        *
      • *
      • *

        * workspaces:workspacespool:DesiredUserSessions - The number of user sessions for the WorkSpaces in * the pool. *

        *
      • *
      *

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

      * * @return The scalable dimension. This string consists of the service namespace, resource type, and scaling * property.

      *
        *
      • *

        * ecs:service:DesiredCount - The 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 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. *

        *
      • *
      • *

        * sagemaker:inference-component:DesiredCopyCount - The number of copies across an endpoint for * a SageMaker inference component. *

        *
      • *
      • *

        * workspaces:workspacespool:DesiredUserSessions - The number of user sessions for the * WorkSpaces in the pool. *

        *
      • * @see ScalableDimension */ public final String scalableDimensionAsString() { return scalableDimension; } /** *

        * The scaling policy type. This parameter is required if you are creating a scaling policy. *

        *

        * 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. *

        *

        * For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. *

        *

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

        * * @return The scaling policy type. This parameter is required if you are creating a scaling policy.

        *

        * 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. *

        *

        * For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. * @see PolicyType */ public final PolicyType policyType() { return PolicyType.fromValue(policyType); } /** *

        * The scaling policy type. This parameter is required if you are creating a scaling policy. *

        *

        * 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. *

        *

        * For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. *

        *

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

        * * @return The scaling policy type. This parameter is required if you are creating a scaling policy.

        *

        * 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. *

        *

        * For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. * @see PolicyType */ public final String policyTypeAsString() { return policyType; } /** *

        * A step scaling policy. *

        *

        * This parameter is required if you are creating a policy and the policy type is StepScaling. *

        * * @return A step scaling policy.

        *

        * This parameter is required if you are creating a policy and the policy type is StepScaling. */ public final StepScalingPolicyConfiguration stepScalingPolicyConfiguration() { return stepScalingPolicyConfiguration; } /** *

        * A target tracking scaling policy. Includes support for predefined or customized metrics. *

        *

        * This parameter is required if you are creating a policy and the policy type is TargetTrackingScaling * . *

        * * @return A target tracking scaling policy. Includes support for predefined or customized metrics.

        *

        * This parameter is required if you are creating a policy and the policy type is * TargetTrackingScaling. */ public final TargetTrackingScalingPolicyConfiguration targetTrackingScalingPolicyConfiguration() { return targetTrackingScalingPolicyConfiguration; } /** *

        * The configuration of the predictive scaling policy. *

        * * @return The configuration of the predictive scaling policy. */ public final PredictiveScalingPolicyConfiguration predictiveScalingPolicyConfiguration() { return predictiveScalingPolicyConfiguration; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(policyName()); hashCode = 31 * hashCode + Objects.hashCode(serviceNamespaceAsString()); hashCode = 31 * hashCode + Objects.hashCode(resourceId()); hashCode = 31 * hashCode + Objects.hashCode(scalableDimensionAsString()); hashCode = 31 * hashCode + Objects.hashCode(policyTypeAsString()); hashCode = 31 * hashCode + Objects.hashCode(stepScalingPolicyConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(targetTrackingScalingPolicyConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(predictiveScalingPolicyConfiguration()); return hashCode; } @Override public final boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof PutScalingPolicyRequest)) { return false; } PutScalingPolicyRequest other = (PutScalingPolicyRequest) obj; return Objects.equals(policyName(), other.policyName()) && Objects.equals(serviceNamespaceAsString(), other.serviceNamespaceAsString()) && Objects.equals(resourceId(), other.resourceId()) && Objects.equals(scalableDimensionAsString(), other.scalableDimensionAsString()) && Objects.equals(policyTypeAsString(), other.policyTypeAsString()) && Objects.equals(stepScalingPolicyConfiguration(), other.stepScalingPolicyConfiguration()) && Objects.equals(targetTrackingScalingPolicyConfiguration(), other.targetTrackingScalingPolicyConfiguration()) && Objects.equals(predictiveScalingPolicyConfiguration(), other.predictiveScalingPolicyConfiguration()); } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. */ @Override public final String toString() { return ToString.builder("PutScalingPolicyRequest").add("PolicyName", policyName()) .add("ServiceNamespace", serviceNamespaceAsString()).add("ResourceId", resourceId()) .add("ScalableDimension", scalableDimensionAsString()).add("PolicyType", policyTypeAsString()) .add("StepScalingPolicyConfiguration", stepScalingPolicyConfiguration()) .add("TargetTrackingScalingPolicyConfiguration", targetTrackingScalingPolicyConfiguration()) .add("PredictiveScalingPolicyConfiguration", predictiveScalingPolicyConfiguration()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "PolicyName": return Optional.ofNullable(clazz.cast(policyName())); case "ServiceNamespace": return Optional.ofNullable(clazz.cast(serviceNamespaceAsString())); case "ResourceId": return Optional.ofNullable(clazz.cast(resourceId())); case "ScalableDimension": return Optional.ofNullable(clazz.cast(scalableDimensionAsString())); case "PolicyType": return Optional.ofNullable(clazz.cast(policyTypeAsString())); case "StepScalingPolicyConfiguration": return Optional.ofNullable(clazz.cast(stepScalingPolicyConfiguration())); case "TargetTrackingScalingPolicyConfiguration": return Optional.ofNullable(clazz.cast(targetTrackingScalingPolicyConfiguration())); case "PredictiveScalingPolicyConfiguration": return Optional.ofNullable(clazz.cast(predictiveScalingPolicyConfiguration())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } @Override public final Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } private static Function getter(Function g) { return obj -> g.apply((PutScalingPolicyRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends ApplicationAutoScalingRequest.Builder, SdkPojo, CopyableBuilder { /** *

        * The name of the scaling policy. *

        *

        * You cannot change the name of a scaling policy, but you can delete the original scaling policy and create a * new scaling policy with the same settings and a different name. *

        * * @param policyName * The name of the scaling policy.

        *

        * You cannot change the name of a scaling policy, but you can delete the original scaling policy and * create a new scaling policy with the same settings and a different name. * @return Returns a reference to this object so that method calls can be chained together. */ Builder policyName(String policyName); /** *

        * The namespace of the Amazon Web Services service that provides the resource. For a resource provided by your * own application or service, use custom-resource instead. *

        * * @param serviceNamespace * The namespace of the Amazon Web Services service that provides the resource. For a resource provided * by your own application or service, use custom-resource instead. * @see ServiceNamespace * @return Returns a reference to this object so that method calls can be chained together. * @see ServiceNamespace */ Builder serviceNamespace(String serviceNamespace); /** *

        * The namespace of the Amazon Web Services service that provides the resource. For a resource provided by your * own application or service, use custom-resource instead. *

        * * @param serviceNamespace * The namespace of the Amazon Web Services service that provides the resource. For a resource provided * by your own application or service, use custom-resource instead. * @see ServiceNamespace * @return Returns a reference to this object so that method calls can be chained together. * @see ServiceNamespace */ Builder serviceNamespace(ServiceNamespace serviceNamespace); /** *

        * 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/my-cluster/my-service. *

          *
        • *
        • *

          * 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. *

          *
        • *
        • *

          * SageMaker inference component - The resource type is inference-component and the unique * identifier is the resource ID. Example: inference-component/my-inference-component. *

          *
        • *
        • *

          * Pool of WorkSpaces - The resource type is workspacespool and the unique identifier is the pool * ID. Example: workspacespool/wspool-123456. *

          *
        • *
        * * @param resourceId * 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/my-cluster/my-service. *

          *
        • *
        • *

          * 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. *

          *
        • *
        • *

          * SageMaker inference component - The resource type is inference-component and the unique * identifier is the resource ID. Example: inference-component/my-inference-component. *

          *
        • *
        • *

          * Pool of WorkSpaces - The resource type is workspacespool and the unique identifier is the * pool ID. Example: workspacespool/wspool-123456. *

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

          * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *

          *
            *
          • *

            * ecs:service:DesiredCount - The 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 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. *

            *
          • *
          • *

            * sagemaker:inference-component:DesiredCopyCount - The number of copies across an endpoint for a * SageMaker inference component. *

            *
          • *
          • *

            * workspaces:workspacespool:DesiredUserSessions - The number of user sessions for the WorkSpaces * in the pool. *

            *
          • *
          * * @param scalableDimension * The scalable dimension. This string consists of the service namespace, resource type, and scaling * property.

          *
            *
          • *

            * ecs:service:DesiredCount - The 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 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. *

            *
          • *
          • *

            * sagemaker:inference-component:DesiredCopyCount - The number of copies across an endpoint * for a SageMaker inference component. *

            *
          • *
          • *

            * workspaces:workspacespool:DesiredUserSessions - The number of user sessions for the * WorkSpaces in the pool. *

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

            * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. *

            *
              *
            • *

              * ecs:service:DesiredCount - The 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 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. *

              *
            • *
            • *

              * sagemaker:inference-component:DesiredCopyCount - The number of copies across an endpoint for a * SageMaker inference component. *

              *
            • *
            • *

              * workspaces:workspacespool:DesiredUserSessions - The number of user sessions for the WorkSpaces * in the pool. *

              *
            • *
            * * @param scalableDimension * The scalable dimension. This string consists of the service namespace, resource type, and scaling * property.

            *
              *
            • *

              * ecs:service:DesiredCount - The 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 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. *

              *
            • *
            • *

              * sagemaker:inference-component:DesiredCopyCount - The number of copies across an endpoint * for a SageMaker inference component. *

              *
            • *
            • *

              * workspaces:workspacespool:DesiredUserSessions - The number of user sessions for the * WorkSpaces in the pool. *

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

              * The scaling policy type. This parameter is required if you are creating a scaling policy. *

              *

              * 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. *

              *

              * For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. *

              * * @param policyType * The scaling policy type. This parameter is required if you are creating a scaling policy.

              *

              * 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. *

              *

              * For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. * @see PolicyType * @return Returns a reference to this object so that method calls can be chained together. * @see PolicyType */ Builder policyType(String policyType); /** *

              * The scaling policy type. This parameter is required if you are creating a scaling policy. *

              *

              * 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. *

              *

              * For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. *

              * * @param policyType * The scaling policy type. This parameter is required if you are creating a scaling policy.

              *

              * 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. *

              *

              * For more information, see Target tracking scaling policies and Step scaling policies in the Application Auto Scaling User Guide. * @see PolicyType * @return Returns a reference to this object so that method calls can be chained together. * @see PolicyType */ Builder policyType(PolicyType policyType); /** *

              * A step scaling policy. *

              *

              * This parameter is required if you are creating a policy and the policy type is StepScaling. *

              * * @param stepScalingPolicyConfiguration * A step scaling policy.

              *

              * This parameter is required if you are creating a policy and the policy type is * StepScaling. * @return Returns a reference to this object so that method calls can be chained together. */ Builder stepScalingPolicyConfiguration(StepScalingPolicyConfiguration stepScalingPolicyConfiguration); /** *

              * A step scaling policy. *

              *

              * This parameter is required if you are creating a policy and the policy type is StepScaling. *

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

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

              * A target tracking scaling policy. Includes support for predefined or customized metrics. *

              *

              * This parameter is required if you are creating a policy and the policy type is * TargetTrackingScaling. *

              * * @param targetTrackingScalingPolicyConfiguration * A target tracking scaling policy. Includes support for predefined or customized metrics.

              *

              * This parameter is required if you are creating a policy and the policy type is * TargetTrackingScaling. * @return Returns a reference to this object so that method calls can be chained together. */ Builder targetTrackingScalingPolicyConfiguration( TargetTrackingScalingPolicyConfiguration targetTrackingScalingPolicyConfiguration); /** *

              * A target tracking scaling policy. Includes support for predefined or customized metrics. *

              *

              * This parameter is required if you are creating a policy and the policy type is * TargetTrackingScaling. *

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

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

              * The configuration of the predictive scaling policy. *

              * * @param predictiveScalingPolicyConfiguration * The configuration of the predictive scaling policy. * @return Returns a reference to this object so that method calls can be chained together. */ Builder predictiveScalingPolicyConfiguration(PredictiveScalingPolicyConfiguration predictiveScalingPolicyConfiguration); /** *

              * The configuration of the predictive scaling policy. *

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

              * When the {@link Consumer} completes, {@link PredictiveScalingPolicyConfiguration.Builder#build()} is called * immediately and its result is passed to * {@link #predictiveScalingPolicyConfiguration(PredictiveScalingPolicyConfiguration)}. * * @param predictiveScalingPolicyConfiguration * a consumer that will call methods on {@link PredictiveScalingPolicyConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #predictiveScalingPolicyConfiguration(PredictiveScalingPolicyConfiguration) */ default Builder predictiveScalingPolicyConfiguration( Consumer predictiveScalingPolicyConfiguration) { return predictiveScalingPolicyConfiguration(PredictiveScalingPolicyConfiguration.builder() .applyMutation(predictiveScalingPolicyConfiguration).build()); } @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends ApplicationAutoScalingRequest.BuilderImpl implements Builder { private String policyName; private String serviceNamespace; private String resourceId; private String scalableDimension; private String policyType; private StepScalingPolicyConfiguration stepScalingPolicyConfiguration; private TargetTrackingScalingPolicyConfiguration targetTrackingScalingPolicyConfiguration; private PredictiveScalingPolicyConfiguration predictiveScalingPolicyConfiguration; private BuilderImpl() { } private BuilderImpl(PutScalingPolicyRequest model) { super(model); policyName(model.policyName); serviceNamespace(model.serviceNamespace); resourceId(model.resourceId); scalableDimension(model.scalableDimension); policyType(model.policyType); stepScalingPolicyConfiguration(model.stepScalingPolicyConfiguration); targetTrackingScalingPolicyConfiguration(model.targetTrackingScalingPolicyConfiguration); predictiveScalingPolicyConfiguration(model.predictiveScalingPolicyConfiguration); } public final String getPolicyName() { return policyName; } public final void setPolicyName(String policyName) { this.policyName = policyName; } @Override public final Builder policyName(String policyName) { this.policyName = policyName; return this; } public final String getServiceNamespace() { return serviceNamespace; } public final void setServiceNamespace(String serviceNamespace) { this.serviceNamespace = serviceNamespace; } @Override public final Builder serviceNamespace(String serviceNamespace) { this.serviceNamespace = serviceNamespace; return this; } @Override public final Builder serviceNamespace(ServiceNamespace serviceNamespace) { this.serviceNamespace(serviceNamespace == null ? null : serviceNamespace.toString()); return this; } public final String getResourceId() { return resourceId; } public final void setResourceId(String resourceId) { this.resourceId = resourceId; } @Override public final Builder resourceId(String resourceId) { this.resourceId = resourceId; return this; } public final String getScalableDimension() { return scalableDimension; } public final void setScalableDimension(String scalableDimension) { this.scalableDimension = scalableDimension; } @Override public final Builder scalableDimension(String scalableDimension) { this.scalableDimension = scalableDimension; return this; } @Override public final Builder scalableDimension(ScalableDimension scalableDimension) { this.scalableDimension(scalableDimension == null ? null : scalableDimension.toString()); return this; } public final String getPolicyType() { return policyType; } public final void setPolicyType(String policyType) { this.policyType = policyType; } @Override public final Builder policyType(String policyType) { this.policyType = policyType; return this; } @Override public final Builder policyType(PolicyType policyType) { this.policyType(policyType == null ? null : policyType.toString()); return this; } public final StepScalingPolicyConfiguration.Builder getStepScalingPolicyConfiguration() { return stepScalingPolicyConfiguration != null ? stepScalingPolicyConfiguration.toBuilder() : null; } public final void setStepScalingPolicyConfiguration( StepScalingPolicyConfiguration.BuilderImpl stepScalingPolicyConfiguration) { this.stepScalingPolicyConfiguration = stepScalingPolicyConfiguration != null ? stepScalingPolicyConfiguration.build() : null; } @Override public final Builder stepScalingPolicyConfiguration(StepScalingPolicyConfiguration stepScalingPolicyConfiguration) { this.stepScalingPolicyConfiguration = stepScalingPolicyConfiguration; return this; } public final TargetTrackingScalingPolicyConfiguration.Builder getTargetTrackingScalingPolicyConfiguration() { return targetTrackingScalingPolicyConfiguration != null ? targetTrackingScalingPolicyConfiguration.toBuilder() : null; } public final void setTargetTrackingScalingPolicyConfiguration( TargetTrackingScalingPolicyConfiguration.BuilderImpl targetTrackingScalingPolicyConfiguration) { this.targetTrackingScalingPolicyConfiguration = targetTrackingScalingPolicyConfiguration != null ? targetTrackingScalingPolicyConfiguration .build() : null; } @Override public final Builder targetTrackingScalingPolicyConfiguration( TargetTrackingScalingPolicyConfiguration targetTrackingScalingPolicyConfiguration) { this.targetTrackingScalingPolicyConfiguration = targetTrackingScalingPolicyConfiguration; return this; } public final PredictiveScalingPolicyConfiguration.Builder getPredictiveScalingPolicyConfiguration() { return predictiveScalingPolicyConfiguration != null ? predictiveScalingPolicyConfiguration.toBuilder() : null; } public final void setPredictiveScalingPolicyConfiguration( PredictiveScalingPolicyConfiguration.BuilderImpl predictiveScalingPolicyConfiguration) { this.predictiveScalingPolicyConfiguration = predictiveScalingPolicyConfiguration != null ? predictiveScalingPolicyConfiguration .build() : null; } @Override public final Builder predictiveScalingPolicyConfiguration( PredictiveScalingPolicyConfiguration predictiveScalingPolicyConfiguration) { this.predictiveScalingPolicyConfiguration = predictiveScalingPolicyConfiguration; return this; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public PutScalingPolicyRequest build() { return new PutScalingPolicyRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } @Override public Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy