-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Application Auto Scaling SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.ApplicationAutoScaling</a> or <a>the AWS
--   documentation</a> to get started.
@package amazonka-application-autoscaling
@version 1.6.0


module Network.AWS.ApplicationAutoScaling.Types

-- | API version <tt>2016-02-06</tt> of the Amazon Application Auto Scaling
--   SDK configuration.
applicationAutoScaling :: Service

-- | An exception was thrown for a validation issue. Review the available
--   parameters for the API request.
_ValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Failed access to resources caused an exception. This exception is
--   thrown when Application Auto Scaling is unable to retrieve the alarms
--   associated with a scaling policy due to a client error, for example,
--   if the role ARN specified for a scalable target does not have
--   permission to call the CloudWatch <a>DescribeAlarms</a> on your
--   behalf.
_FailedResourceAccessException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The next token supplied was invalid.
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Concurrent updates caused an exception, for example, if you request an
--   update to an Application Auto Scaling resource that already has a
--   pending update.
_ConcurrentUpdateException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service encountered an internal error.
_InternalServiceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified object could not be found. For any operation that
--   depends on the existence of a scalable target, this exception is
--   thrown if the scalable target with the specified service namespace,
--   resource ID, and scalable dimension does not exist. For any operation
--   that deletes or deregisters a resource, this exception is thrown if
--   the resource cannot be found.
_ObjectNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A per-account resource limit is exceeded. For more information, see
--   <a>Application Auto Scaling Limits</a> .
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data AdjustmentType
ChangeInCapacity :: AdjustmentType
ExactCapacity :: AdjustmentType
PercentChangeInCapacity :: AdjustmentType
data MetricAggregationType
MATAverage :: MetricAggregationType
MATMaximum :: MetricAggregationType
MATMinimum :: MetricAggregationType
data MetricStatistic
Average :: MetricStatistic
Maximum :: MetricStatistic
Minimum :: MetricStatistic
SampleCount :: MetricStatistic
Sum :: MetricStatistic
data MetricType
ALBRequestCountPerTarget :: MetricType
DynamoDBReadCapacityUtilization :: MetricType
DynamoDBWriteCapacityUtilization :: MetricType
EC2SpotFleetRequestAverageCPUUtilization :: MetricType
EC2SpotFleetRequestAverageNetworkIn :: MetricType
EC2SpotFleetRequestAverageNetworkOut :: MetricType
ECSServiceAverageCPUUtilization :: MetricType
ECSServiceAverageMemoryUtilization :: MetricType
RDSReaderAverageCPUUtilization :: MetricType
RDSReaderAverageDatabaseConnections :: MetricType
SageMakerVariantInvocationsPerInstance :: MetricType
data PolicyType
StepScaling :: PolicyType
TargetTrackingScaling :: PolicyType
data ScalableDimension
AppstreamFleetDesiredCapacity :: ScalableDimension
DynamodbIndexReadCapacityUnits :: ScalableDimension
DynamodbIndexWriteCapacityUnits :: ScalableDimension
DynamodbTableReadCapacityUnits :: ScalableDimension
DynamodbTableWriteCapacityUnits :: ScalableDimension
EC2SpotFleetRequestTargetCapacity :: ScalableDimension
EcsServiceDesiredCount :: ScalableDimension
ElasticmapreduceInstancegroupInstanceCount :: ScalableDimension
RDSClusterReadReplicaCount :: ScalableDimension
SagemakerVariantDesiredInstanceCount :: ScalableDimension
data ScalingActivityStatusCode
Failed :: ScalingActivityStatusCode
InProgress :: ScalingActivityStatusCode
Overridden :: ScalingActivityStatusCode
Pending :: ScalingActivityStatusCode
Successful :: ScalingActivityStatusCode
Unfulfilled :: ScalingActivityStatusCode
data ServiceNamespace
Appstream :: ServiceNamespace
Dynamodb :: ServiceNamespace
EC2 :: ServiceNamespace
Ecs :: ServiceNamespace
Elasticmapreduce :: ServiceNamespace
RDS :: ServiceNamespace
Sagemaker :: ServiceNamespace

-- | Represents a CloudWatch alarm associated with a scaling policy.
--   
--   <i>See:</i> <a>alarm</a> smart constructor.
data Alarm

-- | Creates a value of <a>Alarm</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAlarmName</a> - The name of the alarm.</li>
--   <li><a>aAlarmARN</a> - The Amazon Resource Name (ARN) of the
--   alarm.</li>
--   </ul>
alarm :: Text -> Text -> Alarm

-- | The name of the alarm.
aAlarmName :: Lens' Alarm Text

-- | The Amazon Resource Name (ARN) of the alarm.
aAlarmARN :: Lens' Alarm Text

-- | Configures a customized metric for a target tracking policy.
--   
--   <i>See:</i> <a>customizedMetricSpecification</a> smart constructor.
data CustomizedMetricSpecification

-- | Creates a value of <a>CustomizedMetricSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmsDimensions</a> - The dimensions of the metric.</li>
--   <li><a>cmsUnit</a> - The unit of the metric.</li>
--   <li><a>cmsMetricName</a> - The name of the metric.</li>
--   <li><a>cmsNamespace</a> - The namespace of the metric.</li>
--   <li><a>cmsStatistic</a> - The statistic of the metric.</li>
--   </ul>
customizedMetricSpecification :: Text -> Text -> MetricStatistic -> CustomizedMetricSpecification

-- | The dimensions of the metric.
cmsDimensions :: Lens' CustomizedMetricSpecification [MetricDimension]

-- | The unit of the metric.
cmsUnit :: Lens' CustomizedMetricSpecification (Maybe Text)

-- | The name of the metric.
cmsMetricName :: Lens' CustomizedMetricSpecification Text

-- | The namespace of the metric.
cmsNamespace :: Lens' CustomizedMetricSpecification Text

-- | The statistic of the metric.
cmsStatistic :: Lens' CustomizedMetricSpecification MetricStatistic

-- | Describes the dimension of a metric.
--   
--   <i>See:</i> <a>metricDimension</a> smart constructor.
data MetricDimension

-- | Creates a value of <a>MetricDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdName</a> - The name of the dimension.</li>
--   <li><a>mdValue</a> - The value of the dimension.</li>
--   </ul>
metricDimension :: Text -> Text -> MetricDimension

-- | The name of the dimension.
mdName :: Lens' MetricDimension Text

-- | The value of the dimension.
mdValue :: Lens' MetricDimension Text

-- | Configures a predefined metric for a target tracking policy.
--   
--   <i>See:</i> <a>predefinedMetricSpecification</a> smart constructor.
data PredefinedMetricSpecification

-- | Creates a value of <a>PredefinedMetricSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pmsResourceLabel</a> - Identifies the resource associated with
--   the metric type. You can't specify a resource label unless the metric
--   type is <tt>ALBRequestCountPerTarget</tt> and there is a target group
--   attached to the Spot fleet request or ECS service. The format is
--   app<i><a>load-balancer-name</a></i><a>load-balancer-id</a><i>targetgroup</i><a>target-group-name</a><i><a>target-group-id</a>,
--   where: * app</i><a>load-balancer-name</a><i><a>load-balancer-id</a> is
--   the final portion of the load balancer ARN *
--   targetgroup</i><a>target-group-name</a>/<a>target-group-id</a> is the
--   final portion of the target group ARN.</li>
--   <li><a>pmsPredefinedMetricType</a> - The metric type. The
--   <tt>ALBRequestCountPerTarget</tt> metric type applies only to Spot
--   fleet requests and ECS services.</li>
--   </ul>
predefinedMetricSpecification :: MetricType -> PredefinedMetricSpecification

-- | Identifies the resource associated with the metric type. You can't
--   specify a resource label unless the metric type is
--   <tt>ALBRequestCountPerTarget</tt> and there is a target group attached
--   to the Spot fleet request or ECS service. The format is
--   app<i><a>load-balancer-name</a></i><a>load-balancer-id</a><i>targetgroup</i><a>target-group-name</a><i><a>target-group-id</a>,
--   where: * app</i><a>load-balancer-name</a><i><a>load-balancer-id</a> is
--   the final portion of the load balancer ARN *
--   targetgroup</i><a>target-group-name</a>/<a>target-group-id</a> is the
--   final portion of the target group ARN.
pmsResourceLabel :: Lens' PredefinedMetricSpecification (Maybe Text)

-- | The metric type. The <tt>ALBRequestCountPerTarget</tt> metric type
--   applies only to Spot fleet requests and ECS services.
pmsPredefinedMetricType :: Lens' PredefinedMetricSpecification MetricType

-- | Represents a scalable target.
--   
--   <i>See:</i> <a>scalableTarget</a> smart constructor.
data ScalableTarget

-- | Creates a value of <a>ScalableTarget</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>stResourceId</a> - The identifier of the resource associated
--   with the scalable target. This string consists of the resource type
--   and unique identifier. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>stScalableDimension</a> - The scalable dimension associated
--   with the scalable target. This string consists of the service
--   namespace, resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>stMinCapacity</a> - The minimum value to scale to in response
--   to a scale in event.</li>
--   <li><a>stMaxCapacity</a> - The maximum value to scale to in response
--   to a scale out event.</li>
--   <li><a>stRoleARN</a> - The ARN of an IAM role that allows Application
--   Auto Scaling to modify the scalable target on your behalf.</li>
--   <li><a>stCreationTime</a> - The Unix timestamp for when the scalable
--   target was created.</li>
--   </ul>
scalableTarget :: ServiceNamespace -> Text -> ScalableDimension -> Int -> Int -> Text -> UTCTime -> ScalableTarget

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
stServiceNamespace :: Lens' ScalableTarget ServiceNamespace

-- | The identifier of the resource associated with the scalable target.
--   This string consists of the resource type and unique identifier. * ECS
--   service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
stResourceId :: Lens' ScalableTarget Text

-- | The scalable dimension associated with the scalable target. This
--   string consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
stScalableDimension :: Lens' ScalableTarget ScalableDimension

-- | The minimum value to scale to in response to a scale in event.
stMinCapacity :: Lens' ScalableTarget Int

-- | The maximum value to scale to in response to a scale out event.
stMaxCapacity :: Lens' ScalableTarget Int

-- | The ARN of an IAM role that allows Application Auto Scaling to modify
--   the scalable target on your behalf.
stRoleARN :: Lens' ScalableTarget Text

-- | The Unix timestamp for when the scalable target was created.
stCreationTime :: Lens' ScalableTarget UTCTime

-- | Represents the minimum and maximum capacity for a scheduled action.
--   
--   <i>See:</i> <a>scalableTargetAction</a> smart constructor.
data ScalableTargetAction

-- | Creates a value of <a>ScalableTargetAction</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>staMaxCapacity</a> - The maximum capacity.</li>
--   <li><a>staMinCapacity</a> - The minimum capacity.</li>
--   </ul>
scalableTargetAction :: ScalableTargetAction

-- | The maximum capacity.
staMaxCapacity :: Lens' ScalableTargetAction (Maybe Int)

-- | The minimum capacity.
staMinCapacity :: Lens' ScalableTargetAction (Maybe Int)

-- | Represents a scaling activity.
--   
--   <i>See:</i> <a>scalingActivity</a> smart constructor.
data ScalingActivity

-- | Creates a value of <a>ScalingActivity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStatusMessage</a> - A simple message about the current status
--   of the scaling activity.</li>
--   <li><a>sEndTime</a> - The Unix timestamp for when the scaling activity
--   ended.</li>
--   <li><a>sDetails</a> - The details about the scaling activity.</li>
--   <li><a>sActivityId</a> - The unique identifier of the scaling
--   activity.</li>
--   <li><a>sServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>sResourceId</a> - The identifier of the resource associated
--   with the scaling activity. This string consists of the resource type
--   and unique identifier. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>sScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>sDescription</a> - A simple description of what action the
--   scaling activity intends to accomplish.</li>
--   <li><a>sCause</a> - A simple description of what caused the scaling
--   activity to happen.</li>
--   <li><a>sStartTime</a> - The Unix timestamp for when the scaling
--   activity began.</li>
--   <li><a>sStatusCode</a> - Indicates the status of the scaling
--   activity.</li>
--   </ul>
scalingActivity :: Text -> ServiceNamespace -> Text -> ScalableDimension -> Text -> Text -> UTCTime -> ScalingActivityStatusCode -> ScalingActivity

-- | A simple message about the current status of the scaling activity.
sStatusMessage :: Lens' ScalingActivity (Maybe Text)

-- | The Unix timestamp for when the scaling activity ended.
sEndTime :: Lens' ScalingActivity (Maybe UTCTime)

-- | The details about the scaling activity.
sDetails :: Lens' ScalingActivity (Maybe Text)

