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


-- | Amazon 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.AutoScaling</a> or <a>the AWS documentation</a> to
--   get started.
@package amazonka-autoscaling
@version 1.6.0


module Network.AWS.AutoScaling.Types

-- | API version <tt>2011-01-01</tt> of the Amazon Auto Scaling SDK
--   configuration.
autoScaling :: Service

-- | You already have an Auto Scaling group or launch configuration with
--   this name.
_AlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | You have already reached a limit for your Auto Scaling resources (for
--   example, groups, launch configurations, or lifecycle hooks). For more
--   information, see <tt>DescribeAccountLimits</tt> .
_LimitExceededFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | The operation can't be performed because the resource is in use.
_ResourceInUseFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | The <tt>NextToken</tt> value is not valid.
_InvalidNextToken :: AsError a => Getting (First ServiceError) a ServiceError

-- | The operation can't be performed because there are scaling activities
--   in progress.
_ScalingActivityInProgressFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | You already have a pending update to an Auto Scaling resource (for
--   example, a group, instance, or load balancer).
_ResourceContentionFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service-linked role is not yet ready for use.
_ServiceLinkedRoleFailure :: AsError a => Getting (First ServiceError) a ServiceError
data LifecycleState
Detached :: LifecycleState
Detaching :: LifecycleState
EnteringStandby :: LifecycleState
InService :: LifecycleState
Pending :: LifecycleState
PendingProceed :: LifecycleState
PendingWait :: LifecycleState
Quarantined :: LifecycleState
Standby :: LifecycleState
Terminated :: LifecycleState
Terminating :: LifecycleState
TerminatingProceed :: LifecycleState
TerminatingWait :: LifecycleState
data MetricStatistic
Average :: MetricStatistic
Maximum :: MetricStatistic
Minimum :: MetricStatistic
SampleCount :: MetricStatistic
Sum :: MetricStatistic
data MetricType
ALBRequestCountPerTarget :: MetricType
ASGAverageCPUUtilization :: MetricType
ASGAverageNetworkIn :: MetricType
ASGAverageNetworkOut :: MetricType
data ScalingActivityStatusCode
Cancelled :: ScalingActivityStatusCode
Failed :: ScalingActivityStatusCode
InProgress :: ScalingActivityStatusCode
MidLifecycleAction :: ScalingActivityStatusCode
PendingSpotBidPlacement :: ScalingActivityStatusCode
PreInService :: ScalingActivityStatusCode
Successful :: ScalingActivityStatusCode
WaitingForELBConnectionDraining :: ScalingActivityStatusCode
WaitingForInstanceId :: ScalingActivityStatusCode
WaitingForInstanceWarmup :: ScalingActivityStatusCode
WaitingForSpotInstanceId :: ScalingActivityStatusCode
WaitingForSpotInstanceRequestId :: ScalingActivityStatusCode

-- | Describes scaling activity, which is a long-running process that
--   represents a change to your Auto Scaling group, such as changing its
--   size or replacing an instance.
--   
--   <i>See:</i> <a>activity</a> smart constructor.
data Activity

-- | Creates a value of <a>Activity</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>aProgress</a> - A value between 0 and 100 that indicates the
--   progress of the activity.</li>
--   <li><a>aStatusMessage</a> - A friendly, more verbose description of
--   the activity status.</li>
--   <li><a>aEndTime</a> - The end time of the activity.</li>
--   <li><a>aDetails</a> - The details about the activity.</li>
--   <li><a>aDescription</a> - A friendly, more verbose description of the
--   activity.</li>
--   <li><a>aActivityId</a> - The ID of the activity.</li>
--   <li><a>aAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>aCause</a> - The reason the activity began.</li>
--   <li><a>aStartTime</a> - The start time of the activity.</li>
--   <li><a>aStatusCode</a> - The current status of the activity.</li>
--   </ul>
activity :: Text -> Text -> Text -> UTCTime -> ScalingActivityStatusCode -> Activity

-- | A value between 0 and 100 that indicates the progress of the activity.
aProgress :: Lens' Activity (Maybe Int)

-- | A friendly, more verbose description of the activity status.
aStatusMessage :: Lens' Activity (Maybe Text)

-- | The end time of the activity.
aEndTime :: Lens' Activity (Maybe UTCTime)

-- | The details about the activity.
aDetails :: Lens' Activity (Maybe Text)

-- | A friendly, more verbose description of the activity.
aDescription :: Lens' Activity (Maybe Text)

-- | The ID of the activity.
aActivityId :: Lens' Activity Text

-- | The name of the Auto Scaling group.
aAutoScalingGroupName :: Lens' Activity Text

-- | The reason the activity began.
aCause :: Lens' Activity Text

-- | The start time of the activity.
aStartTime :: Lens' Activity UTCTime

-- | The current status of the activity.
aStatusCode :: Lens' Activity ScalingActivityStatusCode

-- | Describes a policy adjustment type.
--   
--   For more information, see <a>Dynamic Scaling</a> in the <i>Auto
--   Scaling User Guide</i> .
--   
--   <i>See:</i> <a>adjustmentType</a> smart constructor.
data AdjustmentType

-- | Creates a value of <a>AdjustmentType</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>atAdjustmentType</a> - The policy adjustment type. The valid
--   values are <tt>ChangeInCapacity</tt> , <tt>ExactCapacity</tt> , and
--   <tt>PercentChangeInCapacity</tt> .</li>
--   </ul>
adjustmentType :: AdjustmentType

-- | The policy adjustment type. The valid values are
--   <tt>ChangeInCapacity</tt> , <tt>ExactCapacity</tt> , and
--   <tt>PercentChangeInCapacity</tt> .
atAdjustmentType :: Lens' AdjustmentType (Maybe Text)

-- | Describes an alarm.
--   
--   <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 :: Alarm

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

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

-- | Describes an Auto Scaling group.
--   
--   <i>See:</i> <a>autoScalingGroup</a> smart constructor.
data AutoScalingGroup

-- | Creates a value of <a>AutoScalingGroup</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>asgStatus</a> - The current state of the group when
--   <tt>DeleteAutoScalingGroup</tt> is in progress.</li>
--   <li><a>asgTerminationPolicies</a> - The termination policies for the
--   group.</li>
--   <li><a>asgHealthCheckGracePeriod</a> - The amount of time, in seconds,
--   that Auto Scaling waits before checking the health status of an EC2
--   instance that has come into service.</li>
--   <li><a>asgServiceLinkedRoleARN</a> - The Amazon Resource Name (ARN) of
--   the service-linked role that the Auto Scaling group uses to call other
--   AWS services on your behalf.</li>
--   <li><a>asgNewInstancesProtectedFromScaleIn</a> - Indicates whether
--   newly launched instances are protected from termination by Auto
--   Scaling when scaling in.</li>
--   <li><a>asgVPCZoneIdentifier</a> - One or more subnet IDs, if
--   applicable, separated by commas. If you specify
--   <tt>VPCZoneIdentifier</tt> and <tt>AvailabilityZones</tt> , ensure
--   that the Availability Zones of the subnets match the values for
--   <tt>AvailabilityZones</tt> .</li>
--   <li><a>asgTargetGroupARNs</a> - The Amazon Resource Names (ARN) of the
--   target groups for your load balancer.</li>
--   <li><a>asgEnabledMetrics</a> - The metrics enabled for the group.</li>
--   <li><a>asgLaunchConfigurationName</a> - The name of the associated
--   launch configuration.</li>
--   <li><a>asgInstances</a> - The EC2 instances associated with the
--   group.</li>
--   <li><a>asgLaunchTemplate</a> - The launch template for the group.</li>
--   <li><a>asgAutoScalingGroupARN</a> - The Amazon Resource Name (ARN) of
--   the Auto Scaling group.</li>
--   <li><a>asgPlacementGroup</a> - The name of the placement group into
--   which you'll launch your instances, if any. For more information, see
--   <a>Placement Groups</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>asgSuspendedProcesses</a> - The suspended processes associated
--   with the group.</li>
--   <li><a>asgLoadBalancerNames</a> - One or more load balancers
--   associated with the group.</li>
--   <li><a>asgTags</a> - The tags for the group.</li>
--   <li><a>asgAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>asgMinSize</a> - The minimum size of the group.</li>
--   <li><a>asgMaxSize</a> - The maximum size of the group.</li>
--   <li><a>asgDesiredCapacity</a> - The desired size of the group.</li>
--   <li><a>asgDefaultCooldown</a> - The amount of time, in seconds, after
--   a scaling activity completes before another scaling activity can
--   start.</li>
--   <li><a>asgAvailabilityZones</a> - One or more Availability Zones for
--   the group.</li>
--   <li><a>asgHealthCheckType</a> - The service to use for the health
--   checks. The valid values are <tt>EC2</tt> and <tt>ELB</tt> .</li>
--   <li><a>asgCreatedTime</a> - The date and time the group was
--   created.</li>
--   </ul>
autoScalingGroup :: Text -> Int -> Int -> Int -> Int -> NonEmpty Text -> Text -> UTCTime -> AutoScalingGroup

-- | The current state of the group when <tt>DeleteAutoScalingGroup</tt> is
--   in progress.
asgStatus :: Lens' AutoScalingGroup (Maybe Text)

-- | The termination policies for the group.
asgTerminationPolicies :: Lens' AutoScalingGroup [Text]

-- | The amount of time, in seconds, that Auto Scaling waits before
--   checking the health status of an EC2 instance that has come into
--   service.
asgHealthCheckGracePeriod :: Lens' AutoScalingGroup (Maybe Int)

-- | The Amazon Resource Name (ARN) of the service-linked role that the
--   Auto Scaling group uses to call other AWS services on your behalf.
asgServiceLinkedRoleARN :: Lens' AutoScalingGroup (Maybe Text)

-- | Indicates whether newly launched instances are protected from
--   termination by Auto Scaling when scaling in.
asgNewInstancesProtectedFromScaleIn :: Lens' AutoScalingGroup (Maybe Bool)

-- | One or more subnet IDs, if applicable, separated by commas. If you
--   specify <tt>VPCZoneIdentifier</tt> and <tt>AvailabilityZones</tt> ,
--   ensure that the Availability Zones of the subnets match the values for
--   <tt>AvailabilityZones</tt> .
asgVPCZoneIdentifier :: Lens' AutoScalingGroup (Maybe Text)

-- | The Amazon Resource Names (ARN) of the target groups for your load
--   balancer.
asgTargetGroupARNs :: Lens' AutoScalingGroup [Text]

-- | The metrics enabled for the group.
asgEnabledMetrics :: Lens' AutoScalingGroup [EnabledMetric]

-- | The name of the associated launch configuration.
asgLaunchConfigurationName :: Lens' AutoScalingGroup (Maybe Text)

-- | The EC2 instances associated with the group.
asgInstances :: Lens' AutoScalingGroup [Instance]

-- | The launch template for the group.
asgLaunchTemplate :: Lens' AutoScalingGroup (Maybe LaunchTemplateSpecification)

-- | The Amazon Resource Name (ARN) of the Auto Scaling group.
asgAutoScalingGroupARN :: Lens' AutoScalingGroup (Maybe Text)

-- | The name of the placement group into which you'll launch your
--   instances, if any. For more information, see <a>Placement Groups</a>
--   in the <i>Amazon Elastic Compute Cloud User Guide</i> .
asgPlacementGroup :: Lens' AutoScalingGroup (Maybe Text)

-- | The suspended processes associated with the group.
asgSuspendedProcesses :: Lens' AutoScalingGroup [SuspendedProcess]

-- | One or more load balancers associated with the group.
asgLoadBalancerNames :: Lens' AutoScalingGroup [Text]

-- | The tags for the group.
asgTags :: Lens' AutoScalingGroup [TagDescription]

-- | The name of the Auto Scaling group.
asgAutoScalingGroupName :: Lens' AutoScalingGroup Text

-- | The minimum size of the group.
asgMinSize :: Lens' AutoScalingGroup Int

-- | The maximum size of the group.
asgMaxSize :: Lens' AutoScalingGroup Int

-- | The desired size of the group.
asgDesiredCapacity :: Lens' AutoScalingGroup Int

-- | The amount of time, in seconds, after a scaling activity completes
--   before another scaling activity can start.
asgDefaultCooldown :: Lens' AutoScalingGroup Int

-- | One or more Availability Zones for the group.
asgAvailabilityZones :: Lens' AutoScalingGroup (NonEmpty Text)

-- | The service to use for the health checks. The valid values are
--   <tt>EC2</tt> and <tt>ELB</tt> .
asgHealthCheckType :: Lens' AutoScalingGroup Text

-- | The date and time the group was created.
asgCreatedTime :: Lens' AutoScalingGroup UTCTime

-- | Describes an EC2 instance associated with an Auto Scaling group.
--   
--   <i>See:</i> <a>autoScalingInstanceDetails</a> smart constructor.
data AutoScalingInstanceDetails

-- | Creates a value of <a>AutoScalingInstanceDetails</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>asidLaunchConfigurationName</a> - The launch configuration used
--   to launch the instance. This value is not available if you attached
--   the instance to the Auto Scaling group.</li>
--   <li><a>asidLaunchTemplate</a> - The launch template for the
--   instance.</li>
--   <li><a>asidInstanceId</a> - The ID of the instance.</li>
--   <li><a>asidAutoScalingGroupName</a> - The name of the Auto Scaling
--   group for the instance.</li>
--   <li><a>asidAvailabilityZone</a> - The Availability Zone for the
--   instance.</li>
--   <li><a>asidLifecycleState</a> - The lifecycle state for the instance.
--   For more information, see <a>Auto Scaling Lifecycle</a> in the <i>Auto
--   Scaling User Guide</i> .</li>
--   <li><a>asidHealthStatus</a> - The last reported health status of this
--   instance. <a>Healthy</a> means that the instance is healthy and should
--   remain in service. <a>Unhealthy</a> means that the instance is
--   unhealthy and Auto Scaling should terminate and replace it.</li>
--   <li><a>asidProtectedFromScaleIn</a> - Indicates whether the instance
--   is protected from termination by Auto Scaling when scaling in.</li>
--   </ul>
autoScalingInstanceDetails :: Text -> Text -> Text -> Text -> Text -> Bool -> AutoScalingInstanceDetails

-- | The launch configuration used to launch the instance. This value is
--   not available if you attached the instance to the Auto Scaling group.
asidLaunchConfigurationName :: Lens' AutoScalingInstanceDetails (Maybe Text)

-- | The launch template for the instance.
asidLaunchTemplate :: Lens' AutoScalingInstanceDetails (Maybe LaunchTemplateSpecification)

-- | The ID of the instance.
asidInstanceId :: Lens' AutoScalingInstanceDetails Text

-- | The name of the Auto Scaling group for the instance.
asidAutoScalingGroupName :: Lens' AutoScalingInstanceDetails Text

-- | The Availability Zone for the instance.
asidAvailabilityZone :: Lens' AutoScalingInstanceDetails Text

-- | The lifecycle state for the instance. For more information, see
--   <a>Auto Scaling Lifecycle</a> in the <i>Auto Scaling User Guide</i> .
asidLifecycleState :: Lens' AutoScalingInstanceDetails Text

-- | The last reported health status of this instance. <a>Healthy</a> means
--   that the instance is healthy and should remain in service.
--   <a>Unhealthy</a> means that the instance is unhealthy and Auto Scaling
--   should terminate and replace it.
asidHealthStatus :: Lens' AutoScalingInstanceDetails Text

-- | Indicates whether the instance is protected from termination by Auto
--   Scaling when scaling in.
asidProtectedFromScaleIn :: Lens' AutoScalingInstanceDetails Bool

-- | Describes a block device mapping.
--   
--   <i>See:</i> <a>blockDeviceMapping</a> smart constructor.
data BlockDeviceMapping

-- | Creates a value of <a>BlockDeviceMapping</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>bdmVirtualName</a> - The name of the virtual device (for
--   example, <tt>ephemeral0</tt> ).</li>
--   <li><a>bdmNoDevice</a> - Suppresses a device mapping. If this
--   parameter is true for the root device, the instance might fail the EC2
--   health check. Auto Scaling launches a replacement instance if the
--   instance fails the health check.</li>
--   <li><a>bdmEBS</a> - The information about the Amazon EBS volume.</li>
--   <li><a>bdmDeviceName</a> - The device name exposed to the EC2 instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
blockDeviceMapping :: Text -> BlockDeviceMapping

-- | The name of the virtual device (for example, <tt>ephemeral0</tt> ).
bdmVirtualName :: Lens' BlockDeviceMapping (Maybe Text)

-- | Suppresses a device mapping. If this parameter is true for the root
--   device, the instance might fail the EC2 health check. Auto Scaling
--   launches a replacement instance if the instance fails the health
--   check.
bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Bool)

-- | The information about the Amazon EBS volume.
bdmEBS :: Lens' BlockDeviceMapping (Maybe EBS)

-- | The device name exposed to the EC2 instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
bdmDeviceName :: Lens' BlockDeviceMapping 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 an Amazon EBS volume.
--   
--   <i>See:</i> <a>ebs</a> smart constructor.
data EBS

-- | Creates a value of <a>EBS</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>ebsDeleteOnTermination</a> - Indicates whether the volume is
--   deleted on instance termination. The default is <tt>true</tt> .</li>
--   <li><a>ebsVolumeSize</a> - The volume size, in GiB. For
--   <tt>standard</tt> volumes, specify a value from 1 to 1,024. For
--   <tt>io1</tt> volumes, specify a value from 4 to 16,384. For
--   <tt>gp2</tt> volumes, specify a value from 1 to 16,384. If you specify
--   a snapshot, the volume size must be equal to or larger than the
--   snapshot size. Default: If you create a volume from a snapshot and you
--   don't specify a volume size, the default is the snapshot size.</li>
--   <li><a>ebsIOPS</a> - The number of I/O operations per second (IOPS) to
--   provision for the volume. Constraint: Required when the volume type is
--   <tt>io1</tt> .</li>
--   <li><a>ebsEncrypted</a> - Indicates whether the volume should be
--   encrypted. Encrypted EBS volumes must be attached to instances that
--   support Amazon EBS encryption. Volumes that are created from encrypted
--   snapshots are automatically encrypted. There is no way to create an
--   encrypted volume from an unencrypted snapshot or an unencrypted volume
--   from an encrypted snapshot. For more information, see <a>Amazon EBS
--   Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .</li>
--   <li><a>ebsVolumeType</a> - The volume type. For more information, see
--   <a>Amazon EBS Volume Types</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> . Valid values: <tt>standard</tt> | <tt>io1</tt> |
--   <tt>gp2</tt> Default: <tt>standard</tt></li>
--   <li><a>ebsSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
ebs :: EBS

-- | Indicates whether the volume is deleted on instance termination. The
--   default is <tt>true</tt> .
ebsDeleteOnTermination :: Lens' EBS (Maybe Bool)

-- | The volume size, in GiB. For <tt>standard</tt> volumes, specify a
--   value from 1 to 1,024. For <tt>io1</tt> volumes, specify a value from
--   4 to 16,384. For <tt>gp2</tt> volumes, specify a value from 1 to
--   16,384. If you specify a snapshot, the volume size must be equal to or
--   larger than the snapshot size. Default: If you create a volume from a
--   snapshot and you don't specify a volume size, the default is the
--   snapshot size.
ebsVolumeSize :: Lens' EBS (Maybe Natural)

-- | The number of I/O operations per second (IOPS) to provision for the
--   volume. Constraint: Required when the volume type is <tt>io1</tt> .
ebsIOPS :: Lens' EBS (Maybe Natural)

-- | Indicates whether the volume should be encrypted. Encrypted EBS
--   volumes must be attached to instances that support Amazon EBS
--   encryption. Volumes that are created from encrypted snapshots are
--   automatically encrypted. There is no way to create an encrypted volume
--   from an unencrypted snapshot or an unencrypted volume from an
--   encrypted snapshot. For more information, see <a>Amazon EBS
--   Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
ebsEncrypted :: Lens' EBS (Maybe Bool)

-- | The volume type. For more information, see <a>Amazon EBS Volume
--   Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
--   Valid values: <tt>standard</tt> | <tt>io1</tt> | <tt>gp2</tt> Default:
--   <tt>standard</tt>
ebsVolumeType :: Lens' EBS (Maybe Text)

-- | The ID of the snapshot.
ebsSnapshotId :: Lens' EBS (Maybe Text)

-- | Describes an enabled metric.
--   
--   <i>See:</i> <a>enabledMetric</a> smart constructor.
data EnabledMetric

-- | Creates a value of <a>EnabledMetric</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>emGranularity</a> - The granularity of the metric. The only
--   valid value is <tt>1Minute</tt> .</li>
--   <li><a>emMetric</a> - One of the following metrics: *
--   <tt>GroupMinSize</tt> * <tt>GroupMaxSize</tt> *
--   <tt>GroupDesiredCapacity</tt> * <tt>GroupInServiceInstances</tt> *
--   <tt>GroupPendingInstances</tt> * <tt>GroupStandbyInstances</tt> *
--   <tt>GroupTerminatingInstances</tt> * <tt>GroupTotalInstances</tt></li>
--   </ul>
enabledMetric :: EnabledMetric

-- | The granularity of the metric. The only valid value is
--   <tt>1Minute</tt> .
emGranularity :: Lens' EnabledMetric (Maybe Text)

-- | One of the following metrics: * <tt>GroupMinSize</tt> *
--   <tt>GroupMaxSize</tt> * <tt>GroupDesiredCapacity</tt> *
--   <tt>GroupInServiceInstances</tt> * <tt>GroupPendingInstances</tt> *
--   <tt>GroupStandbyInstances</tt> * <tt>GroupTerminatingInstances</tt> *
--   <tt>GroupTotalInstances</tt>
emMetric :: Lens' EnabledMetric (Maybe Text)

-- | Describes a filter.
--   
--   <i>See:</i> <a>filter'</a> smart constructor.
data Filter

-- | Creates a value of <a>Filter</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>fValues</a> - The value of the filter.</li>
--   <li><a>fName</a> - The name of the filter. The valid values are:
--   <tt>"auto-scaling-group"</tt> , <tt>"key"</tt> , <tt>"value"</tt> ,
--   and <tt>"propagate-at-launch"</tt> .</li>
--   </ul>
filter' :: Text -> Filter

-- | The value of the filter.
fValues :: Lens' Filter [Text]

-- | The name of the filter. The valid values are:
--   <tt>"auto-scaling-group"</tt> , <tt>"key"</tt> , <tt>"value"</tt> ,
--   and <tt>"propagate-at-launch"</tt> .
fName :: Lens' Filter Text

-- | Describes an EC2 instance.
--   
--   <i>See:</i> <a>instance'</a> smart constructor.
data Instance

-- | Creates a value of <a>Instance</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>iLaunchConfigurationName</a> - The launch configuration
--   associated with the instance.</li>
--   <li><a>iLaunchTemplate</a> - The launch template for the
--   instance.</li>
--   <li><a>iInstanceId</a> - The ID of the instance.</li>
--   <li><a>iAvailabilityZone</a> - The Availability Zone in which the
--   instance is running.</li>
--   <li><a>iLifecycleState</a> - A description of the current lifecycle
--   state. Note that the <tt>Quarantined</tt> state is not used.</li>
--   <li><a>iHealthStatus</a> - The last reported health status of the
--   instance. <a>Healthy</a> means that the instance is healthy and should
--   remain in service. <a>Unhealthy</a> means that the instance is
--   unhealthy and Auto Scaling should terminate and replace it.</li>
--   <li><a>iProtectedFromScaleIn</a> - Indicates whether the instance is
--   protected from termination by Auto Scaling when scaling in.</li>
--   </ul>
instance' :: Text -> Text -> LifecycleState -> Text -> Bool -> Instance

-- | The launch configuration associated with the instance.
iLaunchConfigurationName :: Lens' Instance (Maybe Text)

-- | The launch template for the instance.
iLaunchTemplate :: Lens' Instance (Maybe LaunchTemplateSpecification)

-- | The ID of the instance.
iInstanceId :: Lens' Instance Text

-- | The Availability Zone in which the instance is running.
iAvailabilityZone :: Lens' Instance Text

-- | A description of the current lifecycle state. Note that the
--   <tt>Quarantined</tt> state is not used.
iLifecycleState :: Lens' Instance LifecycleState

-- | The last reported health status of the instance. <a>Healthy</a> means
--   that the instance is healthy and should remain in service.
--   <a>Unhealthy</a> means that the instance is unhealthy and Auto Scaling
--   should terminate and replace it.
iHealthStatus :: Lens' Instance Text

-- | Indicates whether the instance is protected from termination by Auto
--   Scaling when scaling in.
iProtectedFromScaleIn :: Lens' Instance Bool

-- | Describes whether detailed monitoring is enabled for the Auto Scaling
--   instances.
--   
--   <i>See:</i> <a>instanceMonitoring</a> smart constructor.
data InstanceMonitoring

-- | Creates a value of <a>InstanceMonitoring</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>imEnabled</a> - If <tt>true</tt> , detailed monitoring is
--   enabled. Otherwise, basic monitoring is enabled.</li>
--   </ul>
instanceMonitoring :: InstanceMonitoring

-- | If <tt>true</tt> , detailed monitoring is enabled. Otherwise, basic
--   monitoring is enabled.
imEnabled :: Lens' InstanceMonitoring (Maybe Bool)

-- | Describes a launch configuration.
--   
--   <i>See:</i> <a>launchConfiguration</a> smart constructor.
data LaunchConfiguration

-- | Creates a value of <a>LaunchConfiguration</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>lcAssociatePublicIPAddress</a> - [EC2-VPC] Indicates whether to
--   assign a public IP address to each instance.</li>
--   <li><a>lcSecurityGroups</a> - The security groups to associate with
--   the instances.</li>
--   <li><a>lcSpotPrice</a> - The price to bid when launching Spot
--   Instances.</li>
--   <li><a>lcInstanceMonitoring</a> - Controls whether instances in this
--   group are launched with detailed (<tt>true</tt> ) or basic
--   (<tt>false</tt> ) monitoring.</li>
--   <li><a>lcKeyName</a> - The name of the key pair.</li>
--   <li><a>lcClassicLinkVPCSecurityGroups</a> - The IDs of one or more
--   security groups for the VPC specified in <tt>ClassicLinkVPCId</tt> .
--   This parameter is required if you specify a ClassicLink-enabled VPC,
--   and cannot be used otherwise. For more information, see
--   <a>ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>lcRAMDiskId</a> - The ID of the RAM disk associated with the
--   AMI.</li>
--   <li><a>lcKernelId</a> - The ID of the kernel associated with the
--   AMI.</li>
--   <li><a>lcEBSOptimized</a> - Controls whether the instance is optimized
--   for EBS I/O (<tt>true</tt> ) or not (<tt>false</tt> ).</li>
--   <li><a>lcUserData</a> - The user data available to the instances.</li>
--   <li><a>lcClassicLinkVPCId</a> - The ID of a ClassicLink-enabled VPC to
--   link your EC2-Classic instances to. This parameter can only be used if
--   you are launching EC2-Classic instances. For more information, see
--   <a>ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>lcIAMInstanceProfile</a> - The name or Amazon Resource Name
--   (ARN) of the instance profile associated with the IAM role for the
--   instance.</li>
--   <li><a>lcLaunchConfigurationARN</a> - The Amazon Resource Name (ARN)
--   of the launch configuration.</li>
--   <li><a>lcPlacementTenancy</a> - The tenancy of the instance, either
--   <tt>default</tt> or <tt>dedicated</tt> . An instance with
--   <tt>dedicated</tt> tenancy runs in an isolated, single-tenant hardware
--   and can only be launched into a VPC.</li>
--   <li><a>lcBlockDeviceMappings</a> - A block device mapping, which
--   specifies the block devices for the instance.</li>
--   <li><a>lcLaunchConfigurationName</a> - The name of the launch
--   configuration.</li>
--   <li><a>lcImageId</a> - The ID of the Amazon Machine Image (AMI).</li>
--   <li><a>lcInstanceType</a> - The instance type for the instances.</li>
--   <li><a>lcCreatedTime</a> - The creation date and time for the launch
--   configuration.</li>
--   </ul>
launchConfiguration :: Text -> Text -> Text -> UTCTime -> LaunchConfiguration

-- | <ul>
--   <li><i>EC2-VPC</i> Indicates whether to assign a public IP address to
--   each instance.</li>
--   </ul>
lcAssociatePublicIPAddress :: Lens' LaunchConfiguration (Maybe Bool)

-- | The security groups to associate with the instances.
lcSecurityGroups :: Lens' LaunchConfiguration [Text]

-- | The price to bid when launching Spot Instances.
lcSpotPrice :: Lens' LaunchConfiguration (Maybe Text)

-- | Controls whether instances in this group are launched with detailed
--   (<tt>true</tt> ) or basic (<tt>false</tt> ) monitoring.
lcInstanceMonitoring :: Lens' LaunchConfiguration (Maybe InstanceMonitoring)

-- | The name of the key pair.
lcKeyName :: Lens' LaunchConfiguration (Maybe Text)

-- | The IDs of one or more security groups for the VPC specified in
--   <tt>ClassicLinkVPCId</tt> . This parameter is required if you specify
--   a ClassicLink-enabled VPC, and cannot be used otherwise. For more
--   information, see <a>ClassicLink</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .
lcClassicLinkVPCSecurityGroups :: Lens' LaunchConfiguration [Text]

-- | The ID of the RAM disk associated with the AMI.
lcRAMDiskId :: Lens' LaunchConfiguration (Maybe Text)

-- | The ID of the kernel associated with the AMI.
lcKernelId :: Lens' LaunchConfiguration (Maybe Text)

-- | Controls whether the instance is optimized for EBS I/O (<tt>true</tt>
--   ) or not (<tt>false</tt> ).
lcEBSOptimized :: Lens' LaunchConfiguration (Maybe Bool)

-- | The user data available to the instances.
lcUserData :: Lens' LaunchConfiguration (Maybe Text)

-- | The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances
--   to. This parameter can only be used if you are launching EC2-Classic
--   instances. For more information, see <a>ClassicLink</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
lcClassicLinkVPCId :: Lens' LaunchConfiguration (Maybe Text)

-- | The name or Amazon Resource Name (ARN) of the instance profile
--   associated with the IAM role for the instance.
lcIAMInstanceProfile :: Lens' LaunchConfiguration (Maybe Text)

-- | The Amazon Resource Name (ARN) of the launch configuration.
lcLaunchConfigurationARN :: Lens' LaunchConfiguration (Maybe Text)

-- | The tenancy of the instance, either <tt>default</tt> or
--   <tt>dedicated</tt> . An instance with <tt>dedicated</tt> tenancy runs
--   in an isolated, single-tenant hardware and can only be launched into a
--   VPC.
lcPlacementTenancy :: Lens' LaunchConfiguration (Maybe Text)

-- | A block device mapping, which specifies the block devices for the
--   instance.
lcBlockDeviceMappings :: Lens' LaunchConfiguration [BlockDeviceMapping]

-- | The name of the launch configuration.
lcLaunchConfigurationName :: Lens' LaunchConfiguration Text

-- | The ID of the Amazon Machine Image (AMI).
lcImageId :: Lens' LaunchConfiguration Text

-- | The instance type for the instances.
lcInstanceType :: Lens' LaunchConfiguration Text

-- | The creation date and time for the launch configuration.
lcCreatedTime :: Lens' LaunchConfiguration UTCTime

-- | Describes a launch template.
--   
--   <i>See:</i> <a>launchTemplateSpecification</a> smart constructor.
data LaunchTemplateSpecification

-- | Creates a value of <a>LaunchTemplateSpecification</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>ltsLaunchTemplateName</a> - The name of the launch template.
--   You must specify either a template name or a template ID.</li>
--   <li><a>ltsLaunchTemplateId</a> - The ID of the launch template. You
--   must specify either a template ID or a template name.</li>
--   <li><a>ltsVersion</a> - The version number, <tt>&gt; Latest</tt> , or
--   <tt>&gt; Default</tt> . If the value is <tt>&gt; Latest</tt> , Auto
--   Scaling selects the latest version of the launch template when
--   launching instances. If the value is <tt>&gt; Default</tt> , Auto
--   Scaling selects the default version of the launch template when
--   launching instances. The default value is <tt>&gt; Default</tt> .</li>
--   </ul>
launchTemplateSpecification :: LaunchTemplateSpecification

-- | The name of the launch template. You must specify either a template
--   name or a template ID.
ltsLaunchTemplateName :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The ID of the launch template. You must specify either a template ID
--   or a template name.
ltsLaunchTemplateId :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The version number, <tt>&gt; Latest</tt> , or <tt>&gt; Default</tt> .
--   If the value is <tt>&gt; Latest</tt> , Auto Scaling selects the latest
--   version of the launch template when launching instances. If the value
--   is <tt>&gt; Default</tt> , Auto Scaling selects the default version of
--   the launch template when launching instances. The default value is
--   <tt>&gt; Default</tt> .
ltsVersion :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | Describes a lifecycle hook, which tells Auto Scaling that you want to
--   perform an action whenever it launches instances or whenever it
--   terminates instances.
--   
--   For more information, see <a>Auto Scaling Lifecycle Hooks</a> in the
--   <i>Auto Scaling User Guide</i> .
--   
--   <i>See:</i> <a>lifecycleHook</a> smart constructor.
data LifecycleHook

