software.amazon.awssdk.services.applicationautoscaling.model.PutScheduledActionRequest Maven / Gradle / Ivy
Show all versions of applicationautoscaling Show documentation
/*
* 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.time.Instant;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import 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 PutScheduledActionRequest extends ApplicationAutoScalingRequest implements
ToCopyableBuilder {
private static final SdkField SERVICE_NAMESPACE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ServiceNamespace").getter(getter(PutScheduledActionRequest::serviceNamespaceAsString))
.setter(setter(Builder::serviceNamespace))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ServiceNamespace").build()).build();
private static final SdkField SCHEDULE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("Schedule").getter(getter(PutScheduledActionRequest::schedule)).setter(setter(Builder::schedule))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Schedule").build()).build();
private static final SdkField TIMEZONE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("Timezone").getter(getter(PutScheduledActionRequest::timezone)).setter(setter(Builder::timezone))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Timezone").build()).build();
private static final SdkField SCHEDULED_ACTION_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ScheduledActionName").getter(getter(PutScheduledActionRequest::scheduledActionName))
.setter(setter(Builder::scheduledActionName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ScheduledActionName").build())
.build();
private static final SdkField RESOURCE_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ResourceId").getter(getter(PutScheduledActionRequest::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(PutScheduledActionRequest::scalableDimensionAsString))
.setter(setter(Builder::scalableDimension))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ScalableDimension").build()).build();
private static final SdkField START_TIME_FIELD = SdkField. builder(MarshallingType.INSTANT)
.memberName("StartTime").getter(getter(PutScheduledActionRequest::startTime)).setter(setter(Builder::startTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("StartTime").build()).build();
private static final SdkField END_TIME_FIELD = SdkField. builder(MarshallingType.INSTANT)
.memberName("EndTime").getter(getter(PutScheduledActionRequest::endTime)).setter(setter(Builder::endTime))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("EndTime").build()).build();
private static final SdkField SCALABLE_TARGET_ACTION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("ScalableTargetAction")
.getter(getter(PutScheduledActionRequest::scalableTargetAction)).setter(setter(Builder::scalableTargetAction))
.constructor(ScalableTargetAction::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ScalableTargetAction").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(SERVICE_NAMESPACE_FIELD,
SCHEDULE_FIELD, TIMEZONE_FIELD, SCHEDULED_ACTION_NAME_FIELD, RESOURCE_ID_FIELD, SCALABLE_DIMENSION_FIELD,
START_TIME_FIELD, END_TIME_FIELD, SCALABLE_TARGET_ACTION_FIELD));
private final String serviceNamespace;
private final String schedule;
private final String timezone;
private final String scheduledActionName;
private final String resourceId;
private final String scalableDimension;
private final Instant startTime;
private final Instant endTime;
private final ScalableTargetAction scalableTargetAction;
private PutScheduledActionRequest(BuilderImpl builder) {
super(builder);
this.serviceNamespace = builder.serviceNamespace;
this.schedule = builder.schedule;
this.timezone = builder.timezone;
this.scheduledActionName = builder.scheduledActionName;
this.resourceId = builder.resourceId;
this.scalableDimension = builder.scalableDimension;
this.startTime = builder.startTime;
this.endTime = builder.endTime;
this.scalableTargetAction = builder.scalableTargetAction;
}
/**
*
* 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 schedule for this action. The following formats are supported:
*
*
* -
*
* At expressions - "at(yyyy-mm-ddThh:mm:ss)
"
*
*
* -
*
* Rate expressions - "rate(value unit)
"
*
*
* -
*
* Cron expressions - "cron(fields)
"
*
*
*
*
* At expressions are useful for one-time schedules. Cron expressions are useful for scheduled actions that run
* periodically at a specified date and time, and rate expressions are useful for scheduled actions that run at a
* regular interval.
*
*
* At and cron expressions use Universal Coordinated Time (UTC) by default.
*
*
* The cron format consists of six fields separated by white spaces: [Minutes] [Hours] [Day_of_Month] [Month]
* [Day_of_Week] [Year].
*
*
* For rate expressions, value is a positive integer and unit is minute
|
* minutes
| hour
| hours
| day
| days
.
*
*
* For more information, see Schedule recurring scaling actions using cron expressions in the Application Auto Scaling User Guide.
*
*
* @return The schedule for this action. The following formats are supported:
*
* -
*
* At expressions - "at(yyyy-mm-ddThh:mm:ss)
"
*
*
* -
*
* Rate expressions - "rate(value unit)
"
*
*
* -
*
* Cron expressions - "cron(fields)
"
*
*
*
*
* At expressions are useful for one-time schedules. Cron expressions are useful for scheduled actions that
* run periodically at a specified date and time, and rate expressions are useful for scheduled actions that
* run at a regular interval.
*
*
* At and cron expressions use Universal Coordinated Time (UTC) by default.
*
*
* The cron format consists of six fields separated by white spaces: [Minutes] [Hours] [Day_of_Month]
* [Month] [Day_of_Week] [Year].
*
*
* For rate expressions, value is a positive integer and unit is minute
|
* minutes
| hour
| hours
| day
| days
.
*
*
* For more information, see Schedule recurring scaling actions using cron expressions in the Application Auto Scaling User
* Guide.
*/
public final String schedule() {
return schedule;
}
/**
*
* Specifies the time zone used when setting a scheduled action by using an at or cron expression. If a time zone is
* not provided, UTC is used by default.
*
*
* Valid values are the canonical names of the IANA time zones supported by Joda-Time (such as
* Etc/GMT+9
or Pacific/Tahiti
). For more information, see https://www.joda.org/joda-time/timezones.html.
*
*
* @return Specifies the time zone used when setting a scheduled action by using an at or cron expression. If a time
* zone is not provided, UTC is used by default.
*
* Valid values are the canonical names of the IANA time zones supported by Joda-Time (such as
* Etc/GMT+9
or Pacific/Tahiti
). For more information, see https://www.joda.org/joda-time/timezones.html.
*/
public final String timezone() {
return timezone;
}
/**
*
* The name of the scheduled action. This name must be unique among all other scheduled actions on the specified
* scalable target.
*
*
* @return The name of the scheduled action. This name must be unique among all other scheduled actions on the
* specified scalable target.
*/
public final String scheduledActionName() {
return scheduledActionName;
}
/**
*
* The identifier of the resource associated with the scheduled action. 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 scheduled action. 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 date and time for this scheduled action to start, in UTC.
*
*
* @return The date and time for this scheduled action to start, in UTC.
*/
public final Instant startTime() {
return startTime;
}
/**
*
* The date and time for the recurring schedule to end, in UTC.
*
*
* @return The date and time for the recurring schedule to end, in UTC.
*/
public final Instant endTime() {
return endTime;
}
/**
*
* The new minimum and maximum capacity. You can set both values or just one. At the scheduled time, if the current
* capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum capacity. If the
* current capacity is above the maximum capacity, Application Auto Scaling scales in to the maximum capacity.
*
*
* @return The new minimum and maximum capacity. You can set both values or just one. At the scheduled time, if the
* current capacity is below the minimum capacity, Application Auto Scaling scales out to the minimum
* capacity. If the current capacity is above the maximum capacity, Application Auto Scaling scales in to
* the maximum capacity.
*/
public final ScalableTargetAction scalableTargetAction() {
return scalableTargetAction;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(serviceNamespaceAsString());
hashCode = 31 * hashCode + Objects.hashCode(schedule());
hashCode = 31 * hashCode + Objects.hashCode(timezone());
hashCode = 31 * hashCode + Objects.hashCode(scheduledActionName());
hashCode = 31 * hashCode + Objects.hashCode(resourceId());
hashCode = 31 * hashCode + Objects.hashCode(scalableDimensionAsString());
hashCode = 31 * hashCode + Objects.hashCode(startTime());
hashCode = 31 * hashCode + Objects.hashCode(endTime());
hashCode = 31 * hashCode + Objects.hashCode(scalableTargetAction());
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 PutScheduledActionRequest)) {
return false;
}
PutScheduledActionRequest other = (PutScheduledActionRequest) obj;
return Objects.equals(serviceNamespaceAsString(), other.serviceNamespaceAsString())
&& Objects.equals(schedule(), other.schedule()) && Objects.equals(timezone(), other.timezone())
&& Objects.equals(scheduledActionName(), other.scheduledActionName())
&& Objects.equals(resourceId(), other.resourceId())
&& Objects.equals(scalableDimensionAsString(), other.scalableDimensionAsString())
&& Objects.equals(startTime(), other.startTime()) && Objects.equals(endTime(), other.endTime())
&& Objects.equals(scalableTargetAction(), other.scalableTargetAction());
}
/**
* 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("PutScheduledActionRequest").add("ServiceNamespace", serviceNamespaceAsString())
.add("Schedule", schedule()).add("Timezone", timezone()).add("ScheduledActionName", scheduledActionName())
.add("ResourceId", resourceId()).add("ScalableDimension", scalableDimensionAsString())
.add("StartTime", startTime()).add("EndTime", endTime()).add("ScalableTargetAction", scalableTargetAction())
.build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "ServiceNamespace":
return Optional.ofNullable(clazz.cast(serviceNamespaceAsString()));
case "Schedule":
return Optional.ofNullable(clazz.cast(schedule()));
case "Timezone":
return Optional.ofNullable(clazz.cast(timezone()));
case "ScheduledActionName":
return Optional.ofNullable(clazz.cast(scheduledActionName()));
case "ResourceId":
return Optional.ofNullable(clazz.cast(resourceId()));
case "ScalableDimension":
return Optional.ofNullable(clazz.cast(scalableDimensionAsString()));
case "StartTime":
return Optional.ofNullable(clazz.cast(startTime()));
case "EndTime":
return Optional.ofNullable(clazz.cast(endTime()));
case "ScalableTargetAction":
return Optional.ofNullable(clazz.cast(scalableTargetAction()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function