-- | The unique identifier of the scaling activity.
sActivityId :: Lens' ScalingActivity Text

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
sServiceNamespace :: Lens' ScalingActivity ServiceNamespace

-- | The identifier of the resource associated with the scaling activity.
--   This string consists of the resource type and unique identifier. * ECS
--   service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
sResourceId :: Lens' ScalingActivity Text

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
sScalableDimension :: Lens' ScalingActivity ScalableDimension

-- | A simple description of what action the scaling activity intends to
--   accomplish.
sDescription :: Lens' ScalingActivity Text

-- | A simple description of what caused the scaling activity to happen.
sCause :: Lens' ScalingActivity Text

-- | The Unix timestamp for when the scaling activity began.
sStartTime :: Lens' ScalingActivity UTCTime

-- | Indicates the status of the scaling activity.
sStatusCode :: Lens' ScalingActivity ScalingActivityStatusCode

-- | Represents a scaling policy.
--   
--   <i>See:</i> <a>scalingPolicy</a> smart constructor.
data ScalingPolicy

-- | Creates a value of <a>ScalingPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spTargetTrackingScalingPolicyConfiguration</a> - A target
--   tracking policy.</li>
--   <li><a>spStepScalingPolicyConfiguration</a> - A step scaling
--   policy.</li>
--   <li><a>spAlarms</a> - The CloudWatch alarms associated with the
--   scaling policy.</li>
--   <li><a>spPolicyARN</a> - The Amazon Resource Name (ARN) of the scaling
--   policy.</li>
--   <li><a>spPolicyName</a> - The name of the scaling policy.</li>
--   <li><a>spServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>spResourceId</a> - 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
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>spScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>spPolicyType</a> - The scaling policy type.</li>
--   <li><a>spCreationTime</a> - The Unix timestamp for when the scaling
--   policy was created.</li>
--   </ul>
scalingPolicy :: Text -> Text -> ServiceNamespace -> Text -> ScalableDimension -> PolicyType -> UTCTime -> ScalingPolicy

-- | A target tracking policy.
spTargetTrackingScalingPolicyConfiguration :: Lens' ScalingPolicy (Maybe TargetTrackingScalingPolicyConfiguration)

-- | A step scaling policy.
spStepScalingPolicyConfiguration :: Lens' ScalingPolicy (Maybe StepScalingPolicyConfiguration)

-- | The CloudWatch alarms associated with the scaling policy.
spAlarms :: Lens' ScalingPolicy [Alarm]

-- | The Amazon Resource Name (ARN) of the scaling policy.
spPolicyARN :: Lens' ScalingPolicy Text

-- | The name of the scaling policy.
spPolicyName :: Lens' ScalingPolicy Text

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
spServiceNamespace :: Lens' ScalingPolicy 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 <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
spResourceId :: Lens' ScalingPolicy Text

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
spScalableDimension :: Lens' ScalingPolicy ScalableDimension

-- | The scaling policy type.
spPolicyType :: Lens' ScalingPolicy PolicyType

-- | The Unix timestamp for when the scaling policy was created.
spCreationTime :: Lens' ScalingPolicy UTCTime

-- | Represents a scheduled action.
--   
--   <i>See:</i> <a>scheduledAction</a> smart constructor.
data ScheduledAction

-- | Creates a value of <a>ScheduledAction</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>saScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>saStartTime</a> - The date and time that the action is
--   scheduled to begin.</li>
--   <li><a>saEndTime</a> - The date and time that the action is scheduled
--   to end.</li>
--   <li><a>saScalableTargetAction</a> - The new minimum and maximum
--   capacity. You can set both values or just one. During 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.</li>
--   <li><a>saScheduledActionName</a> - The name of the scheduled
--   action.</li>
--   <li><a>saScheduledActionARN</a> - The Amazon Resource Name (ARN) of
--   the scheduled action.</li>
--   <li><a>saServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>saSchedule</a> - The schedule for this action. The following
--   formats are supported: * At expressions - <tt>at(<i>yyyy</i>
--   -<i>mm</i> -<i>dd</i> T<i>hh</i> :<i>mm</i> :<i>ss</i> )</tt> * Rate
--   expressions - <tt>rate(<i>value</i> <i>unit</i> )</tt> * Cron
--   expressions - <tt>cron(<i>fields</i> )</tt> At expressions are useful
--   for one-time schedules. Specify the time, in UTC. For rate
--   expressions, <i>value</i> is a positive integer and <i>unit</i> is
--   <tt>minute</tt> | <tt>minutes</tt> | <tt>hour</tt> | <tt>hours</tt> |
--   <tt>day</tt> | <tt>days</tt> . For more information about cron
--   expressions, see <a>Cron</a> .</li>
--   <li><a>saResourceId</a> - 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
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>saCreationTime</a> - The date and time that the scheduled
--   action was created.</li>
--   </ul>
scheduledAction :: Text -> Text -> ServiceNamespace -> Text -> Text -> UTCTime -> ScheduledAction

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
saScalableDimension :: Lens' ScheduledAction (Maybe ScalableDimension)

-- | The date and time that the action is scheduled to begin.
saStartTime :: Lens' ScheduledAction (Maybe UTCTime)

-- | The date and time that the action is scheduled to end.
saEndTime :: Lens' ScheduledAction (Maybe UTCTime)

-- | The new minimum and maximum capacity. You can set both values or just
--   one. During 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.
saScalableTargetAction :: Lens' ScheduledAction (Maybe ScalableTargetAction)

-- | The name of the scheduled action.
saScheduledActionName :: Lens' ScheduledAction Text

-- | The Amazon Resource Name (ARN) of the scheduled action.
saScheduledActionARN :: Lens' ScheduledAction Text

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
saServiceNamespace :: Lens' ScheduledAction ServiceNamespace

-- | The schedule for this action. The following formats are supported: *
--   At expressions - <tt>at(<i>yyyy</i> -<i>mm</i> -<i>dd</i> T<i>hh</i>
--   :<i>mm</i> :<i>ss</i> )</tt> * Rate expressions -
--   <tt>rate(<i>value</i> <i>unit</i> )</tt> * Cron expressions -
--   <tt>cron(<i>fields</i> )</tt> At expressions are useful for one-time
--   schedules. Specify the time, in UTC. For rate expressions,
--   <i>value</i> is a positive integer and <i>unit</i> is <tt>minute</tt>
--   | <tt>minutes</tt> | <tt>hour</tt> | <tt>hours</tt> | <tt>day</tt> |
--   <tt>days</tt> . For more information about cron expressions, see
--   <a>Cron</a> .
saSchedule :: Lens' ScheduledAction Text

-- | 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 <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
saResourceId :: Lens' ScheduledAction Text

-- | The date and time that the scheduled action was created.
saCreationTime :: Lens' ScheduledAction UTCTime

-- | Represents a step adjustment for a
--   <a>StepScalingPolicyConfiguration</a> . Describes an adjustment based
--   on the difference between the value of the aggregated CloudWatch
--   metric and the breach threshold that you've defined for the alarm.
--   
--   For the following examples, suppose that you have an alarm with a
--   breach threshold of 50:
--   
--   <ul>
--   <li>To trigger the adjustment when the metric is greater than or equal
--   to 50 and less than 60, specify a lower bound of 0 and an upper bound
--   of 10.</li>
--   <li>To trigger the adjustment when the metric is greater than 40 and
--   less than or equal to 50, specify a lower bound of -10 and an upper
--   bound of 0.</li>
--   </ul>
--   
--   There are a few rules for the step adjustments for your step policy:
--   
--   <ul>
--   <li>The ranges of your step adjustments can't overlap or have a
--   gap.</li>
--   <li>At most one step adjustment can have a null lower bound. If one
--   step adjustment has a negative lower bound, then there must be a step
--   adjustment with a null lower bound.</li>
--   <li>At most one step adjustment can have a null upper bound. If one
--   step adjustment has a positive upper bound, then there must be a step
--   adjustment with a null upper bound.</li>
--   <li>The upper and lower bound can't be null in the same step
--   adjustment.</li>
--   </ul>
--   
--   <i>See:</i> <a>stepAdjustment</a> smart constructor.
data StepAdjustment

-- | Creates a value of <a>StepAdjustment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>saMetricIntervalLowerBound</a> - The lower bound for the
--   difference between the alarm threshold and the CloudWatch metric. If
--   the metric value is above the breach threshold, the lower bound is
--   inclusive (the metric must be greater than or equal to the threshold
--   plus the lower bound). Otherwise, it is exclusive (the metric must be
--   greater than the threshold plus the lower bound). A null value
--   indicates negative infinity.</li>
--   <li><a>saMetricIntervalUpperBound</a> - The upper bound for the
--   difference between the alarm threshold and the CloudWatch metric. If
--   the metric value is above the breach threshold, the upper bound is
--   exclusive (the metric must be less than the threshold plus the upper
--   bound). Otherwise, it is inclusive (the metric must be less than or
--   equal to the threshold plus the upper bound). A null value indicates
--   positive infinity. The upper bound must be greater than the lower
--   bound.</li>
--   <li><a>saScalingAdjustment</a> - The amount by which to scale, based
--   on the specified adjustment type. A positive value adds to the current
--   scalable dimension while a negative number removes from the current
--   scalable dimension.</li>
--   </ul>
stepAdjustment :: Int -> StepAdjustment

-- | The lower bound for the difference between the alarm threshold and the
--   CloudWatch metric. If the metric value is above the breach threshold,
--   the lower bound is inclusive (the metric must be greater than or equal
--   to the threshold plus the lower bound). Otherwise, it is exclusive
--   (the metric must be greater than the threshold plus the lower bound).
--   A null value indicates negative infinity.
saMetricIntervalLowerBound :: Lens' StepAdjustment (Maybe Double)

-- | The upper bound for the difference between the alarm threshold and the
--   CloudWatch metric. If the metric value is above the breach threshold,
--   the upper bound is exclusive (the metric must be less than the
--   threshold plus the upper bound). Otherwise, it is inclusive (the
--   metric must be less than or equal to the threshold plus the upper
--   bound). A null value indicates positive infinity. The upper bound must
--   be greater than the lower bound.
saMetricIntervalUpperBound :: Lens' StepAdjustment (Maybe Double)

-- | The amount by which to scale, based on the specified adjustment type.
--   A positive value adds to the current scalable dimension while a
--   negative number removes from the current scalable dimension.
saScalingAdjustment :: Lens' StepAdjustment Int

-- | Represents a step scaling policy configuration.
--   
--   <i>See:</i> <a>stepScalingPolicyConfiguration</a> smart constructor.
data StepScalingPolicyConfiguration

-- | Creates a value of <a>StepScalingPolicyConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sspcStepAdjustments</a> - A set of adjustments that enable you
--   to scale based on the size of the alarm breach.</li>
--   <li><a>sspcAdjustmentType</a> - The adjustment type, which specifies
--   how the <tt>ScalingAdjustment</tt> parameter in a
--   <a>StepAdjustment</a> is interpreted.</li>
--   <li><a>sspcCooldown</a> - The amount of time, in seconds, after a
--   scaling activity completes where previous trigger-related scaling
--   activities can influence future scaling events. For scale out
--   policies, while the cooldown period is in effect, the capacity that
--   has been added by the previous scale out event that initiated the
--   cooldown is calculated as part of the desired capacity for the next
--   scale out. The intention is to continuously (but not excessively)
--   scale out. For example, an alarm triggers a step scaling policy to
--   scale out an Amazon ECS service by 2 tasks, the scaling activity
--   completes successfully, and a cooldown period of 5 minutes starts.
--   During the Cooldown period, if the alarm triggers the same policy
--   again but at a more aggressive step adjustment to scale out the
--   service by 3 tasks, the 2 tasks that were added in the previous scale
--   out event are considered part of that capacity and only 1 additional
--   task is added to the desired count. For scale in policies, the
--   cooldown period is used to block subsequent scale in requests until it
--   has expired. The intention is to scale in conservatively to protect
--   your application's availability. However, if another alarm triggers a
--   scale out policy during the cooldown period after a scale-in,
--   Application Auto Scaling scales out your scalable target
--   immediately.</li>
--   <li><a>sspcMetricAggregationType</a> - The aggregation type for the
--   CloudWatch metrics. Valid values are <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> .</li>
--   <li><a>sspcMinAdjustmentMagnitude</a> - The minimum number to adjust
--   your scalable dimension as a result of a scaling activity. If the
--   adjustment type is <tt>PercentChangeInCapacity</tt> , the scaling
--   policy changes the scalable dimension of the scalable target by this
--   amount.</li>
--   </ul>
stepScalingPolicyConfiguration :: StepScalingPolicyConfiguration

-- | A set of adjustments that enable you to scale based on the size of the
--   alarm breach.
sspcStepAdjustments :: Lens' StepScalingPolicyConfiguration [StepAdjustment]