-- | Creates a value of <a>LifecycleHook</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>lhDefaultResult</a> - Defines the action the Auto Scaling group
--   should take when the lifecycle hook timeout elapses or if an
--   unexpected failure occurs. The valid values are <tt>CONTINUE</tt> and
--   <tt>ABANDON</tt> . The default value is <tt>CONTINUE</tt> .</li>
--   <li><a>lhLifecycleHookName</a> - The name of the lifecycle hook.</li>
--   <li><a>lhHeartbeatTimeout</a> - The maximum time, in seconds, that can
--   elapse before the lifecycle hook times out. If the lifecycle hook
--   times out, Auto Scaling performs the default action. You can prevent
--   the lifecycle hook from timing out by calling
--   <tt>RecordLifecycleActionHeartbeat</tt> .</li>
--   <li><a>lhAutoScalingGroupName</a> - The name of the Auto Scaling group
--   for the lifecycle hook.</li>
--   <li><a>lhNotificationMetadata</a> - Additional information that you
--   want to include any time Auto Scaling sends a message to the
--   notification target.</li>
--   <li><a>lhGlobalTimeout</a> - The maximum time, in seconds, that an
--   instance can remain in a <tt>Pending:Wait</tt> or
--   <tt>Terminating:Wait</tt> state. The maximum is 172800 seconds (48
--   hours) or 100 times <tt>HeartbeatTimeout</tt> , whichever is
--   smaller.</li>
--   <li><a>lhNotificationTargetARN</a> - The ARN of the target that Auto
--   Scaling sends notifications to when an instance is in the transition
--   state for the lifecycle hook. The notification target can be either an
--   SQS queue or an SNS topic.</li>
--   <li><a>lhLifecycleTransition</a> - The state of the EC2 instance to
--   which you want to attach the lifecycle hook. For a list of lifecycle
--   hook types, see <tt>DescribeLifecycleHookTypes</tt> .</li>
--   <li><a>lhRoleARN</a> - The ARN of the IAM role that allows the Auto
--   Scaling group to publish to the specified notification target.</li>
--   </ul>
lifecycleHook :: LifecycleHook

-- | Defines the action the Auto Scaling group should take when the
--   lifecycle hook timeout elapses or if an unexpected failure occurs. The
--   valid values are <tt>CONTINUE</tt> and <tt>ABANDON</tt> . The default
--   value is <tt>CONTINUE</tt> .
lhDefaultResult :: Lens' LifecycleHook (Maybe Text)

-- | The name of the lifecycle hook.
lhLifecycleHookName :: Lens' LifecycleHook (Maybe Text)

-- | The maximum time, in seconds, that can elapse before the lifecycle
--   hook times out. If the lifecycle hook times out, Auto Scaling performs
--   the default action. You can prevent the lifecycle hook from timing out
--   by calling <tt>RecordLifecycleActionHeartbeat</tt> .
lhHeartbeatTimeout :: Lens' LifecycleHook (Maybe Int)

-- | The name of the Auto Scaling group for the lifecycle hook.
lhAutoScalingGroupName :: Lens' LifecycleHook (Maybe Text)

-- | Additional information that you want to include any time Auto Scaling
--   sends a message to the notification target.
lhNotificationMetadata :: Lens' LifecycleHook (Maybe Text)

-- | The maximum time, in seconds, that an instance can remain in a
--   <tt>Pending:Wait</tt> or <tt>Terminating:Wait</tt> state. The maximum
--   is 172800 seconds (48 hours) or 100 times <tt>HeartbeatTimeout</tt> ,
--   whichever is smaller.
lhGlobalTimeout :: Lens' LifecycleHook (Maybe Int)

-- | The ARN of the target that Auto Scaling sends notifications to when an
--   instance is in the transition state for the lifecycle hook. The
--   notification target can be either an SQS queue or an SNS topic.
lhNotificationTargetARN :: Lens' LifecycleHook (Maybe Text)

-- | The state of the EC2 instance to which you want to attach the
--   lifecycle hook. For a list of lifecycle hook types, see
--   <tt>DescribeLifecycleHookTypes</tt> .
lhLifecycleTransition :: Lens' LifecycleHook (Maybe Text)

-- | The ARN of the IAM role that allows the Auto Scaling group to publish
--   to the specified notification target.
lhRoleARN :: Lens' LifecycleHook (Maybe Text)

-- | Describes a lifecycle hook, which tells Auto Scaling that you want to
--   perform an action whenever it launches instances or whenever it
--   terminates instances.
--   
--   For more information, see <a>Auto Scaling Lifecycle Hooks</a> in the
--   <i>Auto Scaling User Guide</i> .
--   
--   <i>See:</i> <a>lifecycleHookSpecification</a> smart constructor.
data LifecycleHookSpecification

-- | Creates a value of <a>LifecycleHookSpecification</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>lhsDefaultResult</a> - Defines the action the Auto Scaling
--   group should take when the lifecycle hook timeout elapses or if an
--   unexpected failure occurs. The valid values are <tt>CONTINUE</tt> and
--   <tt>ABANDON</tt> .</li>
--   <li><a>lhsHeartbeatTimeout</a> - The maximum time, in seconds, that
--   can elapse before the lifecycle hook times out. If the lifecycle hook
--   times out, Auto Scaling performs the default action. You can prevent
--   the lifecycle hook from timing out by calling
--   <tt>RecordLifecycleActionHeartbeat</tt> .</li>
--   <li><a>lhsNotificationMetadata</a> - Additional information that you
--   want to include any time Auto Scaling sends a message to the
--   notification target.</li>
--   <li><a>lhsNotificationTargetARN</a> - The ARN of the target that Auto
--   Scaling sends notifications to when an instance is in the transition
--   state for the lifecycle hook. The notification target can be either an
--   SQS queue or an SNS topic.</li>
--   <li><a>lhsRoleARN</a> - The ARN of the IAM role that allows the Auto
--   Scaling group to publish to the specified notification target.</li>
--   <li><a>lhsLifecycleHookName</a> - The name of the lifecycle hook.</li>
--   <li><a>lhsLifecycleTransition</a> - The state of the EC2 instance to
--   which you want to attach the lifecycle hook. For a list of lifecycle
--   hook types, see <tt>DescribeLifecycleHookTypes</tt> .</li>
--   </ul>
lifecycleHookSpecification :: Text -> Text -> LifecycleHookSpecification

-- | Defines the action the Auto Scaling group should take when the
--   lifecycle hook timeout elapses or if an unexpected failure occurs. The
--   valid values are <tt>CONTINUE</tt> and <tt>ABANDON</tt> .
lhsDefaultResult :: Lens' LifecycleHookSpecification (Maybe Text)

-- | The maximum time, in seconds, that can elapse before the lifecycle
--   hook times out. If the lifecycle hook times out, Auto Scaling performs
--   the default action. You can prevent the lifecycle hook from timing out
--   by calling <tt>RecordLifecycleActionHeartbeat</tt> .
lhsHeartbeatTimeout :: Lens' LifecycleHookSpecification (Maybe Int)

-- | Additional information that you want to include any time Auto Scaling
--   sends a message to the notification target.
lhsNotificationMetadata :: Lens' LifecycleHookSpecification (Maybe Text)

-- | The ARN of the target that Auto Scaling sends notifications to when an
--   instance is in the transition state for the lifecycle hook. The
--   notification target can be either an SQS queue or an SNS topic.
lhsNotificationTargetARN :: Lens' LifecycleHookSpecification (Maybe Text)

-- | The ARN of the IAM role that allows the Auto Scaling group to publish
--   to the specified notification target.
lhsRoleARN :: Lens' LifecycleHookSpecification (Maybe Text)

-- | The name of the lifecycle hook.
lhsLifecycleHookName :: Lens' LifecycleHookSpecification Text

-- | The state of the EC2 instance to which you want to attach the
--   lifecycle hook. For a list of lifecycle hook types, see
--   <tt>DescribeLifecycleHookTypes</tt> .
lhsLifecycleTransition :: Lens' LifecycleHookSpecification Text

-- | Describes the state of a Classic Load Balancer.
--   
--   If you specify a load balancer when creating the Auto Scaling group,
--   the state of the load balancer is <tt>InService</tt> .
--   
--   If you attach a load balancer to an existing Auto Scaling group, the
--   initial state is <tt>Adding</tt> . The state transitions to
--   <tt>Added</tt> after all instances in the group are registered with
--   the load balancer. If ELB health checks are enabled for the load
--   balancer, the state transitions to <tt>InService</tt> after at least
--   one instance in the group passes the health check. If EC2 health
--   checks are enabled instead, the load balancer remains in the
--   <tt>Added</tt> state.
--   
--   <i>See:</i> <a>loadBalancerState</a> smart constructor.
data LoadBalancerState

-- | Creates a value of <a>LoadBalancerState</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>lbsState</a> - One of the following load balancer states: *
--   <tt>Adding</tt> - The instances in the group are being registered with
--   the load balancer. * <tt>Added</tt> - All instances in the group are
--   registered with the load balancer. * <tt>InService</tt> - At least one
--   instance in the group passed an ELB health check. * <tt>Removing</tt>
--   - The instances in the group are being deregistered from the load
--   balancer. If connection draining is enabled, Elastic Load Balancing
--   waits for in-flight requests to complete before deregistering the
--   instances. * <tt>Removed</tt> - All instances in the group are
--   deregistered from the load balancer.</li>
--   <li><a>lbsLoadBalancerName</a> - The name of the load balancer.</li>
--   </ul>
loadBalancerState :: LoadBalancerState

-- | One of the following load balancer states: * <tt>Adding</tt> - The
--   instances in the group are being registered with the load balancer. *
--   <tt>Added</tt> - All instances in the group are registered with the
--   load balancer. * <tt>InService</tt> - At least one instance in the
--   group passed an ELB health check. * <tt>Removing</tt> - The instances
--   in the group are being deregistered from the load balancer. If
--   connection draining is enabled, Elastic Load Balancing waits for
--   in-flight requests to complete before deregistering the instances. *
--   <tt>Removed</tt> - All instances in the group are deregistered from
--   the load balancer.
lbsState :: Lens' LoadBalancerState (Maybe Text)

-- | The name of the load balancer.
lbsLoadBalancerName :: Lens' LoadBalancerState (Maybe Text)

-- | Describes the state of a target group.
--   
--   If you attach a target group to an existing Auto Scaling group, the
--   initial state is <tt>Adding</tt> . The state transitions to
--   <tt>Added</tt> after all Auto Scaling instances are registered with
--   the target group. If ELB health checks are enabled, the state
--   transitions to <tt>InService</tt> after at least one Auto Scaling
--   instance passes the health check. If EC2 health checks are enabled
--   instead, the target group remains in the <tt>Added</tt> state.
--   
--   <i>See:</i> <a>loadBalancerTargetGroupState</a> smart constructor.
data LoadBalancerTargetGroupState

-- | Creates a value of <a>LoadBalancerTargetGroupState</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>lbtgsState</a> - The state of the target group. *
--   <tt>Adding</tt> - The Auto Scaling instances are being registered with
--   the target group. * <tt>Added</tt> - All Auto Scaling instances are
--   registered with the target group. * <tt>InService</tt> - At least one
--   Auto Scaling instance passed an ELB health check. * <tt>Removing</tt>
--   - The Auto Scaling instances are being deregistered from the target
--   group. If connection draining is enabled, Elastic Load Balancing waits
--   for in-flight requests to complete before deregistering the instances.
--   * <tt>Removed</tt> - All Auto Scaling instances are deregistered from
--   the target group.</li>
--   <li><a>lbtgsLoadBalancerTargetGroupARN</a> - The Amazon Resource Name
--   (ARN) of the target group.</li>
--   </ul>
loadBalancerTargetGroupState :: LoadBalancerTargetGroupState

-- | The state of the target group. * <tt>Adding</tt> - The Auto Scaling
--   instances are being registered with the target group. * <tt>Added</tt>
--   - All Auto Scaling instances are registered with the target group. *
--   <tt>InService</tt> - At least one Auto Scaling instance passed an ELB
--   health check. * <tt>Removing</tt> - The Auto Scaling instances are
--   being deregistered from the target group. If connection draining is
--   enabled, Elastic Load Balancing waits for in-flight requests to
--   complete before deregistering the instances. * <tt>Removed</tt> - All
--   Auto Scaling instances are deregistered from the target group.
lbtgsState :: Lens' LoadBalancerTargetGroupState (Maybe Text)

-- | The Amazon Resource Name (ARN) of the target group.
lbtgsLoadBalancerTargetGroupARN :: Lens' LoadBalancerTargetGroupState (Maybe Text)

-- | Describes a metric.
--   
--   <i>See:</i> <a>metricCollectionType</a> smart constructor.
data MetricCollectionType

-- | Creates a value of <a>MetricCollectionType</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>mctMetric</a> - One of the following metrics: *
--   <tt>GroupMinSize</tt> * <tt>GroupMaxSize</tt> *
--   <tt>GroupDesiredCapacity</tt> * <tt>GroupInServiceInstances</tt> *
--   <tt>GroupPendingInstances</tt> * <tt>GroupStandbyInstances</tt> *
--   <tt>GroupTerminatingInstances</tt> * <tt>GroupTotalInstances</tt></li>
--   </ul>
metricCollectionType :: MetricCollectionType

-- | One of the following metrics: * <tt>GroupMinSize</tt> *
--   <tt>GroupMaxSize</tt> * <tt>GroupDesiredCapacity</tt> *
--   <tt>GroupInServiceInstances</tt> * <tt>GroupPendingInstances</tt> *
--   <tt>GroupStandbyInstances</tt> * <tt>GroupTerminatingInstances</tt> *
--   <tt>GroupTotalInstances</tt>
mctMetric :: Lens' MetricCollectionType (Maybe Text)

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

-- | Describes a granularity of a metric.
--   
--   <i>See:</i> <a>metricGranularityType</a> smart constructor.
data MetricGranularityType

-- | Creates a value of <a>MetricGranularityType</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>mgtGranularity</a> - The granularity. The only valid value is
--   <tt>1Minute</tt> .</li>
--   </ul>
metricGranularityType :: MetricGranularityType

-- | The granularity. The only valid value is <tt>1Minute</tt> .
mgtGranularity :: Lens' MetricGranularityType (Maybe Text)

-- | Describes a notification.
--   
--   <i>See:</i> <a>notificationConfiguration</a> smart constructor.
data NotificationConfiguration

-- | Creates a value of <a>NotificationConfiguration</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>ncTopicARN</a> - The Amazon Resource Name (ARN) of the Amazon
--   Simple Notification Service (SNS) topic.</li>
--   <li><a>ncAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>ncNotificationType</a> - One of the following event
--   notification types: * <tt>autoscaling:EC2_INSTANCE_LAUNCH</tt> *
--   <tt>autoscaling:EC2_INSTANCE_LAUNCH_ERROR</tt> *
--   <tt>autoscaling:EC2_INSTANCE_TERMINATE</tt> *
--   <tt>autoscaling:EC2_INSTANCE_TERMINATE_ERROR</tt> *
--   <tt>autoscaling:TEST_NOTIFICATION</tt></li>
--   </ul>
notificationConfiguration :: NotificationConfiguration

-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification
--   Service (SNS) topic.
ncTopicARN :: Lens' NotificationConfiguration (Maybe Text)

-- | The name of the Auto Scaling group.
ncAutoScalingGroupName :: Lens' NotificationConfiguration (Maybe Text)

-- | One of the following event notification types: *
--   <tt>autoscaling:EC2_INSTANCE_LAUNCH</tt> *
--   <tt>autoscaling:EC2_INSTANCE_LAUNCH_ERROR</tt> *
--   <tt>autoscaling:EC2_INSTANCE_TERMINATE</tt> *
--   <tt>autoscaling:EC2_INSTANCE_TERMINATE_ERROR</tt> *
--   <tt>autoscaling:TEST_NOTIFICATION</tt>
ncNotificationType :: Lens' NotificationConfiguration (Maybe 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. The following predefined metrics are available: *
--   <tt>ASGAverageCPUUtilization</tt> - average CPU utilization of the
--   Auto Scaling group * <tt>ASGAverageNetworkIn</tt> - average number of
--   bytes received on all network interfaces by the Auto Scaling group *
--   <tt>ASGAverageNetworkOut</tt> - average number of bytes sent out on
--   all network interfaces by the Auto Scaling group *
--   <tt>ALBRequestCountPerTarget</tt> - number of requests completed per
--   target in an Application Load Balancer target group For predefined
--   metric types <tt>ASGAverageCPUUtilization</tt> ,
--   <tt>ASGAverageNetworkIn</tt> , and <tt>ASGAverageNetworkOut</tt> , the
--   parameter must not be specified as the resource associated with the
--   metric type is the Auto Scaling group. For predefined metric type
--   <tt>ALBRequestCountPerTarget</tt> , the parameter must be specified in
--   the format: <tt>app/<i>load-balancer-name</i> /<i>load-balancer-id</i>
--   <i>targetgroup</i><i>target-group-name</i> /<i>target-group-id</i>
--   </tt> , where <tt>app/<i>load-balancer-name</i>
--   /<i>load-balancer-id</i> </tt> is the final portion of the load
--   balancer ARN, and <tt>targetgroup/<i>target-group-name</i>
--   /<i>target-group-id</i> </tt> is the final portion of the target group
--   ARN. The target group must be attached to the Auto Scaling group.</li>
--   <li><a>pmsPredefinedMetricType</a> - The metric type.</li>
--   </ul>
predefinedMetricSpecification :: MetricType -> PredefinedMetricSpecification

-- | Identifies the resource associated with the metric type. The following
--   predefined metrics are available: * <tt>ASGAverageCPUUtilization</tt>
--   - average CPU utilization of the Auto Scaling group *
--   <tt>ASGAverageNetworkIn</tt> - average number of bytes received on all
--   network interfaces by the Auto Scaling group *
--   <tt>ASGAverageNetworkOut</tt> - average number of bytes sent out on
--   all network interfaces by the Auto Scaling group *
--   <tt>ALBRequestCountPerTarget</tt> - number of requests completed per
--   target in an Application Load Balancer target group For predefined
--   metric types <tt>ASGAverageCPUUtilization</tt> ,
--   <tt>ASGAverageNetworkIn</tt> , and <tt>ASGAverageNetworkOut</tt> , the
--   parameter must not be specified as the resource associated with the
--   metric type is the Auto Scaling group. For predefined metric type
--   <tt>ALBRequestCountPerTarget</tt> , the parameter must be specified in
--   the format: <tt>app/<i>load-balancer-name</i> /<i>load-balancer-id</i>
--   <i>targetgroup</i><i>target-group-name</i> /<i>target-group-id</i>
--   </tt> , where <tt>app/<i>load-balancer-name</i>
--   /<i>load-balancer-id</i> </tt> is the final portion of the load
--   balancer ARN, and <tt>targetgroup/<i>target-group-name</i>
--   /<i>target-group-id</i> </tt> is the final portion of the target group
--   ARN. The target group must be attached to the Auto Scaling group.
pmsResourceLabel :: Lens' PredefinedMetricSpecification (Maybe Text)

-- | The metric type.
pmsPredefinedMetricType :: Lens' PredefinedMetricSpecification MetricType

-- | Describes a process type.
--   
--   For more information, see <a>Auto Scaling Processes</a> in the <i>Auto
--   Scaling User Guide</i> .
--   
--   <i>See:</i> <a>processType</a> smart constructor.
data ProcessType

-- | Creates a value of <a>ProcessType</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>ptProcessName</a> - One of the following processes: *
--   <tt>Launch</tt> * <tt>Terminate</tt> * <tt>AddToLoadBalancer</tt> *
--   <tt>AlarmNotification</tt> * <tt>AZRebalance</tt> *
--   <tt>HealthCheck</tt> * <tt>ReplaceUnhealthy</tt> *
--   <tt>ScheduledActions</tt></li>
--   </ul>
processType :: Text -> ProcessType

-- | One of the following processes: * <tt>Launch</tt> * <tt>Terminate</tt>
--   * <tt>AddToLoadBalancer</tt> * <tt>AlarmNotification</tt> *
--   <tt>AZRebalance</tt> * <tt>HealthCheck</tt> *
--   <tt>ReplaceUnhealthy</tt> * <tt>ScheduledActions</tt>
ptProcessName :: Lens' ProcessType Text

-- | Describes 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>sMinAdjustmentStep</a> - Available for backward compatibility.
--   Use <tt>MinAdjustmentMagnitude</tt> instead.</li>
--   <li><a>sEstimatedInstanceWarmup</a> - The estimated time, in seconds,
--   until a newly launched instance can contribute to the CloudWatch
--   metrics.</li>
--   <li><a>sPolicyName</a> - The name of the scaling policy.</li>
--   <li><a>sPolicyType</a> - The policy type. Valid values are
--   <tt>SimpleScaling</tt> and <tt>StepScaling</tt> .</li>
--   <li><a>sStepAdjustments</a> - A set of adjustments that enable you to
--   scale based on the size of the alarm breach.</li>
--   <li><a>sTargetTrackingConfiguration</a> - A target tracking
--   policy.</li>
--   <li><a>sAdjustmentType</a> - The adjustment type, which specifies how
--   <tt>ScalingAdjustment</tt> is interpreted. Valid values are
--   <tt>ChangeInCapacity</tt> , <tt>ExactCapacity</tt> , and
--   <tt>PercentChangeInCapacity</tt> .</li>
--   <li><a>sAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>sScalingAdjustment</a> - The amount by which to scale, based on
--   the specified adjustment type. A positive value adds to the current
--   capacity while a negative number removes from the current
--   capacity.</li>
--   <li><a>sCooldown</a> - The amount of time, in seconds, after a scaling
--   activity completes before any further dynamic scaling activities can
--   start.</li>
--   <li><a>sPolicyARN</a> - The Amazon Resource Name (ARN) of the
--   policy.</li>
--   <li><a>sAlarms</a> - The CloudWatch alarms related to the policy.</li>
--   <li><a>sMetricAggregationType</a> - The aggregation type for the
--   CloudWatch metrics. Valid values are <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> .</li>
--   <li><a>sMinAdjustmentMagnitude</a> - The minimum number of instances
--   to scale. If the value of <tt>AdjustmentType</tt> is
--   <tt>PercentChangeInCapacity</tt> , the scaling policy changes the
--   <tt>DesiredCapacity</tt> of the Auto Scaling group by at least this
--   many instances. Otherwise, the error is <tt>ValidationError</tt>
--   .</li>
--   </ul>
scalingPolicy :: ScalingPolicy

-- | Available for backward compatibility. Use
--   <tt>MinAdjustmentMagnitude</tt> instead.
sMinAdjustmentStep :: Lens' ScalingPolicy (Maybe Int)

-- | The estimated time, in seconds, until a newly launched instance can
--   contribute to the CloudWatch metrics.
sEstimatedInstanceWarmup :: Lens' ScalingPolicy (Maybe Int)

-- | The name of the scaling policy.
sPolicyName :: Lens' ScalingPolicy (Maybe Text)

-- | The policy type. Valid values are <tt>SimpleScaling</tt> and
--   <tt>StepScaling</tt> .
sPolicyType :: Lens' ScalingPolicy (Maybe Text)

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

-- | A target tracking policy.
sTargetTrackingConfiguration :: Lens' ScalingPolicy (Maybe TargetTrackingConfiguration)

-- | The adjustment type, which specifies how <tt>ScalingAdjustment</tt> is
--   interpreted. Valid values are <tt>ChangeInCapacity</tt> ,
--   <tt>ExactCapacity</tt> , and <tt>PercentChangeInCapacity</tt> .
sAdjustmentType :: Lens' ScalingPolicy (Maybe Text)

-- | The name of the Auto Scaling group.
sAutoScalingGroupName :: Lens' ScalingPolicy (Maybe Text)

-- | The amount by which to scale, based on the specified adjustment type.
--   A positive value adds to the current capacity while a negative number
--   removes from the current capacity.
sScalingAdjustment :: Lens' ScalingPolicy (Maybe Int)

-- | The amount of time, in seconds, after a scaling activity completes
--   before any further dynamic scaling activities can start.
sCooldown :: Lens' ScalingPolicy (Maybe Int)

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

-- | The CloudWatch alarms related to the policy.
sAlarms :: Lens' ScalingPolicy [Alarm]

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

-- | The minimum number of instances to scale. If the value of
--   <tt>AdjustmentType</tt> is <tt>PercentChangeInCapacity</tt> , the
--   scaling policy changes the <tt>DesiredCapacity</tt> of the Auto
--   Scaling group by at least this many instances. Otherwise, the error is
--   <tt>ValidationError</tt> .
sMinAdjustmentMagnitude :: Lens' ScalingPolicy (Maybe Int)

-- | <i>See:</i> <a>scalingProcessQuery</a> smart constructor.
data ScalingProcessQuery

-- | Creates a value of <a>ScalingProcessQuery</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>spqScalingProcesses</a> - One or more of the following
--   processes. If you omit this parameter, all processes are specified. *
--   <tt>Launch</tt> * <tt>Terminate</tt> * <tt>HealthCheck</tt> *
--   <tt>ReplaceUnhealthy</tt> * <tt>AZRebalance</tt> *
--   <tt>AlarmNotification</tt> * <tt>ScheduledActions</tt> *
--   <tt>AddToLoadBalancer</tt></li>
--   <li><a>spqAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
scalingProcessQuery :: Text -> ScalingProcessQuery

-- | One or more of the following processes. If you omit this parameter,
--   all processes are specified. * <tt>Launch</tt> * <tt>Terminate</tt> *
--   <tt>HealthCheck</tt> * <tt>ReplaceUnhealthy</tt> *
--   <tt>AZRebalance</tt> * <tt>AlarmNotification</tt> *
--   <tt>ScheduledActions</tt> * <tt>AddToLoadBalancer</tt>
spqScalingProcesses :: Lens' ScalingProcessQuery [Text]

-- | The name of the Auto Scaling group.
spqAutoScalingGroupName :: Lens' ScalingProcessQuery Text

-- | Describes a scheduled update to an Auto Scaling group.
--   
--   <i>See:</i> <a>scheduledUpdateGroupAction</a> smart constructor.
data ScheduledUpdateGroupAction

-- | Creates a value of <a>ScheduledUpdateGroupAction</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>sugaScheduledActionARN</a> - The Amazon Resource Name (ARN) of
--   the scheduled action.</li>
--   <li><a>sugaStartTime</a> - The date and time that the action is
--   scheduled to begin. This date and time can be up to one month in the
--   future. When <tt>StartTime</tt> and <tt>EndTime</tt> are specified
--   with <tt>Recurrence</tt> , they form the boundaries of when the
--   recurring action will start and stop.</li>
--   <li><a>sugaTime</a> - This parameter is deprecated.</li>
--   <li><a>sugaScheduledActionName</a> - The name of the scheduled
--   action.</li>
--   <li><a>sugaMaxSize</a> - The maximum size of the group.</li>
--   <li><a>sugaRecurrence</a> - The recurring schedule for the
--   action.</li>
--   <li><a>sugaDesiredCapacity</a> - The number of instances you prefer to
--   maintain in the group.</li>
--   <li><a>sugaMinSize</a> - The minimum size of the group.</li>
--   <li><a>sugaAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>sugaEndTime</a> - The date and time that the action is
--   scheduled to end. This date and time can be up to one month in the
--   future.</li>
--   </ul>
scheduledUpdateGroupAction :: ScheduledUpdateGroupAction

-- | The Amazon Resource Name (ARN) of the scheduled action.
sugaScheduledActionARN :: Lens' ScheduledUpdateGroupAction (Maybe Text)

-- | The date and time that the action is scheduled to begin. This date and
--   time can be up to one month in the future. When <tt>StartTime</tt> and
--   <tt>EndTime</tt> are specified with <tt>Recurrence</tt> , they form
--   the boundaries of when the recurring action will start and stop.
sugaStartTime :: Lens' ScheduledUpdateGroupAction (Maybe UTCTime)

-- | This parameter is deprecated.
sugaTime :: Lens' ScheduledUpdateGroupAction (Maybe UTCTime)

-- | The name of the scheduled action.
sugaScheduledActionName :: Lens' ScheduledUpdateGroupAction (Maybe Text)

-- | The maximum size of the group.
sugaMaxSize :: Lens' ScheduledUpdateGroupAction (Maybe Int)

-- | The recurring schedule for the action.
sugaRecurrence :: Lens' ScheduledUpdateGroupAction (Maybe Text)

-- | The number of instances you prefer to maintain in the group.
sugaDesiredCapacity :: Lens' ScheduledUpdateGroupAction (Maybe Int)

-- | The minimum size of the group.
sugaMinSize :: Lens' ScheduledUpdateGroupAction (Maybe Int)

-- | The name of the Auto Scaling group.
sugaAutoScalingGroupName :: Lens' ScheduledUpdateGroupAction (Maybe Text)

-- | The date and time that the action is scheduled to end. This date and
--   time can be up to one month in the future.
sugaEndTime :: Lens' ScheduledUpdateGroupAction (Maybe UTCTime)

-- | 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>If you want the adjustment to be triggered 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>If you want the adjustment to be triggered 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
--   capacity while a negative number removes from the current
--   capacity.</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 capacity while a negative number
--   removes from the current capacity.
saScalingAdjustment :: Lens' StepAdjustment Int

-- | Describes an Auto Scaling process that has been suspended. For more
--   information, see <a>ProcessType</a> .
--   
--   <i>See:</i> <a>suspendedProcess</a> smart constructor.
data SuspendedProcess

-- | Creates a value of <a>SuspendedProcess</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>spProcessName</a> - The name of the suspended process.</li>
--   <li><a>spSuspensionReason</a> - The reason that the process was
--   suspended.</li>
--   </ul>
suspendedProcess :: SuspendedProcess

-- | The name of the suspended process.
spProcessName :: Lens' SuspendedProcess (Maybe Text)

-- | The reason that the process was suspended.
spSuspensionReason :: Lens' SuspendedProcess (Maybe Text)

-- | Describes a tag for an Auto Scaling group.
--   
--   <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</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>tagKey</a> - The tag key.</li>
--   <li><a>tagResourceId</a> - The name of the group.</li>
--   <li><a>tagResourceType</a> - The type of resource. The only supported
--   value is <tt>auto-scaling-group</tt> .</li>
--   <li><a>tagPropagateAtLaunch</a> - Determines whether the tag is added
--   to new instances as they are launched in the group.</li>
--   <li><a>tagValue</a> - The tag value.</li>
--   </ul>
tag :: Text -> Text -> Text -> Bool -> Text -> Tag

-- | The tag key.
tagKey :: Lens' Tag Text

-- | The name of the group.
tagResourceId :: Lens' Tag Text

-- | The type of resource. The only supported value is
--   <tt>auto-scaling-group</tt> .
tagResourceType :: Lens' Tag Text

-- | Determines whether the tag is added to new instances as they are
--   launched in the group.
tagPropagateAtLaunch :: Lens' Tag Bool

-- | The tag value.
tagValue :: Lens' Tag Text

-- | Describes a tag for an Auto Scaling group.
--   
--   <i>See:</i> <a>tagDescription</a> smart constructor.
data TagDescription

-- | Creates a value of <a>TagDescription</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>tdResourceId</a> - The name of the group.</li>
--   <li><a>tdResourceType</a> - The type of resource. The only supported
--   value is <tt>auto-scaling-group</tt> .</li>
--   <li><a>tdKey</a> - The tag key.</li>
--   <li><a>tdPropagateAtLaunch</a> - Determines whether the tag is added
--   to new instances as they are launched in the group.</li>
--   <li><a>tdValue</a> - The tag value.</li>
--   </ul>
tagDescription :: Text -> Text -> Text -> Bool -> Text -> TagDescription

-- | The name of the group.
tdResourceId :: Lens' TagDescription Text

-- | The type of resource. The only supported value is
--   <tt>auto-scaling-group</tt> .
tdResourceType :: Lens' TagDescription Text

-- | The tag key.
tdKey :: Lens' TagDescription Text

-- | Determines whether the tag is added to new instances as they are
--   launched in the group.
tdPropagateAtLaunch :: Lens' TagDescription Bool

-- | The tag value.
tdValue :: Lens' TagDescription Text

-- | Represents a target tracking policy configuration.
--   
--   <i>See:</i> <a>targetTrackingConfiguration</a> smart constructor.
data TargetTrackingConfiguration

-- | Creates a value of <a>TargetTrackingConfiguration</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>ttcPredefinedMetricSpecification</a> - A predefined metric. You
--   can specify either a predefined metric or a customized metric.</li>
--   <li><a>ttcCustomizedMetricSpecification</a> - A customized
--   metric.</li>
--   <li><a>ttcDisableScaleIn</a> - Indicates whether scale in by the
--   target tracking policy is disabled. If scale in is disabled, the
--   target tracking policy won't remove instances from the Auto Scaling
--   group. Otherwise, the target tracking policy can remove instances from
--   the Auto Scaling group. The default is disabled.</li>
--   <li><a>ttcTargetValue</a> - The target value for the metric.</li>
--   </ul>
targetTrackingConfiguration :: Double -> TargetTrackingConfiguration

-- | A predefined metric. You can specify either a predefined metric or a
--   customized metric.
ttcPredefinedMetricSpecification :: Lens' TargetTrackingConfiguration (Maybe PredefinedMetricSpecification)

-- | A customized metric.
ttcCustomizedMetricSpecification :: Lens' TargetTrackingConfiguration (Maybe CustomizedMetricSpecification)

-- | Indicates whether scale in by the target tracking policy is disabled.
--   If scale in is disabled, the target tracking policy won't remove
--   instances from the Auto Scaling group. Otherwise, the target tracking
--   policy can remove instances from the Auto Scaling group. The default
--   is disabled.
ttcDisableScaleIn :: Lens' TargetTrackingConfiguration (Maybe Bool)

-- | The target value for the metric.
ttcTargetValue :: Lens' TargetTrackingConfiguration Double


-- | Terminates the specified instance and optionally adjusts the desired
--   group size.
--   
--   This call simply makes a termination request. The instance is not
--   terminated immediately.
module Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup

-- | Creates a value of <a>TerminateInstanceInAutoScalingGroup</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>tiiasgInstanceId</a> - The ID of the instance.</li>
--   <li><a>tiiasgShouldDecrementDesiredCapacity</a> - Indicates whether
--   terminating the instance also decrements the size of the Auto Scaling
--   group.</li>
--   </ul>
terminateInstanceInAutoScalingGroup :: Text -> Bool -> TerminateInstanceInAutoScalingGroup

-- | <i>See:</i> <a>terminateInstanceInAutoScalingGroup</a> smart
--   constructor.
data TerminateInstanceInAutoScalingGroup

-- | The ID of the instance.
tiiasgInstanceId :: Lens' TerminateInstanceInAutoScalingGroup Text

-- | Indicates whether terminating the instance also decrements the size of
--   the Auto Scaling group.
tiiasgShouldDecrementDesiredCapacity :: Lens' TerminateInstanceInAutoScalingGroup Bool

-- | Creates a value of <a>TerminateInstanceInAutoScalingGroupResponse</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>tiiasgrsActivity</a> - A scaling activity.</li>
--   <li><a>tiiasgrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
terminateInstanceInAutoScalingGroupResponse :: Int -> TerminateInstanceInAutoScalingGroupResponse

-- | <i>See:</i> <a>terminateInstanceInAutoScalingGroupResponse</a> smart
--   constructor.
data TerminateInstanceInAutoScalingGroupResponse

-- | A scaling activity.
tiiasgrsActivity :: Lens' TerminateInstanceInAutoScalingGroupResponse (Maybe Activity)

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


-- | Suspends the specified Auto Scaling processes, or all processes, for
--   the specified Auto Scaling group.
--   
--   Note that if you suspend either the <tt>Launch</tt> or
--   <tt>Terminate</tt> process types, it can prevent other process types
--   from functioning properly.
--   
--   To resume processes that have been suspended, use
--   <tt>ResumeProcesses</tt> .
--   
--   For more information, see <a>Suspending and Resuming Auto Scaling
--   Processes</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.SuspendProcesses

-- | Creates a value of <a>SuspendProcesses</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>spScalingProcesses</a> - One or more of the following
--   processes. If you omit this parameter, all processes are specified. *
--   <tt>Launch</tt> * <tt>Terminate</tt> * <tt>HealthCheck</tt> *
--   <tt>ReplaceUnhealthy</tt> * <tt>AZRebalance</tt> *
--   <tt>AlarmNotification</tt> * <tt>ScheduledActions</tt> *
--   <tt>AddToLoadBalancer</tt></li>
--   <li><a>spAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
suspendProcesses :: Text -> SuspendProcesses

-- | <i>See:</i> <a>suspendProcesses</a> smart constructor.
data SuspendProcesses

-- | One or more of the following processes. If you omit this parameter,
--   all processes are specified. * <tt>Launch</tt> * <tt>Terminate</tt> *
--   <tt>HealthCheck</tt> * <tt>ReplaceUnhealthy</tt> *
--   <tt>AZRebalance</tt> * <tt>AlarmNotification</tt> *
--   <tt>ScheduledActions</tt> * <tt>AddToLoadBalancer</tt>
spScalingProcesses :: Lens' SuspendProcesses [Text]

-- | The name of the Auto Scaling group.
spAutoScalingGroupName :: Lens' SuspendProcesses Text

-- | Creates a value of <a>SuspendProcessesResponse</a> with the minimum
--   fields required to make a request.
suspendProcessesResponse :: SuspendProcessesResponse

-- | <i>See:</i> <a>suspendProcessesResponse</a> smart constructor.
data SuspendProcessesResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.SuspendProcesses.SuspendProcessesResponse
instance Data.Data.Data Network.AWS.AutoScaling.SuspendProcesses.SuspendProcessesResponse
instance GHC.Show.Show Network.AWS.AutoScaling.SuspendProcesses.SuspendProcessesResponse
instance GHC.Read.Read Network.AWS.AutoScaling.SuspendProcesses.SuspendProcessesResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.SuspendProcesses.SuspendProcessesResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance Data.Data.Data Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance GHC.Show.Show Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance GHC.Read.Read Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance GHC.Classes.Eq Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SuspendProcesses.SuspendProcessesResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.SuspendProcesses.SuspendProcesses


-- | Updates the instance protection settings of the specified instances.
--   
--   For more information, see <a>Instance Protection</a> in the <i>Auto
--   Scaling User Guide</i> .
module Network.AWS.AutoScaling.SetInstanceProtection

-- | Creates a value of <a>SetInstanceProtection</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>sipInstanceIds</a> - One or more instance IDs.</li>
--   <li><a>sipAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>sipProtectedFromScaleIn</a> - Indicates whether the instance is
--   protected from termination by Auto Scaling when scaling in.</li>
--   </ul>
setInstanceProtection :: Text -> Bool -> SetInstanceProtection

-- | <i>See:</i> <a>setInstanceProtection</a> smart constructor.
data SetInstanceProtection

-- | One or more instance IDs.
sipInstanceIds :: Lens' SetInstanceProtection [Text]

-- | The name of the Auto Scaling group.
sipAutoScalingGroupName :: Lens' SetInstanceProtection Text

-- | Indicates whether the instance is protected from termination by Auto
--   Scaling when scaling in.
sipProtectedFromScaleIn :: Lens' SetInstanceProtection Bool

-- | Creates a value of <a>SetInstanceProtectionResponse</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>siprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
setInstanceProtectionResponse :: Int -> SetInstanceProtectionResponse

-- | <i>See:</i> <a>setInstanceProtectionResponse</a> smart constructor.
data SetInstanceProtectionResponse

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


-- | Sets the health status of the specified instance.
--   
--   For more information, see <a>Health Checks</a> in the <i>Auto Scaling
--   User Guide</i> .
module Network.AWS.AutoScaling.SetInstanceHealth

-- | Creates a value of <a>SetInstanceHealth</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>sihShouldRespectGracePeriod</a> - If the Auto Scaling group of
--   the specified instance has a <tt>HealthCheckGracePeriod</tt> specified
--   for the group, by default, this call will respect the grace period.
--   Set this to <tt>False</tt> , if you do not want the call to respect
--   the grace period associated with the group. For more information, see
--   the description of the health check grace period for
--   <tt>CreateAutoScalingGroup</tt> .</li>
--   <li><a>sihInstanceId</a> - The ID of the instance.</li>
--   <li><a>sihHealthStatus</a> - The health status of the instance. Set to
--   <tt>Healthy</tt> if you want the instance to remain in service. Set to
--   <tt>Unhealthy</tt> if you want the instance to be out of service. Auto
--   Scaling will terminate and replace the unhealthy instance.</li>
--   </ul>
setInstanceHealth :: Text -> Text -> SetInstanceHealth

-- | <i>See:</i> <a>setInstanceHealth</a> smart constructor.
data SetInstanceHealth

-- | If the Auto Scaling group of the specified instance has a
--   <tt>HealthCheckGracePeriod</tt> specified for the group, by default,
--   this call will respect the grace period. Set this to <tt>False</tt> ,
--   if you do not want the call to respect the grace period associated
--   with the group. For more information, see the description of the
--   health check grace period for <tt>CreateAutoScalingGroup</tt> .
sihShouldRespectGracePeriod :: Lens' SetInstanceHealth (Maybe Bool)

-- | The ID of the instance.
sihInstanceId :: Lens' SetInstanceHealth Text

-- | The health status of the instance. Set to <tt>Healthy</tt> if you want
--   the instance to remain in service. Set to <tt>Unhealthy</tt> if you
--   want the instance to be out of service. Auto Scaling will terminate
--   and replace the unhealthy instance.
sihHealthStatus :: Lens' SetInstanceHealth Text

-- | Creates a value of <a>SetInstanceHealthResponse</a> with the minimum
--   fields required to make a request.
setInstanceHealthResponse :: SetInstanceHealthResponse

-- | <i>See:</i> <a>setInstanceHealthResponse</a> smart constructor.
data SetInstanceHealthResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealthResponse
instance Data.Data.Data Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealthResponse
instance GHC.Show.Show Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealthResponse
instance GHC.Read.Read Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealthResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealthResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance Data.Data.Data Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance GHC.Show.Show Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance GHC.Read.Read Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance GHC.Classes.Eq Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealthResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealth


-- | Sets the size of the specified Auto Scaling group.
--   
--   For more information about desired capacity, see <a>What Is Auto
--   Scaling?</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.SetDesiredCapacity

-- | Creates a value of <a>SetDesiredCapacity</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>sdcHonorCooldown</a> - Indicates whether Auto Scaling waits for
--   the cooldown period to complete before initiating a scaling activity
--   to set your Auto Scaling group to its new capacity. By default, Auto
--   Scaling does not honor the cooldown period during manual scaling
--   activities.</li>
--   <li><a>sdcAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>sdcDesiredCapacity</a> - The number of EC2 instances that
--   should be running in the Auto Scaling group.</li>
--   </ul>
setDesiredCapacity :: Text -> Int -> SetDesiredCapacity

-- | <i>See:</i> <a>setDesiredCapacity</a> smart constructor.
data SetDesiredCapacity

-- | Indicates whether Auto Scaling waits for the cooldown period to
--   complete before initiating a scaling activity to set your Auto Scaling
--   group to its new capacity. By default, Auto Scaling does not honor the
--   cooldown period during manual scaling activities.
sdcHonorCooldown :: Lens' SetDesiredCapacity (Maybe Bool)

-- | The name of the Auto Scaling group.
sdcAutoScalingGroupName :: Lens' SetDesiredCapacity Text

-- | The number of EC2 instances that should be running in the Auto Scaling
--   group.
sdcDesiredCapacity :: Lens' SetDesiredCapacity Int

-- | Creates a value of <a>SetDesiredCapacityResponse</a> with the minimum
--   fields required to make a request.
setDesiredCapacityResponse :: SetDesiredCapacityResponse

-- | <i>See:</i> <a>setDesiredCapacityResponse</a> smart constructor.
data SetDesiredCapacityResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacityResponse
instance Data.Data.Data Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacityResponse
instance GHC.Show.Show Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacityResponse
instance GHC.Read.Read Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacityResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacityResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance Data.Data.Data Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance GHC.Show.Show Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance GHC.Read.Read Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance GHC.Classes.Eq Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacityResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacity


-- | Resumes the specified suspended Auto Scaling processes, or all
--   suspended process, for the specified Auto Scaling group.
--   
--   For more information, see <a>Suspending and Resuming Auto Scaling
--   Processes</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.ResumeProcesses

-- | Creates a value of <a>ResumeProcesses</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>rpScalingProcesses</a> - One or more of the following
--   processes. If you omit this parameter, all processes are specified. *
--   <tt>Launch</tt> * <tt>Terminate</tt> * <tt>HealthCheck</tt> *
--   <tt>ReplaceUnhealthy</tt> * <tt>AZRebalance</tt> *
--   <tt>AlarmNotification</tt> * <tt>ScheduledActions</tt> *
--   <tt>AddToLoadBalancer</tt></li>
--   <li><a>rpAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
resumeProcesses :: Text -> ResumeProcesses

-- | <i>See:</i> <a>resumeProcesses</a> smart constructor.
data ResumeProcesses

-- | One or more of the following processes. If you omit this parameter,
--   all processes are specified. * <tt>Launch</tt> * <tt>Terminate</tt> *
--   <tt>HealthCheck</tt> * <tt>ReplaceUnhealthy</tt> *
--   <tt>AZRebalance</tt> * <tt>AlarmNotification</tt> *
--   <tt>ScheduledActions</tt> * <tt>AddToLoadBalancer</tt>
rpScalingProcesses :: Lens' ResumeProcesses [Text]

-- | The name of the Auto Scaling group.
rpAutoScalingGroupName :: Lens' ResumeProcesses Text

-- | Creates a value of <a>ResumeProcessesResponse</a> with the minimum
--   fields required to make a request.
resumeProcessesResponse :: ResumeProcessesResponse

-- | <i>See:</i> <a>resumeProcessesResponse</a> smart constructor.
data ResumeProcessesResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.ResumeProcesses.ResumeProcessesResponse
instance Data.Data.Data Network.AWS.AutoScaling.ResumeProcesses.ResumeProcessesResponse
instance GHC.Show.Show Network.AWS.AutoScaling.ResumeProcesses.ResumeProcessesResponse
instance GHC.Read.Read Network.AWS.AutoScaling.ResumeProcesses.ResumeProcessesResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.ResumeProcesses.ResumeProcessesResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance Data.Data.Data Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance GHC.Show.Show Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance GHC.Read.Read Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance GHC.Classes.Eq Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.ResumeProcesses.ResumeProcessesResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.ResumeProcesses.ResumeProcesses


-- | Records a heartbeat for the lifecycle action associated with the
--   specified token or instance. This extends the timeout by the length of
--   time defined using <tt>PutLifecycleHook</tt> .
--   
--   This step is a part of the procedure for adding a lifecycle hook to an
--   Auto Scaling group:
--   
--   <ul>
--   <li>(Optional) Create a Lambda function and a rule that allows
--   CloudWatch Events to invoke your Lambda function when Auto Scaling
--   launches or terminates instances.</li>
--   <li>(Optional) Create a notification target and an IAM role. The
--   target can be either an Amazon SQS queue or an Amazon SNS topic. The
--   role allows Auto Scaling to publish lifecycle notifications to the
--   target.</li>
--   <li>Create the lifecycle hook. Specify whether the hook is used when
--   the instances launch or terminate.</li>
--   <li><b>If you need more time, record the lifecycle action heartbeat to
--   keep the instance in a pending state.</b></li>
--   <li>If you finish before the timeout period ends, complete the
--   lifecycle action.</li>
--   </ul>
--   
--   For more information, see <a>Auto Scaling Lifecycle</a> in the <i>Auto
--   Scaling User Guide</i> .
module Network.AWS.AutoScaling.RecordLifecycleActionHeartbeat

-- | Creates a value of <a>RecordLifecycleActionHeartbeat</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>rlahInstanceId</a> - The ID of the instance.</li>
--   <li><a>rlahLifecycleActionToken</a> - A token that uniquely identifies
--   a specific lifecycle action associated with an instance. Auto Scaling
--   sends this token to the notification target you specified when you
--   created the lifecycle hook.</li>
--   <li><a>rlahLifecycleHookName</a> - The name of the lifecycle
--   hook.</li>
--   <li><a>rlahAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
recordLifecycleActionHeartbeat :: Text -> Text -> RecordLifecycleActionHeartbeat

-- | <i>See:</i> <a>recordLifecycleActionHeartbeat</a> smart constructor.
data RecordLifecycleActionHeartbeat

-- | The ID of the instance.
rlahInstanceId :: Lens' RecordLifecycleActionHeartbeat (Maybe Text)

-- | A token that uniquely identifies a specific lifecycle action
--   associated with an instance. Auto Scaling sends this token to the
--   notification target you specified when you created the lifecycle hook.
rlahLifecycleActionToken :: Lens' RecordLifecycleActionHeartbeat (Maybe Text)

-- | The name of the lifecycle hook.
rlahLifecycleHookName :: Lens' RecordLifecycleActionHeartbeat Text

-- | The name of the Auto Scaling group.
rlahAutoScalingGroupName :: Lens' RecordLifecycleActionHeartbeat Text

-- | Creates a value of <a>RecordLifecycleActionHeartbeatResponse</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>rlahrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
recordLifecycleActionHeartbeatResponse :: Int -> RecordLifecycleActionHeartbeatResponse

-- | <i>See:</i> <a>recordLifecycleActionHeartbeatResponse</a> smart
--   constructor.
data RecordLifecycleActionHeartbeatResponse

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


-- | Creates or updates a scheduled scaling action for an Auto Scaling
--   group. When updating a scheduled scaling action, if you leave a
--   parameter unspecified, the corresponding value remains unchanged.
--   
--   For more information, see <a>Scheduled Scaling</a> in the <i>Auto
--   Scaling User Guide</i> .
module Network.AWS.AutoScaling.PutScheduledUpdateGroupAction

-- | Creates a value of <a>PutScheduledUpdateGroupAction</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>psugaStartTime</a> - The time for this action to start, in
--   <a>YYYY-MM-DDThh:mm:ssZ</a> format in UTC/GMT only (for example,
--   <tt>2014-06-01T00:00:00Z</tt> ). If you specify <tt>Recurrence</tt>
--   and <tt>StartTime</tt> , Auto Scaling performs the action at this
--   time, and then performs the action based on the specified recurrence.
--   If you try to schedule your action in the past, Auto Scaling returns
--   an error message.</li>
--   <li><a>psugaTime</a> - This parameter is deprecated.</li>
--   <li><a>psugaMaxSize</a> - The maximum size for the Auto Scaling
--   group.</li>
--   <li><a>psugaRecurrence</a> - The recurring schedule for this action,
--   in Unix cron syntax format. For more information, see <a>Cron</a> in
--   Wikipedia.</li>
--   <li><a>psugaDesiredCapacity</a> - The number of EC2 instances that
--   should be running in the group.</li>
--   <li><a>psugaMinSize</a> - The minimum size for the Auto Scaling
--   group.</li>
--   <li><a>psugaEndTime</a> - The time for the recurring schedule to end.
--   Auto Scaling does not perform the action after this time.</li>
--   <li><a>psugaAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>psugaScheduledActionName</a> - The name of this scaling
--   action.</li>
--   </ul>
putScheduledUpdateGroupAction :: Text -> Text -> PutScheduledUpdateGroupAction

-- | <i>See:</i> <a>putScheduledUpdateGroupAction</a> smart constructor.
data PutScheduledUpdateGroupAction

-- | The time for this action to start, in <a>YYYY-MM-DDThh:mm:ssZ</a>
--   format in UTC/GMT only (for example, <tt>2014-06-01T00:00:00Z</tt> ).
--   If you specify <tt>Recurrence</tt> and <tt>StartTime</tt> , Auto
--   Scaling performs the action at this time, and then performs the action
--   based on the specified recurrence. If you try to schedule your action
--   in the past, Auto Scaling returns an error message.
psugaStartTime :: Lens' PutScheduledUpdateGroupAction (Maybe UTCTime)

-- | This parameter is deprecated.
psugaTime :: Lens' PutScheduledUpdateGroupAction (Maybe UTCTime)

-- | The maximum size for the Auto Scaling group.
psugaMaxSize :: Lens' PutScheduledUpdateGroupAction (Maybe Int)

-- | The recurring schedule for this action, in Unix cron syntax format.
--   For more information, see <a>Cron</a> in Wikipedia.
psugaRecurrence :: Lens' PutScheduledUpdateGroupAction (Maybe Text)

-- | The number of EC2 instances that should be running in the group.
psugaDesiredCapacity :: Lens' PutScheduledUpdateGroupAction (Maybe Int)

-- | The minimum size for the Auto Scaling group.
psugaMinSize :: Lens' PutScheduledUpdateGroupAction (Maybe Int)

-- | The time for the recurring schedule to end. Auto Scaling does not
--   perform the action after this time.
psugaEndTime :: Lens' PutScheduledUpdateGroupAction (Maybe UTCTime)

-- | The name of the Auto Scaling group.
psugaAutoScalingGroupName :: Lens' PutScheduledUpdateGroupAction Text

-- | The name of this scaling action.
psugaScheduledActionName :: Lens' PutScheduledUpdateGroupAction Text

-- | Creates a value of <a>PutScheduledUpdateGroupActionResponse</a> with
--   the minimum fields required to make a request.
putScheduledUpdateGroupActionResponse :: PutScheduledUpdateGroupActionResponse

-- | <i>See:</i> <a>putScheduledUpdateGroupActionResponse</a> smart
--   constructor.
data PutScheduledUpdateGroupActionResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupActionResponse
instance Data.Data.Data Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupActionResponse
instance GHC.Show.Show Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupActionResponse
instance GHC.Read.Read Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupActionResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupActionResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance Data.Data.Data Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance GHC.Show.Show Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance GHC.Read.Read Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance GHC.Classes.Eq Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupActionResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupAction


-- | Creates or updates a policy for an Auto Scaling group. To update an
--   existing policy, use the existing policy name and set the parameters
--   you want to change. Any existing parameter not changed in an update to
--   an existing policy is not changed in this update request.
--   
--   If you exceed your maximum limit of step adjustments, which by default
--   is 20 per region, the call fails. For information about updating this
--   limit, see <a>AWS Service Limits</a> in the <i>Amazon Web Services
--   General Reference</i> .
module Network.AWS.AutoScaling.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>pspMinAdjustmentStep</a> - Available for backward
--   compatibility. Use <tt>MinAdjustmentMagnitude</tt> instead.</li>
--   <li><a>pspEstimatedInstanceWarmup</a> - The estimated time, in
--   seconds, until a newly launched instance can contribute to the
--   CloudWatch metrics. The default is to use the value specified for the
--   default cooldown period for the group. This parameter is supported if
--   the policy type is <tt>StepScaling</tt> or
--   <tt>TargetTrackingScaling</tt> .</li>
--   <li><a>pspPolicyType</a> - The policy type. The valid values are
--   <tt>SimpleScaling</tt> , <tt>StepScaling</tt> , and
--   <tt>TargetTrackingScaling</tt> . If the policy type is null, the value
--   is treated as <tt>SimpleScaling</tt> .</li>
--   <li><a>pspStepAdjustments</a> - A set of adjustments that enable you
--   to scale based on the size of the alarm breach. This parameter is
--   required if the policy type is <tt>StepScaling</tt> and not supported
--   otherwise.</li>
--   <li><a>pspTargetTrackingConfiguration</a> - A target tracking policy.
--   This parameter is required if the policy type is
--   <tt>TargetTrackingScaling</tt> and not supported otherwise.</li>
--   <li><a>pspAdjustmentType</a> - The adjustment type. The valid values
--   are <tt>ChangeInCapacity</tt> , <tt>ExactCapacity</tt> , and
--   <tt>PercentChangeInCapacity</tt> . This parameter is supported if the
--   policy type is <tt>SimpleScaling</tt> or <tt>StepScaling</tt> . For
--   more information, see <a>Dynamic Scaling</a> in the <i>Auto Scaling
--   User Guide</i> .</li>
--   <li><a>pspScalingAdjustment</a> - The amount by which to scale, based
--   on the specified adjustment type. A positive value adds to the current
--   capacity while a negative number removes from the current capacity.
--   This parameter is required if the policy type is
--   <tt>SimpleScaling</tt> and not supported otherwise.</li>
--   <li><a>pspCooldown</a> - The amount of time, in seconds, after a
--   scaling activity completes and before the next scaling activity can
--   start. If this parameter is not specified, the default cooldown period
--   for the group applies. This parameter is supported if the policy type
--   is <tt>SimpleScaling</tt> . For more information, see <a>Auto Scaling
--   Cooldowns</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>pspMetricAggregationType</a> - The aggregation type for the
--   CloudWatch metrics. The valid values are <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> . If the aggregation type is
--   null, the value is treated as <tt>Average</tt> . This parameter is
--   supported if the policy type is <tt>StepScaling</tt> .</li>
--   <li><a>pspMinAdjustmentMagnitude</a> - The minimum number of instances
--   to scale. If the value of <tt>AdjustmentType</tt> is
--   <tt>PercentChangeInCapacity</tt> , the scaling policy changes the
--   <tt>DesiredCapacity</tt> of the Auto Scaling group by at least this
--   many instances. Otherwise, the error is <tt>ValidationError</tt> .
--   This parameter is supported if the policy type is
--   <tt>SimpleScaling</tt> or <tt>StepScaling</tt> .</li>
--   <li><a>pspAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>pspPolicyName</a> - The name of the policy.</li>
--   </ul>
putScalingPolicy :: Text -> Text -> PutScalingPolicy

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

-- | Available for backward compatibility. Use
--   <tt>MinAdjustmentMagnitude</tt> instead.
pspMinAdjustmentStep :: Lens' PutScalingPolicy (Maybe Int)

-- | The estimated time, in seconds, until a newly launched instance can
--   contribute to the CloudWatch metrics. The default is to use the value
--   specified for the default cooldown period for the group. This
--   parameter is supported if the policy type is <tt>StepScaling</tt> or
--   <tt>TargetTrackingScaling</tt> .
pspEstimatedInstanceWarmup :: Lens' PutScalingPolicy (Maybe Int)

-- | The policy type. The valid values are <tt>SimpleScaling</tt> ,
--   <tt>StepScaling</tt> , and <tt>TargetTrackingScaling</tt> . If the
--   policy type is null, the value is treated as <tt>SimpleScaling</tt> .
pspPolicyType :: Lens' PutScalingPolicy (Maybe Text)

-- | A set of adjustments that enable you to scale based on the size of the
--   alarm breach. This parameter is required if the policy type is
--   <tt>StepScaling</tt> and not supported otherwise.
pspStepAdjustments :: Lens' PutScalingPolicy [StepAdjustment]

-- | A target tracking policy. This parameter is required if the policy
--   type is <tt>TargetTrackingScaling</tt> and not supported otherwise.
pspTargetTrackingConfiguration :: Lens' PutScalingPolicy (Maybe TargetTrackingConfiguration)

-- | The adjustment type. The valid values are <tt>ChangeInCapacity</tt> ,
--   <tt>ExactCapacity</tt> , and <tt>PercentChangeInCapacity</tt> . This
--   parameter is supported if the policy type is <tt>SimpleScaling</tt> or
--   <tt>StepScaling</tt> . For more information, see <a>Dynamic
--   Scaling</a> in the <i>Auto Scaling User Guide</i> .
pspAdjustmentType :: Lens' PutScalingPolicy (Maybe Text)

-- | The amount by which to scale, based on the specified adjustment type.
--   A positive value adds to the current capacity while a negative number
--   removes from the current capacity. This parameter is required if the
--   policy type is <tt>SimpleScaling</tt> and not supported otherwise.
pspScalingAdjustment :: Lens' PutScalingPolicy (Maybe Int)

-- | The amount of time, in seconds, after a scaling activity completes and
--   before the next scaling activity can start. If this parameter is not
--   specified, the default cooldown period for the group applies. This
--   parameter is supported if the policy type is <tt>SimpleScaling</tt> .
--   For more information, see <a>Auto Scaling Cooldowns</a> in the <i>Auto
--   Scaling User Guide</i> .
pspCooldown :: Lens' PutScalingPolicy (Maybe Int)

-- | The aggregation type for the CloudWatch metrics. The valid values are
--   <tt>Minimum</tt> , <tt>Maximum</tt> , and <tt>Average</tt> . If the
--   aggregation type is null, the value is treated as <tt>Average</tt> .
--   This parameter is supported if the policy type is <tt>StepScaling</tt>
--   .
pspMetricAggregationType :: Lens' PutScalingPolicy (Maybe Text)

-- | The minimum number of instances to scale. If the value of
--   <tt>AdjustmentType</tt> is <tt>PercentChangeInCapacity</tt> , the
--   scaling policy changes the <tt>DesiredCapacity</tt> of the Auto
--   Scaling group by at least this many instances. Otherwise, the error is
--   <tt>ValidationError</tt> . This parameter is supported if the policy
--   type is <tt>SimpleScaling</tt> or <tt>StepScaling</tt> .
pspMinAdjustmentMagnitude :: Lens' PutScalingPolicy (Maybe Int)

-- | The name of the Auto Scaling group.
pspAutoScalingGroupName :: Lens' PutScalingPolicy Text

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

-- | 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>psprsPolicyARN</a> - The Amazon Resource Name (ARN) of the
--   policy.</li>
--   <li><a>psprsAlarms</a> - The CloudWatch alarms created for the target
--   tracking policy.</li>
--   <li><a>psprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putScalingPolicyResponse :: Int -> PutScalingPolicyResponse

-- | Contains the output of PutScalingPolicy.
--   
--   <i>See:</i> <a>putScalingPolicyResponse</a> smart constructor.
data PutScalingPolicyResponse

-- | The Amazon Resource Name (ARN) of the policy.
psprsPolicyARN :: Lens' PutScalingPolicyResponse (Maybe Text)

-- | 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
instance GHC.Generics.Generic Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance Data.Data.Data Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Show.Show Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Read.Read Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance Data.Data.Data Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance GHC.Show.Show Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance GHC.Read.Read Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance GHC.Classes.Eq Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicyResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicy


-- | Configures an Auto Scaling group to send notifications when specified
--   events take place. Subscribers to the specified topic can have
--   messages delivered to an endpoint such as a web server or an email
--   address.
--   
--   This configuration overwrites any existing configuration.
--   
--   For more information see <a>Getting SNS Notifications When Your Auto
--   Scaling Group Scales</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.PutNotificationConfiguration

-- | Creates a value of <a>PutNotificationConfiguration</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>pncAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>pncTopicARN</a> - The Amazon Resource Name (ARN) of the Amazon
--   Simple Notification Service (SNS) topic.</li>
--   <li><a>pncNotificationTypes</a> - The type of event that will cause
--   the notification to be sent. For details about notification types
--   supported by Auto Scaling, see
--   <tt>DescribeAutoScalingNotificationTypes</tt> .</li>
--   </ul>
putNotificationConfiguration :: Text -> Text -> PutNotificationConfiguration

-- | <i>See:</i> <a>putNotificationConfiguration</a> smart constructor.
data PutNotificationConfiguration

-- | The name of the Auto Scaling group.
pncAutoScalingGroupName :: Lens' PutNotificationConfiguration Text

-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification
--   Service (SNS) topic.
pncTopicARN :: Lens' PutNotificationConfiguration Text

-- | The type of event that will cause the notification to be sent. For
--   details about notification types supported by Auto Scaling, see
--   <tt>DescribeAutoScalingNotificationTypes</tt> .
pncNotificationTypes :: Lens' PutNotificationConfiguration [Text]

-- | Creates a value of <a>PutNotificationConfigurationResponse</a> with
--   the minimum fields required to make a request.
putNotificationConfigurationResponse :: PutNotificationConfigurationResponse

-- | <i>See:</i> <a>putNotificationConfigurationResponse</a> smart
--   constructor.
data PutNotificationConfigurationResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfigurationResponse
instance Data.Data.Data Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfigurationResponse
instance GHC.Show.Show Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfigurationResponse
instance GHC.Read.Read Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfigurationResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfigurationResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance Data.Data.Data Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance GHC.Show.Show Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance GHC.Read.Read Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance GHC.Classes.Eq Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfigurationResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfiguration


-- | Creates or updates a lifecycle hook for the specified Auto Scaling
--   Group.
--   
--   A lifecycle hook tells Auto Scaling that you want to perform an action
--   on an instance that is not actively in service; for example, either
--   when the instance launches or before the instance terminates.
--   
--   This step is a part of the procedure for adding a lifecycle hook to an
--   Auto Scaling group:
--   
--   <ul>
--   <li>(Optional) Create a Lambda function and a rule that allows
--   CloudWatch Events to invoke your Lambda function when Auto Scaling
--   launches or terminates instances.</li>
--   <li>(Optional) Create a notification target and an IAM role. The
--   target can be either an Amazon SQS queue or an Amazon SNS topic. The
--   role allows Auto Scaling to publish lifecycle notifications to the
--   target.</li>
--   <li><b>Create the lifecycle hook. Specify whether the hook is used
--   when the instances launch or terminate.</b></li>
--   <li>If you need more time, record the lifecycle action heartbeat to
--   keep the instance in a pending state.</li>
--   <li>If you finish before the timeout period ends, complete the
--   lifecycle action.</li>
--   </ul>
--   
--   For more information, see <a>Auto Scaling Lifecycle Hooks</a> in the
--   <i>Auto Scaling User Guide</i> .
--   
--   If you exceed your maximum limit of lifecycle hooks, which by default
--   is 50 per Auto Scaling group, the call fails. For information about
--   updating this limit, see <a>AWS Service Limits</a> in the <i>Amazon
--   Web Services General Reference</i> .
module Network.AWS.AutoScaling.PutLifecycleHook

-- | Creates a value of <a>PutLifecycleHook</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>plhDefaultResult</a> - Defines the action the Auto Scaling
--   group should take when the lifecycle hook timeout elapses or if an
--   unexpected failure occurs. This parameter can be either
--   <tt>CONTINUE</tt> or <tt>ABANDON</tt> . The default value is
--   <tt>ABANDON</tt> .</li>
--   <li><a>plhHeartbeatTimeout</a> - The maximum time, in seconds, that
--   can elapse before the lifecycle hook times out. The range is from 30
--   to 7200 seconds. The default is 3600 seconds (1 hour). If the
--   lifecycle hook times out, Auto Scaling performs the default action.
--   You can prevent the lifecycle hook from timing out by calling
--   <tt>RecordLifecycleActionHeartbeat</tt> .</li>
--   <li><a>plhNotificationMetadata</a> - Contains additional information
--   that you want to include any time Auto Scaling sends a message to the
--   notification target.</li>
--   <li><a>plhNotificationTargetARN</a> - The ARN of the notification
--   target that Auto Scaling will use to notify you when an instance is in
--   the transition state for the lifecycle hook. This target can be either
--   an SQS queue or an SNS topic. If you specify an empty string, this
--   overrides the current ARN. This operation uses the JSON format when
--   sending notifications to an Amazon SQS queue, and an email key<i>value
--   pair format when sending notifications to an Amazon SNS topic. When
--   you specify a notification target, Auto Scaling sends it a test
--   message. Test messages contains the following additional key</i>value
--   pair: <tt><a>Event</a>: "autoscaling:TEST_NOTIFICATION"</tt> .</li>
--   <li><a>plhLifecycleTransition</a> - The instance state to which you
--   want to attach the lifecycle hook. For a list of lifecycle hook types,
--   see <tt>DescribeLifecycleHookTypes</tt> . This parameter is required
--   for new lifecycle hooks, but optional when updating existing
--   hooks.</li>
--   <li><a>plhRoleARN</a> - The ARN of the IAM role that allows the Auto
--   Scaling group to publish to the specified notification target. This
--   parameter is required for new lifecycle hooks, but optional when
--   updating existing hooks.</li>
--   <li><a>plhLifecycleHookName</a> - The name of the lifecycle hook.</li>
--   <li><a>plhAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
putLifecycleHook :: Text -> Text -> PutLifecycleHook

-- | <i>See:</i> <a>putLifecycleHook</a> smart constructor.
data PutLifecycleHook

-- | Defines the action the Auto Scaling group should take when the
--   lifecycle hook timeout elapses or if an unexpected failure occurs.
--   This parameter can be either <tt>CONTINUE</tt> or <tt>ABANDON</tt> .
--   The default value is <tt>ABANDON</tt> .
plhDefaultResult :: Lens' PutLifecycleHook (Maybe Text)