-- | The adjustment type, which specifies how the
--   <tt>ScalingAdjustment</tt> parameter in a <a>StepAdjustment</a> is
--   interpreted.
sspcAdjustmentType :: Lens' StepScalingPolicyConfiguration (Maybe AdjustmentType)

-- | The amount of time, in seconds, after a scaling activity completes
--   where previous trigger-related scaling activities can influence future
--   scaling events. For scale out policies, while the cooldown period is
--   in effect, the capacity that has been added by the previous scale out
--   event that initiated the cooldown is calculated as part of the desired
--   capacity for the next scale out. The intention is to continuously (but
--   not excessively) scale out. For example, an alarm triggers a step
--   scaling policy to scale out an Amazon ECS service by 2 tasks, the
--   scaling activity completes successfully, and a cooldown period of 5
--   minutes starts. During the Cooldown period, if the alarm triggers the
--   same policy again but at a more aggressive step adjustment to scale
--   out the service by 3 tasks, the 2 tasks that were added in the
--   previous scale out event are considered part of that capacity and only
--   1 additional task is added to the desired count. For scale in
--   policies, the cooldown period is used to block subsequent scale in
--   requests until it has expired. The intention is to scale in
--   conservatively to protect your application's availability. However, if
--   another alarm triggers a scale out policy during the cooldown period
--   after a scale-in, Application Auto Scaling scales out your scalable
--   target immediately.
sspcCooldown :: Lens' StepScalingPolicyConfiguration (Maybe Int)

-- | The aggregation type for the CloudWatch metrics. Valid values are
--   <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> .
sspcMetricAggregationType :: Lens' StepScalingPolicyConfiguration (Maybe MetricAggregationType)

-- | The minimum number to adjust your scalable dimension as a result of a
--   scaling activity. If the adjustment type is
--   <tt>PercentChangeInCapacity</tt> , the scaling policy changes the
--   scalable dimension of the scalable target by this amount.
sspcMinAdjustmentMagnitude :: Lens' StepScalingPolicyConfiguration (Maybe Int)

-- | Represents a target tracking scaling policy configuration.
--   
--   <i>See:</i> <a>targetTrackingScalingPolicyConfiguration</a> smart
--   constructor.
data TargetTrackingScalingPolicyConfiguration

-- | Creates a value of <a>TargetTrackingScalingPolicyConfiguration</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ttspcPredefinedMetricSpecification</a> - A predefined
--   metric.</li>
--   <li><a>ttspcScaleInCooldown</a> - The amount of time, in seconds,
--   after a scale in activity completes before another scale in activity
--   can start. The cooldown period is used to block subsequent scale in
--   requests until it has expired. The intention is to scale in
--   conservatively to protect your application's availability. However, if
--   another alarm triggers a scale out policy during the cooldown period
--   after a scale-in, Application Auto Scaling scales out your scalable
--   target immediately.</li>
--   <li><a>ttspcCustomizedMetricSpecification</a> - A customized
--   metric.</li>
--   <li><a>ttspcDisableScaleIn</a> - Indicates whether scale in by the
--   target tracking policy is disabled. If the value is <tt>true</tt> ,
--   scale in is disabled and the target tracking policy won't remove
--   capacity from the scalable resource. Otherwise, scale in is enabled
--   and the target tracking policy can remove capacity from the scalable
--   resource. The default value is <tt>false</tt> .</li>
--   <li><a>ttspcScaleOutCooldown</a> - The amount of time, in seconds,
--   after a scale out activity completes before another scale out activity
--   can start. While the cooldown period is in effect, the capacity that
--   has been added by the previous scale out event that initiated the
--   cooldown is calculated as part of the desired capacity for the next
--   scale out. The intention is to continuously (but not excessively)
--   scale out.</li>
--   <li><a>ttspcTargetValue</a> - The target value for the metric. The
--   range is 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360
--   (Base 2).</li>
--   </ul>
targetTrackingScalingPolicyConfiguration :: Double -> TargetTrackingScalingPolicyConfiguration

-- | A predefined metric.
ttspcPredefinedMetricSpecification :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe PredefinedMetricSpecification)

-- | The amount of time, in seconds, after a scale in activity completes
--   before another scale in activity can start. The cooldown period is
--   used to block subsequent scale in requests until it has expired. The
--   intention is to scale in conservatively to protect your application's
--   availability. However, if another alarm triggers a scale out policy
--   during the cooldown period after a scale-in, Application Auto Scaling
--   scales out your scalable target immediately.
ttspcScaleInCooldown :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe Int)

-- | A customized metric.
ttspcCustomizedMetricSpecification :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe CustomizedMetricSpecification)

-- | Indicates whether scale in by the target tracking policy is disabled.
--   If the value is <tt>true</tt> , scale in is disabled and the target
--   tracking policy won't remove capacity from the scalable resource.
--   Otherwise, scale in is enabled and the target tracking policy can
--   remove capacity from the scalable resource. The default value is
--   <tt>false</tt> .
ttspcDisableScaleIn :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe Bool)

-- | The amount of time, in seconds, after a scale out activity completes
--   before another scale out activity can start. While the cooldown period
--   is in effect, the capacity that has been added by the previous scale
--   out event that initiated the cooldown is calculated as part of the
--   desired capacity for the next scale out. The intention is to
--   continuously (but not excessively) scale out.
ttspcScaleOutCooldown :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe Int)

-- | The target value for the metric. The range is 8.515920e-109 to
--   1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2).
ttspcTargetValue :: Lens' TargetTrackingScalingPolicyConfiguration Double


-- | Registers or updates a scalable target. A scalable target is a
--   resource that Application Auto Scaling can scale out or scale in.
--   After you have registered a scalable target, you can use this
--   operation to update the minimum and maximum values for its scalable
--   dimension.
--   
--   After you register a scalable target, you can create and apply scaling
--   policies using <tt>PutScalingPolicy</tt> . You can view the scaling
--   policies for a service namespace using
--   <tt>DescribeScalableTargets</tt> . If you no longer need a scalable
--   target, you can deregister it using <tt>DeregisterScalableTarget</tt>
--   .
module Network.AWS.ApplicationAutoScaling.RegisterScalableTarget

-- | Creates a value of <a>RegisterScalableTarget</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rstMaxCapacity</a> - The maximum value to scale to in response
--   to a scale out event. This parameter is required if you are
--   registering a scalable target.</li>
--   <li><a>rstMinCapacity</a> - The minimum value to scale to in response
--   to a scale in event. This parameter is required if you are registering
--   a scalable target.</li>
--   <li><a>rstRoleARN</a> - Application Auto Scaling creates a
--   service-linked role that grants it permissions to modify the scalable
--   target on your behalf. For more information, see <a>Service-Linked
--   Roles for Application Auto Scaling</a> . For resources that are not
--   supported using a service-linked role, this parameter is required and
--   must specify the ARN of an IAM role that allows Application Auto
--   Scaling to modify the scalable target on your behalf.</li>
--   <li><a>rstServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>rstResourceId</a> - The identifier of the resource associated
--   with the scalable target. This string consists of the resource type
--   and unique identifier. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>rstScalableDimension</a> - The scalable dimension associated
--   with the scalable target. This string consists of the service
--   namespace, resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   </ul>
registerScalableTarget :: ServiceNamespace -> Text -> ScalableDimension -> RegisterScalableTarget

-- | <i>See:</i> <a>registerScalableTarget</a> smart constructor.
data RegisterScalableTarget

-- | The maximum value to scale to in response to a scale out event. This
--   parameter is required if you are registering a scalable target.
rstMaxCapacity :: Lens' RegisterScalableTarget (Maybe Int)

-- | The minimum value to scale to in response to a scale in event. This
--   parameter is required if you are registering a scalable target.
rstMinCapacity :: Lens' RegisterScalableTarget (Maybe Int)

-- | Application Auto Scaling creates a service-linked role that grants it
--   permissions to modify the scalable target on your behalf. For more
--   information, see <a>Service-Linked Roles for Application Auto
--   Scaling</a> . For resources that are not supported using a
--   service-linked role, this parameter is required and must specify the
--   ARN of an IAM role that allows Application Auto Scaling to modify the
--   scalable target on your behalf.
rstRoleARN :: Lens' RegisterScalableTarget (Maybe Text)

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
rstServiceNamespace :: Lens' RegisterScalableTarget ServiceNamespace

-- | The identifier of the resource associated with the scalable target.
--   This string consists of the resource type and unique identifier. * ECS
--   service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
rstResourceId :: Lens' RegisterScalableTarget Text

-- | The scalable dimension associated with the scalable target. This
--   string consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
rstScalableDimension :: Lens' RegisterScalableTarget ScalableDimension

-- | Creates a value of <a>RegisterScalableTargetResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rstrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerScalableTargetResponse :: Int -> RegisterScalableTargetResponse

-- | <i>See:</i> <a>registerScalableTargetResponse</a> smart constructor.
data RegisterScalableTargetResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
rstrsResponseStatus :: Lens' RegisterScalableTargetResponse Int
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTargetResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTargetResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTargetResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTargetResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTargetResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTargetResponse
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.RegisterScalableTarget.RegisterScalableTarget


-- | Creates or updates a scheduled action for an Application Auto Scaling
--   scalable target.
--   
--   Each scalable target is identified by a service namespace, resource
--   ID, and scalable dimension. A scheduled action applies to the scalable
--   target identified by those three attributes. You cannot create a
--   scheduled action until you register the scalable target using
--   <tt>RegisterScalableTarget</tt> .
--   
--   To update an action, specify its name and the parameters that you want
--   to change. If you don't specify start and end times, the old values
--   are deleted. Any other parameters that you don't specify are not
--   changed by this update request.
--   
--   You can view the scheduled actions using
--   <tt>DescribeScheduledActions</tt> . If you are no longer using a
--   scheduled action, you can delete it using
--   <tt>DeleteScheduledAction</tt> .
module Network.AWS.ApplicationAutoScaling.PutScheduledAction

-- | Creates a value of <a>PutScheduledAction</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psaScalableDimension</a> - The scalable dimension. This
--   parameter is required if you are creating a scheduled action. This
--   string consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>psaStartTime</a> - The date and time for the scheduled action
--   to start.</li>
--   <li><a>psaSchedule</a> - The schedule for this action. The following
--   formats are supported: * At expressions - <tt>at(<i>yyyy</i>
--   -<i>mm</i> -<i>dd</i> T<i>hh</i> :<i>mm</i> :<i>ss</i> )</tt> * Rate
--   expressions - <tt>rate(<i>value</i> <i>unit</i> )</tt> * Cron
--   expressions - <tt>cron(<i>fields</i> )</tt> At expressions are useful
--   for one-time schedules. Specify the time, in UTC. For rate
--   expressions, <i>value</i> is a positive integer and <i>unit</i> is
--   <tt>minute</tt> | <tt>minutes</tt> | <tt>hour</tt> | <tt>hours</tt> |
--   <tt>day</tt> | <tt>days</tt> . For more information about cron
--   expressions, see <a>Cron</a> .</li>
--   <li><a>psaEndTime</a> - The date and time for the scheduled action to
--   end.</li>
--   <li><a>psaScalableTargetAction</a> - The new minimum and maximum
--   capacity. You can set both values or just one. During 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.</li>
--   <li><a>psaServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>psaScheduledActionName</a> - The name of the scheduled
--   action.</li>
--   <li><a>psaResourceId</a> - 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
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   </ul>
putScheduledAction :: ServiceNamespace -> Text -> Text -> PutScheduledAction

-- | <i>See:</i> <a>putScheduledAction</a> smart constructor.
data PutScheduledAction

-- | The scalable dimension. This parameter is required if you are creating
--   a scheduled action. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
psaScalableDimension :: Lens' PutScheduledAction (Maybe ScalableDimension)

-- | The date and time for the scheduled action to start.
psaStartTime :: Lens' PutScheduledAction (Maybe UTCTime)

-- | The schedule for this action. The following formats are supported: *
--   At expressions - <tt>at(<i>yyyy</i> -<i>mm</i> -<i>dd</i> T<i>hh</i>
--   :<i>mm</i> :<i>ss</i> )</tt> * Rate expressions -
--   <tt>rate(<i>value</i> <i>unit</i> )</tt> * Cron expressions -
--   <tt>cron(<i>fields</i> )</tt> At expressions are useful for one-time
--   schedules. Specify the time, in UTC. For rate expressions,
--   <i>value</i> is a positive integer and <i>unit</i> is <tt>minute</tt>
--   | <tt>minutes</tt> | <tt>hour</tt> | <tt>hours</tt> | <tt>day</tt> |
--   <tt>days</tt> . For more information about cron expressions, see
--   <a>Cron</a> .
psaSchedule :: Lens' PutScheduledAction (Maybe Text)