-- | The maximum time, in seconds, that can elapse before the lifecycle
--   hook times out. The range is from 30 to 7200 seconds. The default is
--   3600 seconds (1 hour). If the lifecycle hook times out, Auto Scaling
--   performs the default action. You can prevent the lifecycle hook from
--   timing out by calling <tt>RecordLifecycleActionHeartbeat</tt> .
plhHeartbeatTimeout :: Lens' PutLifecycleHook (Maybe Int)

-- | Contains additional information that you want to include any time Auto
--   Scaling sends a message to the notification target.
plhNotificationMetadata :: Lens' PutLifecycleHook (Maybe Text)

-- | The ARN of the notification target that Auto Scaling will use to
--   notify you when an instance is in the transition state for the
--   lifecycle hook. This target can be either an SQS queue or an SNS
--   topic. If you specify an empty string, this overrides the current ARN.
--   This operation uses the JSON format when sending notifications to an
--   Amazon SQS queue, and an email key<i>value pair format when sending
--   notifications to an Amazon SNS topic. When you specify a notification
--   target, Auto Scaling sends it a test message. Test messages contains
--   the following additional key</i>value pair: <tt><a>Event</a>:
--   "autoscaling:TEST_NOTIFICATION"</tt> .
plhNotificationTargetARN :: Lens' PutLifecycleHook (Maybe Text)

-- | The instance state to which you want to attach the lifecycle hook. For
--   a list of lifecycle hook types, see
--   <tt>DescribeLifecycleHookTypes</tt> . This parameter is required for
--   new lifecycle hooks, but optional when updating existing hooks.
plhLifecycleTransition :: Lens' PutLifecycleHook (Maybe Text)

-- | The ARN of the IAM role that allows the Auto Scaling group to publish
--   to the specified notification target. This parameter is required for
--   new lifecycle hooks, but optional when updating existing hooks.
plhRoleARN :: Lens' PutLifecycleHook (Maybe Text)

-- | The name of the lifecycle hook.
plhLifecycleHookName :: Lens' PutLifecycleHook Text

-- | The name of the Auto Scaling group.
plhAutoScalingGroupName :: Lens' PutLifecycleHook Text

-- | Creates a value of <a>PutLifecycleHookResponse</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>plhrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
putLifecycleHookResponse :: Int -> PutLifecycleHookResponse

-- | <i>See:</i> <a>putLifecycleHookResponse</a> smart constructor.
data PutLifecycleHookResponse

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


-- | Moves the specified instances out of the standby state.
--   
--   For more information, see <a>Temporarily Removing Instances from Your
--   Auto Scaling Group</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.ExitStandby

-- | Creates a value of <a>ExitStandby</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>eInstanceIds</a> - The IDs of the instances. You can specify up
--   to 20 instances.</li>
--   <li><a>eAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
exitStandby :: Text -> ExitStandby

-- | <i>See:</i> <a>exitStandby</a> smart constructor.
data ExitStandby

-- | The IDs of the instances. You can specify up to 20 instances.
eInstanceIds :: Lens' ExitStandby [Text]

-- | The name of the Auto Scaling group.
eAutoScalingGroupName :: Lens' ExitStandby Text

-- | Creates a value of <a>ExitStandbyResponse</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>esrsActivities</a> - The activities related to moving instances
--   out of <tt>Standby</tt> mode.</li>
--   <li><a>esrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
exitStandbyResponse :: Int -> ExitStandbyResponse

-- | <i>See:</i> <a>exitStandbyResponse</a> smart constructor.
data ExitStandbyResponse

-- | The activities related to moving instances out of <tt>Standby</tt>
--   mode.
esrsActivities :: Lens' ExitStandbyResponse [Activity]

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


-- | Executes the specified policy.
module Network.AWS.AutoScaling.ExecutePolicy

-- | Creates a value of <a>ExecutePolicy</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>epHonorCooldown</a> - Indicates whether Auto Scaling waits for
--   the cooldown period to complete before executing the policy. This
--   parameter is not supported if the policy type is <tt>StepScaling</tt>
--   . For more information, see <a>Auto Scaling Cooldowns</a> in the
--   <i>Auto Scaling User Guide</i> .</li>
--   <li><a>epMetricValue</a> - The metric value to compare to
--   <tt>BreachThreshold</tt> . This enables you to execute a policy of
--   type <tt>StepScaling</tt> and determine which step adjustment to use.
--   For example, if the breach threshold is 50 and you want to use a step
--   adjustment with a lower bound of 0 and an upper bound of 10, you can
--   set the metric value to 59. If you specify a metric value that doesn't
--   correspond to a step adjustment for the policy, the call returns an
--   error. This parameter is required if the policy type is
--   <tt>StepScaling</tt> and not supported otherwise.</li>
--   <li><a>epAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>epBreachThreshold</a> - The breach threshold for the alarm.
--   This parameter is required if the policy type is <tt>StepScaling</tt>
--   and not supported otherwise.</li>
--   <li><a>epPolicyName</a> - The name or ARN of the policy.</li>
--   </ul>
executePolicy :: Text -> ExecutePolicy

-- | <i>See:</i> <a>executePolicy</a> smart constructor.
data ExecutePolicy

-- | Indicates whether Auto Scaling waits for the cooldown period to
--   complete before executing the policy. This parameter is not supported
--   if the policy type is <tt>StepScaling</tt> . For more information, see
--   <a>Auto Scaling Cooldowns</a> in the <i>Auto Scaling User Guide</i> .
epHonorCooldown :: Lens' ExecutePolicy (Maybe Bool)

-- | The metric value to compare to <tt>BreachThreshold</tt> . This enables
--   you to execute a policy of type <tt>StepScaling</tt> and determine
--   which step adjustment to use. For example, if the breach threshold is
--   50 and you want to use a step adjustment with a lower bound of 0 and
--   an upper bound of 10, you can set the metric value to 59. If you
--   specify a metric value that doesn't correspond to a step adjustment
--   for the policy, the call returns an error. This parameter is required
--   if the policy type is <tt>StepScaling</tt> and not supported
--   otherwise.
epMetricValue :: Lens' ExecutePolicy (Maybe Double)

-- | The name of the Auto Scaling group.
epAutoScalingGroupName :: Lens' ExecutePolicy (Maybe Text)

-- | The breach threshold for the alarm. This parameter is required if the
--   policy type is <tt>StepScaling</tt> and not supported otherwise.
epBreachThreshold :: Lens' ExecutePolicy (Maybe Double)

-- | The name or ARN of the policy.
epPolicyName :: Lens' ExecutePolicy Text

-- | Creates a value of <a>ExecutePolicyResponse</a> with the minimum
--   fields required to make a request.
executePolicyResponse :: ExecutePolicyResponse

-- | <i>See:</i> <a>executePolicyResponse</a> smart constructor.
data ExecutePolicyResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicyResponse
instance Data.Data.Data Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicyResponse
instance GHC.Show.Show Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicyResponse
instance GHC.Read.Read Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicyResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicyResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance Data.Data.Data Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance GHC.Show.Show Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance GHC.Read.Read Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance GHC.Classes.Eq Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicyResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicy


-- | Moves the specified instances into the standby state.
--   
--   For more information, see <a>Temporarily Removing Instances from Your
--   Auto Scaling Group</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.EnterStandby

-- | Creates a value of <a>EnterStandby</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>esInstanceIds</a> - The IDs of the instances. You can specify
--   up to 20 instances.</li>
--   <li><a>esAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>esShouldDecrementDesiredCapacity</a> - Indicates whether to
--   decrement the desired capacity of the Auto Scaling group by the number
--   of instances moved to <tt>Standby</tt> mode.</li>
--   </ul>
enterStandby :: Text -> Bool -> EnterStandby

-- | <i>See:</i> <a>enterStandby</a> smart constructor.
data EnterStandby

-- | The IDs of the instances. You can specify up to 20 instances.
esInstanceIds :: Lens' EnterStandby [Text]

-- | The name of the Auto Scaling group.
esAutoScalingGroupName :: Lens' EnterStandby Text

-- | Indicates whether to decrement the desired capacity of the Auto
--   Scaling group by the number of instances moved to <tt>Standby</tt>
--   mode.
esShouldDecrementDesiredCapacity :: Lens' EnterStandby Bool

-- | Creates a value of <a>EnterStandbyResponse</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>ersActivities</a> - The activities related to moving instances
--   into <tt>Standby</tt> mode.</li>
--   <li><a>ersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
enterStandbyResponse :: Int -> EnterStandbyResponse

-- | <i>See:</i> <a>enterStandbyResponse</a> smart constructor.
data EnterStandbyResponse

-- | The activities related to moving instances into <tt>Standby</tt> mode.
ersActivities :: Lens' EnterStandbyResponse [Activity]

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


-- | Enables group metrics for the specified Auto Scaling group. For more
--   information, see <a>Monitoring Your Auto Scaling Groups and
--   Instances</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.EnableMetricsCollection

-- | Creates a value of <a>EnableMetricsCollection</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>emcMetrics</a> - One or more of the following metrics. If you
--   omit this parameter, all metrics are enabled. * <tt>GroupMinSize</tt>
--   * <tt>GroupMaxSize</tt> * <tt>GroupDesiredCapacity</tt> *
--   <tt>GroupInServiceInstances</tt> * <tt>GroupPendingInstances</tt> *
--   <tt>GroupStandbyInstances</tt> * <tt>GroupTerminatingInstances</tt> *
--   <tt>GroupTotalInstances</tt></li>
--   <li><a>emcAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>emcGranularity</a> - The granularity to associate with the
--   metrics to collect. The only valid value is <tt>1Minute</tt> .</li>
--   </ul>
enableMetricsCollection :: Text -> Text -> EnableMetricsCollection

-- | <i>See:</i> <a>enableMetricsCollection</a> smart constructor.
data EnableMetricsCollection

-- | One or more of the following metrics. If you omit this parameter, all
--   metrics are enabled. * <tt>GroupMinSize</tt> * <tt>GroupMaxSize</tt> *
--   <tt>GroupDesiredCapacity</tt> * <tt>GroupInServiceInstances</tt> *
--   <tt>GroupPendingInstances</tt> * <tt>GroupStandbyInstances</tt> *
--   <tt>GroupTerminatingInstances</tt> * <tt>GroupTotalInstances</tt>
emcMetrics :: Lens' EnableMetricsCollection [Text]

-- | The name of the Auto Scaling group.
emcAutoScalingGroupName :: Lens' EnableMetricsCollection Text

-- | The granularity to associate with the metrics to collect. The only
--   valid value is <tt>1Minute</tt> .
emcGranularity :: Lens' EnableMetricsCollection Text

-- | Creates a value of <a>EnableMetricsCollectionResponse</a> with the
--   minimum fields required to make a request.
enableMetricsCollectionResponse :: EnableMetricsCollectionResponse

-- | <i>See:</i> <a>enableMetricsCollectionResponse</a> smart constructor.
data EnableMetricsCollectionResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollectionResponse
instance Data.Data.Data Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollectionResponse
instance GHC.Show.Show Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollectionResponse
instance GHC.Read.Read Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollectionResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollectionResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance Data.Data.Data Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance GHC.Show.Show Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance GHC.Read.Read Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance GHC.Classes.Eq Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollectionResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollection


-- | Disables group metrics for the specified Auto Scaling group.
module Network.AWS.AutoScaling.DisableMetricsCollection

-- | Creates a value of <a>DisableMetricsCollection</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>dmcMetrics</a> - One or more of the following metrics. If you
--   omit this parameter, all metrics are disabled. * <tt>GroupMinSize</tt>
--   * <tt>GroupMaxSize</tt> * <tt>GroupDesiredCapacity</tt> *
--   <tt>GroupInServiceInstances</tt> * <tt>GroupPendingInstances</tt> *
--   <tt>GroupStandbyInstances</tt> * <tt>GroupTerminatingInstances</tt> *
--   <tt>GroupTotalInstances</tt></li>
--   <li><a>dmcAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
disableMetricsCollection :: Text -> DisableMetricsCollection

-- | <i>See:</i> <a>disableMetricsCollection</a> smart constructor.
data DisableMetricsCollection

-- | One or more of the following metrics. If you omit this parameter, all
--   metrics are disabled. * <tt>GroupMinSize</tt> * <tt>GroupMaxSize</tt>
--   * <tt>GroupDesiredCapacity</tt> * <tt>GroupInServiceInstances</tt> *
--   <tt>GroupPendingInstances</tt> * <tt>GroupStandbyInstances</tt> *
--   <tt>GroupTerminatingInstances</tt> * <tt>GroupTotalInstances</tt>
dmcMetrics :: Lens' DisableMetricsCollection [Text]

-- | The name of the Auto Scaling group.
dmcAutoScalingGroupName :: Lens' DisableMetricsCollection Text

-- | Creates a value of <a>DisableMetricsCollectionResponse</a> with the
--   minimum fields required to make a request.
disableMetricsCollectionResponse :: DisableMetricsCollectionResponse

-- | <i>See:</i> <a>disableMetricsCollectionResponse</a> smart constructor.
data DisableMetricsCollectionResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollectionResponse
instance Data.Data.Data Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollectionResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollectionResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollectionResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollectionResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance Data.Data.Data Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance GHC.Show.Show Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance GHC.Read.Read Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance GHC.Classes.Eq Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollectionResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollection


-- | Detaches one or more Classic Load Balancers from the specified Auto
--   Scaling group.
--   
--   Note that this operation detaches only Classic Load Balancers. If you
--   have Application Load Balancers, use
--   <tt>DetachLoadBalancerTargetGroups</tt> instead.
--   
--   When you detach a load balancer, it enters the <tt>Removing</tt> state
--   while deregistering the instances in the group. When all instances are
--   deregistered, then you can no longer describe the load balancer using
--   <tt>DescribeLoadBalancers</tt> . Note that the instances remain
--   running.
module Network.AWS.AutoScaling.DetachLoadBalancers

-- | Creates a value of <a>DetachLoadBalancers</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>dAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>dLoadBalancerNames</a> - The names of the load balancers. You
--   can specify up to 10 load balancers.</li>
--   </ul>
detachLoadBalancers :: Text -> DetachLoadBalancers

-- | <i>See:</i> <a>detachLoadBalancers</a> smart constructor.
data DetachLoadBalancers

-- | The name of the Auto Scaling group.
dAutoScalingGroupName :: Lens' DetachLoadBalancers Text

-- | The names of the load balancers. You can specify up to 10 load
--   balancers.
dLoadBalancerNames :: Lens' DetachLoadBalancers [Text]

-- | Creates a value of <a>DetachLoadBalancersResponse</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>dlbsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
detachLoadBalancersResponse :: Int -> DetachLoadBalancersResponse

-- | <i>See:</i> <a>detachLoadBalancersResponse</a> smart constructor.
data DetachLoadBalancersResponse

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


-- | Detaches one or more target groups from the specified Auto Scaling
--   group.
module Network.AWS.AutoScaling.DetachLoadBalancerTargetGroups

-- | Creates a value of <a>DetachLoadBalancerTargetGroups</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>dlbtgAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>dlbtgTargetGroupARNs</a> - The Amazon Resource Names (ARN) of
--   the target groups. You can specify up to 10 target groups.</li>
--   </ul>
detachLoadBalancerTargetGroups :: Text -> DetachLoadBalancerTargetGroups

-- | <i>See:</i> <a>detachLoadBalancerTargetGroups</a> smart constructor.
data DetachLoadBalancerTargetGroups

-- | The name of the Auto Scaling group.
dlbtgAutoScalingGroupName :: Lens' DetachLoadBalancerTargetGroups Text

-- | The Amazon Resource Names (ARN) of the target groups. You can specify
--   up to 10 target groups.
dlbtgTargetGroupARNs :: Lens' DetachLoadBalancerTargetGroups [Text]

-- | Creates a value of <a>DetachLoadBalancerTargetGroupsResponse</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>dlbtgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
detachLoadBalancerTargetGroupsResponse :: Int -> DetachLoadBalancerTargetGroupsResponse

-- | <i>See:</i> <a>detachLoadBalancerTargetGroupsResponse</a> smart
--   constructor.
data DetachLoadBalancerTargetGroupsResponse

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


-- | Removes one or more instances from the specified Auto Scaling group.
--   
--   After the instances are detached, you can manage them independent of
--   the Auto Scaling group.
--   
--   If you do not specify the option to decrement the desired capacity,
--   Auto Scaling launches instances to replace the ones that are detached.
--   
--   If there is a Classic Load Balancer attached to the Auto Scaling
--   group, the instances are deregistered from the load balancer. If there
--   are target groups attached to the Auto Scaling group, the instances
--   are deregistered from the target groups.
--   
--   For more information, see <a>Detach EC2 Instances from Your Auto
--   Scaling Group</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.DetachInstances

-- | Creates a value of <a>DetachInstances</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>diInstanceIds</a> - The IDs of the instances. You can specify
--   up to 20 instances.</li>
--   <li><a>diAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>diShouldDecrementDesiredCapacity</a> - Indicates whether the
--   Auto Scaling group decrements the desired capacity value by the number
--   of instances detached.</li>
--   </ul>
detachInstances :: Text -> Bool -> DetachInstances

-- | <i>See:</i> <a>detachInstances</a> smart constructor.
data DetachInstances

-- | The IDs of the instances. You can specify up to 20 instances.
diInstanceIds :: Lens' DetachInstances [Text]

-- | The name of the Auto Scaling group.
diAutoScalingGroupName :: Lens' DetachInstances Text

-- | Indicates whether the Auto Scaling group decrements the desired
--   capacity value by the number of instances detached.
diShouldDecrementDesiredCapacity :: Lens' DetachInstances Bool

-- | Creates a value of <a>DetachInstancesResponse</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>dirsActivities</a> - The activities related to detaching the
--   instances from the Auto Scaling group.</li>
--   <li><a>dirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
detachInstancesResponse :: Int -> DetachInstancesResponse

-- | <i>See:</i> <a>detachInstancesResponse</a> smart constructor.
data DetachInstancesResponse

-- | The activities related to detaching the instances from the Auto
--   Scaling group.
dirsActivities :: Lens' DetachInstancesResponse [Activity]

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


-- | Describes the termination policies supported by Auto Scaling.
module Network.AWS.AutoScaling.DescribeTerminationPolicyTypes

-- | Creates a value of <a>DescribeTerminationPolicyTypes</a> with the
--   minimum fields required to make a request.
describeTerminationPolicyTypes :: DescribeTerminationPolicyTypes

-- | <i>See:</i> <a>describeTerminationPolicyTypes</a> smart constructor.
data DescribeTerminationPolicyTypes

-- | Creates a value of <a>DescribeTerminationPolicyTypesResponse</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>dtptrsTerminationPolicyTypes</a> - The termination policies
--   supported by Auto Scaling (<tt>OldestInstance</tt> ,
--   <tt>OldestLaunchConfiguration</tt> , <tt>NewestInstance</tt> ,
--   <tt>ClosestToNextInstanceHour</tt> , and <tt>Default</tt> ).</li>
--   <li><a>dtptrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTerminationPolicyTypesResponse :: Int -> DescribeTerminationPolicyTypesResponse

-- | <i>See:</i> <a>describeTerminationPolicyTypesResponse</a> smart
--   constructor.
data DescribeTerminationPolicyTypesResponse

-- | The termination policies supported by Auto Scaling
--   (<tt>OldestInstance</tt> , <tt>OldestLaunchConfiguration</tt> ,
--   <tt>NewestInstance</tt> , <tt>ClosestToNextInstanceHour</tt> , and
--   <tt>Default</tt> ).
dtptrsTerminationPolicyTypes :: Lens' DescribeTerminationPolicyTypesResponse [Text]

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


-- | Describes the specified tags.
--   
--   You can use filters to limit the results. For example, you can query
--   for the tags for a specific Auto Scaling group. You can specify
--   multiple values for a filter. A tag must match at least one of the
--   specified values for it to be included in the results.
--   
--   You can also specify multiple filters. The result includes information
--   for a particular tag only if it matches all the filters. If there's no
--   match, no special message is returned.
--   
--   This operation returns paginated results.
module Network.AWS.AutoScaling.DescribeTags

-- | Creates a value of <a>DescribeTags</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>dtFilters</a> - A filter used to scope the tags to return.</li>
--   <li><a>dtNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>dtMaxRecords</a> - The maximum number of items to return with
--   this call. The default value is 50 and the maximum value is 100.</li>
--   </ul>
describeTags :: DescribeTags

-- | <i>See:</i> <a>describeTags</a> smart constructor.
data DescribeTags

-- | A filter used to scope the tags to return.
dtFilters :: Lens' DescribeTags [Filter]

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
dtNextToken :: Lens' DescribeTags (Maybe Text)

-- | The maximum number of items to return with this call. The default
--   value is 50 and the maximum value is 100.
dtMaxRecords :: Lens' DescribeTags (Maybe Int)

-- | Creates a value of <a>DescribeTagsResponse</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>dtrsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dtrsTags</a> - One or more tags.</li>
--   <li><a>dtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTagsResponse :: Int -> DescribeTagsResponse

-- | <i>See:</i> <a>describeTagsResponse</a> smart constructor.
data DescribeTagsResponse

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dtrsNextToken :: Lens' DescribeTagsResponse (Maybe Text)

-- | One or more tags.
dtrsTags :: Lens' DescribeTagsResponse [TagDescription]

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


-- | Describes the actions scheduled for your Auto Scaling group that
--   haven't run. To describe the actions that have already run, use
--   <tt>DescribeScalingActivities</tt> .
--   
--   This operation returns paginated results.
module Network.AWS.AutoScaling.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>dsasStartTime</a> - The earliest scheduled start time to
--   return. If scheduled action names are provided, this parameter is
--   ignored.</li>
--   <li><a>dsasNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>dsasAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>dsasMaxRecords</a> - The maximum number of items to return with
--   this call. The default value is 50 and the maximum value is 100.</li>
--   <li><a>dsasEndTime</a> - The latest scheduled start time to return. If
--   scheduled action names are provided, this parameter is ignored.</li>
--   <li><a>dsasScheduledActionNames</a> - Describes one or more scheduled
--   actions. If you omit this parameter, all scheduled actions are
--   described. If you specify an unknown scheduled action, it is ignored
--   with no error. You can describe up to a maximum of 50 instances with a
--   single call. If there are more items to return, the call returns a
--   token. To get the next set of items, repeat the call with the returned
--   token.</li>
--   </ul>
describeScheduledActions :: DescribeScheduledActions

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

-- | The earliest scheduled start time to return. If scheduled action names
--   are provided, this parameter is ignored.
dsasStartTime :: Lens' DescribeScheduledActions (Maybe UTCTime)

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
dsasNextToken :: Lens' DescribeScheduledActions (Maybe Text)

-- | The name of the Auto Scaling group.
dsasAutoScalingGroupName :: Lens' DescribeScheduledActions (Maybe Text)

-- | The maximum number of items to return with this call. The default
--   value is 50 and the maximum value is 100.
dsasMaxRecords :: Lens' DescribeScheduledActions (Maybe Int)

-- | The latest scheduled start time to return. If scheduled action names
--   are provided, this parameter is ignored.
dsasEndTime :: Lens' DescribeScheduledActions (Maybe UTCTime)

-- | Describes one or more scheduled actions. If you omit this parameter,
--   all scheduled actions are described. If you specify an unknown
--   scheduled action, it is ignored with no error. You can describe up to
--   a maximum of 50 instances with a single call. If there are more items
--   to return, the call returns a token. To get the next set of items,
--   repeat the call with the returned token.
dsasScheduledActionNames :: Lens' DescribeScheduledActions [Text]

-- | 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>dsarsScheduledUpdateGroupActions</a> - The scheduled
--   actions.</li>
--   <li><a>dsarsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</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 scheduled actions.
dsarsScheduledUpdateGroupActions :: Lens' DescribeScheduledActionsResponse [ScheduledUpdateGroupAction]

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dsarsNextToken :: Lens' DescribeScheduledActionsResponse (Maybe Text)

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


-- | Describes the scaling process types for use with
--   <tt>ResumeProcesses</tt> and <tt>SuspendProcesses</tt> .
module Network.AWS.AutoScaling.DescribeScalingProcessTypes

-- | Creates a value of <a>DescribeScalingProcessTypes</a> with the minimum
--   fields required to make a request.
describeScalingProcessTypes :: DescribeScalingProcessTypes

-- | <i>See:</i> <a>describeScalingProcessTypes</a> smart constructor.
data DescribeScalingProcessTypes

-- | Creates a value of <a>DescribeScalingProcessTypesResponse</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>dsptrsProcesses</a> - The names of the process types.</li>
--   <li><a>dsptrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeScalingProcessTypesResponse :: Int -> DescribeScalingProcessTypesResponse

-- | <i>See:</i> <a>describeScalingProcessTypesResponse</a> smart
--   constructor.
data DescribeScalingProcessTypesResponse

-- | The names of the process types.
dsptrsProcesses :: Lens' DescribeScalingProcessTypesResponse [ProcessType]

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


-- | Describes one or more scaling activities for the specified Auto
--   Scaling group.
--   
--   This operation returns paginated results.
module Network.AWS.AutoScaling.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>desNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>desAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>desMaxRecords</a> - The maximum number of items to return with
--   this call. The default value is 100 and the maximum value is 100.</li>
--   <li><a>desActivityIds</a> - The activity IDs of the desired scaling
--   activities. If you omit this parameter, all activities for the past
--   six weeks are described. If you specify an Auto Scaling group, the
--   results are limited to that group. The list of requested activities
--   cannot contain more than 50 items. If unknown activities are
--   requested, they are ignored with no error.</li>
--   </ul>
describeScalingActivities :: DescribeScalingActivities

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

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
desNextToken :: Lens' DescribeScalingActivities (Maybe Text)

-- | The name of the Auto Scaling group.
desAutoScalingGroupName :: Lens' DescribeScalingActivities (Maybe Text)

-- | The maximum number of items to return with this call. The default
--   value is 100 and the maximum value is 100.
desMaxRecords :: Lens' DescribeScalingActivities (Maybe Int)

-- | The activity IDs of the desired scaling activities. If you omit this
--   parameter, all activities for the past six weeks are described. If you
--   specify an Auto Scaling group, the results are limited to that group.
--   The list of requested activities cannot contain more than 50 items. If
--   unknown activities are requested, they are ignored with no error.
desActivityIds :: Lens' DescribeScalingActivities [Text]

-- | 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>dsasrsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dsasrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dsasrsActivities</a> - The scaling activities. Activities are
--   sorted by start time. Activities still in progress are described
--   first.</li>
--   </ul>
describeScalingActivitiesResponse :: Int -> DescribeScalingActivitiesResponse

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

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dsasrsNextToken :: Lens' DescribeScalingActivitiesResponse (Maybe Text)

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

-- | The scaling activities. Activities are sorted by start time.
--   Activities still in progress are described first.
dsasrsActivities :: Lens' DescribeScalingActivitiesResponse [Activity]
instance GHC.Generics.Generic Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance Data.Data.Data Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Data.Data.Data Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance GHC.Show.Show Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance GHC.Read.Read Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance GHC.Classes.Eq Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities


-- | Describes the policies for the specified Auto Scaling group.
--   
--   This operation returns paginated results.
module Network.AWS.AutoScaling.DescribePolicies

-- | Creates a value of <a>DescribePolicies</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>dpsPolicyNames</a> - The names of one or more policies. If you
--   omit this parameter, all policies are described. If an group name is
--   provided, the results are limited to that group. This list is limited
--   to 50 items. If you specify an unknown policy name, it is ignored with
--   no error.</li>
--   <li><a>dpsNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>dpsAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>dpsMaxRecords</a> - The maximum number of items to be returned
--   with each call. The default value is 50 and the maximum value is
--   100.</li>
--   <li><a>dpsPolicyTypes</a> - One or more policy types. Valid values are
--   <tt>SimpleScaling</tt> and <tt>StepScaling</tt> .</li>
--   </ul>
describePolicies :: DescribePolicies

-- | <i>See:</i> <a>describePolicies</a> smart constructor.
data DescribePolicies

-- | The names of one or more policies. If you omit this parameter, all
--   policies are described. If an group name is provided, the results are
--   limited to that group. This list is limited to 50 items. If you
--   specify an unknown policy name, it is ignored with no error.
dpsPolicyNames :: Lens' DescribePolicies [Text]

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
dpsNextToken :: Lens' DescribePolicies (Maybe Text)

-- | The name of the Auto Scaling group.
dpsAutoScalingGroupName :: Lens' DescribePolicies (Maybe Text)

-- | The maximum number of items to be returned with each call. The default
--   value is 50 and the maximum value is 100.
dpsMaxRecords :: Lens' DescribePolicies (Maybe Int)

-- | One or more policy types. Valid values are <tt>SimpleScaling</tt> and
--   <tt>StepScaling</tt> .
dpsPolicyTypes :: Lens' DescribePolicies [Text]

-- | Creates a value of <a>DescribePoliciesResponse</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>dprsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dprsScalingPolicies</a> - The scaling policies.</li>
--   <li><a>dprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describePoliciesResponse :: Int -> DescribePoliciesResponse

-- | <i>See:</i> <a>describePoliciesResponse</a> smart constructor.
data DescribePoliciesResponse

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dprsNextToken :: Lens' DescribePoliciesResponse (Maybe Text)

-- | The scaling policies.
dprsScalingPolicies :: Lens' DescribePoliciesResponse [ScalingPolicy]

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


-- | Describes the notification actions associated with the specified Auto
--   Scaling group.
--   
--   This operation returns paginated results.
module Network.AWS.AutoScaling.DescribeNotificationConfigurations

-- | Creates a value of <a>DescribeNotificationConfigurations</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>dncAutoScalingGroupNames</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>dncNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>dncMaxRecords</a> - The maximum number of items to return with
--   this call. The default value is 50 and the maximum value is 100.</li>
--   </ul>
describeNotificationConfigurations :: DescribeNotificationConfigurations

-- | <i>See:</i> <a>describeNotificationConfigurations</a> smart
--   constructor.
data DescribeNotificationConfigurations

-- | The name of the Auto Scaling group.
dncAutoScalingGroupNames :: Lens' DescribeNotificationConfigurations [Text]

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
dncNextToken :: Lens' DescribeNotificationConfigurations (Maybe Text)

-- | The maximum number of items to return with this call. The default
--   value is 50 and the maximum value is 100.
dncMaxRecords :: Lens' DescribeNotificationConfigurations (Maybe Int)

-- | Creates a value of <a>DescribeNotificationConfigurationsResponse</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>dncrsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dncrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dncrsNotificationConfigurations</a> - The notification
--   configurations.</li>
--   </ul>
describeNotificationConfigurationsResponse :: Int -> DescribeNotificationConfigurationsResponse

-- | <i>See:</i> <a>describeNotificationConfigurationsResponse</a> smart
--   constructor.
data DescribeNotificationConfigurationsResponse

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dncrsNextToken :: Lens' DescribeNotificationConfigurationsResponse (Maybe Text)

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

-- | The notification configurations.
dncrsNotificationConfigurations :: Lens' DescribeNotificationConfigurationsResponse [NotificationConfiguration]
instance GHC.Generics.Generic Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurationsResponse
instance Data.Data.Data Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurationsResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurationsResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurationsResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurationsResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance Data.Data.Data Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance GHC.Show.Show Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance GHC.Read.Read Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance GHC.Classes.Eq Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurationsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations


-- | Describes the available CloudWatch metrics for Auto Scaling.
--   
--   Note that the <tt>GroupStandbyInstances</tt> metric is not returned by
--   default. You must explicitly request this metric when calling
--   <tt>EnableMetricsCollection</tt> .
module Network.AWS.AutoScaling.DescribeMetricCollectionTypes

-- | Creates a value of <a>DescribeMetricCollectionTypes</a> with the
--   minimum fields required to make a request.
describeMetricCollectionTypes :: DescribeMetricCollectionTypes

-- | <i>See:</i> <a>describeMetricCollectionTypes</a> smart constructor.
data DescribeMetricCollectionTypes

-- | Creates a value of <a>DescribeMetricCollectionTypesResponse</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>dmctrsMetrics</a> - One or more metrics.</li>
--   <li><a>dmctrsGranularities</a> - The granularities for the
--   metrics.</li>
--   <li><a>dmctrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeMetricCollectionTypesResponse :: Int -> DescribeMetricCollectionTypesResponse

-- | <i>See:</i> <a>describeMetricCollectionTypesResponse</a> smart
--   constructor.
data DescribeMetricCollectionTypesResponse

-- | One or more metrics.
dmctrsMetrics :: Lens' DescribeMetricCollectionTypesResponse [MetricCollectionType]

-- | The granularities for the metrics.
dmctrsGranularities :: Lens' DescribeMetricCollectionTypesResponse [MetricGranularityType]

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


-- | Describes the load balancers for the specified Auto Scaling group.
--   
--   Note that this operation describes only Classic Load Balancers. If you
--   have Application Load Balancers, use
--   <tt>DescribeLoadBalancerTargetGroups</tt> instead.
module Network.AWS.AutoScaling.DescribeLoadBalancers

-- | Creates a value of <a>DescribeLoadBalancers</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>dlbNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>dlbMaxRecords</a> - The maximum number of items to return with
--   this call. The default value is 100 and the maximum value is 100.</li>
--   <li><a>dlbAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
describeLoadBalancers :: Text -> DescribeLoadBalancers

-- | <i>See:</i> <a>describeLoadBalancers</a> smart constructor.
data DescribeLoadBalancers

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
dlbNextToken :: Lens' DescribeLoadBalancers (Maybe Text)

-- | The maximum number of items to return with this call. The default
--   value is 100 and the maximum value is 100.
dlbMaxRecords :: Lens' DescribeLoadBalancers (Maybe Int)

-- | The name of the Auto Scaling group.
dlbAutoScalingGroupName :: Lens' DescribeLoadBalancers Text

-- | Creates a value of <a>DescribeLoadBalancersResponse</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>dlbrsLoadBalancers</a> - The load balancers.</li>
--   <li><a>dlbrsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dlbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLoadBalancersResponse :: Int -> DescribeLoadBalancersResponse