-- | The date and time for the scheduled action to end.
psaEndTime :: Lens' PutScheduledAction (Maybe UTCTime)

-- | The new minimum and maximum capacity. You can set both values or just
--   one. During 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.
psaScalableTargetAction :: Lens' PutScheduledAction (Maybe ScalableTargetAction)

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
psaServiceNamespace :: Lens' PutScheduledAction ServiceNamespace

-- | The name of the scheduled action.
psaScheduledActionName :: Lens' PutScheduledAction Text

-- | 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 <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
psaResourceId :: Lens' PutScheduledAction Text

-- | Creates a value of <a>PutScheduledActionResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putScheduledActionResponse :: Int -> PutScheduledActionResponse

-- | <i>See:</i> <a>putScheduledActionResponse</a> smart constructor.
data PutScheduledActionResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
psarsResponseStatus :: Lens' PutScheduledActionResponse Int
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledActionResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledActionResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledActionResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledActionResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledActionResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledActionResponse
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.PutScheduledAction.PutScheduledAction


-- | Creates or updates a policy for an Application Auto Scaling scalable
--   target.
--   
--   Each scalable target is identified by a service namespace, resource
--   ID, and scalable dimension. A scaling policy applies to the scalable
--   target identified by those three attributes. You cannot create a
--   scaling policy until you register the scalable target using
--   <tt>RegisterScalableTarget</tt> .
--   
--   To update a policy, specify its policy name and the parameters that
--   you want to change. Any parameters that you don't specify are not
--   changed by this update request.
--   
--   You can view the scaling policies for a service namespace using
--   <tt>DescribeScalingPolicies</tt> . If you are no longer using a
--   scaling policy, you can delete it using <tt>DeleteScalingPolicy</tt> .
module Network.AWS.ApplicationAutoScaling.PutScalingPolicy

-- | Creates a value of <a>PutScalingPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pspPolicyType</a> - The policy type. This parameter is required
--   if you are creating a policy. For DynamoDB, only
--   <tt>TargetTrackingScaling</tt> is supported. For Amazon ECS, Spot
--   Fleet, and Amazon RDS, both <tt>StepScaling</tt> and
--   <tt>TargetTrackingScaling</tt> are supported. For any other service,
--   only <tt>StepScaling</tt> is supported.</li>
--   <li><a>pspTargetTrackingScalingPolicyConfiguration</a> - A target
--   tracking policy. This parameter is required if you are creating a
--   policy and the policy type is <tt>TargetTrackingScaling</tt> .</li>
--   <li><a>pspStepScalingPolicyConfiguration</a> - A step scaling policy.
--   This parameter is required if you are creating a policy and the policy
--   type is <tt>StepScaling</tt> .</li>
--   <li><a>pspPolicyName</a> - The name of the scaling policy.</li>
--   <li><a>pspServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>pspResourceId</a> - 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
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>pspScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   </ul>
putScalingPolicy :: Text -> ServiceNamespace -> Text -> ScalableDimension -> PutScalingPolicy

-- | <i>See:</i> <a>putScalingPolicy</a> smart constructor.
data PutScalingPolicy

-- | The policy type. This parameter is required if you are creating a
--   policy. For DynamoDB, only <tt>TargetTrackingScaling</tt> is
--   supported. For Amazon ECS, Spot Fleet, and Amazon RDS, both
--   <tt>StepScaling</tt> and <tt>TargetTrackingScaling</tt> are supported.
--   For any other service, only <tt>StepScaling</tt> is supported.
pspPolicyType :: Lens' PutScalingPolicy (Maybe PolicyType)

-- | A target tracking policy. This parameter is required if you are
--   creating a policy and the policy type is
--   <tt>TargetTrackingScaling</tt> .
pspTargetTrackingScalingPolicyConfiguration :: Lens' PutScalingPolicy (Maybe TargetTrackingScalingPolicyConfiguration)

-- | A step scaling policy. This parameter is required if you are creating
--   a policy and the policy type is <tt>StepScaling</tt> .
pspStepScalingPolicyConfiguration :: Lens' PutScalingPolicy (Maybe StepScalingPolicyConfiguration)

-- | The name of the scaling policy.
pspPolicyName :: Lens' PutScalingPolicy Text

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
pspServiceNamespace :: Lens' PutScalingPolicy 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 <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
pspResourceId :: Lens' PutScalingPolicy Text

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
pspScalableDimension :: Lens' PutScalingPolicy ScalableDimension

-- | Creates a value of <a>PutScalingPolicyResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>psprsAlarms</a> - The CloudWatch alarms created for the target
--   tracking policy.</li>
--   <li><a>psprsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>psprsPolicyARN</a> - The Amazon Resource Name (ARN) of the
--   resulting scaling policy.</li>
--   </ul>
putScalingPolicyResponse :: Int -> Text -> PutScalingPolicyResponse

-- | <i>See:</i> <a>putScalingPolicyResponse</a> smart constructor.
data PutScalingPolicyResponse

-- | The CloudWatch alarms created for the target tracking policy.
psprsAlarms :: Lens' PutScalingPolicyResponse [Alarm]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
psprsResponseStatus :: Lens' PutScalingPolicyResponse Int

-- | The Amazon Resource Name (ARN) of the resulting scaling policy.
psprsPolicyARN :: Lens' PutScalingPolicyResponse Text
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.PutScalingPolicy.PutScalingPolicy


-- | Describes the scheduled actions for the specified service namespace.
--   
--   You can filter the results using the <tt>ResourceId</tt> ,
--   <tt>ScalableDimension</tt> , and <tt>ScheduledActionNames</tt>
--   parameters.
--   
--   To create a scheduled action or update an existing one, see
--   <tt>PutScheduledAction</tt> . If you are no longer using a scheduled
--   action, you can delete it using <tt>DeleteScheduledAction</tt> .
module Network.AWS.ApplicationAutoScaling.DescribeScheduledActions

-- | Creates a value of <a>DescribeScheduledActions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsasScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. If you specify a scalable dimension, you must also specify a
--   resource ID. * <tt>ecs:service:DesiredCount</tt> - The desired task
--   count of an ECS service. *
--   <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target capacity
--   of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>dsasResourceId</a> - The identifier of the resource associated
--   with the scheduled action. This string consists of the resource type
--   and unique identifier. If you specify a scalable dimension, you must
--   also specify a resource ID. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>dsasNextToken</a> - The token for the next set of results.</li>
--   <li><a>dsasScheduledActionNames</a> - The names of the scheduled
--   actions to describe.</li>
--   <li><a>dsasMaxResults</a> - The maximum number of scheduled action
--   results. This value can be between 1 and 50. The default value is 50.
--   If this parameter is used, the operation returns up to
--   <tt>MaxResults</tt> results at a time, along with a <tt>NextToken</tt>
--   value. To get the next set of results, include the <tt>NextToken</tt>
--   value in a subsequent call. If this parameter is not used, the
--   operation returns up to 50 results and a <tt>NextToken</tt> value, if
--   applicable.</li>
--   <li><a>dsasServiceNamespace</a> - The namespace of the AWS service.
--   For more information, see <a>AWS Service Namespaces</a> in the
--   <i>Amazon Web Services General Reference</i> .</li>
--   </ul>
describeScheduledActions :: ServiceNamespace -> DescribeScheduledActions

-- | <i>See:</i> <a>describeScheduledActions</a> smart constructor.
data DescribeScheduledActions

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. If you specify a scalable
--   dimension, you must also specify a resource ID. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
dsasScalableDimension :: Lens' DescribeScheduledActions (Maybe ScalableDimension)

-- | The identifier of the resource associated with the scheduled action.
--   This string consists of the resource type and unique identifier. If
--   you specify a scalable dimension, you must also specify a resource ID.
--   * ECS service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
dsasResourceId :: Lens' DescribeScheduledActions (Maybe Text)

-- | The token for the next set of results.
dsasNextToken :: Lens' DescribeScheduledActions (Maybe Text)

-- | The names of the scheduled actions to describe.
dsasScheduledActionNames :: Lens' DescribeScheduledActions [Text]

-- | The maximum number of scheduled action results. This value can be
--   between 1 and 50. The default value is 50. If this parameter is used,
--   the operation returns up to <tt>MaxResults</tt> results at a time,
--   along with a <tt>NextToken</tt> value. To get the next set of results,
--   include the <tt>NextToken</tt> value in a subsequent call. If this
--   parameter is not used, the operation returns up to 50 results and a
--   <tt>NextToken</tt> value, if applicable.
dsasMaxResults :: Lens' DescribeScheduledActions (Maybe Int)

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
dsasServiceNamespace :: Lens' DescribeScheduledActions ServiceNamespace

-- | Creates a value of <a>DescribeScheduledActionsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsarsNextToken</a> - The token required to get the next set of
--   results. This value is <tt>null</tt> if there are no more results to
--   return.</li>
--   <li><a>dsarsScheduledActions</a> - Information about the scheduled
--   actions.</li>
--   <li><a>dsarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeScheduledActionsResponse :: Int -> DescribeScheduledActionsResponse

-- | <i>See:</i> <a>describeScheduledActionsResponse</a> smart constructor.
data DescribeScheduledActionsResponse

-- | The token required to get the next set of results. This value is
--   <tt>null</tt> if there are no more results to return.
dsarsNextToken :: Lens' DescribeScheduledActionsResponse (Maybe Text)

-- | Information about the scheduled actions.
dsarsScheduledActions :: Lens' DescribeScheduledActionsResponse [ScheduledAction]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsarsResponseStatus :: Lens' DescribeScheduledActionsResponse Int
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActionsResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActionsResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActionsResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActionsResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActionsResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActionsResponse
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.DescribeScheduledActions.DescribeScheduledActions


-- | Describes the scaling policies for the specified service namespace.
--   
--   You can filter the results using the <tt>ResourceId</tt> ,
--   <tt>ScalableDimension</tt> , and <tt>PolicyNames</tt> parameters.
--   
--   To create a scaling policy or update an existing one, see
--   <tt>PutScalingPolicy</tt> . If you are no longer using a scaling
--   policy, you can delete it using <tt>DeleteScalingPolicy</tt> .
--   
--   This operation returns paginated results.
module Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies

-- | Creates a value of <a>DescribeScalingPolicies</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dPolicyNames</a> - The names of the scaling policies to
--   describe.</li>
--   <li><a>dScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. If you specify a scalable dimension, you must also specify a
--   resource ID. * <tt>ecs:service:DesiredCount</tt> - The desired task
--   count of an ECS service. *
--   <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target capacity
--   of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>dResourceId</a> - The identifier of the resource associated
--   with the scaling policy. This string consists of the resource type and
--   unique identifier. If you specify a scalable dimension, you must also
--   specify a resource ID. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>dNextToken</a> - The token for the next set of results.</li>
--   <li><a>dMaxResults</a> - The maximum number of scalable targets. This
--   value can be between 1 and 50. The default value is 50. If this
--   parameter is used, the operation returns up to <tt>MaxResults</tt>
--   results at a time, along with a <tt>NextToken</tt> value. To get the
--   next set of results, include the <tt>NextToken</tt> value in a
--   subsequent call. If this parameter is not used, the operation returns
--   up to 50 results and a <tt>NextToken</tt> value, if applicable.</li>
--   <li><a>dServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   </ul>
describeScalingPolicies :: ServiceNamespace -> DescribeScalingPolicies

-- | <i>See:</i> <a>describeScalingPolicies</a> smart constructor.
data DescribeScalingPolicies

-- | The names of the scaling policies to describe.
dPolicyNames :: Lens' DescribeScalingPolicies [Text]

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. If you specify a scalable
--   dimension, you must also specify a resource ID. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
dScalableDimension :: Lens' DescribeScalingPolicies (Maybe ScalableDimension)

-- | The identifier of the resource associated with the scaling policy.
--   This string consists of the resource type and unique identifier. If
--   you specify a scalable dimension, you must also specify a resource ID.
--   * ECS service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
dResourceId :: Lens' DescribeScalingPolicies (Maybe Text)

-- | The token for the next set of results.
dNextToken :: Lens' DescribeScalingPolicies (Maybe Text)

-- | The maximum number of scalable targets. This value can be between 1
--   and 50. The default value is 50. If this parameter is used, the
--   operation returns up to <tt>MaxResults</tt> results at a time, along
--   with a <tt>NextToken</tt> value. To get the next set of results,
--   include the <tt>NextToken</tt> value in a subsequent call. If this
--   parameter is not used, the operation returns up to 50 results and a
--   <tt>NextToken</tt> value, if applicable.
dMaxResults :: Lens' DescribeScalingPolicies (Maybe Int)

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
dServiceNamespace :: Lens' DescribeScalingPolicies ServiceNamespace

-- | Creates a value of <a>DescribeScalingPoliciesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsNextToken</a> - The token required to get the next set of
--   results. This value is <tt>null</tt> if there are no more results to
--   return.</li>
--   <li><a>drsScalingPolicies</a> - Information about the scaling
--   policies.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeScalingPoliciesResponse :: Int -> DescribeScalingPoliciesResponse

-- | <i>See:</i> <a>describeScalingPoliciesResponse</a> smart constructor.
data DescribeScalingPoliciesResponse

-- | The token required to get the next set of results. This value is
--   <tt>null</tt> if there are no more results to return.
drsNextToken :: Lens' DescribeScalingPoliciesResponse (Maybe Text)

-- | Information about the scaling policies.
drsScalingPolicies :: Lens' DescribeScalingPoliciesResponse [ScalingPolicy]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DescribeScalingPoliciesResponse Int
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPoliciesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.DescribeScalingPolicies.DescribeScalingPolicies


-- | Provides descriptive information about the scaling activities in the
--   specified namespace from the previous six weeks.
--   
--   You can filter the results using the <tt>ResourceId</tt> and
--   <tt>ScalableDimension</tt> parameters.
--   
--   Scaling activities are triggered by CloudWatch alarms that are
--   associated with scaling policies. To view the scaling policies for a
--   service namespace, see <tt>DescribeScalingPolicies</tt> . To create a
--   scaling policy or update an existing one, see
--   <tt>PutScalingPolicy</tt> .
--   
--   This operation returns paginated results.
module Network.AWS.ApplicationAutoScaling.DescribeScalingActivities

-- | Creates a value of <a>DescribeScalingActivities</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>desScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. If you specify a scalable dimension, you must also specify a
--   resource ID. * <tt>ecs:service:DesiredCount</tt> - The desired task
--   count of an ECS service. *
--   <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target capacity
--   of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>desResourceId</a> - The identifier of the resource associated
--   with the scaling activity. This string consists of the resource type
--   and unique identifier. If you specify a scalable dimension, you must
--   also specify a resource ID. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>desNextToken</a> - The token for the next set of results.</li>
--   <li><a>desMaxResults</a> - The maximum number of scalable targets.
--   This value can be between 1 and 50. The default value is 50. If this
--   parameter is used, the operation returns up to <tt>MaxResults</tt>
--   results at a time, along with a <tt>NextToken</tt> value. To get the
--   next set of results, include the <tt>NextToken</tt> value in a
--   subsequent call. If this parameter is not used, the operation returns
--   up to 50 results and a <tt>NextToken</tt> value, if applicable.</li>
--   <li><a>desServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   </ul>
describeScalingActivities :: ServiceNamespace -> DescribeScalingActivities

-- | <i>See:</i> <a>describeScalingActivities</a> smart constructor.
data DescribeScalingActivities

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. If you specify a scalable
--   dimension, you must also specify a resource ID. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
desScalableDimension :: Lens' DescribeScalingActivities (Maybe ScalableDimension)

-- | The identifier of the resource associated with the scaling activity.
--   This string consists of the resource type and unique identifier. If
--   you specify a scalable dimension, you must also specify a resource ID.
--   * ECS service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
desResourceId :: Lens' DescribeScalingActivities (Maybe Text)

-- | The token for the next set of results.
desNextToken :: Lens' DescribeScalingActivities (Maybe Text)

-- | The maximum number of scalable targets. This value can be between 1
--   and 50. The default value is 50. If this parameter is used, the
--   operation returns up to <tt>MaxResults</tt> results at a time, along
--   with a <tt>NextToken</tt> value. To get the next set of results,
--   include the <tt>NextToken</tt> value in a subsequent call. If this
--   parameter is not used, the operation returns up to 50 results and a
--   <tt>NextToken</tt> value, if applicable.
desMaxResults :: Lens' DescribeScalingActivities (Maybe Int)

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
desServiceNamespace :: Lens' DescribeScalingActivities ServiceNamespace

-- | Creates a value of <a>DescribeScalingActivitiesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsasrsScalingActivities</a> - A list of scaling activity
--   objects.</li>
--   <li><a>dsasrsNextToken</a> - The token required to get the next set of
--   results. This value is <tt>null</tt> if there are no more results to
--   return.</li>
--   <li><a>dsasrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeScalingActivitiesResponse :: Int -> DescribeScalingActivitiesResponse

-- | <i>See:</i> <a>describeScalingActivitiesResponse</a> smart
--   constructor.
data DescribeScalingActivitiesResponse

-- | A list of scaling activity objects.
dsasrsScalingActivities :: Lens' DescribeScalingActivitiesResponse [ScalingActivity]

-- | The token required to get the next set of results. This value is
--   <tt>null</tt> if there are no more results to return.
dsasrsNextToken :: Lens' DescribeScalingActivitiesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsasrsResponseStatus :: Lens' DescribeScalingActivitiesResponse Int
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.DescribeScalingActivities.DescribeScalingActivities


-- | Gets information about the scalable targets in the specified
--   namespace.
--   
--   You can filter the results using the <tt>ResourceIds</tt> and
--   <tt>ScalableDimension</tt> parameters.
--   
--   To create a scalable target or update an existing one, see
--   <tt>RegisterScalableTarget</tt> . If you are no longer using a
--   scalable target, you can deregister it using
--   <tt>DeregisterScalableTarget</tt> .
--   
--   This operation returns paginated results.
module Network.AWS.ApplicationAutoScaling.DescribeScalableTargets

-- | Creates a value of <a>DescribeScalableTargets</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dstResourceIds</a> - The identifier of the resource associated
--   with the scalable target. This string consists of the resource type
--   and unique identifier. If you specify a scalable dimension, you must
--   also specify a resource ID. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>dstScalableDimension</a> - The scalable dimension associated
--   with the scalable target. This string consists of the service
--   namespace, resource type, and scaling property. If you specify a
--   scalable dimension, you must also specify a resource ID. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>dstNextToken</a> - The token for the next set of results.</li>
--   <li><a>dstMaxResults</a> - The maximum number of scalable targets.
--   This value can be between 1 and 50. The default value is 50. If this
--   parameter is used, the operation returns up to <tt>MaxResults</tt>
--   results at a time, along with a <tt>NextToken</tt> value. To get the
--   next set of results, include the <tt>NextToken</tt> value in a
--   subsequent call. If this parameter is not used, the operation returns
--   up to 50 results and a <tt>NextToken</tt> value, if applicable.</li>
--   <li><a>dstServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   </ul>
describeScalableTargets :: ServiceNamespace -> DescribeScalableTargets

-- | <i>See:</i> <a>describeScalableTargets</a> smart constructor.
data DescribeScalableTargets

-- | The identifier of the resource associated with the scalable target.
--   This string consists of the resource type and unique identifier. If
--   you specify a scalable dimension, you must also specify a resource ID.
--   * ECS service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
dstResourceIds :: Lens' DescribeScalableTargets [Text]

-- | The scalable dimension associated with the scalable target. This
--   string consists of the service namespace, resource type, and scaling
--   property. If you specify a scalable dimension, you must also specify a
--   resource ID. * <tt>ecs:service:DesiredCount</tt> - The desired task
--   count of an ECS service. *
--   <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target capacity
--   of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
dstScalableDimension :: Lens' DescribeScalableTargets (Maybe ScalableDimension)

-- | The token for the next set of results.
dstNextToken :: Lens' DescribeScalableTargets (Maybe Text)

-- | The maximum number of scalable targets. This value can be between 1
--   and 50. The default value is 50. If this parameter is used, the
--   operation returns up to <tt>MaxResults</tt> results at a time, along
--   with a <tt>NextToken</tt> value. To get the next set of results,
--   include the <tt>NextToken</tt> value in a subsequent call. If this
--   parameter is not used, the operation returns up to 50 results and a
--   <tt>NextToken</tt> value, if applicable.
dstMaxResults :: Lens' DescribeScalableTargets (Maybe Int)

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
dstServiceNamespace :: Lens' DescribeScalableTargets ServiceNamespace

-- | Creates a value of <a>DescribeScalableTargetsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dstsrsNextToken</a> - The token required to get the next set of
--   results. This value is <tt>null</tt> if there are no more results to
--   return.</li>
--   <li><a>dstsrsScalableTargets</a> - The scalable targets that match the
--   request parameters.</li>
--   <li><a>dstsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeScalableTargetsResponse :: Int -> DescribeScalableTargetsResponse

-- | <i>See:</i> <a>describeScalableTargetsResponse</a> smart constructor.
data DescribeScalableTargetsResponse

-- | The token required to get the next set of results. This value is
--   <tt>null</tt> if there are no more results to return.
dstsrsNextToken :: Lens' DescribeScalableTargetsResponse (Maybe Text)

-- | The scalable targets that match the request parameters.
dstsrsScalableTargets :: Lens' DescribeScalableTargetsResponse [ScalableTarget]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dstsrsResponseStatus :: Lens' DescribeScalableTargetsResponse Int
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargetsResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargetsResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargetsResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargetsResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargetsResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargetsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.DescribeScalableTargets.DescribeScalableTargets


-- | Deregisters a scalable target.
--   
--   Deregistering a scalable target deletes the scaling policies that are
--   associated with it.
--   
--   To create a scalable target or update an existing one, see
--   <tt>RegisterScalableTarget</tt> .
module Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget

-- | Creates a value of <a>DeregisterScalableTarget</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>derServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>derResourceId</a> - The identifier of the resource associated
--   with the scalable target. This string consists of the resource type
--   and unique identifier. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>derScalableDimension</a> - The scalable dimension associated
--   with the scalable target. This string consists of the service
--   namespace, resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   </ul>
deregisterScalableTarget :: ServiceNamespace -> Text -> ScalableDimension -> DeregisterScalableTarget

-- | <i>See:</i> <a>deregisterScalableTarget</a> smart constructor.
data DeregisterScalableTarget

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
derServiceNamespace :: Lens' DeregisterScalableTarget ServiceNamespace

-- | The identifier of the resource associated with the scalable target.
--   This string consists of the resource type and unique identifier. * ECS
--   service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
derResourceId :: Lens' DeregisterScalableTarget Text

-- | The scalable dimension associated with the scalable target. This
--   string consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
derScalableDimension :: Lens' DeregisterScalableTarget ScalableDimension

-- | Creates a value of <a>DeregisterScalableTargetResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dstrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deregisterScalableTargetResponse :: Int -> DeregisterScalableTargetResponse

-- | <i>See:</i> <a>deregisterScalableTargetResponse</a> smart constructor.
data DeregisterScalableTargetResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dstrsResponseStatus :: Lens' DeregisterScalableTargetResponse Int
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTargetResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTargetResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTargetResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTargetResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTargetResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTargetResponse
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.DeregisterScalableTarget.DeregisterScalableTarget


-- | Deletes the specified Application Auto Scaling scheduled action.
module Network.AWS.ApplicationAutoScaling.DeleteScheduledAction

-- | Creates a value of <a>DeleteScheduledAction</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsaScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>dsaServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>dsaScheduledActionName</a> - The name of the scheduled
--   action.</li>
--   <li><a>dsaResourceId</a> - 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
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   </ul>
deleteScheduledAction :: ServiceNamespace -> Text -> Text -> DeleteScheduledAction

-- | <i>See:</i> <a>deleteScheduledAction</a> smart constructor.
data DeleteScheduledAction

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
dsaScalableDimension :: Lens' DeleteScheduledAction (Maybe ScalableDimension)

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
dsaServiceNamespace :: Lens' DeleteScheduledAction ServiceNamespace

-- | The name of the scheduled action.
dsaScheduledActionName :: Lens' DeleteScheduledAction Text

-- | 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 <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
dsaResourceId :: Lens' DeleteScheduledAction Text

-- | Creates a value of <a>DeleteScheduledActionResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteScheduledActionResponse :: Int -> DeleteScheduledActionResponse

-- | <i>See:</i> <a>deleteScheduledActionResponse</a> smart constructor.
data DeleteScheduledActionResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
delrsResponseStatus :: Lens' DeleteScheduledActionResponse Int
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.DeleteScheduledAction.DeleteScheduledAction


-- | Deletes the specified Application Auto Scaling scaling policy.
--   
--   Deleting a policy deletes the underlying alarm action, but does not
--   delete the CloudWatch alarm associated with the scaling policy, even
--   if it no longer has an associated action.
--   
--   To create a scaling policy or update an existing one, see
--   <tt>PutScalingPolicy</tt> .
module Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy

-- | Creates a value of <a>DeleteScalingPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dspPolicyName</a> - The name of the scaling policy.</li>
--   <li><a>dspServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>dspResourceId</a> - The identifier of the resource associated
--   with the scalable target. This string consists of the resource type
--   and unique identifier. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>dspScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   </ul>
deleteScalingPolicy :: Text -> ServiceNamespace -> Text -> ScalableDimension -> DeleteScalingPolicy