-- | <i>See:</i> <a>describeLoadBalancersResponse</a> smart constructor.
data DescribeLoadBalancersResponse

-- | The load balancers.
dlbrsLoadBalancers :: Lens' DescribeLoadBalancersResponse [LoadBalancerState]

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dlbrsNextToken :: Lens' DescribeLoadBalancersResponse (Maybe Text)

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


-- | Describes the target groups for the specified Auto Scaling group.
module Network.AWS.AutoScaling.DescribeLoadBalancerTargetGroups

-- | Creates a value of <a>DescribeLoadBalancerTargetGroups</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>dlbtgsNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>dlbtgsMaxRecords</a> - The maximum number of items to return
--   with this call. The default value is 100 and the maximum value is
--   100.</li>
--   <li><a>dlbtgsAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
describeLoadBalancerTargetGroups :: Text -> DescribeLoadBalancerTargetGroups

-- | <i>See:</i> <a>describeLoadBalancerTargetGroups</a> smart constructor.
data DescribeLoadBalancerTargetGroups

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
dlbtgsNextToken :: Lens' DescribeLoadBalancerTargetGroups (Maybe Text)

-- | The maximum number of items to return with this call. The default
--   value is 100 and the maximum value is 100.
dlbtgsMaxRecords :: Lens' DescribeLoadBalancerTargetGroups (Maybe Int)

-- | The name of the Auto Scaling group.
dlbtgsAutoScalingGroupName :: Lens' DescribeLoadBalancerTargetGroups Text

-- | Creates a value of <a>DescribeLoadBalancerTargetGroupsResponse</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>dlbtgsrsLoadBalancerTargetGroups</a> - Information about the
--   target groups.</li>
--   <li><a>dlbtgsrsNextToken</a> - The token to use when requesting the
--   next set of items. If there are no additional items to return, the
--   string is empty.</li>
--   <li><a>dlbtgsrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
describeLoadBalancerTargetGroupsResponse :: Int -> DescribeLoadBalancerTargetGroupsResponse

-- | <i>See:</i> <a>describeLoadBalancerTargetGroupsResponse</a> smart
--   constructor.
data DescribeLoadBalancerTargetGroupsResponse

-- | Information about the target groups.
dlbtgsrsLoadBalancerTargetGroups :: Lens' DescribeLoadBalancerTargetGroupsResponse [LoadBalancerTargetGroupState]

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dlbtgsrsNextToken :: Lens' DescribeLoadBalancerTargetGroupsResponse (Maybe Text)

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


-- | Describes the lifecycle hooks for the specified Auto Scaling group.
module Network.AWS.AutoScaling.DescribeLifecycleHooks

-- | Creates a value of <a>DescribeLifecycleHooks</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>dlhLifecycleHookNames</a> - The names of one or more lifecycle
--   hooks. If you omit this parameter, all lifecycle hooks are
--   described.</li>
--   <li><a>dlhAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
describeLifecycleHooks :: Text -> DescribeLifecycleHooks

-- | <i>See:</i> <a>describeLifecycleHooks</a> smart constructor.
data DescribeLifecycleHooks

-- | The names of one or more lifecycle hooks. If you omit this parameter,
--   all lifecycle hooks are described.
dlhLifecycleHookNames :: Lens' DescribeLifecycleHooks [Text]

-- | The name of the Auto Scaling group.
dlhAutoScalingGroupName :: Lens' DescribeLifecycleHooks Text

-- | Creates a value of <a>DescribeLifecycleHooksResponse</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>dlhrsLifecycleHooks</a> - The lifecycle hooks for the specified
--   group.</li>
--   <li><a>dlhrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLifecycleHooksResponse :: Int -> DescribeLifecycleHooksResponse

-- | <i>See:</i> <a>describeLifecycleHooksResponse</a> smart constructor.
data DescribeLifecycleHooksResponse

-- | The lifecycle hooks for the specified group.
dlhrsLifecycleHooks :: Lens' DescribeLifecycleHooksResponse [LifecycleHook]

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


-- | Describes the available types of lifecycle hooks.
module Network.AWS.AutoScaling.DescribeLifecycleHookTypes

-- | Creates a value of <a>DescribeLifecycleHookTypes</a> with the minimum
--   fields required to make a request.
describeLifecycleHookTypes :: DescribeLifecycleHookTypes

-- | <i>See:</i> <a>describeLifecycleHookTypes</a> smart constructor.
data DescribeLifecycleHookTypes

-- | Creates a value of <a>DescribeLifecycleHookTypesResponse</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>dlhtrsLifecycleHookTypes</a> - The lifecycle hook types.</li>
--   <li><a>dlhtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLifecycleHookTypesResponse :: Int -> DescribeLifecycleHookTypesResponse

-- | <i>See:</i> <a>describeLifecycleHookTypesResponse</a> smart
--   constructor.
data DescribeLifecycleHookTypesResponse

-- | The lifecycle hook types.
dlhtrsLifecycleHookTypes :: Lens' DescribeLifecycleHookTypesResponse [Text]

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


-- | Describes one or more launch configurations.
--   
--   This operation returns paginated results.
module Network.AWS.AutoScaling.DescribeLaunchConfigurations

-- | Creates a value of <a>DescribeLaunchConfigurations</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>dlcLaunchConfigurationNames</a> - The launch configuration
--   names. If you omit this parameter, all launch configurations are
--   described.</li>
--   <li><a>dlcNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>dlcMaxRecords</a> - The maximum number of items to return with
--   this call. The default value is 50 and the maximum value is 100.</li>
--   </ul>
describeLaunchConfigurations :: DescribeLaunchConfigurations

-- | <i>See:</i> <a>describeLaunchConfigurations</a> smart constructor.
data DescribeLaunchConfigurations

-- | The launch configuration names. If you omit this parameter, all launch
--   configurations are described.
dlcLaunchConfigurationNames :: Lens' DescribeLaunchConfigurations [Text]

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
dlcNextToken :: Lens' DescribeLaunchConfigurations (Maybe Text)

-- | The maximum number of items to return with this call. The default
--   value is 50 and the maximum value is 100.
dlcMaxRecords :: Lens' DescribeLaunchConfigurations (Maybe Int)

-- | Creates a value of <a>DescribeLaunchConfigurationsResponse</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>dlcrsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dlcrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dlcrsLaunchConfigurations</a> - The launch configurations.</li>
--   </ul>
describeLaunchConfigurationsResponse :: Int -> DescribeLaunchConfigurationsResponse

-- | <i>See:</i> <a>describeLaunchConfigurationsResponse</a> smart
--   constructor.
data DescribeLaunchConfigurationsResponse

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dlcrsNextToken :: Lens' DescribeLaunchConfigurationsResponse (Maybe Text)

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

-- | The launch configurations.
dlcrsLaunchConfigurations :: Lens' DescribeLaunchConfigurationsResponse [LaunchConfiguration]
instance GHC.Generics.Generic Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurationsResponse
instance Data.Data.Data Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurationsResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurationsResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurationsResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurationsResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance Data.Data.Data Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance GHC.Show.Show Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance GHC.Read.Read Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance GHC.Classes.Eq Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurationsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations


-- | Describes the notification types that are supported by Auto Scaling.
module Network.AWS.AutoScaling.DescribeAutoScalingNotificationTypes

-- | Creates a value of <a>DescribeAutoScalingNotificationTypes</a> with
--   the minimum fields required to make a request.
describeAutoScalingNotificationTypes :: DescribeAutoScalingNotificationTypes

-- | <i>See:</i> <a>describeAutoScalingNotificationTypes</a> smart
--   constructor.
data DescribeAutoScalingNotificationTypes

-- | Creates a value of <a>DescribeAutoScalingNotificationTypesResponse</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>dasntrsAutoScalingNotificationTypes</a> - The notification
--   types.</li>
--   <li><a>dasntrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAutoScalingNotificationTypesResponse :: Int -> DescribeAutoScalingNotificationTypesResponse

-- | <i>See:</i> <a>describeAutoScalingNotificationTypesResponse</a> smart
--   constructor.
data DescribeAutoScalingNotificationTypesResponse

-- | The notification types.
dasntrsAutoScalingNotificationTypes :: Lens' DescribeAutoScalingNotificationTypesResponse [Text]

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


-- | Describes one or more Auto Scaling instances.
--   
--   This operation returns paginated results.
module Network.AWS.AutoScaling.DescribeAutoScalingInstances

-- | Creates a value of <a>DescribeAutoScalingInstances</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>dasiNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>dasiInstanceIds</a> - The instances to describe; up to 50
--   instance IDs. If you omit this parameter, all Auto Scaling instances
--   are described. If you specify an ID that does not exist, it is ignored
--   with no error.</li>
--   <li><a>dasiMaxRecords</a> - The maximum number of items to return with
--   this call. The default value is 50 and the maximum value is 50.</li>
--   </ul>
describeAutoScalingInstances :: DescribeAutoScalingInstances

-- | <i>See:</i> <a>describeAutoScalingInstances</a> smart constructor.
data DescribeAutoScalingInstances

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
dasiNextToken :: Lens' DescribeAutoScalingInstances (Maybe Text)

-- | The instances to describe; up to 50 instance IDs. If you omit this
--   parameter, all Auto Scaling instances are described. If you specify an
--   ID that does not exist, it is ignored with no error.
dasiInstanceIds :: Lens' DescribeAutoScalingInstances [Text]

-- | The maximum number of items to return with this call. The default
--   value is 50 and the maximum value is 50.
dasiMaxRecords :: Lens' DescribeAutoScalingInstances (Maybe Int)

-- | Creates a value of <a>DescribeAutoScalingInstancesResponse</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>dasirsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dasirsAutoScalingInstances</a> - The instances.</li>
--   <li><a>dasirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAutoScalingInstancesResponse :: Int -> DescribeAutoScalingInstancesResponse

-- | <i>See:</i> <a>describeAutoScalingInstancesResponse</a> smart
--   constructor.
data DescribeAutoScalingInstancesResponse

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dasirsNextToken :: Lens' DescribeAutoScalingInstancesResponse (Maybe Text)

-- | The instances.
dasirsAutoScalingInstances :: Lens' DescribeAutoScalingInstancesResponse [AutoScalingInstanceDetails]

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


-- | Describes one or more Auto Scaling groups.
--   
--   This operation returns paginated results.
module Network.AWS.AutoScaling.DescribeAutoScalingGroups

-- | Creates a value of <a>DescribeAutoScalingGroups</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>dasgAutoScalingGroupNames</a> - The names of the Auto Scaling
--   groups. If you omit this parameter, all Auto Scaling groups are
--   described.</li>
--   <li><a>dasgNextToken</a> - The token for the next set of items to
--   return. (You received this token from a previous call.)</li>
--   <li><a>dasgMaxRecords</a> - The maximum number of items to return with
--   this call. The default value is 50 and the maximum value is 100.</li>
--   </ul>
describeAutoScalingGroups :: DescribeAutoScalingGroups

-- | <i>See:</i> <a>describeAutoScalingGroups</a> smart constructor.
data DescribeAutoScalingGroups

-- | The names of the Auto Scaling groups. If you omit this parameter, all
--   Auto Scaling groups are described.
dasgAutoScalingGroupNames :: Lens' DescribeAutoScalingGroups [Text]

-- | The token for the next set of items to return. (You received this
--   token from a previous call.)
dasgNextToken :: Lens' DescribeAutoScalingGroups (Maybe Text)

-- | The maximum number of items to return with this call. The default
--   value is 50 and the maximum value is 100.
dasgMaxRecords :: Lens' DescribeAutoScalingGroups (Maybe Int)

-- | Creates a value of <a>DescribeAutoScalingGroupsResponse</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>dasgrsNextToken</a> - The token to use when requesting the next
--   set of items. If there are no additional items to return, the string
--   is empty.</li>
--   <li><a>dasgrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dasgrsAutoScalingGroups</a> - The groups.</li>
--   </ul>
describeAutoScalingGroupsResponse :: Int -> DescribeAutoScalingGroupsResponse

-- | <i>See:</i> <a>describeAutoScalingGroupsResponse</a> smart
--   constructor.
data DescribeAutoScalingGroupsResponse

-- | The token to use when requesting the next set of items. If there are
--   no additional items to return, the string is empty.
dasgrsNextToken :: Lens' DescribeAutoScalingGroupsResponse (Maybe Text)

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

-- | The groups.
dasgrsAutoScalingGroups :: Lens' DescribeAutoScalingGroupsResponse [AutoScalingGroup]
instance GHC.Generics.Generic Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroupsResponse
instance Data.Data.Data Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroupsResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroupsResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroupsResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroupsResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance Data.Data.Data Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance GHC.Show.Show Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance GHC.Read.Read Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance GHC.Classes.Eq Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroupsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups


-- | Describes the policy adjustment types for use with
--   <tt>PutScalingPolicy</tt> .
module Network.AWS.AutoScaling.DescribeAdjustmentTypes

-- | Creates a value of <a>DescribeAdjustmentTypes</a> with the minimum
--   fields required to make a request.
describeAdjustmentTypes :: DescribeAdjustmentTypes

-- | <i>See:</i> <a>describeAdjustmentTypes</a> smart constructor.
data DescribeAdjustmentTypes

-- | Creates a value of <a>DescribeAdjustmentTypesResponse</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>datrsAdjustmentTypes</a> - The policy adjustment types.</li>
--   <li><a>datrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAdjustmentTypesResponse :: Int -> DescribeAdjustmentTypesResponse

-- | <i>See:</i> <a>describeAdjustmentTypesResponse</a> smart constructor.
data DescribeAdjustmentTypesResponse

-- | The policy adjustment types.
datrsAdjustmentTypes :: Lens' DescribeAdjustmentTypesResponse [AdjustmentType]

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


-- | Describes the current Auto Scaling resource limits for your AWS
--   account.
--   
--   For information about requesting an increase in these limits, see
--   <a>Auto Scaling Limits</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.DescribeAccountLimits

-- | Creates a value of <a>DescribeAccountLimits</a> with the minimum
--   fields required to make a request.
describeAccountLimits :: DescribeAccountLimits

-- | <i>See:</i> <a>describeAccountLimits</a> smart constructor.
data DescribeAccountLimits

-- | Creates a value of <a>DescribeAccountLimitsResponse</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>dalrsNumberOfLaunchConfigurations</a> - The current number of
--   launch configurations for your AWS account.</li>
--   <li><a>dalrsNumberOfAutoScalingGroups</a> - The current number of
--   groups for your AWS account.</li>
--   <li><a>dalrsMaxNumberOfAutoScalingGroups</a> - The maximum number of
--   groups allowed for your AWS account. The default limit is 20 per
--   region.</li>
--   <li><a>dalrsMaxNumberOfLaunchConfigurations</a> - The maximum number
--   of launch configurations allowed for your AWS account. The default
--   limit is 100 per region.</li>
--   <li><a>dalrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAccountLimitsResponse :: Int -> DescribeAccountLimitsResponse

-- | <i>See:</i> <a>describeAccountLimitsResponse</a> smart constructor.
data DescribeAccountLimitsResponse

-- | The current number of launch configurations for your AWS account.
dalrsNumberOfLaunchConfigurations :: Lens' DescribeAccountLimitsResponse (Maybe Int)

-- | The current number of groups for your AWS account.
dalrsNumberOfAutoScalingGroups :: Lens' DescribeAccountLimitsResponse (Maybe Int)

-- | The maximum number of groups allowed for your AWS account. The default
--   limit is 20 per region.
dalrsMaxNumberOfAutoScalingGroups :: Lens' DescribeAccountLimitsResponse (Maybe Int)

-- | The maximum number of launch configurations allowed for your AWS
--   account. The default limit is 100 per region.
dalrsMaxNumberOfLaunchConfigurations :: Lens' DescribeAccountLimitsResponse (Maybe Int)

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


-- | Deletes the specified tags.
module Network.AWS.AutoScaling.DeleteTags

-- | Creates a value of <a>DeleteTags</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>dtTags</a> - One or more tags.</li>
--   </ul>
deleteTags :: DeleteTags

-- | <i>See:</i> <a>deleteTags</a> smart constructor.
data DeleteTags

-- | One or more tags.
dtTags :: Lens' DeleteTags [Tag]

-- | Creates a value of <a>DeleteTagsResponse</a> with the minimum fields
--   required to make a request.
deleteTagsResponse :: DeleteTagsResponse

-- | <i>See:</i> <a>deleteTagsResponse</a> smart constructor.
data DeleteTagsResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteTags.DeleteTagsResponse
instance Data.Data.Data Network.AWS.AutoScaling.DeleteTags.DeleteTagsResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteTags.DeleteTagsResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteTags.DeleteTagsResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteTags.DeleteTagsResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance Data.Data.Data Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteTags.DeleteTagsResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DeleteTags.DeleteTags
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DeleteTags.DeleteTags


-- | Deletes the specified scheduled action.
module Network.AWS.AutoScaling.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>dsaAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>dsaScheduledActionName</a> - The name of the action to
--   delete.</li>
--   </ul>
deleteScheduledAction :: Text -> Text -> DeleteScheduledAction

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

-- | The name of the Auto Scaling group.
dsaAutoScalingGroupName :: Lens' DeleteScheduledAction Text

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

-- | Creates a value of <a>DeleteScheduledActionResponse</a> with the
--   minimum fields required to make a request.
deleteScheduledActionResponse :: DeleteScheduledActionResponse

-- | <i>See:</i> <a>deleteScheduledActionResponse</a> smart constructor.
data DeleteScheduledActionResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance Data.Data.Data Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Data.Data.Data Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledAction


-- | Deletes the specified Auto Scaling policy.
--   
--   Deleting a policy deletes the underlying alarm action, but does not
--   delete the alarm, even if it no longer has an associated action.
module Network.AWS.AutoScaling.DeletePolicy

-- | Creates a value of <a>DeletePolicy</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>dpAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>dpPolicyName</a> - The name or Amazon Resource Name (ARN) of
--   the policy.</li>
--   </ul>
deletePolicy :: Text -> DeletePolicy

-- | <i>See:</i> <a>deletePolicy</a> smart constructor.
data DeletePolicy

-- | The name of the Auto Scaling group.
dpAutoScalingGroupName :: Lens' DeletePolicy (Maybe Text)

-- | The name or Amazon Resource Name (ARN) of the policy.
dpPolicyName :: Lens' DeletePolicy Text

-- | Creates a value of <a>DeletePolicyResponse</a> with the minimum fields
--   required to make a request.
deletePolicyResponse :: DeletePolicyResponse

-- | <i>See:</i> <a>deletePolicyResponse</a> smart constructor.
data DeletePolicyResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeletePolicy.DeletePolicyResponse
instance Data.Data.Data Network.AWS.AutoScaling.DeletePolicy.DeletePolicyResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DeletePolicy.DeletePolicyResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DeletePolicy.DeletePolicyResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeletePolicy.DeletePolicyResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance Data.Data.Data Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance GHC.Show.Show Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance GHC.Read.Read Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeletePolicy.DeletePolicyResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DeletePolicy.DeletePolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DeletePolicy.DeletePolicy


-- | Deletes the specified notification.
module Network.AWS.AutoScaling.DeleteNotificationConfiguration

-- | Creates a value of <a>DeleteNotificationConfiguration</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>dncAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>dncTopicARN</a> - The Amazon Resource Name (ARN) of the Amazon
--   Simple Notification Service (SNS) topic.</li>
--   </ul>
deleteNotificationConfiguration :: Text -> Text -> DeleteNotificationConfiguration

-- | <i>See:</i> <a>deleteNotificationConfiguration</a> smart constructor.
data DeleteNotificationConfiguration

-- | The name of the Auto Scaling group.
dncAutoScalingGroupName :: Lens' DeleteNotificationConfiguration Text

-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification
--   Service (SNS) topic.
dncTopicARN :: Lens' DeleteNotificationConfiguration Text

-- | Creates a value of <a>DeleteNotificationConfigurationResponse</a> with
--   the minimum fields required to make a request.
deleteNotificationConfigurationResponse :: DeleteNotificationConfigurationResponse

-- | <i>See:</i> <a>deleteNotificationConfigurationResponse</a> smart
--   constructor.
data DeleteNotificationConfigurationResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfigurationResponse
instance Data.Data.Data Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfigurationResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfigurationResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfigurationResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfigurationResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance Data.Data.Data Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfigurationResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfiguration


-- | Deletes the specified lifecycle hook.
--   
--   If there are any outstanding lifecycle actions, they are completed
--   first (<tt>ABANDON</tt> for launching instances, <tt>CONTINUE</tt> for
--   terminating instances).
module Network.AWS.AutoScaling.DeleteLifecycleHook

-- | Creates a value of <a>DeleteLifecycleHook</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>delLifecycleHookName</a> - The name of the lifecycle hook.</li>
--   <li><a>delAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
deleteLifecycleHook :: Text -> Text -> DeleteLifecycleHook

-- | <i>See:</i> <a>deleteLifecycleHook</a> smart constructor.
data DeleteLifecycleHook

-- | The name of the lifecycle hook.
delLifecycleHookName :: Lens' DeleteLifecycleHook Text

-- | The name of the Auto Scaling group.
delAutoScalingGroupName :: Lens' DeleteLifecycleHook Text

-- | Creates a value of <a>DeleteLifecycleHookResponse</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>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteLifecycleHookResponse :: Int -> DeleteLifecycleHookResponse

-- | <i>See:</i> <a>deleteLifecycleHookResponse</a> smart constructor.
data DeleteLifecycleHookResponse

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


-- | Deletes the specified launch configuration.
--   
--   The launch configuration must not be attached to an Auto Scaling
--   group. When this call completes, the launch configuration is no longer
--   available for use.
module Network.AWS.AutoScaling.DeleteLaunchConfiguration

-- | Creates a value of <a>DeleteLaunchConfiguration</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>dlcLaunchConfigurationName</a> - The name of the launch
--   configuration.</li>
--   </ul>
deleteLaunchConfiguration :: Text -> DeleteLaunchConfiguration

-- | <i>See:</i> <a>deleteLaunchConfiguration</a> smart constructor.
data DeleteLaunchConfiguration

-- | The name of the launch configuration.
dlcLaunchConfigurationName :: Lens' DeleteLaunchConfiguration Text

-- | Creates a value of <a>DeleteLaunchConfigurationResponse</a> with the
--   minimum fields required to make a request.
deleteLaunchConfigurationResponse :: DeleteLaunchConfigurationResponse

-- | <i>See:</i> <a>deleteLaunchConfigurationResponse</a> smart
--   constructor.
data DeleteLaunchConfigurationResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfigurationResponse
instance Data.Data.Data Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfigurationResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfigurationResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfigurationResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfigurationResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance Data.Data.Data Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfigurationResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfiguration


-- | Deletes the specified Auto Scaling group.
--   
--   If the group has instances or scaling activities in progress, you must
--   specify the option to force the deletion in order for it to succeed.
--   
--   If the group has policies, deleting the group deletes the policies,
--   the underlying alarm actions, and any alarm that no longer has an
--   associated action.
--   
--   To remove instances from the Auto Scaling group before deleting it,
--   call <tt>DetachInstances</tt> with the list of instances and the
--   option to decrement the desired capacity so that Auto Scaling does not
--   launch replacement instances.
--   
--   To terminate all instances before deleting the Auto Scaling group,
--   call <tt>UpdateAutoScalingGroup</tt> and set the minimum size and
--   desired capacity of the Auto Scaling group to zero.
module Network.AWS.AutoScaling.DeleteAutoScalingGroup

-- | Creates a value of <a>DeleteAutoScalingGroup</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>dasgForceDelete</a> - Specifies that the group will be deleted
--   along with all instances associated with the group, without waiting
--   for all instances to be terminated. This parameter also deletes any
--   lifecycle actions associated with the group.</li>
--   <li><a>dasgAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
deleteAutoScalingGroup :: Text -> DeleteAutoScalingGroup

-- | <i>See:</i> <a>deleteAutoScalingGroup</a> smart constructor.
data DeleteAutoScalingGroup

-- | Specifies that the group will be deleted along with all instances
--   associated with the group, without waiting for all instances to be
--   terminated. This parameter also deletes any lifecycle actions
--   associated with the group.
dasgForceDelete :: Lens' DeleteAutoScalingGroup (Maybe Bool)

-- | The name of the Auto Scaling group.
dasgAutoScalingGroupName :: Lens' DeleteAutoScalingGroup Text

-- | Creates a value of <a>DeleteAutoScalingGroupResponse</a> with the
--   minimum fields required to make a request.
deleteAutoScalingGroupResponse :: DeleteAutoScalingGroupResponse

-- | <i>See:</i> <a>deleteAutoScalingGroupResponse</a> smart constructor.
data DeleteAutoScalingGroupResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroupResponse
instance Data.Data.Data Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroupResponse
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroupResponse
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroupResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroupResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance Data.Data.Data Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance GHC.Show.Show Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance GHC.Read.Read Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance GHC.Classes.Eq Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroupResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroup


-- | Creates or updates tags for the specified Auto Scaling group.
--   
--   When you specify a tag with a key that already exists, the operation
--   overwrites the previous tag definition, and you do not get an error
--   message.
--   
--   For more information, see <a>Tagging Auto Scaling Groups and
--   Instances</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.CreateOrUpdateTags

-- | Creates a value of <a>CreateOrUpdateTags</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>coutTags</a> - One or more tags.</li>
--   </ul>
createOrUpdateTags :: CreateOrUpdateTags

-- | <i>See:</i> <a>createOrUpdateTags</a> smart constructor.
data CreateOrUpdateTags

-- | One or more tags.
coutTags :: Lens' CreateOrUpdateTags [Tag]

-- | Creates a value of <a>CreateOrUpdateTagsResponse</a> with the minimum
--   fields required to make a request.
createOrUpdateTagsResponse :: CreateOrUpdateTagsResponse

-- | <i>See:</i> <a>createOrUpdateTagsResponse</a> smart constructor.
data CreateOrUpdateTagsResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTagsResponse
instance Data.Data.Data Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTagsResponse
instance GHC.Show.Show Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTagsResponse
instance GHC.Read.Read Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTagsResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTagsResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance Data.Data.Data Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance GHC.Show.Show Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance GHC.Read.Read Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance GHC.Classes.Eq Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTagsResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTags


-- | Creates a launch configuration.
--   
--   If you exceed your maximum limit of launch configurations, the call
--   fails. For information about viewing this limit, see
--   <tt>DescribeAccountLimits</tt> . For information about updating this
--   limit, see <a>Auto Scaling Limits</a> in the <i>Auto Scaling User
--   Guide</i> .
--   
--   For more information, see <a>Launch Configurations</a> in the <i>Auto
--   Scaling User Guide</i> .
module Network.AWS.AutoScaling.CreateLaunchConfiguration

-- | Creates a value of <a>CreateLaunchConfiguration</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>clcInstanceId</a> - The ID of the instance to use to create the
--   launch configuration. The new launch configuration derives attributes
--   from the instance, with the exception of the block device mapping. If
--   you do not specify <tt>InstanceId</tt> , you must specify both
--   <tt>ImageId</tt> and <tt>InstanceType</tt> . To create a launch
--   configuration with a block device mapping or override any other
--   instance attributes, specify them as part of the same request. For
--   more information, see <a>Create a Launch Configuration Using an EC2
--   Instance</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>clcAssociatePublicIPAddress</a> - Used for groups that launch
--   instances into a virtual private cloud (VPC). Specifies whether to
--   assign a public IP address to each instance. For more information, see
--   <a>Launching Auto Scaling Instances in a VPC</a> in the <i>Auto
--   Scaling User Guide</i> . If you specify this parameter, be sure to
--   specify at least one subnet when you create your group. Default: If
--   the instance is launched into a default subnet, the default is to
--   assign a public IP address. If the instance is launched into a
--   nondefault subnet, the default is not to assign a public IP
--   address.</li>
--   <li><a>clcSecurityGroups</a> - One or more security groups with which
--   to associate the instances. If your instances are launched in
--   EC2-Classic, you can either specify security group names or the
--   security group IDs. For more information about security groups for
--   EC2-Classic, see <a>Amazon EC2 Security Groups</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> . If your instances are launched
--   into a VPC, specify security group IDs. For more information, see
--   <a>Security Groups for Your VPC</a> in the <i>Amazon Virtual Private
--   Cloud User Guide</i> .</li>
--   <li><a>clcSpotPrice</a> - The maximum hourly price to be paid for any
--   Spot Instance launched to fulfill the request. Spot Instances are
--   launched when the price you specify exceeds the current Spot market
--   price. For more information, see <a>Launching Spot Instances in Your
--   Auto Scaling Group</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>clcInstanceMonitoring</a> - Enables detailed monitoring
--   (<tt>true</tt> ) or basic monitoring (<tt>false</tt> ) for the Auto
--   Scaling instances. The default is <tt>true</tt> .</li>
--   <li><a>clcKeyName</a> - The name of the key pair. For more
--   information, see <a>Amazon EC2 Key Pairs</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .</li>
--   <li><a>clcClassicLinkVPCSecurityGroups</a> - The IDs of one or more
--   security groups for the specified ClassicLink-enabled VPC. This
--   parameter is required if you specify a ClassicLink-enabled VPC, and is
--   not supported otherwise. For more information, see <a>ClassicLink</a>
--   in the <i>Amazon Elastic Compute Cloud User Guide</i> .</li>
--   <li><a>clcRAMDiskId</a> - The ID of the RAM disk associated with the
--   AMI.</li>
--   <li><a>clcKernelId</a> - The ID of the kernel associated with the
--   AMI.</li>
--   <li><a>clcInstanceType</a> - The instance type of the EC2 instance. If
--   you do not specify <tt>InstanceId</tt> , you must specify
--   <tt>InstanceType</tt> . For information about available instance
--   types, see <a>Available Instance Types</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide.</i></li>
--   <li><a>clcEBSOptimized</a> - Indicates whether the instance is
--   optimized for Amazon EBS I<i>O. By default, the instance is not
--   optimized for EBS I</i>O. The optimization provides dedicated
--   throughput to Amazon EBS and an optimized configuration stack to
--   provide optimal I<i>O performance. This optimization is not available
--   with all instance types. Additional usage charges apply. For more
--   information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSOptimized.html
--   Amazon EBS-Optimized Instances&gt; in the </i>Amazon Elastic Compute
--   Cloud User Guide/ .</li>
--   <li><a>clcUserData</a> - The user data to make available to the
--   launched EC2 instances. For more information, see <a>Instance Metadata
--   and User Data</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>clcClassicLinkVPCId</a> - The ID of a ClassicLink-enabled VPC
--   to link your EC2-Classic instances to. This parameter is supported
--   only if you are launching EC2-Classic instances. For more information,
--   see <a>ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>clcIAMInstanceProfile</a> - The name or the Amazon Resource
--   Name (ARN) of the instance profile associated with the IAM role for
--   the instance. EC2 instances launched with an IAM role will
--   automatically have AWS security credentials available. You can use IAM
--   roles with Auto Scaling to automatically enable applications running
--   on your EC2 instances to securely access other AWS resources. For more
--   information, see <a>Launch Auto Scaling Instances with an IAM Role</a>
--   in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>clcImageId</a> - The ID of the Amazon Machine Image (AMI) to
--   use to launch your EC2 instances. If you do not specify
--   <tt>InstanceId</tt> , you must specify <tt>ImageId</tt> . For more
--   information, see <a>Finding an AMI</a> in the <i>Amazon Elastic
--   Compute Cloud User Guide</i> .</li>
--   <li><a>clcPlacementTenancy</a> - The tenancy of the instance. An
--   instance with a tenancy of <tt>dedicated</tt> runs on single-tenant
--   hardware and can only be launched into a VPC. You must set the value
--   of this parameter to <tt>dedicated</tt> if want to launch Dedicated
--   Instances into a shared tenancy VPC (VPC with instance placement
--   tenancy attribute set to <tt>default</tt> ). If you specify this
--   parameter, be sure to specify at least one subnet when you create your
--   group. For more information, see <a>Launching Auto Scaling Instances
--   in a VPC</a> in the <i>Auto Scaling User Guide</i> . Valid values:
--   <tt>default</tt> | <tt>dedicated</tt></li>
--   <li><a>clcBlockDeviceMappings</a> - One or more mappings that specify
--   how block devices are exposed to the instance. For more information,
--   see <a>Block Device Mapping</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> .</li>
--   <li><a>clcLaunchConfigurationName</a> - The name of the launch
--   configuration. This name must be unique within the scope of your AWS
--   account.</li>
--   </ul>
createLaunchConfiguration :: Text -> CreateLaunchConfiguration

-- | <i>See:</i> <a>createLaunchConfiguration</a> smart constructor.
data CreateLaunchConfiguration

-- | The ID of the instance to use to create the launch configuration. The
--   new launch configuration derives attributes from the instance, with
--   the exception of the block device mapping. If you do not specify
--   <tt>InstanceId</tt> , you must specify both <tt>ImageId</tt> and
--   <tt>InstanceType</tt> . To create a launch configuration with a block
--   device mapping or override any other instance attributes, specify them
--   as part of the same request. For more information, see <a>Create a
--   Launch Configuration Using an EC2 Instance</a> in the <i>Auto Scaling
--   User Guide</i> .
clcInstanceId :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | Used for groups that launch instances into a virtual private cloud
--   (VPC). Specifies whether to assign a public IP address to each
--   instance. For more information, see <a>Launching Auto Scaling
--   Instances in a VPC</a> in the <i>Auto Scaling User Guide</i> . If you
--   specify this parameter, be sure to specify at least one subnet when
--   you create your group. Default: If the instance is launched into a
--   default subnet, the default is to assign a public IP address. If the
--   instance is launched into a nondefault subnet, the default is not to
--   assign a public IP address.
clcAssociatePublicIPAddress :: Lens' CreateLaunchConfiguration (Maybe Bool)

-- | One or more security groups with which to associate the instances. If
--   your instances are launched in EC2-Classic, you can either specify
--   security group names or the security group IDs. For more information
--   about security groups for EC2-Classic, see <a>Amazon EC2 Security
--   Groups</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> . If
--   your instances are launched into a VPC, specify security group IDs.
--   For more information, see <a>Security Groups for Your VPC</a> in the
--   <i>Amazon Virtual Private Cloud User Guide</i> .
clcSecurityGroups :: Lens' CreateLaunchConfiguration [Text]