-- | <i>See:</i> <a>deleteScalingPolicy</a> smart constructor.
data DeleteScalingPolicy

-- | The name of the scaling policy.
dspPolicyName :: Lens' DeleteScalingPolicy Text

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
dspServiceNamespace :: Lens' DeleteScalingPolicy ServiceNamespace

-- | The identifier of the resource associated with the scalable target.
--   This string consists of the resource type and unique identifier. * ECS
--   service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
dspResourceId :: Lens' DeleteScalingPolicy Text

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
dspScalableDimension :: Lens' DeleteScalingPolicy ScalableDimension

-- | Creates a value of <a>DeleteScalingPolicyResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteScalingPolicyResponse :: Int -> DeleteScalingPolicyResponse

-- | <i>See:</i> <a>deleteScalingPolicyResponse</a> smart constructor.
data DeleteScalingPolicyResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dsprsResponseStatus :: Lens' DeleteScalingPolicyResponse Int
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance GHC.Generics.Generic Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance Data.Data.Data Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance GHC.Show.Show Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance GHC.Read.Read Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance GHC.Classes.Eq Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicyResponse
instance Data.Hashable.Class.Hashable Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.ApplicationAutoScaling.DeleteScalingPolicy.DeleteScalingPolicy


module Network.AWS.ApplicationAutoScaling.Waiters


-- | With Application Auto Scaling, you can configure automatic scaling for
--   your scalable AWS resources. You can use Application Auto Scaling to
--   accomplish the following tasks:
--   
--   <ul>
--   <li>Define scaling policies to automatically scale your AWS
--   resources</li>
--   <li>Scale your resources in response to CloudWatch alarms</li>
--   <li>Schedule one-time or recurring scaling actions</li>
--   <li>View the history of your scaling events</li>
--   </ul>
--   
--   Application Auto Scaling can scale the following AWS resources:
--   
--   <ul>
--   <li>Amazon ECS services. For more information, see <a>Service Auto
--   Scaling</a> in the <i>Amazon Elastic Container Service Developer
--   Guide</i> .</li>
--   <li>Amazon EC2 Spot fleets. For more information, see <a>Automatic
--   Scaling for Spot Fleet</a> in the <i>Amazon EC2 User Guide</i> .</li>
--   <li>Amazon EMR clusters. For more information, see <a>Using Automatic
--   Scaling in Amazon EMR</a> in the <i>Amazon EMR Management Guide</i>
--   .</li>
--   <li>AppStream 2.0 fleets. For more information, see <a>Fleet Auto
--   Scaling for Amazon AppStream 2.0</a> in the <i>Amazon AppStream 2.0
--   Developer Guide</i> .</li>
--   <li>Provisioned read and write capacity for Amazon DynamoDB tables and
--   global secondary indexes. For more information, see <a>Managing
--   Throughput Capacity Automatically with DynamoDB Auto Scaling</a> in
--   the <i>Amazon DynamoDB Developer Guide</i> .</li>
--   <li>Amazon Aurora Replicas. For more information, see <a>Using Amazon
--   Aurora Auto Scaling with Aurora Replicas</a> .</li>
--   <li>Amazon SageMaker endpoints. For more information, see
--   <a>Automatically Scaling Amazon SageMaker Models</a> .</li>
--   </ul>
--   
--   To configure automatic scaling for multiple resources across multiple
--   services, use AWS Auto Scaling to create a scaling plan for your
--   application. For more information, see <a>AWS Auto Scaling</a> .
--   
--   For a list of supported regions, see <a>AWS Regions and Endpoints:
--   Application Auto Scaling</a> in the <i>AWS General Reference</i> .
module Network.AWS.ApplicationAutoScaling

-- | API version <tt>2016-02-06</tt> of the Amazon Application Auto Scaling
--   SDK configuration.
applicationAutoScaling :: Service

-- | An exception was thrown for a validation issue. Review the available
--   parameters for the API request.
_ValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Failed access to resources caused an exception. This exception is
--   thrown when Application Auto Scaling is unable to retrieve the alarms
--   associated with a scaling policy due to a client error, for example,
--   if the role ARN specified for a scalable target does not have
--   permission to call the CloudWatch <a>DescribeAlarms</a> on your
--   behalf.
_FailedResourceAccessException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The next token supplied was invalid.
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Concurrent updates caused an exception, for example, if you request an
--   update to an Application Auto Scaling resource that already has a
--   pending update.
_ConcurrentUpdateException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service encountered an internal error.
_InternalServiceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified object could not be found. For any operation that
--   depends on the existence of a scalable target, this exception is
--   thrown if the scalable target with the specified service namespace,
--   resource ID, and scalable dimension does not exist. For any operation
--   that deletes or deregisters a resource, this exception is thrown if
--   the resource cannot be found.
_ObjectNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A per-account resource limit is exceeded. For more information, see
--   <a>Application Auto Scaling Limits</a> .
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data AdjustmentType
ChangeInCapacity :: AdjustmentType
ExactCapacity :: AdjustmentType
PercentChangeInCapacity :: AdjustmentType
data MetricAggregationType
MATAverage :: MetricAggregationType
MATMaximum :: MetricAggregationType
MATMinimum :: MetricAggregationType
data MetricStatistic
Average :: MetricStatistic
Maximum :: MetricStatistic
Minimum :: MetricStatistic
SampleCount :: MetricStatistic
Sum :: MetricStatistic
data MetricType
ALBRequestCountPerTarget :: MetricType
DynamoDBReadCapacityUtilization :: MetricType
DynamoDBWriteCapacityUtilization :: MetricType
EC2SpotFleetRequestAverageCPUUtilization :: MetricType
EC2SpotFleetRequestAverageNetworkIn :: MetricType
EC2SpotFleetRequestAverageNetworkOut :: MetricType
ECSServiceAverageCPUUtilization :: MetricType
ECSServiceAverageMemoryUtilization :: MetricType
RDSReaderAverageCPUUtilization :: MetricType
RDSReaderAverageDatabaseConnections :: MetricType
SageMakerVariantInvocationsPerInstance :: MetricType
data PolicyType
StepScaling :: PolicyType
TargetTrackingScaling :: PolicyType
data ScalableDimension
AppstreamFleetDesiredCapacity :: ScalableDimension
DynamodbIndexReadCapacityUnits :: ScalableDimension
DynamodbIndexWriteCapacityUnits :: ScalableDimension
DynamodbTableReadCapacityUnits :: ScalableDimension
DynamodbTableWriteCapacityUnits :: ScalableDimension
EC2SpotFleetRequestTargetCapacity :: ScalableDimension
EcsServiceDesiredCount :: ScalableDimension
ElasticmapreduceInstancegroupInstanceCount :: ScalableDimension
RDSClusterReadReplicaCount :: ScalableDimension
SagemakerVariantDesiredInstanceCount :: ScalableDimension
data ScalingActivityStatusCode
Failed :: ScalingActivityStatusCode
InProgress :: ScalingActivityStatusCode
Overridden :: ScalingActivityStatusCode
Pending :: ScalingActivityStatusCode
Successful :: ScalingActivityStatusCode
Unfulfilled :: ScalingActivityStatusCode
data ServiceNamespace
Appstream :: ServiceNamespace
Dynamodb :: ServiceNamespace
EC2 :: ServiceNamespace
Ecs :: ServiceNamespace
Elasticmapreduce :: ServiceNamespace
RDS :: ServiceNamespace
Sagemaker :: ServiceNamespace

-- | Represents a CloudWatch alarm associated with a scaling policy.
--   
--   <i>See:</i> <a>alarm</a> smart constructor.
data Alarm

-- | Creates a value of <a>Alarm</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAlarmName</a> - The name of the alarm.</li>
--   <li><a>aAlarmARN</a> - The Amazon Resource Name (ARN) of the
--   alarm.</li>
--   </ul>
alarm :: Text -> Text -> Alarm

-- | The name of the alarm.
aAlarmName :: Lens' Alarm Text

-- | The Amazon Resource Name (ARN) of the alarm.
aAlarmARN :: Lens' Alarm Text

-- | Configures a customized metric for a target tracking policy.
--   
--   <i>See:</i> <a>customizedMetricSpecification</a> smart constructor.
data CustomizedMetricSpecification

-- | Creates a value of <a>CustomizedMetricSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmsDimensions</a> - The dimensions of the metric.</li>
--   <li><a>cmsUnit</a> - The unit of the metric.</li>
--   <li><a>cmsMetricName</a> - The name of the metric.</li>
--   <li><a>cmsNamespace</a> - The namespace of the metric.</li>
--   <li><a>cmsStatistic</a> - The statistic of the metric.</li>
--   </ul>
customizedMetricSpecification :: Text -> Text -> MetricStatistic -> CustomizedMetricSpecification

-- | The dimensions of the metric.
cmsDimensions :: Lens' CustomizedMetricSpecification [MetricDimension]

-- | The unit of the metric.
cmsUnit :: Lens' CustomizedMetricSpecification (Maybe Text)

-- | The name of the metric.
cmsMetricName :: Lens' CustomizedMetricSpecification Text

-- | The namespace of the metric.
cmsNamespace :: Lens' CustomizedMetricSpecification Text

-- | The statistic of the metric.
cmsStatistic :: Lens' CustomizedMetricSpecification MetricStatistic

-- | Describes the dimension of a metric.
--   
--   <i>See:</i> <a>metricDimension</a> smart constructor.
data MetricDimension

-- | Creates a value of <a>MetricDimension</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mdName</a> - The name of the dimension.</li>
--   <li><a>mdValue</a> - The value of the dimension.</li>
--   </ul>
metricDimension :: Text -> Text -> MetricDimension

-- | The name of the dimension.
mdName :: Lens' MetricDimension Text

-- | The value of the dimension.
mdValue :: Lens' MetricDimension Text

-- | Configures a predefined metric for a target tracking policy.
--   
--   <i>See:</i> <a>predefinedMetricSpecification</a> smart constructor.
data PredefinedMetricSpecification

-- | Creates a value of <a>PredefinedMetricSpecification</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pmsResourceLabel</a> - Identifies the resource associated with
--   the metric type. You can't specify a resource label unless the metric
--   type is <tt>ALBRequestCountPerTarget</tt> and there is a target group
--   attached to the Spot fleet request or ECS service. The format is
--   app<i><a>load-balancer-name</a></i><a>load-balancer-id</a><i>targetgroup</i><a>target-group-name</a><i><a>target-group-id</a>,
--   where: * app</i><a>load-balancer-name</a><i><a>load-balancer-id</a> is
--   the final portion of the load balancer ARN *
--   targetgroup</i><a>target-group-name</a>/<a>target-group-id</a> is the
--   final portion of the target group ARN.</li>
--   <li><a>pmsPredefinedMetricType</a> - The metric type. The
--   <tt>ALBRequestCountPerTarget</tt> metric type applies only to Spot
--   fleet requests and ECS services.</li>
--   </ul>
predefinedMetricSpecification :: MetricType -> PredefinedMetricSpecification

-- | Identifies the resource associated with the metric type. You can't
--   specify a resource label unless the metric type is
--   <tt>ALBRequestCountPerTarget</tt> and there is a target group attached
--   to the Spot fleet request or ECS service. The format is
--   app<i><a>load-balancer-name</a></i><a>load-balancer-id</a><i>targetgroup</i><a>target-group-name</a><i><a>target-group-id</a>,
--   where: * app</i><a>load-balancer-name</a><i><a>load-balancer-id</a> is
--   the final portion of the load balancer ARN *
--   targetgroup</i><a>target-group-name</a>/<a>target-group-id</a> is the
--   final portion of the target group ARN.
pmsResourceLabel :: Lens' PredefinedMetricSpecification (Maybe Text)

-- | The metric type. The <tt>ALBRequestCountPerTarget</tt> metric type
--   applies only to Spot fleet requests and ECS services.
pmsPredefinedMetricType :: Lens' PredefinedMetricSpecification MetricType

-- | Represents a scalable target.
--   
--   <i>See:</i> <a>scalableTarget</a> smart constructor.
data ScalableTarget

-- | Creates a value of <a>ScalableTarget</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>stServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>stResourceId</a> - The identifier of the resource associated
--   with the scalable target. This string consists of the resource type
--   and unique identifier. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>stScalableDimension</a> - The scalable dimension associated
--   with the scalable target. This string consists of the service
--   namespace, resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>stMinCapacity</a> - The minimum value to scale to in response
--   to a scale in event.</li>
--   <li><a>stMaxCapacity</a> - The maximum value to scale to in response
--   to a scale out event.</li>
--   <li><a>stRoleARN</a> - The ARN of an IAM role that allows Application
--   Auto Scaling to modify the scalable target on your behalf.</li>
--   <li><a>stCreationTime</a> - The Unix timestamp for when the scalable
--   target was created.</li>
--   </ul>
scalableTarget :: ServiceNamespace -> Text -> ScalableDimension -> Int -> Int -> Text -> UTCTime -> ScalableTarget

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
stServiceNamespace :: Lens' ScalableTarget ServiceNamespace