-- | The maximum hourly price to be paid for any Spot Instance launched to
--   fulfill the request. Spot Instances are launched when the price you
--   specify exceeds the current Spot market price. For more information,
--   see <a>Launching Spot Instances in Your Auto Scaling Group</a> in the
--   <i>Auto Scaling User Guide</i> .
clcSpotPrice :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | Enables detailed monitoring (<tt>true</tt> ) or basic monitoring
--   (<tt>false</tt> ) for the Auto Scaling instances. The default is
--   <tt>true</tt> .
clcInstanceMonitoring :: Lens' CreateLaunchConfiguration (Maybe InstanceMonitoring)

-- | The name of the key pair. For more information, see <a>Amazon EC2 Key
--   Pairs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
clcKeyName :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | The IDs of one or more security groups for the specified
--   ClassicLink-enabled VPC. This parameter is required if you specify a
--   ClassicLink-enabled VPC, and is not supported otherwise. For more
--   information, see <a>ClassicLink</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .
clcClassicLinkVPCSecurityGroups :: Lens' CreateLaunchConfiguration [Text]

-- | The ID of the RAM disk associated with the AMI.
clcRAMDiskId :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | The ID of the kernel associated with the AMI.
clcKernelId :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | The instance type of the EC2 instance. If you do not specify
--   <tt>InstanceId</tt> , you must specify <tt>InstanceType</tt> . For
--   information about available instance types, see <a>Available Instance
--   Types</a> in the <i>Amazon Elastic Compute Cloud User Guide.</i>
clcInstanceType :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | Indicates whether the instance is optimized for Amazon EBS I<i>O. By
--   default, the instance is not optimized for EBS I</i>O. The
--   optimization provides dedicated throughput to Amazon EBS and an
--   optimized configuration stack to provide optimal I<i>O performance.
--   This optimization is not available with all instance types. Additional
--   usage charges apply. For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>AWSEC2<i>latest</i>UserGuide<i>EBSOptimized.html
--   Amazon EBS-Optimized Instances&gt; in the </i>Amazon Elastic Compute
--   Cloud User Guide/ .
clcEBSOptimized :: Lens' CreateLaunchConfiguration (Maybe Bool)

-- | The user data to make available to the launched EC2 instances. For
--   more information, see <a>Instance Metadata and User Data</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
clcUserData :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances
--   to. This parameter is supported only if you are launching EC2-Classic
--   instances. For more information, see <a>ClassicLink</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
clcClassicLinkVPCId :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | The name or the Amazon Resource Name (ARN) of the instance profile
--   associated with the IAM role for the instance. EC2 instances launched
--   with an IAM role will automatically have AWS security credentials
--   available. You can use IAM roles with Auto Scaling to automatically
--   enable applications running on your EC2 instances to securely access
--   other AWS resources. For more information, see <a>Launch Auto Scaling
--   Instances with an IAM Role</a> in the <i>Auto Scaling User Guide</i> .
clcIAMInstanceProfile :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | The ID of the Amazon Machine Image (AMI) to use to launch your EC2
--   instances. If you do not specify <tt>InstanceId</tt> , you must
--   specify <tt>ImageId</tt> . For more information, see <a>Finding an
--   AMI</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
clcImageId :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | The tenancy of the instance. An instance with a tenancy of
--   <tt>dedicated</tt> runs on single-tenant hardware and can only be
--   launched into a VPC. You must set the value of this parameter to
--   <tt>dedicated</tt> if want to launch Dedicated Instances into a shared
--   tenancy VPC (VPC with instance placement tenancy attribute set to
--   <tt>default</tt> ). If you specify this parameter, be sure to specify
--   at least one subnet when you create your group. For more information,
--   see <a>Launching Auto Scaling Instances in a VPC</a> in the <i>Auto
--   Scaling User Guide</i> . Valid values: <tt>default</tt> |
--   <tt>dedicated</tt>
clcPlacementTenancy :: Lens' CreateLaunchConfiguration (Maybe Text)

-- | One or more mappings that specify how block devices are exposed to the
--   instance. For more information, see <a>Block Device Mapping</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
clcBlockDeviceMappings :: Lens' CreateLaunchConfiguration [BlockDeviceMapping]

-- | The name of the launch configuration. This name must be unique within
--   the scope of your AWS account.
clcLaunchConfigurationName :: Lens' CreateLaunchConfiguration Text

-- | Creates a value of <a>CreateLaunchConfigurationResponse</a> with the
--   minimum fields required to make a request.
createLaunchConfigurationResponse :: CreateLaunchConfigurationResponse

-- | <i>See:</i> <a>createLaunchConfigurationResponse</a> smart
--   constructor.
data CreateLaunchConfigurationResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfigurationResponse
instance Data.Data.Data Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfigurationResponse
instance GHC.Show.Show Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfigurationResponse
instance GHC.Read.Read Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfigurationResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfigurationResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance Data.Data.Data Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance GHC.Show.Show Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance GHC.Read.Read Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance GHC.Classes.Eq Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfigurationResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfiguration


-- | Creates an Auto Scaling group with the specified name and attributes.
--   
--   If you exceed your maximum limit of Auto Scaling groups, the call
--   fails. For information about viewing this limit, see
--   <tt>DescribeAccountLimits</tt> . For information about updating this
--   limit, see <a>Auto Scaling Limits</a> in the <i>Auto Scaling User
--   Guide</i> .
--   
--   For more information, see <a>Auto Scaling Groups</a> in the <i>Auto
--   Scaling User Guide</i> .
module Network.AWS.AutoScaling.CreateAutoScalingGroup

-- | Creates a value of <a>CreateAutoScalingGroup</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>casgInstanceId</a> - The ID of the instance used to create a
--   launch configuration for the group. You must specify one of the
--   following: an EC2 instance, a launch configuration, or a launch
--   template. When you specify an ID of an instance, Auto Scaling creates
--   a new launch configuration and associates it with the group. This
--   launch configuration derives its attributes from the specified
--   instance, with the exception of the block device mapping. For more
--   information, see <a>Create an Auto Scaling Group Using an EC2
--   Instance</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>casgTerminationPolicies</a> - One or more termination policies
--   used to select the instance to terminate. These policies are executed
--   in the order that they are listed. For more information, see
--   <a>Controlling Which Instances Auto Scaling Terminates During Scale
--   In</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>casgHealthCheckGracePeriod</a> - The amount of time, in
--   seconds, that Auto Scaling waits before checking the health status of
--   an EC2 instance that has come into service. During this time, any
--   health check failures for the instance are ignored. The default is 0.
--   This parameter is required if you are adding an <tt>ELB</tt> health
--   check. For more information, see <a>Health Checks</a> in the <i>Auto
--   Scaling User Guide</i> .</li>
--   <li><a>casgServiceLinkedRoleARN</a> - The Amazon Resource Name (ARN)
--   of the service-linked role that the Auto Scaling group uses to call
--   other AWS services on your behalf. By default, Auto Scaling uses a
--   service-linked role named AWSServiceRoleForAutoScaling, which it
--   creates if it does not exist.</li>
--   <li><a>casgNewInstancesProtectedFromScaleIn</a> - Indicates whether
--   newly launched instances are protected from termination by Auto
--   Scaling when scaling in.</li>
--   <li><a>casgVPCZoneIdentifier</a> - A comma-separated list of subnet
--   identifiers for your virtual private cloud (VPC). If you specify
--   subnets and Availability Zones with this call, ensure that the
--   subnets' Availability Zones match the Availability Zones specified.
--   For more information, see <a>Launching Auto Scaling Instances in a
--   VPC</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>casgTargetGroupARNs</a> - The Amazon Resource Names (ARN) of
--   the target groups.</li>
--   <li><a>casgDefaultCooldown</a> - The amount of time, in seconds, after
--   a scaling activity completes before another scaling activity can
--   start. The default is 300. For more information, see <a>Auto Scaling
--   Cooldowns</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>casgAvailabilityZones</a> - One or more Availability Zones for
--   the group. This parameter is optional if you specify one or more
--   subnets.</li>
--   <li><a>casgDesiredCapacity</a> - The number of EC2 instances that
--   should be running in the group. This number must be greater than or
--   equal to the minimum size of the group and less than or equal to the
--   maximum size of the group. If you do not specify a desired capacity,
--   the default is the minimum size of the group.</li>
--   <li><a>casgLaunchConfigurationName</a> - The name of the launch
--   configuration. You must specify one of the following: a launch
--   configuration, a launch template, or an EC2 instance.</li>
--   <li><a>casgLifecycleHookSpecificationList</a> - One or more lifecycle
--   hooks.</li>
--   <li><a>casgHealthCheckType</a> - The service to use for the health
--   checks. The valid values are <tt>EC2</tt> and <tt>ELB</tt> . By
--   default, health checks use Amazon EC2 instance status checks to
--   determine the health of an instance. For more information, see
--   <a>Health Checks</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>casgLaunchTemplate</a> - The launch template to use to launch
--   instances. You must specify one of the following: a launch template, a
--   launch configuration, or an EC2 instance.</li>
--   <li><a>casgPlacementGroup</a> - The name of the placement group into
--   which you'll launch your instances, if any. For more information, see
--   <a>Placement Groups</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>casgLoadBalancerNames</a> - One or more Classic Load Balancers.
--   To specify an Application Load Balancer, use <tt>TargetGroupARNs</tt>
--   instead. For more information, see <a>Using a Load Balancer With an
--   Auto Scaling Group</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>casgTags</a> - One or more tags. For more information, see
--   <a>Tagging Auto Scaling Groups and Instances</a> in the <i>Auto
--   Scaling User Guide</i> .</li>
--   <li><a>casgAutoScalingGroupName</a> - The name of the Auto Scaling
--   group. This name must be unique within the scope of your AWS
--   account.</li>
--   <li><a>casgMinSize</a> - The minimum size of the group.</li>
--   <li><a>casgMaxSize</a> - The maximum size of the group.</li>
--   </ul>
createAutoScalingGroup :: Text -> Int -> Int -> CreateAutoScalingGroup

-- | <i>See:</i> <a>createAutoScalingGroup</a> smart constructor.
data CreateAutoScalingGroup

-- | The ID of the instance used to create a launch configuration for the
--   group. You must specify one of the following: an EC2 instance, a
--   launch configuration, or a launch template. When you specify an ID of
--   an instance, Auto Scaling creates a new launch configuration and
--   associates it with the group. This launch configuration derives its
--   attributes from the specified instance, with the exception of the
--   block device mapping. For more information, see <a>Create an Auto
--   Scaling Group Using an EC2 Instance</a> in the <i>Auto Scaling User
--   Guide</i> .
casgInstanceId :: Lens' CreateAutoScalingGroup (Maybe Text)

-- | One or more termination policies used to select the instance to
--   terminate. These policies are executed in the order that they are
--   listed. For more information, see <a>Controlling Which Instances Auto
--   Scaling Terminates During Scale In</a> in the <i>Auto Scaling User
--   Guide</i> .
casgTerminationPolicies :: Lens' CreateAutoScalingGroup [Text]

-- | The amount of time, in seconds, that Auto Scaling waits before
--   checking the health status of an EC2 instance that has come into
--   service. During this time, any health check failures for the instance
--   are ignored. The default is 0. This parameter is required if you are
--   adding an <tt>ELB</tt> health check. For more information, see
--   <a>Health Checks</a> in the <i>Auto Scaling User Guide</i> .
casgHealthCheckGracePeriod :: Lens' CreateAutoScalingGroup (Maybe Int)

-- | The Amazon Resource Name (ARN) of the service-linked role that the
--   Auto Scaling group uses to call other AWS services on your behalf. By
--   default, Auto Scaling uses a service-linked role named
--   AWSServiceRoleForAutoScaling, which it creates if it does not exist.
casgServiceLinkedRoleARN :: Lens' CreateAutoScalingGroup (Maybe Text)

-- | Indicates whether newly launched instances are protected from
--   termination by Auto Scaling when scaling in.
casgNewInstancesProtectedFromScaleIn :: Lens' CreateAutoScalingGroup (Maybe Bool)

-- | A comma-separated list of subnet identifiers for your virtual private
--   cloud (VPC). If you specify subnets and Availability Zones with this
--   call, ensure that the subnets' Availability Zones match the
--   Availability Zones specified. For more information, see <a>Launching
--   Auto Scaling Instances in a VPC</a> in the <i>Auto Scaling User
--   Guide</i> .
casgVPCZoneIdentifier :: Lens' CreateAutoScalingGroup (Maybe Text)

-- | The Amazon Resource Names (ARN) of the target groups.
casgTargetGroupARNs :: Lens' CreateAutoScalingGroup [Text]

-- | The amount of time, in seconds, after a scaling activity completes
--   before another scaling activity can start. The default is 300. For
--   more information, see <a>Auto Scaling Cooldowns</a> in the <i>Auto
--   Scaling User Guide</i> .
casgDefaultCooldown :: Lens' CreateAutoScalingGroup (Maybe Int)

-- | One or more Availability Zones for the group. This parameter is
--   optional if you specify one or more subnets.
casgAvailabilityZones :: Lens' CreateAutoScalingGroup (Maybe (NonEmpty Text))

-- | The number of EC2 instances that should be running in the group. This
--   number must be greater than or equal to the minimum size of the group
--   and less than or equal to the maximum size of the group. If you do not
--   specify a desired capacity, the default is the minimum size of the
--   group.
casgDesiredCapacity :: Lens' CreateAutoScalingGroup (Maybe Int)

-- | The name of the launch configuration. You must specify one of the
--   following: a launch configuration, a launch template, or an EC2
--   instance.
casgLaunchConfigurationName :: Lens' CreateAutoScalingGroup (Maybe Text)

-- | One or more lifecycle hooks.
casgLifecycleHookSpecificationList :: Lens' CreateAutoScalingGroup [LifecycleHookSpecification]

-- | The service to use for the health checks. The valid values are
--   <tt>EC2</tt> and <tt>ELB</tt> . By default, health checks use Amazon
--   EC2 instance status checks to determine the health of an instance. For
--   more information, see <a>Health Checks</a> in the <i>Auto Scaling User
--   Guide</i> .
casgHealthCheckType :: Lens' CreateAutoScalingGroup (Maybe Text)

-- | The launch template to use to launch instances. You must specify one
--   of the following: a launch template, a launch configuration, or an EC2
--   instance.
casgLaunchTemplate :: Lens' CreateAutoScalingGroup (Maybe LaunchTemplateSpecification)

-- | The name of the placement group into which you'll launch your
--   instances, if any. For more information, see <a>Placement Groups</a>
--   in the <i>Amazon Elastic Compute Cloud User Guide</i> .
casgPlacementGroup :: Lens' CreateAutoScalingGroup (Maybe Text)

-- | One or more Classic Load Balancers. To specify an Application Load
--   Balancer, use <tt>TargetGroupARNs</tt> instead. For more information,
--   see <a>Using a Load Balancer With an Auto Scaling Group</a> in the
--   <i>Auto Scaling User Guide</i> .
casgLoadBalancerNames :: Lens' CreateAutoScalingGroup [Text]

-- | One or more tags. For more information, see <a>Tagging Auto Scaling
--   Groups and Instances</a> in the <i>Auto Scaling User Guide</i> .
casgTags :: Lens' CreateAutoScalingGroup [Tag]

-- | The name of the Auto Scaling group. This name must be unique within
--   the scope of your AWS account.
casgAutoScalingGroupName :: Lens' CreateAutoScalingGroup Text

-- | The minimum size of the group.
casgMinSize :: Lens' CreateAutoScalingGroup Int

-- | The maximum size of the group.
casgMaxSize :: Lens' CreateAutoScalingGroup Int

-- | Creates a value of <a>CreateAutoScalingGroupResponse</a> with the
--   minimum fields required to make a request.
createAutoScalingGroupResponse :: CreateAutoScalingGroupResponse

-- | <i>See:</i> <a>createAutoScalingGroupResponse</a> smart constructor.
data CreateAutoScalingGroupResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroupResponse
instance Data.Data.Data Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroupResponse
instance GHC.Show.Show Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroupResponse
instance GHC.Read.Read Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroupResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroupResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance Data.Data.Data Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance GHC.Show.Show Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance GHC.Read.Read Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance GHC.Classes.Eq Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroupResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroup


-- | Completes the lifecycle action for the specified token or instance
--   with the specified result.
--   
--   This step is a part of the procedure for adding a lifecycle hook to an
--   Auto Scaling group:
--   
--   <ul>
--   <li>(Optional) Create a Lambda function and a rule that allows
--   CloudWatch Events to invoke your Lambda function when Auto Scaling
--   launches or terminates instances.</li>
--   <li>(Optional) Create a notification target and an IAM role. The
--   target can be either an Amazon SQS queue or an Amazon SNS topic. The
--   role allows Auto Scaling to publish lifecycle notifications to the
--   target.</li>
--   <li>Create the lifecycle hook. Specify whether the hook is used when
--   the instances launch or terminate.</li>
--   <li>If you need more time, record the lifecycle action heartbeat to
--   keep the instance in a pending state.</li>
--   <li><b>If you finish before the timeout period ends, complete the
--   lifecycle action.</b></li>
--   </ul>
--   
--   For more information, see <a>Auto Scaling Lifecycle</a> in the <i>Auto
--   Scaling User Guide</i> .
module Network.AWS.AutoScaling.CompleteLifecycleAction

-- | Creates a value of <a>CompleteLifecycleAction</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>claInstanceId</a> - The ID of the instance.</li>
--   <li><a>claLifecycleActionToken</a> - A universally unique identifier
--   (UUID) that identifies a specific lifecycle action associated with an
--   instance. Auto Scaling sends this token to the notification target you
--   specified when you created the lifecycle hook.</li>
--   <li><a>claLifecycleHookName</a> - The name of the lifecycle hook.</li>
--   <li><a>claAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>claLifecycleActionResult</a> - The action for the group to
--   take. This parameter can be either <tt>CONTINUE</tt> or
--   <tt>ABANDON</tt> .</li>
--   </ul>
completeLifecycleAction :: Text -> Text -> Text -> CompleteLifecycleAction

-- | <i>See:</i> <a>completeLifecycleAction</a> smart constructor.
data CompleteLifecycleAction

-- | The ID of the instance.
claInstanceId :: Lens' CompleteLifecycleAction (Maybe Text)

-- | A universally unique identifier (UUID) that identifies a specific
--   lifecycle action associated with an instance. Auto Scaling sends this
--   token to the notification target you specified when you created the
--   lifecycle hook.
claLifecycleActionToken :: Lens' CompleteLifecycleAction (Maybe Text)

-- | The name of the lifecycle hook.
claLifecycleHookName :: Lens' CompleteLifecycleAction Text

-- | The name of the Auto Scaling group.
claAutoScalingGroupName :: Lens' CompleteLifecycleAction Text

-- | The action for the group to take. This parameter can be either
--   <tt>CONTINUE</tt> or <tt>ABANDON</tt> .
claLifecycleActionResult :: Lens' CompleteLifecycleAction Text

-- | Creates a value of <a>CompleteLifecycleActionResponse</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>clarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
completeLifecycleActionResponse :: Int -> CompleteLifecycleActionResponse

-- | <i>See:</i> <a>completeLifecycleActionResponse</a> smart constructor.
data CompleteLifecycleActionResponse

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


-- | Attaches one or more Classic Load Balancers to the specified Auto
--   Scaling group.
--   
--   To attach an Application Load Balancer instead, see
--   <tt>AttachLoadBalancerTargetGroups</tt> .
--   
--   To describe the load balancers for an Auto Scaling group, use
--   <tt>DescribeLoadBalancers</tt> . To detach the load balancer from the
--   Auto Scaling group, use <tt>DetachLoadBalancers</tt> .
--   
--   For more information, see <a>Attach a Load Balancer to Your Auto
--   Scaling Group</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.AttachLoadBalancers

-- | Creates a value of <a>AttachLoadBalancers</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>albAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>albLoadBalancerNames</a> - The names of the load balancers. You
--   can specify up to 10 load balancers.</li>
--   </ul>
attachLoadBalancers :: Text -> AttachLoadBalancers

-- | <i>See:</i> <a>attachLoadBalancers</a> smart constructor.
data AttachLoadBalancers

-- | The name of the Auto Scaling group.
albAutoScalingGroupName :: Lens' AttachLoadBalancers Text

-- | The names of the load balancers. You can specify up to 10 load
--   balancers.
albLoadBalancerNames :: Lens' AttachLoadBalancers [Text]

-- | Creates a value of <a>AttachLoadBalancersResponse</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>albrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachLoadBalancersResponse :: Int -> AttachLoadBalancersResponse

-- | <i>See:</i> <a>attachLoadBalancersResponse</a> smart constructor.
data AttachLoadBalancersResponse

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


-- | Attaches one or more target groups to the specified Auto Scaling
--   group.
--   
--   To describe the target groups for an Auto Scaling group, use
--   <tt>DescribeLoadBalancerTargetGroups</tt> . To detach the target group
--   from the Auto Scaling group, use
--   <tt>DetachLoadBalancerTargetGroups</tt> .
--   
--   For more information, see <a>Attach a Load Balancer to Your Auto
--   Scaling Group</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.AttachLoadBalancerTargetGroups

-- | Creates a value of <a>AttachLoadBalancerTargetGroups</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>albtgAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>albtgTargetGroupARNs</a> - The Amazon Resource Names (ARN) of
--   the target groups. You can specify up to 10 target groups.</li>
--   </ul>
attachLoadBalancerTargetGroups :: Text -> AttachLoadBalancerTargetGroups

-- | <i>See:</i> <a>attachLoadBalancerTargetGroups</a> smart constructor.
data AttachLoadBalancerTargetGroups

-- | The name of the Auto Scaling group.
albtgAutoScalingGroupName :: Lens' AttachLoadBalancerTargetGroups Text

-- | The Amazon Resource Names (ARN) of the target groups. You can specify
--   up to 10 target groups.
albtgTargetGroupARNs :: Lens' AttachLoadBalancerTargetGroups [Text]

-- | Creates a value of <a>AttachLoadBalancerTargetGroupsResponse</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>albtgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachLoadBalancerTargetGroupsResponse :: Int -> AttachLoadBalancerTargetGroupsResponse

-- | <i>See:</i> <a>attachLoadBalancerTargetGroupsResponse</a> smart
--   constructor.
data AttachLoadBalancerTargetGroupsResponse

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


-- | Attaches one or more EC2 instances to the specified Auto Scaling
--   group.
--   
--   When you attach instances, Auto Scaling increases the desired capacity
--   of the group by the number of instances being attached. If the number
--   of instances being attached plus the desired capacity of the group
--   exceeds the maximum size of the group, the operation fails.
--   
--   If there is a Classic Load Balancer attached to your Auto Scaling
--   group, the instances are also registered with the load balancer. If
--   there are target groups attached to your Auto Scaling group, the
--   instances are also registered with the target groups.
--   
--   For more information, see <a>Attach EC2 Instances to Your Auto Scaling
--   Group</a> in the <i>Auto Scaling User Guide</i> .
module Network.AWS.AutoScaling.AttachInstances

-- | Creates a value of <a>AttachInstances</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>aiInstanceIds</a> - The IDs of the instances. You can specify
--   up to 20 instances.</li>
--   <li><a>aiAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
attachInstances :: Text -> AttachInstances

-- | <i>See:</i> <a>attachInstances</a> smart constructor.
data AttachInstances

-- | The IDs of the instances. You can specify up to 20 instances.
aiInstanceIds :: Lens' AttachInstances [Text]

-- | The name of the Auto Scaling group.
aiAutoScalingGroupName :: Lens' AttachInstances Text

-- | Creates a value of <a>AttachInstancesResponse</a> with the minimum
--   fields required to make a request.
attachInstancesResponse :: AttachInstancesResponse

-- | <i>See:</i> <a>attachInstancesResponse</a> smart constructor.
data AttachInstancesResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.AttachInstances.AttachInstancesResponse
instance Data.Data.Data Network.AWS.AutoScaling.AttachInstances.AttachInstancesResponse
instance GHC.Show.Show Network.AWS.AutoScaling.AttachInstances.AttachInstancesResponse
instance GHC.Read.Read Network.AWS.AutoScaling.AttachInstances.AttachInstancesResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.AttachInstances.AttachInstancesResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance Data.Data.Data Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance GHC.Show.Show Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance GHC.Read.Read Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance GHC.Classes.Eq Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.AttachInstances.AttachInstancesResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.AttachInstances.AttachInstances
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.AttachInstances.AttachInstances


-- | Updates the configuration for the specified Auto Scaling group.
--   
--   The new settings take effect on any scaling activities after this call
--   returns. Scaling activities that are currently in progress aren't
--   affected.
--   
--   To update an Auto Scaling group with a launch configuration with
--   <tt>InstanceMonitoring</tt> set to <tt>false</tt> , you must first
--   disable the collection of group metrics. Otherwise, you will get an
--   error. If you have previously enabled the collection of group metrics,
--   you can disable it using <tt>DisableMetricsCollection</tt> .
--   
--   Note the following:
--   
--   <ul>
--   <li>If you specify a new value for <tt>MinSize</tt> without specifying
--   a value for <tt>DesiredCapacity</tt> , and the new <tt>MinSize</tt> is
--   larger than the current size of the group, we implicitly call
--   <tt>SetDesiredCapacity</tt> to set the size of the group to the new
--   value of <tt>MinSize</tt> .</li>
--   <li>If you specify a new value for <tt>MaxSize</tt> without specifying
--   a value for <tt>DesiredCapacity</tt> , and the new <tt>MaxSize</tt> is
--   smaller than the current size of the group, we implicitly call
--   <tt>SetDesiredCapacity</tt> to set the size of the group to the new
--   value of <tt>MaxSize</tt> .</li>
--   <li>All other optional parameters are left unchanged if not
--   specified.</li>
--   </ul>
module Network.AWS.AutoScaling.UpdateAutoScalingGroup

-- | Creates a value of <a>UpdateAutoScalingGroup</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>uasgTerminationPolicies</a> - A standalone termination policy
--   or a list of termination policies used to select the instance to
--   terminate. The policies are executed in the order that they are
--   listed. For more information, see <a>Controlling Which Instances Auto
--   Scaling Terminates During Scale In</a> in the <i>Auto Scaling User
--   Guide</i> .</li>
--   <li><a>uasgHealthCheckGracePeriod</a> - The amount of time, in
--   seconds, that Auto Scaling waits before checking the health status of
--   an EC2 instance that has come into service. The default is 0. For more
--   information, see <a>Health Checks</a> in the <i>Auto Scaling User
--   Guide</i> .</li>
--   <li><a>uasgServiceLinkedRoleARN</a> - The Amazon Resource Name (ARN)
--   of the service-linked role that the Auto Scaling group uses to call
--   other AWS services on your behalf.</li>
--   <li><a>uasgNewInstancesProtectedFromScaleIn</a> - Indicates whether
--   newly launched instances are protected from termination by Auto
--   Scaling when scaling in.</li>
--   <li><a>uasgVPCZoneIdentifier</a> - The ID of the subnet, if you are
--   launching into a VPC. You can specify several subnets in a
--   comma-separated list. When you specify <tt>VPCZoneIdentifier</tt> with
--   <tt>AvailabilityZones</tt> , ensure that the subnets' Availability
--   Zones match the values you specify for <tt>AvailabilityZones</tt> .
--   For more information, see <a>Launching Auto Scaling Instances in a
--   VPC</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>uasgDefaultCooldown</a> - The amount of time, in seconds, after
--   a scaling activity completes before another scaling activity can
--   start. The default is 300. For more information, see <a>Auto Scaling
--   Cooldowns</a> in the <i>Auto Scaling User Guide</i> .</li>
--   <li><a>uasgMaxSize</a> - The maximum size of the Auto Scaling
--   group.</li>
--   <li><a>uasgAvailabilityZones</a> - One or more Availability Zones for
--   the group.</li>
--   <li><a>uasgDesiredCapacity</a> - The number of EC2 instances that
--   should be running in the Auto Scaling group. This number must be
--   greater than or equal to the minimum size of the group and less than
--   or equal to the maximum size of the group.</li>
--   <li><a>uasgMinSize</a> - The minimum size of the Auto Scaling
--   group.</li>
--   <li><a>uasgLaunchConfigurationName</a> - The name of the launch
--   configuration. If you specify a launch configuration, you can't
--   specify a launch template.</li>
--   <li><a>uasgHealthCheckType</a> - The service to use for the health
--   checks. The valid values are <tt>EC2</tt> and <tt>ELB</tt> .</li>
--   <li><a>uasgLaunchTemplate</a> - The launch template to use to specify
--   the updates. If you specify a launch template, you can't specify a
--   launch configuration.</li>
--   <li><a>uasgPlacementGroup</a> - The name of the placement group into
--   which you'll launch your instances, if any. For more information, see
--   <a>Placement Groups</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>uasgAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
updateAutoScalingGroup :: Text -> UpdateAutoScalingGroup

-- | <i>See:</i> <a>updateAutoScalingGroup</a> smart constructor.
data UpdateAutoScalingGroup

-- | A standalone termination policy or a list of termination policies used
--   to select the instance to terminate. The policies are executed in the
--   order that they are listed. For more information, see <a>Controlling
--   Which Instances Auto Scaling Terminates During Scale In</a> in the
--   <i>Auto Scaling User Guide</i> .
uasgTerminationPolicies :: Lens' UpdateAutoScalingGroup [Text]

-- | The amount of time, in seconds, that Auto Scaling waits before
--   checking the health status of an EC2 instance that has come into
--   service. The default is 0. For more information, see <a>Health
--   Checks</a> in the <i>Auto Scaling User Guide</i> .
uasgHealthCheckGracePeriod :: Lens' UpdateAutoScalingGroup (Maybe Int)

-- | The Amazon Resource Name (ARN) of the service-linked role that the
--   Auto Scaling group uses to call other AWS services on your behalf.
uasgServiceLinkedRoleARN :: Lens' UpdateAutoScalingGroup (Maybe Text)

-- | Indicates whether newly launched instances are protected from
--   termination by Auto Scaling when scaling in.
uasgNewInstancesProtectedFromScaleIn :: Lens' UpdateAutoScalingGroup (Maybe Bool)

-- | The ID of the subnet, if you are launching into a VPC. You can specify
--   several subnets in a comma-separated list. When you specify
--   <tt>VPCZoneIdentifier</tt> with <tt>AvailabilityZones</tt> , ensure
--   that the subnets' Availability Zones match the values you specify for
--   <tt>AvailabilityZones</tt> . For more information, see <a>Launching
--   Auto Scaling Instances in a VPC</a> in the <i>Auto Scaling User
--   Guide</i> .
uasgVPCZoneIdentifier :: Lens' UpdateAutoScalingGroup (Maybe Text)

-- | The amount of time, in seconds, after a scaling activity completes
--   before another scaling activity can start. The default is 300. For
--   more information, see <a>Auto Scaling Cooldowns</a> in the <i>Auto
--   Scaling User Guide</i> .
uasgDefaultCooldown :: Lens' UpdateAutoScalingGroup (Maybe Int)

-- | The maximum size of the Auto Scaling group.
uasgMaxSize :: Lens' UpdateAutoScalingGroup (Maybe Int)

-- | One or more Availability Zones for the group.
uasgAvailabilityZones :: Lens' UpdateAutoScalingGroup (Maybe (NonEmpty Text))

-- | The number of EC2 instances that should be running in the Auto Scaling
--   group. This number must be greater than or equal to the minimum size
--   of the group and less than or equal to the maximum size of the group.
uasgDesiredCapacity :: Lens' UpdateAutoScalingGroup (Maybe Int)

-- | The minimum size of the Auto Scaling group.
uasgMinSize :: Lens' UpdateAutoScalingGroup (Maybe Int)

-- | The name of the launch configuration. If you specify a launch
--   configuration, you can't specify a launch template.
uasgLaunchConfigurationName :: Lens' UpdateAutoScalingGroup (Maybe Text)

-- | The service to use for the health checks. The valid values are
--   <tt>EC2</tt> and <tt>ELB</tt> .
uasgHealthCheckType :: Lens' UpdateAutoScalingGroup (Maybe Text)

-- | The launch template to use to specify the updates. If you specify a
--   launch template, you can't specify a launch configuration.
uasgLaunchTemplate :: Lens' UpdateAutoScalingGroup (Maybe LaunchTemplateSpecification)

-- | The name of the placement group into which you'll launch your
--   instances, if any. For more information, see <a>Placement Groups</a>
--   in the <i>Amazon Elastic Compute Cloud User Guide</i> .
uasgPlacementGroup :: Lens' UpdateAutoScalingGroup (Maybe Text)

-- | The name of the Auto Scaling group.
uasgAutoScalingGroupName :: Lens' UpdateAutoScalingGroup Text

-- | Creates a value of <a>UpdateAutoScalingGroupResponse</a> with the
--   minimum fields required to make a request.
updateAutoScalingGroupResponse :: UpdateAutoScalingGroupResponse

-- | <i>See:</i> <a>updateAutoScalingGroupResponse</a> smart constructor.
data UpdateAutoScalingGroupResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroupResponse
instance Data.Data.Data Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroupResponse
instance GHC.Show.Show Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroupResponse
instance GHC.Read.Read Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroupResponse
instance GHC.Classes.Eq Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroupResponse
instance GHC.Generics.Generic Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance Data.Data.Data Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance GHC.Show.Show Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance GHC.Read.Read Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance GHC.Classes.Eq Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance Network.AWS.Types.AWSRequest Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroupResponse
instance Data.Hashable.Class.Hashable Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance Network.AWS.Data.Path.ToPath Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup
instance Network.AWS.Data.Query.ToQuery Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroup


module Network.AWS.AutoScaling.Waiters


-- | <b>Amazon EC2 Auto Scaling</b>
--   
--   Amazon EC2 Auto Scaling is designed to automatically launch or
--   terminate EC2 instances based on user-defined policies, schedules, and
--   health checks. Use this service in conjunction with the AWS Auto
--   Scaling, Amazon CloudWatch, and Elastic Load Balancing services.
module Network.AWS.AutoScaling

-- | API version <tt>2011-01-01</tt> of the Amazon Auto Scaling SDK
--   configuration.
autoScaling :: Service

-- | You already have an Auto Scaling group or launch configuration with
--   this name.
_AlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | You have already reached a limit for your Auto Scaling resources (for
--   example, groups, launch configurations, or lifecycle hooks). For more
--   information, see <tt>DescribeAccountLimits</tt> .
_LimitExceededFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | The operation can't be performed because the resource is in use.
_ResourceInUseFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | The <tt>NextToken</tt> value is not valid.
_InvalidNextToken :: AsError a => Getting (First ServiceError) a ServiceError

-- | The operation can't be performed because there are scaling activities
--   in progress.
_ScalingActivityInProgressFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | You already have a pending update to an Auto Scaling resource (for
--   example, a group, instance, or load balancer).
_ResourceContentionFault :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service-linked role is not yet ready for use.
_ServiceLinkedRoleFailure :: AsError a => Getting (First ServiceError) a ServiceError
data LifecycleState
Detached :: LifecycleState
Detaching :: LifecycleState
EnteringStandby :: LifecycleState
InService :: LifecycleState
Pending :: LifecycleState
PendingProceed :: LifecycleState
PendingWait :: LifecycleState
Quarantined :: LifecycleState
Standby :: LifecycleState
Terminated :: LifecycleState
Terminating :: LifecycleState
TerminatingProceed :: LifecycleState
TerminatingWait :: LifecycleState
data MetricStatistic
Average :: MetricStatistic
Maximum :: MetricStatistic
Minimum :: MetricStatistic
SampleCount :: MetricStatistic
Sum :: MetricStatistic
data MetricType
ALBRequestCountPerTarget :: MetricType
ASGAverageCPUUtilization :: MetricType
ASGAverageNetworkIn :: MetricType
ASGAverageNetworkOut :: MetricType
data ScalingActivityStatusCode
Cancelled :: ScalingActivityStatusCode
Failed :: ScalingActivityStatusCode
InProgress :: ScalingActivityStatusCode
MidLifecycleAction :: ScalingActivityStatusCode
PendingSpotBidPlacement :: ScalingActivityStatusCode
PreInService :: ScalingActivityStatusCode
Successful :: ScalingActivityStatusCode
WaitingForELBConnectionDraining :: ScalingActivityStatusCode
WaitingForInstanceId :: ScalingActivityStatusCode
WaitingForInstanceWarmup :: ScalingActivityStatusCode
WaitingForSpotInstanceId :: ScalingActivityStatusCode
WaitingForSpotInstanceRequestId :: ScalingActivityStatusCode

-- | Describes scaling activity, which is a long-running process that
--   represents a change to your Auto Scaling group, such as changing its
--   size or replacing an instance.
--   
--   <i>See:</i> <a>activity</a> smart constructor.
data Activity

-- | Creates a value of <a>Activity</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>aProgress</a> - A value between 0 and 100 that indicates the
--   progress of the activity.</li>
--   <li><a>aStatusMessage</a> - A friendly, more verbose description of
--   the activity status.</li>
--   <li><a>aEndTime</a> - The end time of the activity.</li>
--   <li><a>aDetails</a> - The details about the activity.</li>
--   <li><a>aDescription</a> - A friendly, more verbose description of the
--   activity.</li>
--   <li><a>aActivityId</a> - The ID of the activity.</li>
--   <li><a>aAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>aCause</a> - The reason the activity began.</li>
--   <li><a>aStartTime</a> - The start time of the activity.</li>
--   <li><a>aStatusCode</a> - The current status of the activity.</li>
--   </ul>
activity :: Text -> Text -> Text -> UTCTime -> ScalingActivityStatusCode -> Activity

-- | A value between 0 and 100 that indicates the progress of the activity.
aProgress :: Lens' Activity (Maybe Int)

-- | A friendly, more verbose description of the activity status.
aStatusMessage :: Lens' Activity (Maybe Text)

-- | The end time of the activity.
aEndTime :: Lens' Activity (Maybe UTCTime)

-- | The details about the activity.
aDetails :: Lens' Activity (Maybe Text)

-- | A friendly, more verbose description of the activity.
aDescription :: Lens' Activity (Maybe Text)

-- | The ID of the activity.
aActivityId :: Lens' Activity Text

-- | The name of the Auto Scaling group.
aAutoScalingGroupName :: Lens' Activity Text

-- | The reason the activity began.
aCause :: Lens' Activity Text

-- | The start time of the activity.
aStartTime :: Lens' Activity UTCTime

-- | The current status of the activity.
aStatusCode :: Lens' Activity ScalingActivityStatusCode

-- | Describes a policy adjustment type.
--   
--   For more information, see <a>Dynamic Scaling</a> in the <i>Auto
--   Scaling User Guide</i> .
--   
--   <i>See:</i> <a>adjustmentType</a> smart constructor.
data AdjustmentType

-- | Creates a value of <a>AdjustmentType</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>atAdjustmentType</a> - The policy adjustment type. The valid
--   values are <tt>ChangeInCapacity</tt> , <tt>ExactCapacity</tt> , and
--   <tt>PercentChangeInCapacity</tt> .</li>
--   </ul>
adjustmentType :: AdjustmentType

-- | The policy adjustment type. The valid values are
--   <tt>ChangeInCapacity</tt> , <tt>ExactCapacity</tt> , and
--   <tt>PercentChangeInCapacity</tt> .
atAdjustmentType :: Lens' AdjustmentType (Maybe Text)

-- | Describes an alarm.
--   
--   <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 :: Alarm

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

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

-- | Describes an Auto Scaling group.
--   
--   <i>See:</i> <a>autoScalingGroup</a> smart constructor.
data AutoScalingGroup

-- | Creates a value of <a>AutoScalingGroup</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>asgStatus</a> - The current state of the group when
--   <tt>DeleteAutoScalingGroup</tt> is in progress.</li>
--   <li><a>asgTerminationPolicies</a> - The termination policies for the
--   group.</li>
--   <li><a>asgHealthCheckGracePeriod</a> - The amount of time, in seconds,
--   that Auto Scaling waits before checking the health status of an EC2
--   instance that has come into service.</li>
--   <li><a>asgServiceLinkedRoleARN</a> - The Amazon Resource Name (ARN) of
--   the service-linked role that the Auto Scaling group uses to call other
--   AWS services on your behalf.</li>
--   <li><a>asgNewInstancesProtectedFromScaleIn</a> - Indicates whether
--   newly launched instances are protected from termination by Auto
--   Scaling when scaling in.</li>
--   <li><a>asgVPCZoneIdentifier</a> - One or more subnet IDs, if
--   applicable, separated by commas. If you specify
--   <tt>VPCZoneIdentifier</tt> and <tt>AvailabilityZones</tt> , ensure
--   that the Availability Zones of the subnets match the values for
--   <tt>AvailabilityZones</tt> .</li>
--   <li><a>asgTargetGroupARNs</a> - The Amazon Resource Names (ARN) of the
--   target groups for your load balancer.</li>
--   <li><a>asgEnabledMetrics</a> - The metrics enabled for the group.</li>
--   <li><a>asgLaunchConfigurationName</a> - The name of the associated
--   launch configuration.</li>
--   <li><a>asgInstances</a> - The EC2 instances associated with the
--   group.</li>
--   <li><a>asgLaunchTemplate</a> - The launch template for the group.</li>
--   <li><a>asgAutoScalingGroupARN</a> - The Amazon Resource Name (ARN) of
--   the Auto Scaling group.</li>
--   <li><a>asgPlacementGroup</a> - The name of the placement group into
--   which you'll launch your instances, if any. For more information, see
--   <a>Placement Groups</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>asgSuspendedProcesses</a> - The suspended processes associated
--   with the group.</li>
--   <li><a>asgLoadBalancerNames</a> - One or more load balancers
--   associated with the group.</li>
--   <li><a>asgTags</a> - The tags for the group.</li>
--   <li><a>asgAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>asgMinSize</a> - The minimum size of the group.</li>
--   <li><a>asgMaxSize</a> - The maximum size of the group.</li>
--   <li><a>asgDesiredCapacity</a> - The desired size of the group.</li>
--   <li><a>asgDefaultCooldown</a> - The amount of time, in seconds, after
--   a scaling activity completes before another scaling activity can
--   start.</li>
--   <li><a>asgAvailabilityZones</a> - One or more Availability Zones for
--   the group.</li>
--   <li><a>asgHealthCheckType</a> - The service to use for the health
--   checks. The valid values are <tt>EC2</tt> and <tt>ELB</tt> .</li>
--   <li><a>asgCreatedTime</a> - The date and time the group was
--   created.</li>
--   </ul>
autoScalingGroup :: Text -> Int -> Int -> Int -> Int -> NonEmpty Text -> Text -> UTCTime -> AutoScalingGroup

-- | The current state of the group when <tt>DeleteAutoScalingGroup</tt> is
--   in progress.
asgStatus :: Lens' AutoScalingGroup (Maybe Text)

-- | The termination policies for the group.
asgTerminationPolicies :: Lens' AutoScalingGroup [Text]

-- | The amount of time, in seconds, that Auto Scaling waits before
--   checking the health status of an EC2 instance that has come into
--   service.
asgHealthCheckGracePeriod :: Lens' AutoScalingGroup (Maybe Int)

-- | The Amazon Resource Name (ARN) of the service-linked role that the
--   Auto Scaling group uses to call other AWS services on your behalf.
asgServiceLinkedRoleARN :: Lens' AutoScalingGroup (Maybe Text)

-- | Indicates whether newly launched instances are protected from
--   termination by Auto Scaling when scaling in.
asgNewInstancesProtectedFromScaleIn :: Lens' AutoScalingGroup (Maybe Bool)

-- | One or more subnet IDs, if applicable, separated by commas. If you
--   specify <tt>VPCZoneIdentifier</tt> and <tt>AvailabilityZones</tt> ,
--   ensure that the Availability Zones of the subnets match the values for
--   <tt>AvailabilityZones</tt> .
asgVPCZoneIdentifier :: Lens' AutoScalingGroup (Maybe Text)

-- | The Amazon Resource Names (ARN) of the target groups for your load
--   balancer.
asgTargetGroupARNs :: Lens' AutoScalingGroup [Text]

-- | The metrics enabled for the group.
asgEnabledMetrics :: Lens' AutoScalingGroup [EnabledMetric]

-- | The name of the associated launch configuration.
asgLaunchConfigurationName :: Lens' AutoScalingGroup (Maybe Text)

-- | The EC2 instances associated with the group.
asgInstances :: Lens' AutoScalingGroup [Instance]

-- | The launch template for the group.
asgLaunchTemplate :: Lens' AutoScalingGroup (Maybe LaunchTemplateSpecification)

-- | The Amazon Resource Name (ARN) of the Auto Scaling group.
asgAutoScalingGroupARN :: Lens' AutoScalingGroup (Maybe Text)

-- | The name of the placement group into which you'll launch your
--   instances, if any. For more information, see <a>Placement Groups</a>
--   in the <i>Amazon Elastic Compute Cloud User Guide</i> .
asgPlacementGroup :: Lens' AutoScalingGroup (Maybe Text)

-- | The suspended processes associated with the group.
asgSuspendedProcesses :: Lens' AutoScalingGroup [SuspendedProcess]

-- | One or more load balancers associated with the group.
asgLoadBalancerNames :: Lens' AutoScalingGroup [Text]

-- | The tags for the group.
asgTags :: Lens' AutoScalingGroup [TagDescription]

-- | The name of the Auto Scaling group.
asgAutoScalingGroupName :: Lens' AutoScalingGroup Text

-- | The minimum size of the group.
asgMinSize :: Lens' AutoScalingGroup Int

-- | The maximum size of the group.
asgMaxSize :: Lens' AutoScalingGroup Int

-- | The desired size of the group.
asgDesiredCapacity :: Lens' AutoScalingGroup Int

-- | The amount of time, in seconds, after a scaling activity completes
--   before another scaling activity can start.
asgDefaultCooldown :: Lens' AutoScalingGroup Int

-- | One or more Availability Zones for the group.
asgAvailabilityZones :: Lens' AutoScalingGroup (NonEmpty Text)

-- | The service to use for the health checks. The valid values are
--   <tt>EC2</tt> and <tt>ELB</tt> .
asgHealthCheckType :: Lens' AutoScalingGroup Text

-- | The date and time the group was created.
asgCreatedTime :: Lens' AutoScalingGroup UTCTime

-- | Describes an EC2 instance associated with an Auto Scaling group.
--   
--   <i>See:</i> <a>autoScalingInstanceDetails</a> smart constructor.
data AutoScalingInstanceDetails

-- | Creates a value of <a>AutoScalingInstanceDetails</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>asidLaunchConfigurationName</a> - The launch configuration used
--   to launch the instance. This value is not available if you attached
--   the instance to the Auto Scaling group.</li>
--   <li><a>asidLaunchTemplate</a> - The launch template for the
--   instance.</li>
--   <li><a>asidInstanceId</a> - The ID of the instance.</li>
--   <li><a>asidAutoScalingGroupName</a> - The name of the Auto Scaling
--   group for the instance.</li>
--   <li><a>asidAvailabilityZone</a> - The Availability Zone for the
--   instance.</li>
--   <li><a>asidLifecycleState</a> - The lifecycle state for the instance.
--   For more information, see <a>Auto Scaling Lifecycle</a> in the <i>Auto
--   Scaling User Guide</i> .</li>
--   <li><a>asidHealthStatus</a> - The last reported health status of this
--   instance. <a>Healthy</a> means that the instance is healthy and should
--   remain in service. <a>Unhealthy</a> means that the instance is
--   unhealthy and Auto Scaling should terminate and replace it.</li>
--   <li><a>asidProtectedFromScaleIn</a> - Indicates whether the instance
--   is protected from termination by Auto Scaling when scaling in.</li>
--   </ul>
autoScalingInstanceDetails :: Text -> Text -> Text -> Text -> Text -> Bool -> AutoScalingInstanceDetails

-- | The launch configuration used to launch the instance. This value is
--   not available if you attached the instance to the Auto Scaling group.
asidLaunchConfigurationName :: Lens' AutoScalingInstanceDetails (Maybe Text)

-- | The launch template for the instance.
asidLaunchTemplate :: Lens' AutoScalingInstanceDetails (Maybe LaunchTemplateSpecification)

-- | The ID of the instance.
asidInstanceId :: Lens' AutoScalingInstanceDetails Text

-- | The name of the Auto Scaling group for the instance.
asidAutoScalingGroupName :: Lens' AutoScalingInstanceDetails Text

-- | The Availability Zone for the instance.
asidAvailabilityZone :: Lens' AutoScalingInstanceDetails Text

-- | The lifecycle state for the instance. For more information, see
--   <a>Auto Scaling Lifecycle</a> in the <i>Auto Scaling User Guide</i> .
asidLifecycleState :: Lens' AutoScalingInstanceDetails Text

-- | The last reported health status of this instance. <a>Healthy</a> means
--   that the instance is healthy and should remain in service.
--   <a>Unhealthy</a> means that the instance is unhealthy and Auto Scaling
--   should terminate and replace it.
asidHealthStatus :: Lens' AutoScalingInstanceDetails Text

-- | Indicates whether the instance is protected from termination by Auto
--   Scaling when scaling in.
asidProtectedFromScaleIn :: Lens' AutoScalingInstanceDetails Bool

-- | Describes a block device mapping.
--   
--   <i>See:</i> <a>blockDeviceMapping</a> smart constructor.
data BlockDeviceMapping

-- | Creates a value of <a>BlockDeviceMapping</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>bdmVirtualName</a> - The name of the virtual device (for
--   example, <tt>ephemeral0</tt> ).</li>
--   <li><a>bdmNoDevice</a> - Suppresses a device mapping. If this
--   parameter is true for the root device, the instance might fail the EC2
--   health check. Auto Scaling launches a replacement instance if the
--   instance fails the health check.</li>
--   <li><a>bdmEBS</a> - The information about the Amazon EBS volume.</li>
--   <li><a>bdmDeviceName</a> - The device name exposed to the EC2 instance
--   (for example, <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).</li>
--   </ul>
blockDeviceMapping :: Text -> BlockDeviceMapping

-- | The name of the virtual device (for example, <tt>ephemeral0</tt> ).
bdmVirtualName :: Lens' BlockDeviceMapping (Maybe Text)

-- | Suppresses a device mapping. If this parameter is true for the root
--   device, the instance might fail the EC2 health check. Auto Scaling
--   launches a replacement instance if the instance fails the health
--   check.
bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Bool)

-- | The information about the Amazon EBS volume.
bdmEBS :: Lens' BlockDeviceMapping (Maybe EBS)

-- | The device name exposed to the EC2 instance (for example,
--   <tt><i>dev</i>sdh</tt> or <tt>xvdh</tt> ).
bdmDeviceName :: Lens' BlockDeviceMapping 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 an Amazon EBS volume.
--   
--   <i>See:</i> <a>ebs</a> smart constructor.
data EBS

-- | Creates a value of <a>EBS</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>ebsDeleteOnTermination</a> - Indicates whether the volume is
--   deleted on instance termination. The default is <tt>true</tt> .</li>
--   <li><a>ebsVolumeSize</a> - The volume size, in GiB. For
--   <tt>standard</tt> volumes, specify a value from 1 to 1,024. For
--   <tt>io1</tt> volumes, specify a value from 4 to 16,384. For
--   <tt>gp2</tt> volumes, specify a value from 1 to 16,384. If you specify
--   a snapshot, the volume size must be equal to or larger than the
--   snapshot size. Default: If you create a volume from a snapshot and you
--   don't specify a volume size, the default is the snapshot size.</li>
--   <li><a>ebsIOPS</a> - The number of I/O operations per second (IOPS) to
--   provision for the volume. Constraint: Required when the volume type is
--   <tt>io1</tt> .</li>
--   <li><a>ebsEncrypted</a> - Indicates whether the volume should be
--   encrypted. Encrypted EBS volumes must be attached to instances that
--   support Amazon EBS encryption. Volumes that are created from encrypted
--   snapshots are automatically encrypted. There is no way to create an
--   encrypted volume from an unencrypted snapshot or an unencrypted volume
--   from an encrypted snapshot. For more information, see <a>Amazon EBS
--   Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .</li>
--   <li><a>ebsVolumeType</a> - The volume type. For more information, see
--   <a>Amazon EBS Volume Types</a> in the <i>Amazon Elastic Compute Cloud
--   User Guide</i> . Valid values: <tt>standard</tt> | <tt>io1</tt> |
--   <tt>gp2</tt> Default: <tt>standard</tt></li>
--   <li><a>ebsSnapshotId</a> - The ID of the snapshot.</li>
--   </ul>
ebs :: EBS

-- | Indicates whether the volume is deleted on instance termination. The
--   default is <tt>true</tt> .
ebsDeleteOnTermination :: Lens' EBS (Maybe Bool)

-- | The volume size, in GiB. For <tt>standard</tt> volumes, specify a
--   value from 1 to 1,024. For <tt>io1</tt> volumes, specify a value from
--   4 to 16,384. For <tt>gp2</tt> volumes, specify a value from 1 to
--   16,384. If you specify a snapshot, the volume size must be equal to or
--   larger than the snapshot size. Default: If you create a volume from a
--   snapshot and you don't specify a volume size, the default is the
--   snapshot size.
ebsVolumeSize :: Lens' EBS (Maybe Natural)

-- | The number of I/O operations per second (IOPS) to provision for the
--   volume. Constraint: Required when the volume type is <tt>io1</tt> .
ebsIOPS :: Lens' EBS (Maybe Natural)

-- | Indicates whether the volume should be encrypted. Encrypted EBS
--   volumes must be attached to instances that support Amazon EBS
--   encryption. Volumes that are created from encrypted snapshots are
--   automatically encrypted. There is no way to create an encrypted volume
--   from an unencrypted snapshot or an unencrypted volume from an
--   encrypted snapshot. For more information, see <a>Amazon EBS
--   Encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
ebsEncrypted :: Lens' EBS (Maybe Bool)

-- | The volume type. For more information, see <a>Amazon EBS Volume
--   Types</a> in the <i>Amazon Elastic Compute Cloud User Guide</i> .
--   Valid values: <tt>standard</tt> | <tt>io1</tt> | <tt>gp2</tt> Default:
--   <tt>standard</tt>
ebsVolumeType :: Lens' EBS (Maybe Text)

-- | The ID of the snapshot.
ebsSnapshotId :: Lens' EBS (Maybe Text)

-- | Describes an enabled metric.
--   
--   <i>See:</i> <a>enabledMetric</a> smart constructor.
data EnabledMetric

-- | Creates a value of <a>EnabledMetric</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>emGranularity</a> - The granularity of the metric. The only
--   valid value is <tt>1Minute</tt> .</li>
--   <li><a>emMetric</a> - One of the following metrics: *
--   <tt>GroupMinSize</tt> * <tt>GroupMaxSize</tt> *
--   <tt>GroupDesiredCapacity</tt> * <tt>GroupInServiceInstances</tt> *
--   <tt>GroupPendingInstances</tt> * <tt>GroupStandbyInstances</tt> *
--   <tt>GroupTerminatingInstances</tt> * <tt>GroupTotalInstances</tt></li>
--   </ul>
enabledMetric :: EnabledMetric

-- | The granularity of the metric. The only valid value is
--   <tt>1Minute</tt> .
emGranularity :: Lens' EnabledMetric (Maybe Text)

-- | One of the following metrics: * <tt>GroupMinSize</tt> *
--   <tt>GroupMaxSize</tt> * <tt>GroupDesiredCapacity</tt> *
--   <tt>GroupInServiceInstances</tt> * <tt>GroupPendingInstances</tt> *
--   <tt>GroupStandbyInstances</tt> * <tt>GroupTerminatingInstances</tt> *
--   <tt>GroupTotalInstances</tt>
emMetric :: Lens' EnabledMetric (Maybe Text)

-- | Describes a filter.
--   
--   <i>See:</i> <a>filter'</a> smart constructor.
data Filter

-- | Creates a value of <a>Filter</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>fValues</a> - The value of the filter.</li>
--   <li><a>fName</a> - The name of the filter. The valid values are:
--   <tt>"auto-scaling-group"</tt> , <tt>"key"</tt> , <tt>"value"</tt> ,
--   and <tt>"propagate-at-launch"</tt> .</li>
--   </ul>
filter' :: Text -> Filter

-- | The value of the filter.
fValues :: Lens' Filter [Text]

-- | The name of the filter. The valid values are:
--   <tt>"auto-scaling-group"</tt> , <tt>"key"</tt> , <tt>"value"</tt> ,
--   and <tt>"propagate-at-launch"</tt> .
fName :: Lens' Filter Text

-- | Describes an EC2 instance.
--   
--   <i>See:</i> <a>instance'</a> smart constructor.
data Instance

-- | Creates a value of <a>Instance</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>iLaunchConfigurationName</a> - The launch configuration
--   associated with the instance.</li>
--   <li><a>iLaunchTemplate</a> - The launch template for the
--   instance.</li>
--   <li><a>iInstanceId</a> - The ID of the instance.</li>
--   <li><a>iAvailabilityZone</a> - The Availability Zone in which the
--   instance is running.</li>
--   <li><a>iLifecycleState</a> - A description of the current lifecycle
--   state. Note that the <tt>Quarantined</tt> state is not used.</li>
--   <li><a>iHealthStatus</a> - The last reported health status of the
--   instance. <a>Healthy</a> means that the instance is healthy and should
--   remain in service. <a>Unhealthy</a> means that the instance is
--   unhealthy and Auto Scaling should terminate and replace it.</li>
--   <li><a>iProtectedFromScaleIn</a> - Indicates whether the instance is
--   protected from termination by Auto Scaling when scaling in.</li>
--   </ul>
instance' :: Text -> Text -> LifecycleState -> Text -> Bool -> Instance

-- | The launch configuration associated with the instance.
iLaunchConfigurationName :: Lens' Instance (Maybe Text)

-- | The launch template for the instance.
iLaunchTemplate :: Lens' Instance (Maybe LaunchTemplateSpecification)

-- | The ID of the instance.
iInstanceId :: Lens' Instance Text

-- | The Availability Zone in which the instance is running.
iAvailabilityZone :: Lens' Instance Text

-- | A description of the current lifecycle state. Note that the
--   <tt>Quarantined</tt> state is not used.
iLifecycleState :: Lens' Instance LifecycleState

-- | The last reported health status of the instance. <a>Healthy</a> means
--   that the instance is healthy and should remain in service.
--   <a>Unhealthy</a> means that the instance is unhealthy and Auto Scaling
--   should terminate and replace it.
iHealthStatus :: Lens' Instance Text

-- | Indicates whether the instance is protected from termination by Auto
--   Scaling when scaling in.
iProtectedFromScaleIn :: Lens' Instance Bool

-- | Describes whether detailed monitoring is enabled for the Auto Scaling
--   instances.
--   
--   <i>See:</i> <a>instanceMonitoring</a> smart constructor.
data InstanceMonitoring

-- | Creates a value of <a>InstanceMonitoring</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>imEnabled</a> - If <tt>true</tt> , detailed monitoring is
--   enabled. Otherwise, basic monitoring is enabled.</li>
--   </ul>
instanceMonitoring :: InstanceMonitoring

-- | If <tt>true</tt> , detailed monitoring is enabled. Otherwise, basic
--   monitoring is enabled.
imEnabled :: Lens' InstanceMonitoring (Maybe Bool)

-- | Describes a launch configuration.
--   
--   <i>See:</i> <a>launchConfiguration</a> smart constructor.
data LaunchConfiguration

-- | Creates a value of <a>LaunchConfiguration</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>lcAssociatePublicIPAddress</a> - [EC2-VPC] Indicates whether to
--   assign a public IP address to each instance.</li>
--   <li><a>lcSecurityGroups</a> - The security groups to associate with
--   the instances.</li>
--   <li><a>lcSpotPrice</a> - The price to bid when launching Spot
--   Instances.</li>
--   <li><a>lcInstanceMonitoring</a> - Controls whether instances in this
--   group are launched with detailed (<tt>true</tt> ) or basic
--   (<tt>false</tt> ) monitoring.</li>
--   <li><a>lcKeyName</a> - The name of the key pair.</li>
--   <li><a>lcClassicLinkVPCSecurityGroups</a> - The IDs of one or more
--   security groups for the VPC specified in <tt>ClassicLinkVPCId</tt> .
--   This parameter is required if you specify a ClassicLink-enabled VPC,
--   and cannot be used otherwise. For more information, see
--   <a>ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>lcRAMDiskId</a> - The ID of the RAM disk associated with the
--   AMI.</li>
--   <li><a>lcKernelId</a> - The ID of the kernel associated with the
--   AMI.</li>
--   <li><a>lcEBSOptimized</a> - Controls whether the instance is optimized
--   for EBS I/O (<tt>true</tt> ) or not (<tt>false</tt> ).</li>
--   <li><a>lcUserData</a> - The user data available to the instances.</li>
--   <li><a>lcClassicLinkVPCId</a> - The ID of a ClassicLink-enabled VPC to
--   link your EC2-Classic instances to. This parameter can only be used if
--   you are launching EC2-Classic instances. For more information, see
--   <a>ClassicLink</a> in the <i>Amazon Elastic Compute Cloud User
--   Guide</i> .</li>
--   <li><a>lcIAMInstanceProfile</a> - The name or Amazon Resource Name
--   (ARN) of the instance profile associated with the IAM role for the
--   instance.</li>
--   <li><a>lcLaunchConfigurationARN</a> - The Amazon Resource Name (ARN)
--   of the launch configuration.</li>
--   <li><a>lcPlacementTenancy</a> - The tenancy of the instance, either
--   <tt>default</tt> or <tt>dedicated</tt> . An instance with
--   <tt>dedicated</tt> tenancy runs in an isolated, single-tenant hardware
--   and can only be launched into a VPC.</li>
--   <li><a>lcBlockDeviceMappings</a> - A block device mapping, which
--   specifies the block devices for the instance.</li>
--   <li><a>lcLaunchConfigurationName</a> - The name of the launch
--   configuration.</li>
--   <li><a>lcImageId</a> - The ID of the Amazon Machine Image (AMI).</li>
--   <li><a>lcInstanceType</a> - The instance type for the instances.</li>
--   <li><a>lcCreatedTime</a> - The creation date and time for the launch
--   configuration.</li>
--   </ul>
launchConfiguration :: Text -> Text -> Text -> UTCTime -> LaunchConfiguration

-- | <ul>
--   <li><i>EC2-VPC</i> Indicates whether to assign a public IP address to
--   each instance.</li>
--   </ul>
lcAssociatePublicIPAddress :: Lens' LaunchConfiguration (Maybe Bool)

-- | The security groups to associate with the instances.
lcSecurityGroups :: Lens' LaunchConfiguration [Text]

-- | The price to bid when launching Spot Instances.
lcSpotPrice :: Lens' LaunchConfiguration (Maybe Text)

-- | Controls whether instances in this group are launched with detailed
--   (<tt>true</tt> ) or basic (<tt>false</tt> ) monitoring.
lcInstanceMonitoring :: Lens' LaunchConfiguration (Maybe InstanceMonitoring)

-- | The name of the key pair.
lcKeyName :: Lens' LaunchConfiguration (Maybe Text)

-- | The IDs of one or more security groups for the VPC specified in
--   <tt>ClassicLinkVPCId</tt> . This parameter is required if you specify
--   a ClassicLink-enabled VPC, and cannot be used otherwise. For more
--   information, see <a>ClassicLink</a> in the <i>Amazon Elastic Compute
--   Cloud User Guide</i> .
lcClassicLinkVPCSecurityGroups :: Lens' LaunchConfiguration [Text]

-- | The ID of the RAM disk associated with the AMI.
lcRAMDiskId :: Lens' LaunchConfiguration (Maybe Text)

-- | The ID of the kernel associated with the AMI.
lcKernelId :: Lens' LaunchConfiguration (Maybe Text)

-- | Controls whether the instance is optimized for EBS I/O (<tt>true</tt>
--   ) or not (<tt>false</tt> ).
lcEBSOptimized :: Lens' LaunchConfiguration (Maybe Bool)

-- | The user data available to the instances.
lcUserData :: Lens' LaunchConfiguration (Maybe Text)

-- | The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances
--   to. This parameter can only be used if you are launching EC2-Classic
--   instances. For more information, see <a>ClassicLink</a> in the
--   <i>Amazon Elastic Compute Cloud User Guide</i> .
lcClassicLinkVPCId :: Lens' LaunchConfiguration (Maybe Text)

-- | The name or Amazon Resource Name (ARN) of the instance profile
--   associated with the IAM role for the instance.
lcIAMInstanceProfile :: Lens' LaunchConfiguration (Maybe Text)

-- | The Amazon Resource Name (ARN) of the launch configuration.
lcLaunchConfigurationARN :: Lens' LaunchConfiguration (Maybe Text)

-- | The tenancy of the instance, either <tt>default</tt> or
--   <tt>dedicated</tt> . An instance with <tt>dedicated</tt> tenancy runs
--   in an isolated, single-tenant hardware and can only be launched into a
--   VPC.
lcPlacementTenancy :: Lens' LaunchConfiguration (Maybe Text)

-- | A block device mapping, which specifies the block devices for the
--   instance.
lcBlockDeviceMappings :: Lens' LaunchConfiguration [BlockDeviceMapping]

-- | The name of the launch configuration.
lcLaunchConfigurationName :: Lens' LaunchConfiguration Text

-- | The ID of the Amazon Machine Image (AMI).
lcImageId :: Lens' LaunchConfiguration Text

-- | The instance type for the instances.
lcInstanceType :: Lens' LaunchConfiguration Text

-- | The creation date and time for the launch configuration.
lcCreatedTime :: Lens' LaunchConfiguration UTCTime

-- | Describes a launch template.
--   
--   <i>See:</i> <a>launchTemplateSpecification</a> smart constructor.
data LaunchTemplateSpecification

-- | Creates a value of <a>LaunchTemplateSpecification</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>ltsLaunchTemplateName</a> - The name of the launch template.
--   You must specify either a template name or a template ID.</li>
--   <li><a>ltsLaunchTemplateId</a> - The ID of the launch template. You
--   must specify either a template ID or a template name.</li>
--   <li><a>ltsVersion</a> - The version number, <tt>&gt; Latest</tt> , or
--   <tt>&gt; Default</tt> . If the value is <tt>&gt; Latest</tt> , Auto
--   Scaling selects the latest version of the launch template when
--   launching instances. If the value is <tt>&gt; Default</tt> , Auto
--   Scaling selects the default version of the launch template when
--   launching instances. The default value is <tt>&gt; Default</tt> .</li>
--   </ul>
launchTemplateSpecification :: LaunchTemplateSpecification

-- | The name of the launch template. You must specify either a template
--   name or a template ID.
ltsLaunchTemplateName :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The ID of the launch template. You must specify either a template ID
--   or a template name.
ltsLaunchTemplateId :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | The version number, <tt>&gt; Latest</tt> , or <tt>&gt; Default</tt> .
--   If the value is <tt>&gt; Latest</tt> , Auto Scaling selects the latest
--   version of the launch template when launching instances. If the value
--   is <tt>&gt; Default</tt> , Auto Scaling selects the default version of
--   the launch template when launching instances. The default value is
--   <tt>&gt; Default</tt> .
ltsVersion :: Lens' LaunchTemplateSpecification (Maybe Text)

-- | Describes a lifecycle hook, which tells Auto Scaling that you want to
--   perform an action whenever it launches instances or whenever it
--   terminates instances.
--   
--   For more information, see <a>Auto Scaling Lifecycle Hooks</a> in the
--   <i>Auto Scaling User Guide</i> .
--   
--   <i>See:</i> <a>lifecycleHook</a> smart constructor.
data LifecycleHook