-- | The identifier of the resource associated with the scalable target.
--   This string consists of the resource type and unique identifier. * ECS
--   service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
stResourceId :: Lens' ScalableTarget Text

-- | The scalable dimension associated with the scalable target. This
--   string consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
stScalableDimension :: Lens' ScalableTarget ScalableDimension

-- | The minimum value to scale to in response to a scale in event.
stMinCapacity :: Lens' ScalableTarget Int

-- | The maximum value to scale to in response to a scale out event.
stMaxCapacity :: Lens' ScalableTarget Int

-- | The ARN of an IAM role that allows Application Auto Scaling to modify
--   the scalable target on your behalf.
stRoleARN :: Lens' ScalableTarget Text

-- | The Unix timestamp for when the scalable target was created.
stCreationTime :: Lens' ScalableTarget UTCTime

-- | Represents the minimum and maximum capacity for a scheduled action.
--   
--   <i>See:</i> <a>scalableTargetAction</a> smart constructor.
data ScalableTargetAction

-- | Creates a value of <a>ScalableTargetAction</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>staMaxCapacity</a> - The maximum capacity.</li>
--   <li><a>staMinCapacity</a> - The minimum capacity.</li>
--   </ul>
scalableTargetAction :: ScalableTargetAction

-- | The maximum capacity.
staMaxCapacity :: Lens' ScalableTargetAction (Maybe Int)

-- | The minimum capacity.
staMinCapacity :: Lens' ScalableTargetAction (Maybe Int)

-- | Represents a scaling activity.
--   
--   <i>See:</i> <a>scalingActivity</a> smart constructor.
data ScalingActivity

-- | Creates a value of <a>ScalingActivity</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStatusMessage</a> - A simple message about the current status
--   of the scaling activity.</li>
--   <li><a>sEndTime</a> - The Unix timestamp for when the scaling activity
--   ended.</li>
--   <li><a>sDetails</a> - The details about the scaling activity.</li>
--   <li><a>sActivityId</a> - The unique identifier of the scaling
--   activity.</li>
--   <li><a>sServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>sResourceId</a> - The identifier of the resource associated
--   with the scaling activity. This string consists of the resource type
--   and unique identifier. * ECS service - The resource type is
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>sScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>sDescription</a> - A simple description of what action the
--   scaling activity intends to accomplish.</li>
--   <li><a>sCause</a> - A simple description of what caused the scaling
--   activity to happen.</li>
--   <li><a>sStartTime</a> - The Unix timestamp for when the scaling
--   activity began.</li>
--   <li><a>sStatusCode</a> - Indicates the status of the scaling
--   activity.</li>
--   </ul>
scalingActivity :: Text -> ServiceNamespace -> Text -> ScalableDimension -> Text -> Text -> UTCTime -> ScalingActivityStatusCode -> ScalingActivity

-- | A simple message about the current status of the scaling activity.
sStatusMessage :: Lens' ScalingActivity (Maybe Text)

-- | The Unix timestamp for when the scaling activity ended.
sEndTime :: Lens' ScalingActivity (Maybe UTCTime)

-- | The details about the scaling activity.
sDetails :: Lens' ScalingActivity (Maybe Text)

-- | The unique identifier of the scaling activity.
sActivityId :: Lens' ScalingActivity Text

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
sServiceNamespace :: Lens' ScalingActivity ServiceNamespace

-- | The identifier of the resource associated with the scaling activity.
--   This string consists of the resource type and unique identifier. * ECS
--   service - The resource type is <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
sResourceId :: Lens' ScalingActivity Text

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
sScalableDimension :: Lens' ScalingActivity ScalableDimension

-- | A simple description of what action the scaling activity intends to
--   accomplish.
sDescription :: Lens' ScalingActivity Text

-- | A simple description of what caused the scaling activity to happen.
sCause :: Lens' ScalingActivity Text

-- | The Unix timestamp for when the scaling activity began.
sStartTime :: Lens' ScalingActivity UTCTime

-- | Indicates the status of the scaling activity.
sStatusCode :: Lens' ScalingActivity ScalingActivityStatusCode

-- | Represents a scaling policy.
--   
--   <i>See:</i> <a>scalingPolicy</a> smart constructor.
data ScalingPolicy

-- | Creates a value of <a>ScalingPolicy</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spTargetTrackingScalingPolicyConfiguration</a> - A target
--   tracking policy.</li>
--   <li><a>spStepScalingPolicyConfiguration</a> - A step scaling
--   policy.</li>
--   <li><a>spAlarms</a> - The CloudWatch alarms associated with the
--   scaling policy.</li>
--   <li><a>spPolicyARN</a> - The Amazon Resource Name (ARN) of the scaling
--   policy.</li>
--   <li><a>spPolicyName</a> - The name of the scaling policy.</li>
--   <li><a>spServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>spResourceId</a> - 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
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>spScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>spPolicyType</a> - The scaling policy type.</li>
--   <li><a>spCreationTime</a> - The Unix timestamp for when the scaling
--   policy was created.</li>
--   </ul>
scalingPolicy :: Text -> Text -> ServiceNamespace -> Text -> ScalableDimension -> PolicyType -> UTCTime -> ScalingPolicy

-- | A target tracking policy.
spTargetTrackingScalingPolicyConfiguration :: Lens' ScalingPolicy (Maybe TargetTrackingScalingPolicyConfiguration)

-- | A step scaling policy.
spStepScalingPolicyConfiguration :: Lens' ScalingPolicy (Maybe StepScalingPolicyConfiguration)

-- | The CloudWatch alarms associated with the scaling policy.
spAlarms :: Lens' ScalingPolicy [Alarm]

-- | The Amazon Resource Name (ARN) of the scaling policy.
spPolicyARN :: Lens' ScalingPolicy Text

-- | The name of the scaling policy.
spPolicyName :: Lens' ScalingPolicy Text

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
spServiceNamespace :: Lens' ScalingPolicy 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 <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
spResourceId :: Lens' ScalingPolicy Text

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
spScalableDimension :: Lens' ScalingPolicy ScalableDimension

-- | The scaling policy type.
spPolicyType :: Lens' ScalingPolicy PolicyType

-- | The Unix timestamp for when the scaling policy was created.
spCreationTime :: Lens' ScalingPolicy UTCTime

-- | Represents a scheduled action.
--   
--   <i>See:</i> <a>scheduledAction</a> smart constructor.
data ScheduledAction

-- | Creates a value of <a>ScheduledAction</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>saScalableDimension</a> - The scalable dimension. This string
--   consists of the service namespace, resource type, and scaling
--   property. * <tt>ecs:service:DesiredCount</tt> - The desired task count
--   of an ECS service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> -
--   The target capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.</li>
--   <li><a>saStartTime</a> - The date and time that the action is
--   scheduled to begin.</li>
--   <li><a>saEndTime</a> - The date and time that the action is scheduled
--   to end.</li>
--   <li><a>saScalableTargetAction</a> - The new minimum and maximum
--   capacity. You can set both values or just one. During 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.</li>
--   <li><a>saScheduledActionName</a> - The name of the scheduled
--   action.</li>
--   <li><a>saScheduledActionARN</a> - The Amazon Resource Name (ARN) of
--   the scheduled action.</li>
--   <li><a>saServiceNamespace</a> - The namespace of the AWS service. For
--   more information, see <a>AWS Service Namespaces</a> in the <i>Amazon
--   Web Services General Reference</i> .</li>
--   <li><a>saSchedule</a> - The schedule for this action. The following
--   formats are supported: * At expressions - <tt>at(<i>yyyy</i>
--   -<i>mm</i> -<i>dd</i> T<i>hh</i> :<i>mm</i> :<i>ss</i> )</tt> * Rate
--   expressions - <tt>rate(<i>value</i> <i>unit</i> )</tt> * Cron
--   expressions - <tt>cron(<i>fields</i> )</tt> At expressions are useful
--   for one-time schedules. Specify the time, in UTC. For rate
--   expressions, <i>value</i> is a positive integer and <i>unit</i> is
--   <tt>minute</tt> | <tt>minutes</tt> | <tt>hour</tt> | <tt>hours</tt> |
--   <tt>day</tt> | <tt>days</tt> . For more information about cron
--   expressions, see <a>Cron</a> .</li>
--   <li><a>saResourceId</a> - 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
--   <tt>service</tt> and the unique identifier is the cluster name and
--   service name. Example: <tt>service<i>default</i>sample-webapp</tt> . *
--   Spot fleet request - The resource type is <tt>spot-fleet-request</tt>
--   and the unique identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .</li>
--   <li><a>saCreationTime</a> - The date and time that the scheduled
--   action was created.</li>
--   </ul>
scheduledAction :: Text -> Text -> ServiceNamespace -> Text -> Text -> UTCTime -> ScheduledAction

-- | The scalable dimension. This string consists of the service namespace,
--   resource type, and scaling property. *
--   <tt>ecs:service:DesiredCount</tt> - The desired task count of an ECS
--   service. * <tt>ec2:spot-fleet-request:TargetCapacity</tt> - The target
--   capacity of a Spot fleet request. *
--   <tt>elasticmapreduce:instancegroup:InstanceCount</tt> - The instance
--   count of an EMR Instance Group. *
--   <tt>appstream:fleet:DesiredCapacity</tt> - The desired capacity of an
--   AppStream 2.0 fleet. * <tt>dynamodb:table:ReadCapacityUnits</tt> - The
--   provisioned read capacity for a DynamoDB table. *
--   <tt>dynamodb:table:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB table. *
--   <tt>dynamodb:index:ReadCapacityUnits</tt> - The provisioned read
--   capacity for a DynamoDB global secondary index. *
--   <tt>dynamodb:index:WriteCapacityUnits</tt> - The provisioned write
--   capacity for a DynamoDB global secondary index. *
--   <tt>rds:cluster:ReadReplicaCount</tt> - The count of Aurora Replicas
--   in an Aurora DB cluster. Available for Aurora MySQL-compatible
--   edition. * <tt>sagemaker:variant:DesiredInstanceCount</tt> - The
--   number of EC2 instances for an Amazon SageMaker model endpoint
--   variant.
saScalableDimension :: Lens' ScheduledAction (Maybe ScalableDimension)

-- | The date and time that the action is scheduled to begin.
saStartTime :: Lens' ScheduledAction (Maybe UTCTime)

-- | The date and time that the action is scheduled to end.
saEndTime :: Lens' ScheduledAction (Maybe UTCTime)

-- | The new minimum and maximum capacity. You can set both values or just
--   one. During 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.
saScalableTargetAction :: Lens' ScheduledAction (Maybe ScalableTargetAction)

-- | The name of the scheduled action.
saScheduledActionName :: Lens' ScheduledAction Text

-- | The Amazon Resource Name (ARN) of the scheduled action.
saScheduledActionARN :: Lens' ScheduledAction Text

-- | The namespace of the AWS service. For more information, see <a>AWS
--   Service Namespaces</a> in the <i>Amazon Web Services General
--   Reference</i> .
saServiceNamespace :: Lens' ScheduledAction ServiceNamespace

-- | The schedule for this action. The following formats are supported: *
--   At expressions - <tt>at(<i>yyyy</i> -<i>mm</i> -<i>dd</i> T<i>hh</i>
--   :<i>mm</i> :<i>ss</i> )</tt> * Rate expressions -
--   <tt>rate(<i>value</i> <i>unit</i> )</tt> * Cron expressions -
--   <tt>cron(<i>fields</i> )</tt> At expressions are useful for one-time
--   schedules. Specify the time, in UTC. For rate expressions,
--   <i>value</i> is a positive integer and <i>unit</i> is <tt>minute</tt>
--   | <tt>minutes</tt> | <tt>hour</tt> | <tt>hours</tt> | <tt>day</tt> |
--   <tt>days</tt> . For more information about cron expressions, see
--   <a>Cron</a> .
saSchedule :: Lens' ScheduledAction Text

-- | 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 <tt>service</tt> and the unique
--   identifier is the cluster name and service name. Example:
--   <tt>service<i>default</i>sample-webapp</tt> . * Spot fleet request -
--   The resource type is <tt>spot-fleet-request</tt> and the unique
--   identifier is the Spot fleet request ID. Example:
--   <tt>spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE</tt> .
--   * EMR cluster - The resource type is <tt>instancegroup</tt> and the
--   unique identifier is the cluster ID and instance group ID. Example:
--   <tt>instancegroup<i>j-2EEZNYKUA1NTV</i>ig-1791Y4E1L8YI0</tt> . *
--   AppStream 2.0 fleet - The resource type is <tt>fleet</tt> and the
--   unique identifier is the fleet name. Example:
--   <tt>fleet/sample-fleet</tt> . * DynamoDB table - The resource type is
--   <tt>table</tt> and the unique identifier is the resource ID. Example:
--   <tt>table/my-table</tt> . * DynamoDB global secondary index - The
--   resource type is <tt>index</tt> and the unique identifier is the
--   resource ID. Example:
--   <tt>table<i>my-table</i>index/my-table-index</tt> . * Aurora DB
--   cluster - The resource type is <tt>cluster</tt> and the unique
--   identifier is the cluster name. Example:
--   <tt>cluster:my-db-cluster</tt> . * Amazon SageMaker endpoint variants
--   - The resource type is <tt>variant</tt> and the unique identifier is
--   the resource ID. Example:
--   <tt>endpoint<i>my-end-point</i>variant/KMeansClustering</tt> .
saResourceId :: Lens' ScheduledAction Text

-- | The date and time that the scheduled action was created.
saCreationTime :: Lens' ScheduledAction UTCTime

-- | Represents a step adjustment for a
--   <a>StepScalingPolicyConfiguration</a> . Describes an adjustment based
--   on the difference between the value of the aggregated CloudWatch
--   metric and the breach threshold that you've defined for the alarm.
--   
--   For the following examples, suppose that you have an alarm with a
--   breach threshold of 50:
--   
--   <ul>
--   <li>To trigger the adjustment when the metric is greater than or equal
--   to 50 and less than 60, specify a lower bound of 0 and an upper bound
--   of 10.</li>
--   <li>To trigger the adjustment when the metric is greater than 40 and
--   less than or equal to 50, specify a lower bound of -10 and an upper
--   bound of 0.</li>
--   </ul>
--   
--   There are a few rules for the step adjustments for your step policy:
--   
--   <ul>
--   <li>The ranges of your step adjustments can't overlap or have a
--   gap.</li>
--   <li>At most one step adjustment can have a null lower bound. If one
--   step adjustment has a negative lower bound, then there must be a step
--   adjustment with a null lower bound.</li>
--   <li>At most one step adjustment can have a null upper bound. If one
--   step adjustment has a positive upper bound, then there must be a step
--   adjustment with a null upper bound.</li>
--   <li>The upper and lower bound can't be null in the same step
--   adjustment.</li>
--   </ul>
--   
--   <i>See:</i> <a>stepAdjustment</a> smart constructor.
data StepAdjustment

-- | Creates a value of <a>StepAdjustment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>saMetricIntervalLowerBound</a> - The lower bound for the
--   difference between the alarm threshold and the CloudWatch metric. If
--   the metric value is above the breach threshold, the lower bound is
--   inclusive (the metric must be greater than or equal to the threshold
--   plus the lower bound). Otherwise, it is exclusive (the metric must be
--   greater than the threshold plus the lower bound). A null value
--   indicates negative infinity.</li>
--   <li><a>saMetricIntervalUpperBound</a> - The upper bound for the
--   difference between the alarm threshold and the CloudWatch metric. If
--   the metric value is above the breach threshold, the upper bound is
--   exclusive (the metric must be less than the threshold plus the upper
--   bound). Otherwise, it is inclusive (the metric must be less than or
--   equal to the threshold plus the upper bound). A null value indicates
--   positive infinity. The upper bound must be greater than the lower
--   bound.</li>
--   <li><a>saScalingAdjustment</a> - The amount by which to scale, based
--   on the specified adjustment type. A positive value adds to the current
--   scalable dimension while a negative number removes from the current
--   scalable dimension.</li>
--   </ul>
stepAdjustment :: Int -> StepAdjustment

-- | The lower bound for the difference between the alarm threshold and the
--   CloudWatch metric. If the metric value is above the breach threshold,
--   the lower bound is inclusive (the metric must be greater than or equal
--   to the threshold plus the lower bound). Otherwise, it is exclusive
--   (the metric must be greater than the threshold plus the lower bound).
--   A null value indicates negative infinity.
saMetricIntervalLowerBound :: Lens' StepAdjustment (Maybe Double)

-- | The upper bound for the difference between the alarm threshold and the
--   CloudWatch metric. If the metric value is above the breach threshold,
--   the upper bound is exclusive (the metric must be less than the
--   threshold plus the upper bound). Otherwise, it is inclusive (the
--   metric must be less than or equal to the threshold plus the upper
--   bound). A null value indicates positive infinity. The upper bound must
--   be greater than the lower bound.
saMetricIntervalUpperBound :: Lens' StepAdjustment (Maybe Double)

-- | The amount by which to scale, based on the specified adjustment type.
--   A positive value adds to the current scalable dimension while a
--   negative number removes from the current scalable dimension.
saScalingAdjustment :: Lens' StepAdjustment Int

-- | Represents a step scaling policy configuration.
--   
--   <i>See:</i> <a>stepScalingPolicyConfiguration</a> smart constructor.
data StepScalingPolicyConfiguration

-- | Creates a value of <a>StepScalingPolicyConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sspcStepAdjustments</a> - A set of adjustments that enable you
--   to scale based on the size of the alarm breach.</li>
--   <li><a>sspcAdjustmentType</a> - The adjustment type, which specifies
--   how the <tt>ScalingAdjustment</tt> parameter in a
--   <a>StepAdjustment</a> is interpreted.</li>
--   <li><a>sspcCooldown</a> - The amount of time, in seconds, after a
--   scaling activity completes where previous trigger-related scaling
--   activities can influence future scaling events. For scale out
--   policies, while the cooldown period is in effect, the capacity that
--   has been added by the previous scale out event that initiated the
--   cooldown is calculated as part of the desired capacity for the next
--   scale out. The intention is to continuously (but not excessively)
--   scale out. For example, an alarm triggers a step scaling policy to
--   scale out an Amazon ECS service by 2 tasks, the scaling activity
--   completes successfully, and a cooldown period of 5 minutes starts.
--   During the Cooldown period, if the alarm triggers the same policy
--   again but at a more aggressive step adjustment to scale out the
--   service by 3 tasks, the 2 tasks that were added in the previous scale
--   out event are considered part of that capacity and only 1 additional
--   task is added to the desired count. For scale in policies, the
--   cooldown period is used to block subsequent scale in requests until it
--   has expired. The intention is to scale in conservatively to protect
--   your application's availability. However, if another alarm triggers a
--   scale out policy during the cooldown period after a scale-in,
--   Application Auto Scaling scales out your scalable target
--   immediately.</li>
--   <li><a>sspcMetricAggregationType</a> - The aggregation type for the
--   CloudWatch metrics. Valid values are <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> .</li>
--   <li><a>sspcMinAdjustmentMagnitude</a> - The minimum number to adjust
--   your scalable dimension as a result of a scaling activity. If the
--   adjustment type is <tt>PercentChangeInCapacity</tt> , the scaling
--   policy changes the scalable dimension of the scalable target by this
--   amount.</li>
--   </ul>
stepScalingPolicyConfiguration :: StepScalingPolicyConfiguration

-- | A set of adjustments that enable you to scale based on the size of the
--   alarm breach.
sspcStepAdjustments :: Lens' StepScalingPolicyConfiguration [StepAdjustment]

-- | The adjustment type, which specifies how the
--   <tt>ScalingAdjustment</tt> parameter in a <a>StepAdjustment</a> is
--   interpreted.
sspcAdjustmentType :: Lens' StepScalingPolicyConfiguration (Maybe AdjustmentType)

-- | The amount of time, in seconds, after a scaling activity completes
--   where previous trigger-related scaling activities can influence future
--   scaling events. For scale out policies, while the cooldown period is
--   in effect, the capacity that has been added by the previous scale out
--   event that initiated the cooldown is calculated as part of the desired
--   capacity for the next scale out. The intention is to continuously (but
--   not excessively) scale out. For example, an alarm triggers a step
--   scaling policy to scale out an Amazon ECS service by 2 tasks, the
--   scaling activity completes successfully, and a cooldown period of 5
--   minutes starts. During the Cooldown period, if the alarm triggers the
--   same policy again but at a more aggressive step adjustment to scale
--   out the service by 3 tasks, the 2 tasks that were added in the
--   previous scale out event are considered part of that capacity and only
--   1 additional task is added to the desired count. For scale in
--   policies, the cooldown period is used to block subsequent scale in
--   requests until it has expired. The intention is to scale in
--   conservatively to protect your application's availability. However, if
--   another alarm triggers a scale out policy during the cooldown period
--   after a scale-in, Application Auto Scaling scales out your scalable
--   target immediately.
sspcCooldown :: Lens' StepScalingPolicyConfiguration (Maybe Int)

-- | The aggregation type for the CloudWatch metrics. Valid values are
--   <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> .
sspcMetricAggregationType :: Lens' StepScalingPolicyConfiguration (Maybe MetricAggregationType)

-- | The minimum number to adjust your scalable dimension as a result of a
--   scaling activity. If the adjustment type is
--   <tt>PercentChangeInCapacity</tt> , the scaling policy changes the
--   scalable dimension of the scalable target by this amount.
sspcMinAdjustmentMagnitude :: Lens' StepScalingPolicyConfiguration (Maybe Int)

-- | Represents a target tracking scaling policy configuration.
--   
--   <i>See:</i> <a>targetTrackingScalingPolicyConfiguration</a> smart
--   constructor.
data TargetTrackingScalingPolicyConfiguration

-- | Creates a value of <a>TargetTrackingScalingPolicyConfiguration</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ttspcPredefinedMetricSpecification</a> - A predefined
--   metric.</li>
--   <li><a>ttspcScaleInCooldown</a> - The amount of time, in seconds,
--   after a scale in activity completes before another scale in activity
--   can start. The cooldown period is used to block subsequent scale in
--   requests until it has expired. The intention is to scale in
--   conservatively to protect your application's availability. However, if
--   another alarm triggers a scale out policy during the cooldown period
--   after a scale-in, Application Auto Scaling scales out your scalable
--   target immediately.</li>
--   <li><a>ttspcCustomizedMetricSpecification</a> - A customized
--   metric.</li>
--   <li><a>ttspcDisableScaleIn</a> - Indicates whether scale in by the
--   target tracking policy is disabled. If the value is <tt>true</tt> ,
--   scale in is disabled and the target tracking policy won't remove
--   capacity from the scalable resource. Otherwise, scale in is enabled
--   and the target tracking policy can remove capacity from the scalable
--   resource. The default value is <tt>false</tt> .</li>
--   <li><a>ttspcScaleOutCooldown</a> - The amount of time, in seconds,
--   after a scale out activity completes before another scale out activity
--   can start. While the cooldown period is in effect, the capacity that
--   has been added by the previous scale out event that initiated the
--   cooldown is calculated as part of the desired capacity for the next
--   scale out. The intention is to continuously (but not excessively)
--   scale out.</li>
--   <li><a>ttspcTargetValue</a> - The target value for the metric. The
--   range is 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360
--   (Base 2).</li>
--   </ul>
targetTrackingScalingPolicyConfiguration :: Double -> TargetTrackingScalingPolicyConfiguration

-- | A predefined metric.
ttspcPredefinedMetricSpecification :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe PredefinedMetricSpecification)

-- | The amount of time, in seconds, after a scale in activity completes
--   before another scale in activity can start. The cooldown period is
--   used to block subsequent scale in requests until it has expired. The
--   intention is to scale in conservatively to protect your application's
--   availability. However, if another alarm triggers a scale out policy
--   during the cooldown period after a scale-in, Application Auto Scaling
--   scales out your scalable target immediately.
ttspcScaleInCooldown :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe Int)

-- | A customized metric.
ttspcCustomizedMetricSpecification :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe CustomizedMetricSpecification)

-- | Indicates whether scale in by the target tracking policy is disabled.
--   If the value is <tt>true</tt> , scale in is disabled and the target
--   tracking policy won't remove capacity from the scalable resource.
--   Otherwise, scale in is enabled and the target tracking policy can
--   remove capacity from the scalable resource. The default value is
--   <tt>false</tt> .
ttspcDisableScaleIn :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe Bool)

-- | The amount of time, in seconds, after a scale out activity completes
--   before another scale out activity can start. While the cooldown period
--   is in effect, the capacity that has been added by the previous scale
--   out event that initiated the cooldown is calculated as part of the
--   desired capacity for the next scale out. The intention is to
--   continuously (but not excessively) scale out.
ttspcScaleOutCooldown :: Lens' TargetTrackingScalingPolicyConfiguration (Maybe Int)

-- | The target value for the metric. The range is 8.515920e-109 to
--   1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2).
ttspcTargetValue :: Lens' TargetTrackingScalingPolicyConfiguration Double