-- | Creates a value of <a>LifecycleHook</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>lhDefaultResult</a> - Defines the action the Auto Scaling group
--   should take when the lifecycle hook timeout elapses or if an
--   unexpected failure occurs. The valid values are <tt>CONTINUE</tt> and
--   <tt>ABANDON</tt> . The default value is <tt>CONTINUE</tt> .</li>
--   <li><a>lhLifecycleHookName</a> - The name of the lifecycle hook.</li>
--   <li><a>lhHeartbeatTimeout</a> - The maximum time, in seconds, that can
--   elapse before the lifecycle hook times out. If the lifecycle hook
--   times out, Auto Scaling performs the default action. You can prevent
--   the lifecycle hook from timing out by calling
--   <tt>RecordLifecycleActionHeartbeat</tt> .</li>
--   <li><a>lhAutoScalingGroupName</a> - The name of the Auto Scaling group
--   for the lifecycle hook.</li>
--   <li><a>lhNotificationMetadata</a> - Additional information that you
--   want to include any time Auto Scaling sends a message to the
--   notification target.</li>
--   <li><a>lhGlobalTimeout</a> - The maximum time, in seconds, that an
--   instance can remain in a <tt>Pending:Wait</tt> or
--   <tt>Terminating:Wait</tt> state. The maximum is 172800 seconds (48
--   hours) or 100 times <tt>HeartbeatTimeout</tt> , whichever is
--   smaller.</li>
--   <li><a>lhNotificationTargetARN</a> - The ARN of the target that Auto
--   Scaling sends notifications to when an instance is in the transition
--   state for the lifecycle hook. The notification target can be either an
--   SQS queue or an SNS topic.</li>
--   <li><a>lhLifecycleTransition</a> - The state of the EC2 instance to
--   which you want to attach the lifecycle hook. For a list of lifecycle
--   hook types, see <tt>DescribeLifecycleHookTypes</tt> .</li>
--   <li><a>lhRoleARN</a> - The ARN of the IAM role that allows the Auto
--   Scaling group to publish to the specified notification target.</li>
--   </ul>
lifecycleHook :: LifecycleHook

-- | Defines the action the Auto Scaling group should take when the
--   lifecycle hook timeout elapses or if an unexpected failure occurs. The
--   valid values are <tt>CONTINUE</tt> and <tt>ABANDON</tt> . The default
--   value is <tt>CONTINUE</tt> .
lhDefaultResult :: Lens' LifecycleHook (Maybe Text)

-- | The name of the lifecycle hook.
lhLifecycleHookName :: Lens' LifecycleHook (Maybe Text)

-- | The maximum time, in seconds, that can elapse before the lifecycle
--   hook times out. If the lifecycle hook times out, Auto Scaling performs
--   the default action. You can prevent the lifecycle hook from timing out
--   by calling <tt>RecordLifecycleActionHeartbeat</tt> .
lhHeartbeatTimeout :: Lens' LifecycleHook (Maybe Int)

-- | The name of the Auto Scaling group for the lifecycle hook.
lhAutoScalingGroupName :: Lens' LifecycleHook (Maybe Text)

-- | Additional information that you want to include any time Auto Scaling
--   sends a message to the notification target.
lhNotificationMetadata :: Lens' LifecycleHook (Maybe Text)

-- | The maximum time, in seconds, that an instance can remain in a
--   <tt>Pending:Wait</tt> or <tt>Terminating:Wait</tt> state. The maximum
--   is 172800 seconds (48 hours) or 100 times <tt>HeartbeatTimeout</tt> ,
--   whichever is smaller.
lhGlobalTimeout :: Lens' LifecycleHook (Maybe Int)

-- | The ARN of the target that Auto Scaling sends notifications to when an
--   instance is in the transition state for the lifecycle hook. The
--   notification target can be either an SQS queue or an SNS topic.
lhNotificationTargetARN :: Lens' LifecycleHook (Maybe Text)

-- | The state of the EC2 instance to which you want to attach the
--   lifecycle hook. For a list of lifecycle hook types, see
--   <tt>DescribeLifecycleHookTypes</tt> .
lhLifecycleTransition :: Lens' LifecycleHook (Maybe Text)

-- | The ARN of the IAM role that allows the Auto Scaling group to publish
--   to the specified notification target.
lhRoleARN :: Lens' LifecycleHook (Maybe Text)

-- | Describes a lifecycle hook, which tells Auto Scaling that you want to
--   perform an action whenever it launches instances or whenever it
--   terminates instances.
--   
--   For more information, see <a>Auto Scaling Lifecycle Hooks</a> in the
--   <i>Auto Scaling User Guide</i> .
--   
--   <i>See:</i> <a>lifecycleHookSpecification</a> smart constructor.
data LifecycleHookSpecification

-- | Creates a value of <a>LifecycleHookSpecification</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>lhsDefaultResult</a> - Defines the action the Auto Scaling
--   group should take when the lifecycle hook timeout elapses or if an
--   unexpected failure occurs. The valid values are <tt>CONTINUE</tt> and
--   <tt>ABANDON</tt> .</li>
--   <li><a>lhsHeartbeatTimeout</a> - The maximum time, in seconds, that
--   can elapse before the lifecycle hook times out. If the lifecycle hook
--   times out, Auto Scaling performs the default action. You can prevent
--   the lifecycle hook from timing out by calling
--   <tt>RecordLifecycleActionHeartbeat</tt> .</li>
--   <li><a>lhsNotificationMetadata</a> - Additional information that you
--   want to include any time Auto Scaling sends a message to the
--   notification target.</li>
--   <li><a>lhsNotificationTargetARN</a> - The ARN of the target that Auto
--   Scaling sends notifications to when an instance is in the transition
--   state for the lifecycle hook. The notification target can be either an
--   SQS queue or an SNS topic.</li>
--   <li><a>lhsRoleARN</a> - The ARN of the IAM role that allows the Auto
--   Scaling group to publish to the specified notification target.</li>
--   <li><a>lhsLifecycleHookName</a> - The name of the lifecycle hook.</li>
--   <li><a>lhsLifecycleTransition</a> - The state of the EC2 instance to
--   which you want to attach the lifecycle hook. For a list of lifecycle
--   hook types, see <tt>DescribeLifecycleHookTypes</tt> .</li>
--   </ul>
lifecycleHookSpecification :: Text -> Text -> LifecycleHookSpecification

-- | Defines the action the Auto Scaling group should take when the
--   lifecycle hook timeout elapses or if an unexpected failure occurs. The
--   valid values are <tt>CONTINUE</tt> and <tt>ABANDON</tt> .
lhsDefaultResult :: Lens' LifecycleHookSpecification (Maybe Text)

-- | The maximum time, in seconds, that can elapse before the lifecycle
--   hook times out. If the lifecycle hook times out, Auto Scaling performs
--   the default action. You can prevent the lifecycle hook from timing out
--   by calling <tt>RecordLifecycleActionHeartbeat</tt> .
lhsHeartbeatTimeout :: Lens' LifecycleHookSpecification (Maybe Int)

-- | Additional information that you want to include any time Auto Scaling
--   sends a message to the notification target.
lhsNotificationMetadata :: Lens' LifecycleHookSpecification (Maybe Text)

-- | The ARN of the target that Auto Scaling sends notifications to when an
--   instance is in the transition state for the lifecycle hook. The
--   notification target can be either an SQS queue or an SNS topic.
lhsNotificationTargetARN :: Lens' LifecycleHookSpecification (Maybe Text)

-- | The ARN of the IAM role that allows the Auto Scaling group to publish
--   to the specified notification target.
lhsRoleARN :: Lens' LifecycleHookSpecification (Maybe Text)

-- | The name of the lifecycle hook.
lhsLifecycleHookName :: Lens' LifecycleHookSpecification Text

-- | The state of the EC2 instance to which you want to attach the
--   lifecycle hook. For a list of lifecycle hook types, see
--   <tt>DescribeLifecycleHookTypes</tt> .
lhsLifecycleTransition :: Lens' LifecycleHookSpecification Text

-- | Describes the state of a Classic Load Balancer.
--   
--   If you specify a load balancer when creating the Auto Scaling group,
--   the state of the load balancer is <tt>InService</tt> .
--   
--   If you attach a load balancer to an existing Auto Scaling group, the
--   initial state is <tt>Adding</tt> . The state transitions to
--   <tt>Added</tt> after all instances in the group are registered with
--   the load balancer. If ELB health checks are enabled for the load
--   balancer, the state transitions to <tt>InService</tt> after at least
--   one instance in the group passes the health check. If EC2 health
--   checks are enabled instead, the load balancer remains in the
--   <tt>Added</tt> state.
--   
--   <i>See:</i> <a>loadBalancerState</a> smart constructor.
data LoadBalancerState

-- | Creates a value of <a>LoadBalancerState</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>lbsState</a> - One of the following load balancer states: *
--   <tt>Adding</tt> - The instances in the group are being registered with
--   the load balancer. * <tt>Added</tt> - All instances in the group are
--   registered with the load balancer. * <tt>InService</tt> - At least one
--   instance in the group passed an ELB health check. * <tt>Removing</tt>
--   - The instances in the group are being deregistered from the load
--   balancer. If connection draining is enabled, Elastic Load Balancing
--   waits for in-flight requests to complete before deregistering the
--   instances. * <tt>Removed</tt> - All instances in the group are
--   deregistered from the load balancer.</li>
--   <li><a>lbsLoadBalancerName</a> - The name of the load balancer.</li>
--   </ul>
loadBalancerState :: LoadBalancerState

-- | One of the following load balancer states: * <tt>Adding</tt> - The
--   instances in the group are being registered with the load balancer. *
--   <tt>Added</tt> - All instances in the group are registered with the
--   load balancer. * <tt>InService</tt> - At least one instance in the
--   group passed an ELB health check. * <tt>Removing</tt> - The instances
--   in the group are being deregistered from the load balancer. If
--   connection draining is enabled, Elastic Load Balancing waits for
--   in-flight requests to complete before deregistering the instances. *
--   <tt>Removed</tt> - All instances in the group are deregistered from
--   the load balancer.
lbsState :: Lens' LoadBalancerState (Maybe Text)

-- | The name of the load balancer.
lbsLoadBalancerName :: Lens' LoadBalancerState (Maybe Text)

-- | Describes the state of a target group.
--   
--   If you attach a target group to an existing Auto Scaling group, the
--   initial state is <tt>Adding</tt> . The state transitions to
--   <tt>Added</tt> after all Auto Scaling instances are registered with
--   the target group. If ELB health checks are enabled, the state
--   transitions to <tt>InService</tt> after at least one Auto Scaling
--   instance passes the health check. If EC2 health checks are enabled
--   instead, the target group remains in the <tt>Added</tt> state.
--   
--   <i>See:</i> <a>loadBalancerTargetGroupState</a> smart constructor.
data LoadBalancerTargetGroupState

-- | Creates a value of <a>LoadBalancerTargetGroupState</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>lbtgsState</a> - The state of the target group. *
--   <tt>Adding</tt> - The Auto Scaling instances are being registered with
--   the target group. * <tt>Added</tt> - All Auto Scaling instances are
--   registered with the target group. * <tt>InService</tt> - At least one
--   Auto Scaling instance passed an ELB health check. * <tt>Removing</tt>
--   - The Auto Scaling instances are being deregistered from the target
--   group. If connection draining is enabled, Elastic Load Balancing waits
--   for in-flight requests to complete before deregistering the instances.
--   * <tt>Removed</tt> - All Auto Scaling instances are deregistered from
--   the target group.</li>
--   <li><a>lbtgsLoadBalancerTargetGroupARN</a> - The Amazon Resource Name
--   (ARN) of the target group.</li>
--   </ul>
loadBalancerTargetGroupState :: LoadBalancerTargetGroupState

-- | The state of the target group. * <tt>Adding</tt> - The Auto Scaling
--   instances are being registered with the target group. * <tt>Added</tt>
--   - All Auto Scaling instances are registered with the target group. *
--   <tt>InService</tt> - At least one Auto Scaling instance passed an ELB
--   health check. * <tt>Removing</tt> - The Auto Scaling instances are
--   being deregistered from the target group. If connection draining is
--   enabled, Elastic Load Balancing waits for in-flight requests to
--   complete before deregistering the instances. * <tt>Removed</tt> - All
--   Auto Scaling instances are deregistered from the target group.
lbtgsState :: Lens' LoadBalancerTargetGroupState (Maybe Text)

-- | The Amazon Resource Name (ARN) of the target group.
lbtgsLoadBalancerTargetGroupARN :: Lens' LoadBalancerTargetGroupState (Maybe Text)

-- | Describes a metric.
--   
--   <i>See:</i> <a>metricCollectionType</a> smart constructor.
data MetricCollectionType

-- | Creates a value of <a>MetricCollectionType</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>mctMetric</a> - One of the following metrics: *
--   <tt>GroupMinSize</tt> * <tt>GroupMaxSize</tt> *
--   <tt>GroupDesiredCapacity</tt> * <tt>GroupInServiceInstances</tt> *
--   <tt>GroupPendingInstances</tt> * <tt>GroupStandbyInstances</tt> *
--   <tt>GroupTerminatingInstances</tt> * <tt>GroupTotalInstances</tt></li>
--   </ul>
metricCollectionType :: MetricCollectionType

-- | One of the following metrics: * <tt>GroupMinSize</tt> *
--   <tt>GroupMaxSize</tt> * <tt>GroupDesiredCapacity</tt> *
--   <tt>GroupInServiceInstances</tt> * <tt>GroupPendingInstances</tt> *
--   <tt>GroupStandbyInstances</tt> * <tt>GroupTerminatingInstances</tt> *
--   <tt>GroupTotalInstances</tt>
mctMetric :: Lens' MetricCollectionType (Maybe Text)

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

-- | Describes a granularity of a metric.
--   
--   <i>See:</i> <a>metricGranularityType</a> smart constructor.
data MetricGranularityType

-- | Creates a value of <a>MetricGranularityType</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>mgtGranularity</a> - The granularity. The only valid value is
--   <tt>1Minute</tt> .</li>
--   </ul>
metricGranularityType :: MetricGranularityType

-- | The granularity. The only valid value is <tt>1Minute</tt> .
mgtGranularity :: Lens' MetricGranularityType (Maybe Text)

-- | Describes a notification.
--   
--   <i>See:</i> <a>notificationConfiguration</a> smart constructor.
data NotificationConfiguration

-- | Creates a value of <a>NotificationConfiguration</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>ncTopicARN</a> - The Amazon Resource Name (ARN) of the Amazon
--   Simple Notification Service (SNS) topic.</li>
--   <li><a>ncAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>ncNotificationType</a> - One of the following event
--   notification types: * <tt>autoscaling:EC2_INSTANCE_LAUNCH</tt> *
--   <tt>autoscaling:EC2_INSTANCE_LAUNCH_ERROR</tt> *
--   <tt>autoscaling:EC2_INSTANCE_TERMINATE</tt> *
--   <tt>autoscaling:EC2_INSTANCE_TERMINATE_ERROR</tt> *
--   <tt>autoscaling:TEST_NOTIFICATION</tt></li>
--   </ul>
notificationConfiguration :: NotificationConfiguration

-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification
--   Service (SNS) topic.
ncTopicARN :: Lens' NotificationConfiguration (Maybe Text)

-- | The name of the Auto Scaling group.
ncAutoScalingGroupName :: Lens' NotificationConfiguration (Maybe Text)

-- | One of the following event notification types: *
--   <tt>autoscaling:EC2_INSTANCE_LAUNCH</tt> *
--   <tt>autoscaling:EC2_INSTANCE_LAUNCH_ERROR</tt> *
--   <tt>autoscaling:EC2_INSTANCE_TERMINATE</tt> *
--   <tt>autoscaling:EC2_INSTANCE_TERMINATE_ERROR</tt> *
--   <tt>autoscaling:TEST_NOTIFICATION</tt>
ncNotificationType :: Lens' NotificationConfiguration (Maybe 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. The following predefined metrics are available: *
--   <tt>ASGAverageCPUUtilization</tt> - average CPU utilization of the
--   Auto Scaling group * <tt>ASGAverageNetworkIn</tt> - average number of
--   bytes received on all network interfaces by the Auto Scaling group *
--   <tt>ASGAverageNetworkOut</tt> - average number of bytes sent out on
--   all network interfaces by the Auto Scaling group *
--   <tt>ALBRequestCountPerTarget</tt> - number of requests completed per
--   target in an Application Load Balancer target group For predefined
--   metric types <tt>ASGAverageCPUUtilization</tt> ,
--   <tt>ASGAverageNetworkIn</tt> , and <tt>ASGAverageNetworkOut</tt> , the
--   parameter must not be specified as the resource associated with the
--   metric type is the Auto Scaling group. For predefined metric type
--   <tt>ALBRequestCountPerTarget</tt> , the parameter must be specified in
--   the format: <tt>app/<i>load-balancer-name</i> /<i>load-balancer-id</i>
--   <i>targetgroup</i><i>target-group-name</i> /<i>target-group-id</i>
--   </tt> , where <tt>app/<i>load-balancer-name</i>
--   /<i>load-balancer-id</i> </tt> is the final portion of the load
--   balancer ARN, and <tt>targetgroup/<i>target-group-name</i>
--   /<i>target-group-id</i> </tt> is the final portion of the target group
--   ARN. The target group must be attached to the Auto Scaling group.</li>
--   <li><a>pmsPredefinedMetricType</a> - The metric type.</li>
--   </ul>
predefinedMetricSpecification :: MetricType -> PredefinedMetricSpecification

-- | Identifies the resource associated with the metric type. The following
--   predefined metrics are available: * <tt>ASGAverageCPUUtilization</tt>
--   - average CPU utilization of the Auto Scaling group *
--   <tt>ASGAverageNetworkIn</tt> - average number of bytes received on all
--   network interfaces by the Auto Scaling group *
--   <tt>ASGAverageNetworkOut</tt> - average number of bytes sent out on
--   all network interfaces by the Auto Scaling group *
--   <tt>ALBRequestCountPerTarget</tt> - number of requests completed per
--   target in an Application Load Balancer target group For predefined
--   metric types <tt>ASGAverageCPUUtilization</tt> ,
--   <tt>ASGAverageNetworkIn</tt> , and <tt>ASGAverageNetworkOut</tt> , the
--   parameter must not be specified as the resource associated with the
--   metric type is the Auto Scaling group. For predefined metric type
--   <tt>ALBRequestCountPerTarget</tt> , the parameter must be specified in
--   the format: <tt>app/<i>load-balancer-name</i> /<i>load-balancer-id</i>
--   <i>targetgroup</i><i>target-group-name</i> /<i>target-group-id</i>
--   </tt> , where <tt>app/<i>load-balancer-name</i>
--   /<i>load-balancer-id</i> </tt> is the final portion of the load
--   balancer ARN, and <tt>targetgroup/<i>target-group-name</i>
--   /<i>target-group-id</i> </tt> is the final portion of the target group
--   ARN. The target group must be attached to the Auto Scaling group.
pmsResourceLabel :: Lens' PredefinedMetricSpecification (Maybe Text)

-- | The metric type.
pmsPredefinedMetricType :: Lens' PredefinedMetricSpecification MetricType

-- | Describes a process type.
--   
--   For more information, see <a>Auto Scaling Processes</a> in the <i>Auto
--   Scaling User Guide</i> .
--   
--   <i>See:</i> <a>processType</a> smart constructor.
data ProcessType

-- | Creates a value of <a>ProcessType</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>ptProcessName</a> - One of the following processes: *
--   <tt>Launch</tt> * <tt>Terminate</tt> * <tt>AddToLoadBalancer</tt> *
--   <tt>AlarmNotification</tt> * <tt>AZRebalance</tt> *
--   <tt>HealthCheck</tt> * <tt>ReplaceUnhealthy</tt> *
--   <tt>ScheduledActions</tt></li>
--   </ul>
processType :: Text -> ProcessType

-- | One of the following processes: * <tt>Launch</tt> * <tt>Terminate</tt>
--   * <tt>AddToLoadBalancer</tt> * <tt>AlarmNotification</tt> *
--   <tt>AZRebalance</tt> * <tt>HealthCheck</tt> *
--   <tt>ReplaceUnhealthy</tt> * <tt>ScheduledActions</tt>
ptProcessName :: Lens' ProcessType Text

-- | Describes 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>sMinAdjustmentStep</a> - Available for backward compatibility.
--   Use <tt>MinAdjustmentMagnitude</tt> instead.</li>
--   <li><a>sEstimatedInstanceWarmup</a> - The estimated time, in seconds,
--   until a newly launched instance can contribute to the CloudWatch
--   metrics.</li>
--   <li><a>sPolicyName</a> - The name of the scaling policy.</li>
--   <li><a>sPolicyType</a> - The policy type. Valid values are
--   <tt>SimpleScaling</tt> and <tt>StepScaling</tt> .</li>
--   <li><a>sStepAdjustments</a> - A set of adjustments that enable you to
--   scale based on the size of the alarm breach.</li>
--   <li><a>sTargetTrackingConfiguration</a> - A target tracking
--   policy.</li>
--   <li><a>sAdjustmentType</a> - The adjustment type, which specifies how
--   <tt>ScalingAdjustment</tt> is interpreted. Valid values are
--   <tt>ChangeInCapacity</tt> , <tt>ExactCapacity</tt> , and
--   <tt>PercentChangeInCapacity</tt> .</li>
--   <li><a>sAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>sScalingAdjustment</a> - The amount by which to scale, based on
--   the specified adjustment type. A positive value adds to the current
--   capacity while a negative number removes from the current
--   capacity.</li>
--   <li><a>sCooldown</a> - The amount of time, in seconds, after a scaling
--   activity completes before any further dynamic scaling activities can
--   start.</li>
--   <li><a>sPolicyARN</a> - The Amazon Resource Name (ARN) of the
--   policy.</li>
--   <li><a>sAlarms</a> - The CloudWatch alarms related to the policy.</li>
--   <li><a>sMetricAggregationType</a> - The aggregation type for the
--   CloudWatch metrics. Valid values are <tt>Minimum</tt> ,
--   <tt>Maximum</tt> , and <tt>Average</tt> .</li>
--   <li><a>sMinAdjustmentMagnitude</a> - The minimum number of instances
--   to scale. If the value of <tt>AdjustmentType</tt> is
--   <tt>PercentChangeInCapacity</tt> , the scaling policy changes the
--   <tt>DesiredCapacity</tt> of the Auto Scaling group by at least this
--   many instances. Otherwise, the error is <tt>ValidationError</tt>
--   .</li>
--   </ul>
scalingPolicy :: ScalingPolicy

-- | Available for backward compatibility. Use
--   <tt>MinAdjustmentMagnitude</tt> instead.
sMinAdjustmentStep :: Lens' ScalingPolicy (Maybe Int)

-- | The estimated time, in seconds, until a newly launched instance can
--   contribute to the CloudWatch metrics.
sEstimatedInstanceWarmup :: Lens' ScalingPolicy (Maybe Int)

-- | The name of the scaling policy.
sPolicyName :: Lens' ScalingPolicy (Maybe Text)

-- | The policy type. Valid values are <tt>SimpleScaling</tt> and
--   <tt>StepScaling</tt> .
sPolicyType :: Lens' ScalingPolicy (Maybe Text)

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

-- | A target tracking policy.
sTargetTrackingConfiguration :: Lens' ScalingPolicy (Maybe TargetTrackingConfiguration)

-- | The adjustment type, which specifies how <tt>ScalingAdjustment</tt> is
--   interpreted. Valid values are <tt>ChangeInCapacity</tt> ,
--   <tt>ExactCapacity</tt> , and <tt>PercentChangeInCapacity</tt> .
sAdjustmentType :: Lens' ScalingPolicy (Maybe Text)

-- | The name of the Auto Scaling group.
sAutoScalingGroupName :: Lens' ScalingPolicy (Maybe Text)

-- | The amount by which to scale, based on the specified adjustment type.
--   A positive value adds to the current capacity while a negative number
--   removes from the current capacity.
sScalingAdjustment :: Lens' ScalingPolicy (Maybe Int)

-- | The amount of time, in seconds, after a scaling activity completes
--   before any further dynamic scaling activities can start.
sCooldown :: Lens' ScalingPolicy (Maybe Int)

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

-- | The CloudWatch alarms related to the policy.
sAlarms :: Lens' ScalingPolicy [Alarm]

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

-- | The minimum number of instances to scale. If the value of
--   <tt>AdjustmentType</tt> is <tt>PercentChangeInCapacity</tt> , the
--   scaling policy changes the <tt>DesiredCapacity</tt> of the Auto
--   Scaling group by at least this many instances. Otherwise, the error is
--   <tt>ValidationError</tt> .
sMinAdjustmentMagnitude :: Lens' ScalingPolicy (Maybe Int)

-- | <i>See:</i> <a>scalingProcessQuery</a> smart constructor.
data ScalingProcessQuery

-- | Creates a value of <a>ScalingProcessQuery</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>spqScalingProcesses</a> - One or more of the following
--   processes. If you omit this parameter, all processes are specified. *
--   <tt>Launch</tt> * <tt>Terminate</tt> * <tt>HealthCheck</tt> *
--   <tt>ReplaceUnhealthy</tt> * <tt>AZRebalance</tt> *
--   <tt>AlarmNotification</tt> * <tt>ScheduledActions</tt> *
--   <tt>AddToLoadBalancer</tt></li>
--   <li><a>spqAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
scalingProcessQuery :: Text -> ScalingProcessQuery

-- | One or more of the following processes. If you omit this parameter,
--   all processes are specified. * <tt>Launch</tt> * <tt>Terminate</tt> *
--   <tt>HealthCheck</tt> * <tt>ReplaceUnhealthy</tt> *
--   <tt>AZRebalance</tt> * <tt>AlarmNotification</tt> *
--   <tt>ScheduledActions</tt> * <tt>AddToLoadBalancer</tt>
spqScalingProcesses :: Lens' ScalingProcessQuery [Text]

-- | The name of the Auto Scaling group.
spqAutoScalingGroupName :: Lens' ScalingProcessQuery Text

-- | Describes a scheduled update to an Auto Scaling group.
--   
--   <i>See:</i> <a>scheduledUpdateGroupAction</a> smart constructor.
data ScheduledUpdateGroupAction

-- | Creates a value of <a>ScheduledUpdateGroupAction</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>sugaScheduledActionARN</a> - The Amazon Resource Name (ARN) of
--   the scheduled action.</li>
--   <li><a>sugaStartTime</a> - The date and time that the action is
--   scheduled to begin. This date and time can be up to one month in the
--   future. When <tt>StartTime</tt> and <tt>EndTime</tt> are specified
--   with <tt>Recurrence</tt> , they form the boundaries of when the
--   recurring action will start and stop.</li>
--   <li><a>sugaTime</a> - This parameter is deprecated.</li>
--   <li><a>sugaScheduledActionName</a> - The name of the scheduled
--   action.</li>
--   <li><a>sugaMaxSize</a> - The maximum size of the group.</li>
--   <li><a>sugaRecurrence</a> - The recurring schedule for the
--   action.</li>
--   <li><a>sugaDesiredCapacity</a> - The number of instances you prefer to
--   maintain in the group.</li>
--   <li><a>sugaMinSize</a> - The minimum size of the group.</li>
--   <li><a>sugaAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>sugaEndTime</a> - The date and time that the action is
--   scheduled to end. This date and time can be up to one month in the
--   future.</li>
--   </ul>
scheduledUpdateGroupAction :: ScheduledUpdateGroupAction

-- | The Amazon Resource Name (ARN) of the scheduled action.
sugaScheduledActionARN :: Lens' ScheduledUpdateGroupAction (Maybe Text)

-- | The date and time that the action is scheduled to begin. This date and
--   time can be up to one month in the future. When <tt>StartTime</tt> and
--   <tt>EndTime</tt> are specified with <tt>Recurrence</tt> , they form
--   the boundaries of when the recurring action will start and stop.
sugaStartTime :: Lens' ScheduledUpdateGroupAction (Maybe UTCTime)

-- | This parameter is deprecated.
sugaTime :: Lens' ScheduledUpdateGroupAction (Maybe UTCTime)

-- | The name of the scheduled action.
sugaScheduledActionName :: Lens' ScheduledUpdateGroupAction (Maybe Text)

-- | The maximum size of the group.
sugaMaxSize :: Lens' ScheduledUpdateGroupAction (Maybe Int)

-- | The recurring schedule for the action.
sugaRecurrence :: Lens' ScheduledUpdateGroupAction (Maybe Text)

-- | The number of instances you prefer to maintain in the group.
sugaDesiredCapacity :: Lens' ScheduledUpdateGroupAction (Maybe Int)

-- | The minimum size of the group.
sugaMinSize :: Lens' ScheduledUpdateGroupAction (Maybe Int)

-- | The name of the Auto Scaling group.
sugaAutoScalingGroupName :: Lens' ScheduledUpdateGroupAction (Maybe Text)

-- | The date and time that the action is scheduled to end. This date and
--   time can be up to one month in the future.
sugaEndTime :: Lens' ScheduledUpdateGroupAction (Maybe UTCTime)

-- | 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>If you want the adjustment to be triggered 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>If you want the adjustment to be triggered 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
--   capacity while a negative number removes from the current
--   capacity.</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 capacity while a negative number
--   removes from the current capacity.
saScalingAdjustment :: Lens' StepAdjustment Int

-- | Describes an Auto Scaling process that has been suspended. For more
--   information, see <a>ProcessType</a> .
--   
--   <i>See:</i> <a>suspendedProcess</a> smart constructor.
data SuspendedProcess

-- | Creates a value of <a>SuspendedProcess</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>spProcessName</a> - The name of the suspended process.</li>
--   <li><a>spSuspensionReason</a> - The reason that the process was
--   suspended.</li>
--   </ul>
suspendedProcess :: SuspendedProcess

-- | The name of the suspended process.
spProcessName :: Lens' SuspendedProcess (Maybe Text)

-- | The reason that the process was suspended.
spSuspensionReason :: Lens' SuspendedProcess (Maybe Text)

-- | Describes a tag for an Auto Scaling group.
--   
--   <i>See:</i> <a>tag</a> smart constructor.
data Tag

-- | Creates a value of <a>Tag</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>tagKey</a> - The tag key.</li>
--   <li><a>tagResourceId</a> - The name of the group.</li>
--   <li><a>tagResourceType</a> - The type of resource. The only supported
--   value is <tt>auto-scaling-group</tt> .</li>
--   <li><a>tagPropagateAtLaunch</a> - Determines whether the tag is added
--   to new instances as they are launched in the group.</li>
--   <li><a>tagValue</a> - The tag value.</li>
--   </ul>
tag :: Text -> Text -> Text -> Bool -> Text -> Tag

-- | The tag key.
tagKey :: Lens' Tag Text

-- | The name of the group.
tagResourceId :: Lens' Tag Text

-- | The type of resource. The only supported value is
--   <tt>auto-scaling-group</tt> .
tagResourceType :: Lens' Tag Text

-- | Determines whether the tag is added to new instances as they are
--   launched in the group.
tagPropagateAtLaunch :: Lens' Tag Bool

-- | The tag value.
tagValue :: Lens' Tag Text

-- | Describes a tag for an Auto Scaling group.
--   
--   <i>See:</i> <a>tagDescription</a> smart constructor.
data TagDescription

-- | Creates a value of <a>TagDescription</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>tdResourceId</a> - The name of the group.</li>
--   <li><a>tdResourceType</a> - The type of resource. The only supported
--   value is <tt>auto-scaling-group</tt> .</li>
--   <li><a>tdKey</a> - The tag key.</li>
--   <li><a>tdPropagateAtLaunch</a> - Determines whether the tag is added
--   to new instances as they are launched in the group.</li>
--   <li><a>tdValue</a> - The tag value.</li>
--   </ul>
tagDescription :: Text -> Text -> Text -> Bool -> Text -> TagDescription

-- | The name of the group.
tdResourceId :: Lens' TagDescription Text

-- | The type of resource. The only supported value is
--   <tt>auto-scaling-group</tt> .
tdResourceType :: Lens' TagDescription Text

-- | The tag key.
tdKey :: Lens' TagDescription Text

-- | Determines whether the tag is added to new instances as they are
--   launched in the group.
tdPropagateAtLaunch :: Lens' TagDescription Bool

-- | The tag value.
tdValue :: Lens' TagDescription Text

-- | Represents a target tracking policy configuration.
--   
--   <i>See:</i> <a>targetTrackingConfiguration</a> smart constructor.
data TargetTrackingConfiguration

-- | Creates a value of <a>TargetTrackingConfiguration</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>ttcPredefinedMetricSpecification</a> - A predefined metric. You
--   can specify either a predefined metric or a customized metric.</li>
--   <li><a>ttcCustomizedMetricSpecification</a> - A customized
--   metric.</li>
--   <li><a>ttcDisableScaleIn</a> - Indicates whether scale in by the
--   target tracking policy is disabled. If scale in is disabled, the
--   target tracking policy won't remove instances from the Auto Scaling
--   group. Otherwise, the target tracking policy can remove instances from
--   the Auto Scaling group. The default is disabled.</li>
--   <li><a>ttcTargetValue</a> - The target value for the metric.</li>
--   </ul>
targetTrackingConfiguration :: Double -> TargetTrackingConfiguration

-- | A predefined metric. You can specify either a predefined metric or a
--   customized metric.
ttcPredefinedMetricSpecification :: Lens' TargetTrackingConfiguration (Maybe PredefinedMetricSpecification)

-- | A customized metric.
ttcCustomizedMetricSpecification :: Lens' TargetTrackingConfiguration (Maybe CustomizedMetricSpecification)

-- | Indicates whether scale in by the target tracking policy is disabled.
--   If scale in is disabled, the target tracking policy won't remove
--   instances from the Auto Scaling group. Otherwise, the target tracking
--   policy can remove instances from the Auto Scaling group. The default
--   is disabled.
ttcDisableScaleIn :: Lens' TargetTrackingConfiguration (Maybe Bool)

-- | The target value for the metric.
ttcTargetValue :: Lens' TargetTrackingConfiguration Double
