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


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
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 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>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>asgAutoScalingGroupARN</a> - The Amazon Resource Name (ARN) of
--   the 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 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)

-- | 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 Amazon Resource Name (ARN) of the 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 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
--   associated with the instance.</li>
--   <li><a>asidInstanceId</a> - The ID of the instance.</li>
--   <li><a>asidAutoScalingGroupName</a> - The name of the Auto Scaling
--   group associated with 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 associated with the instance.
asidLaunchConfigurationName :: Lens' AutoScalingInstanceDetails (Maybe Text)

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

-- | The name of the Auto Scaling group associated with 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

-- | 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. Default: <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.
--   Default: <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>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 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 instance monitoring is enabled.
--   
--   <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> , instance monitoring is
--   enabled.</li>
--   </ul>
instanceMonitoring :: InstanceMonitoring

-- | If <tt>True</tt> , instance 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 lifecycle hook, which tells Auto Scaling that you want to
--   perform an action when an instance launches or terminates. When you
--   have a lifecycle hook in place, the Auto Scaling group will either:
--   
--   <ul>
--   <li>Pause the instance after it launches, but before it is put into
--   service</li>
--   <li>Pause the instance as it terminates, but before it is fully
--   terminated</li>
--   </ul>
--   
--   For more information, see <a>Auto Scaling Lifecycle</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. The default is 3600
--   seconds (1 hour). When 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 notification
--   target that Auto Scaling uses to notify you when an instance is in the
--   transition state for the lifecycle hook. This ARN target can be either
--   an SQS queue or an SNS topic. The notification message sent to the
--   target includes the following: * Lifecycle action token * User account
--   ID * Name of the Auto Scaling group * Lifecycle hook name * EC2
--   instance ID * Lifecycle transition * Notification metadata</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. The default is 3600 seconds (1 hour). When 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 notification target that Auto Scaling uses to notify
--   you when an instance is in the transition state for the lifecycle
--   hook. This ARN target can be either an SQS queue or an SNS topic. The
--   notification message sent to the target includes the following: *
--   Lifecycle action token * User account ID * Name of the Auto Scaling
--   group * Lifecycle hook name * EC2 instance ID * Lifecycle transition *
--   Notification metadata
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 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 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 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 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)

-- | 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>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
--   associated with this scaling policy.</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 trigger-related 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]

-- | 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 associated with this scaling
--   policy.
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 trigger-related 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)

-- | Contains the parameters for SuspendProcesses and ResumeProcesses.
--   
--   <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 or Amazon Resource Name
--   (ARN) 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 or Amazon Resource Name (ARN) 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 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 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


-- | Updates the configuration for the specified Auto Scaling group.
--   
--   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> .
--   
--   The new settings are registered upon the completion of this call. Any
--   launch configuration settings take effect on any triggers after this
--   call returns. Scaling activities that are currently in progress aren't
--   affected.
--   
--   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>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.</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>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

-- | Contains the parameters for 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)

-- | 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.
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 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.UpdateAutoScalingGroup.UpdateAutoScalingGroupResponse


module Network.AWS.AutoScaling.Waiters


-- | 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> - If <tt>true</tt> ,
--   terminating the instance also decrements the size of the Auto Scaling
--   group.</li>
--   </ul>
terminateInstanceInAutoScalingGroup :: Text -> Bool -> TerminateInstanceInAutoScalingGroup

-- | Contains the parameters for TerminateInstanceInAutoScalingGroup.
--   
--   <i>See:</i> <a>terminateInstanceInAutoScalingGroup</a> smart
--   constructor.
data TerminateInstanceInAutoScalingGroup

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

-- | If <tt>true</tt> , 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

-- | Contains the output of TerminateInstancesInAutoScalingGroup.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup.TerminateInstanceInAutoScalingGroupResponse


-- | 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 or Amazon Resource Name
--   (ARN) of the Auto Scaling group.</li>
--   </ul>
suspendProcesses :: Text -> SuspendProcesses

-- | Contains the parameters for SuspendProcesses and ResumeProcesses.
--   
--   <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 or Amazon Resource Name (ARN) 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SuspendProcesses.SuspendProcessesResponse


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

-- | Contains the parameters for SetInstanceProtection.
--   
--   <i>See:</i> <a>setInstanceProtection</a> smart constructor.
data SetInstanceProtection

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

-- | The name of the 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

-- | Contains the output of SetInstanceProtection.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SetInstanceProtection.SetInstanceProtectionResponse


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

-- | Contains the parameters for 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SetInstanceHealth.SetInstanceHealthResponse


-- | 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> - By default, <tt>SetDesiredCapacity</tt>
--   overrides any cooldown period associated with the Auto Scaling group.
--   Specify <tt>True</tt> to make Auto Scaling to wait for the cool-down
--   period associated with the Auto Scaling group to complete before
--   initiating a scaling activity to set your Auto Scaling group to its
--   new capacity.</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

-- | Contains the parameters for SetDesiredCapacity.
--   
--   <i>See:</i> <a>setDesiredCapacity</a> smart constructor.
data SetDesiredCapacity

-- | By default, <tt>SetDesiredCapacity</tt> overrides any cooldown period
--   associated with the Auto Scaling group. Specify <tt>True</tt> to make
--   Auto Scaling to wait for the cool-down period associated with the Auto
--   Scaling group to complete before initiating a scaling activity to set
--   your Auto Scaling group to its new capacity.
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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.SetDesiredCapacity.SetDesiredCapacityResponse


-- | 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 or Amazon Resource Name
--   (ARN) of the Auto Scaling group.</li>
--   </ul>
resumeProcesses :: Text -> ResumeProcesses

-- | Contains the parameters for SuspendProcesses and 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 or Amazon Resource Name (ARN) 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.ResumeProcesses.ResumeProcessesResponse


-- | 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 for the hook.</li>
--   </ul>
recordLifecycleActionHeartbeat :: Text -> Text -> RecordLifecycleActionHeartbeat

-- | Contains the parameters for 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 for the hook.
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

-- | Contains the output of RecordLifecycleActionHeartBeat.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.RecordLifecycleActionHeartbeat.RecordLifecycleActionHeartbeatResponse


-- | 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 or Amazon Resource
--   Name (ARN) of the Auto Scaling group.</li>
--   <li><a>psugaScheduledActionName</a> - The name of this scaling
--   action.</li>
--   </ul>
putScheduledUpdateGroupAction :: Text -> Text -> PutScheduledUpdateGroupAction

-- | Contains the parameters for 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 or Amazon Resource Name (ARN) 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutScheduledUpdateGroupAction.PutScheduledUpdateGroupActionResponse


-- | 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 not supported
--   if the policy type is <tt>SimpleScaling</tt> .</li>
--   <li><a>pspPolicyType</a> - The policy type. Valid values are
--   <tt>SimpleScaling</tt> and <tt>StepScaling</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>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 not supported unless 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. 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 not
--   supported if the policy type is <tt>SimpleScaling</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>
--   .</li>
--   <li><a>pspAutoScalingGroupName</a> - The name or ARN of the
--   group.</li>
--   <li><a>pspPolicyName</a> - The name of the policy.</li>
--   <li><a>pspAdjustmentType</a> - The adjustment type. Valid values are
--   <tt>ChangeInCapacity</tt> , <tt>ExactCapacity</tt> , and
--   <tt>PercentChangeInCapacity</tt> . For more information, see
--   <a>Dynamic Scaling</a> in the <i>Auto Scaling User Guide</i> .</li>
--   </ul>
putScalingPolicy :: Text -> Text -> Text -> PutScalingPolicy

-- | Contains the parameters for 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 not supported if the policy type is
--   <tt>SimpleScaling</tt> .
pspEstimatedInstanceWarmup :: Lens' PutScalingPolicy (Maybe Int)

-- | The policy type. Valid values are <tt>SimpleScaling</tt> and
--   <tt>StepScaling</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]

-- | 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 not supported unless 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. 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 not supported if the policy type is
--   <tt>SimpleScaling</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> .
pspMinAdjustmentMagnitude :: Lens' PutScalingPolicy (Maybe Int)

-- | The name or ARN of the group.
pspAutoScalingGroupName :: Lens' PutScalingPolicy Text

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

-- | The adjustment type. Valid values are <tt>ChangeInCapacity</tt> ,
--   <tt>ExactCapacity</tt> , and <tt>PercentChangeInCapacity</tt> . For
--   more information, see <a>Dynamic Scaling</a> in the <i>Auto Scaling
--   User Guide</i> .
pspAdjustmentType :: 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>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)

-- | <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutScalingPolicy.PutScalingPolicyResponse


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

-- | Contains the parameters for 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutNotificationConfiguration.PutNotificationConfigurationResponse


-- | 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 amount of time, in seconds, that
--   can elapse before the lifecycle hook times out. When 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> . The default is 3600 seconds
--   (1 hour).</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 to which you want to assign the lifecycle hook.</li>
--   </ul>
putLifecycleHook :: Text -> Text -> PutLifecycleHook

-- | Contains the parameters for 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 amount of time, in seconds, that can elapse before the lifecycle
--   hook times out. When 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> . The
--   default is 3600 seconds (1 hour).
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 to which you want to assign the
--   lifecycle hook.
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

-- | Contains the output of PutLifecycleHook.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.PutLifecycleHook.PutLifecycleHookResponse


-- | Moves the specified instances out of <tt>Standby</tt> mode.
--   
--   For more information, see <a>Auto Scaling Lifecycle</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> - One or more instance IDs. You must specify
--   at least one instance ID.</li>
--   <li><a>eAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
exitStandby :: Text -> ExitStandby

-- | Contains the parameters for ExitStandby.
--   
--   <i>See:</i> <a>exitStandby</a> smart constructor.
data ExitStandby

-- | One or more instance IDs. You must specify at least one instance ID.
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

-- | Contains the parameters for ExitStandby.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.ExitStandby.ExitStandbyResponse


-- | 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> - If this parameter is true, Auto Scaling
--   waits for the cooldown period to complete before executing the policy.
--   Otherwise, Auto Scaling executes the policy without waiting for the
--   cooldown period to complete. 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 or Amazon Resource Name
--   (ARN) 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

-- | Contains the parameters for ExecutePolicy.
--   
--   <i>See:</i> <a>executePolicy</a> smart constructor.
data ExecutePolicy

-- | If this parameter is true, Auto Scaling waits for the cooldown period
--   to complete before executing the policy. Otherwise, Auto Scaling
--   executes the policy without waiting for the cooldown period to
--   complete. 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 or Amazon Resource Name (ARN) 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.ExecutePolicy.ExecutePolicyResponse


-- | Moves the specified instances into <tt>Standby</tt> mode.
--   
--   For more information, see <a>Auto Scaling Lifecycle</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> - One or more instances to move into
--   <tt>Standby</tt> mode. You must specify at least one instance ID.</li>
--   <li><a>esAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   <li><a>esShouldDecrementDesiredCapacity</a> - Specifies whether the
--   instances moved to <tt>Standby</tt> mode count as part of the Auto
--   Scaling group's desired capacity. If set, the desired capacity for the
--   Auto Scaling group decrements by the number of instances moved to
--   <tt>Standby</tt> mode.</li>
--   </ul>
enterStandby :: Text -> Bool -> EnterStandby

-- | Contains the parameters for EnteStandby.
--   
--   <i>See:</i> <a>enterStandby</a> smart constructor.
data EnterStandby

-- | One or more instances to move into <tt>Standby</tt> mode. You must
--   specify at least one instance ID.
esInstanceIds :: Lens' EnterStandby [Text]

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

-- | Specifies whether the instances moved to <tt>Standby</tt> mode count
--   as part of the Auto Scaling group's desired capacity. If set, the
--   desired capacity for the Auto Scaling group decrements 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

-- | Contains the output of EnterStandby.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.EnterStandby.EnterStandbyResponse


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

-- | Contains the parameters for 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 or ARN 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.EnableMetricsCollection.EnableMetricsCollectionResponse


-- | 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 or Amazon Resource Name
--   (ARN) of the group.</li>
--   </ul>
disableMetricsCollection :: Text -> DisableMetricsCollection

-- | Contains the parameters for 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 or Amazon Resource Name (ARN) of the 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DisableMetricsCollection.DisableMetricsCollectionResponse


-- | 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> - One or more load balancer names.</li>
--   </ul>
detachLoadBalancers :: Text -> DetachLoadBalancers

-- | Contains the parameters for DetachLoadBalancers.
--   
--   <i>See:</i> <a>detachLoadBalancers</a> smart constructor.
data DetachLoadBalancers

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

-- | One or more load balancer names.
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

-- | Contains the output for DetachLoadBalancers.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DetachLoadBalancers.DetachLoadBalancersResponse


-- | 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.</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.
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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DetachLoadBalancerTargetGroups.DetachLoadBalancerTargetGroupsResponse


-- | Removes one or more instances from the specified Auto Scaling group.
--   
--   After the instances are detached, you can manage them independently
--   from the rest 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> - One or more instance IDs.</li>
--   <li><a>diAutoScalingGroupName</a> - The name of the group.</li>
--   <li><a>diShouldDecrementDesiredCapacity</a> - If <tt>True</tt> , the
--   Auto Scaling group decrements the desired capacity value by the number
--   of instances detached.</li>
--   </ul>
detachInstances :: Text -> Bool -> DetachInstances

-- | Contains the parameters for DetachInstances.
--   
--   <i>See:</i> <a>detachInstances</a> smart constructor.
data DetachInstances

-- | One or more instance IDs.
diInstanceIds :: Lens' DetachInstances [Text]

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

-- | If <tt>True</tt> , 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

-- | Contains the output of DetachInstances.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DetachInstances.DetachInstancesResponse


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

-- | Contains the output of DescribeTerminationPolicyTypes.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeTerminationPolicyTypes.DescribeTerminationPolicyTypesResponse


-- | 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.</li>
--   </ul>
describeTags :: DescribeTags

-- | Contains the parameters for 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.
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

-- | Contains the output of DescribeTags.
--   
--   <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.Pager.AWSPager Network.AWS.AutoScaling.DescribeTags.DescribeTags
instance Network.AWS.Types.AWSRequest 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeTags.DescribeTagsResponse


-- | 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 group.</li>
--   <li><a>dsasMaxRecords</a> - The maximum number of items to return with
--   this call.</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

-- | Contains the parameters for 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 group.
dsasAutoScalingGroupName :: Lens' DescribeScheduledActions (Maybe Text)

-- | The maximum number of items to return with this call.
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

-- | Contains the output of DescribeScheduledActions.
--   
--   <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.Pager.AWSPager Network.AWS.AutoScaling.DescribeScheduledActions.DescribeScheduledActions
instance Network.AWS.Types.AWSRequest 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeScheduledActions.DescribeScheduledActionsResponse


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

-- | Contains the output of DescribeScalingProcessTypes.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeScalingProcessTypes.DescribeScalingProcessTypesResponse


-- | 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 group.</li>
--   <li><a>desMaxRecords</a> - The maximum number of items to return with
--   this call.</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

-- | Contains the parameters for 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 group.
desAutoScalingGroupName :: Lens' DescribeScalingActivities (Maybe Text)

-- | The maximum number of items to return with this call.
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

-- | Contains the output of DescribeScalingActivities.
--   
--   <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.Pager.AWSPager Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivities
instance Network.AWS.Types.AWSRequest 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeScalingActivities.DescribeScalingActivitiesResponse


-- | 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> - One or more policy names or policy ARNs to
--   be described. If you omit this parameter, all policy names 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 group.</li>
--   <li><a>dpsMaxRecords</a> - The maximum number of items to be returned
--   with each call.</li>
--   <li><a>dpsPolicyTypes</a> - One or more policy types. Valid values are
--   <tt>SimpleScaling</tt> and <tt>StepScaling</tt> .</li>
--   </ul>
describePolicies :: DescribePolicies

-- | Contains the parameters for DescribePolicies.
--   
--   <i>See:</i> <a>describePolicies</a> smart constructor.
data DescribePolicies

-- | One or more policy names or policy ARNs to be described. If you omit
--   this parameter, all policy names 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 group.
dpsAutoScalingGroupName :: Lens' DescribePolicies (Maybe Text)

-- | The maximum number of items to be returned with each call.
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

-- | Contains the output of DescribePolicies.
--   
--   <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.Pager.AWSPager Network.AWS.AutoScaling.DescribePolicies.DescribePolicies
instance Network.AWS.Types.AWSRequest 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribePolicies.DescribePoliciesResponse


-- | 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 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.</li>
--   </ul>
describeNotificationConfigurations :: DescribeNotificationConfigurations

-- | Contains the parameters for DescribeNotificationConfigurations.
--   
--   <i>See:</i> <a>describeNotificationConfigurations</a> smart
--   constructor.
data DescribeNotificationConfigurations

-- | The name of the 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.
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

-- | Contains the output from DescribeNotificationConfigurations.
--   
--   <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.Pager.AWSPager Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurations
instance Network.AWS.Types.AWSRequest 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeNotificationConfigurations.DescribeNotificationConfigurationsResponse


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

-- | Contains the output of DescribeMetricsCollectionTypes.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeMetricCollectionTypes.DescribeMetricCollectionTypesResponse


-- | 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.</li>
--   <li><a>dlbAutoScalingGroupName</a> - The name of the group.</li>
--   </ul>
describeLoadBalancers :: Text -> DescribeLoadBalancers

-- | Contains the parameters for 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.
dlbMaxRecords :: Lens' DescribeLoadBalancers (Maybe Int)

-- | The name of the 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

-- | Contains the output of DescribeLoadBalancers.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeLoadBalancers.DescribeLoadBalancersResponse


-- | 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.</li>
--   <li><a>dlbtgsAutoScalingGroupName</a> - The name of the Auto Scaling
--   group.</li>
--   </ul>
describeLoadBalancerTargetGroups :: Text -> DescribeLoadBalancerTargetGroups

-- | Contains the parameters for 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.
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

-- | Contains the output of DescribeLoadBalancerTargetGroups.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeLoadBalancerTargetGroups.DescribeLoadBalancerTargetGroupsResponse


-- | 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 group.</li>
--   </ul>
describeLifecycleHooks :: Text -> DescribeLifecycleHooks

-- | Contains the parameters for 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 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

-- | Contains the output of DescribeLifecycleHooks.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeLifecycleHooks.DescribeLifecycleHooksResponse


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

-- | Contains the output of DescribeLifecycleHookTypes.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeLifecycleHookTypes.DescribeLifecycleHookTypesResponse


-- | 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 is 100.</li>
--   </ul>
describeLaunchConfigurations :: DescribeLaunchConfigurations

-- | Contains the parameters for 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 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

-- | Contains the output of DescribeLaunchConfigurations.
--   
--   <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.Pager.AWSPager Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurations
instance Network.AWS.Types.AWSRequest 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeLaunchConfigurations.DescribeLaunchConfigurationsResponse


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

-- | Contains the output of DescribeAutoScalingNotificationTypes.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeAutoScalingNotificationTypes.DescribeAutoScalingNotificationTypesResponse


-- | 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.</li>
--   </ul>
describeAutoScalingInstances :: DescribeAutoScalingInstances

-- | Contains the parameters for 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.
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

-- | Contains the output of DescribeAutoScalingInstances.
--   
--   <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.Pager.AWSPager Network.AWS.AutoScaling.DescribeAutoScalingInstances.DescribeAutoScalingInstances
instance Network.AWS.Types.AWSRequest 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeAutoScalingInstances.DescribeAutoScalingInstancesResponse


-- | 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 group names. 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.</li>
--   </ul>
describeAutoScalingGroups :: DescribeAutoScalingGroups

-- | Contains the parameters for DescribeAutoScalingGroups.
--   
--   <i>See:</i> <a>describeAutoScalingGroups</a> smart constructor.
data DescribeAutoScalingGroups

-- | The group names. 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.
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

-- | Contains the output for DescribeAutoScalingGroups.
--   
--   <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.Pager.AWSPager Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroups
instance Network.AWS.Types.AWSRequest 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeAutoScalingGroups.DescribeAutoScalingGroupsResponse


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

-- | Contains the parameters for DescribeAdjustmentTypes.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeAdjustmentTypes.DescribeAdjustmentTypesResponse


-- | Describes the current Auto Scaling resource limits for your AWS
--   account.
--   
--   For information about requesting an increase in these limits, see
--   <a>AWS Service Limits</a> in the <i>Amazon Web Services General
--   Reference</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

-- | Contains the parameters for DescribeAccountLimits.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DescribeAccountLimits.DescribeAccountLimitsResponse


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

-- | Contains the parameters for 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteTags.DeleteTagsResponse


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

-- | Contains the parameters for 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteScheduledAction.DeleteScheduledActionResponse


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

-- | Contains the parameters for 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeletePolicy.DeletePolicyResponse


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

-- | Contains the parameters for 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteNotificationConfiguration.DeleteNotificationConfigurationResponse


-- | 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 for the lifecycle hook.</li>
--   </ul>
deleteLifecycleHook :: Text -> Text -> DeleteLifecycleHook

-- | Contains the parameters for 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 for the lifecycle hook.
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

-- | Contains the output of DeleteLifecycleHook.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteLifecycleHook.DeleteLifecycleHookResponse


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

-- | Contains the parameters for 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteLaunchConfiguration.DeleteLaunchConfigurationResponse


-- | 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 group to
--   delete.</li>
--   </ul>
deleteAutoScalingGroup :: Text -> DeleteAutoScalingGroup

-- | Contains the parameters for 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 group to delete.
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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.DeleteAutoScalingGroup.DeleteAutoScalingGroupResponse


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

-- | Contains the parameters for 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CreateOrUpdateTags.CreateOrUpdateTagsResponse


-- | Creates a launch configuration.
--   
--   If you exceed your maximum limit of launch configurations, which by
--   default is 100 per region, the call fails. For information about
--   viewing and updating this limit, see <tt>DescribeAccountLimits</tt> .
--   
--   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. 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
--   <tt>true</tt> . If the instance is launched into a nondefault subnet,
--   the default is <tt>false</tt> . For more information, see <a>Supported
--   Platforms</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>
--   .</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.</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.
--   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. 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

-- | Contains the parameters for 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. 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 <tt>true</tt> . If the instance is
--   launched into a nondefault subnet, the default is <tt>false</tt> . For
--   more information, see <a>Supported Platforms</a> in the <i>Amazon
--   Elastic Compute Cloud User Guide</i> .
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.
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. 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. 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CreateLaunchConfiguration.CreateLaunchConfigurationResponse


-- | Creates an Auto Scaling group with the specified name and attributes.
--   
--   If you exceed your maximum limit of Auto Scaling groups, which by
--   default is 20 per region, the call fails. For information about
--   viewing and updating this limit, see <tt>DescribeAccountLimits</tt> .
--   
--   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. Alternatively, specify a launch
--   configuration instead of an EC2 instance. 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>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.</li>
--   <li><a>casgLaunchConfigurationName</a> - The name of the launch
--   configuration. Alternatively, specify an EC2 instance instead of a
--   launch configuration.</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>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 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

-- | Contains the parameters for 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. Alternatively, specify a launch configuration instead of an EC2
--   instance. 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)

-- | 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.
casgDesiredCapacity :: Lens' CreateAutoScalingGroup (Maybe Int)

-- | The name of the launch configuration. Alternatively, specify an EC2
--   instance instead of a launch configuration.
casgLaunchConfigurationName :: Lens' CreateAutoScalingGroup (Maybe Text)

-- | 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 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 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CreateAutoScalingGroup.CreateAutoScalingGroupResponse


-- | 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 group for the
--   lifecycle hook.</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

-- | Contains the parameters for 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 group for the lifecycle hook.
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

-- | Contains the output of CompleteLifecycleAction.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.CompleteLifecycleAction.CompleteLifecycleActionResponse


-- | 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 group.</li>
--   <li><a>albLoadBalancerNames</a> - One or more load balancer
--   names.</li>
--   </ul>
attachLoadBalancers :: Text -> AttachLoadBalancers

-- | Contains the parameters for AttachLoadBalancers.
--   
--   <i>See:</i> <a>attachLoadBalancers</a> smart constructor.
data AttachLoadBalancers

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

-- | One or more load balancer names.
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

-- | Contains the output of AttachLoadBalancers.
--   
--   <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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.AttachLoadBalancers.AttachLoadBalancersResponse


-- | 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.</li>
--   </ul>
attachLoadBalancerTargetGroups :: Text -> AttachLoadBalancerTargetGroups

-- | Contains the parameters for 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.
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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.AttachLoadBalancerTargetGroups.AttachLoadBalancerTargetGroupsResponse


-- | 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> - One or more instance IDs.</li>
--   <li><a>aiAutoScalingGroupName</a> - The name of the group.</li>
--   </ul>
attachInstances :: Text -> AttachInstances

-- | Contains the parameters for AttachInstances.
--   
--   <i>See:</i> <a>attachInstances</a> smart constructor.
data AttachInstances

-- | One or more instance IDs.
aiInstanceIds :: Lens' AttachInstances [Text]

-- | The name of the 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 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
instance Control.DeepSeq.NFData Network.AWS.AutoScaling.AttachInstances.AttachInstancesResponse


-- | <b>Auto Scaling</b>
--   
--   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 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
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 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>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>asgAutoScalingGroupARN</a> - The Amazon Resource Name (ARN) of
--   the 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 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)

-- | 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 Amazon Resource Name (ARN) of the 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 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
--   associated with the instance.</li>
--   <li><a>asidInstanceId</a> - The ID of the instance.</li>
--   <li><a>asidAutoScalingGroupName</a> - The name of the Auto Scaling
--   group associated with 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 associated with the instance.
asidLaunchConfigurationName :: Lens' AutoScalingInstanceDetails (Maybe Text)

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

-- | The name of the Auto Scaling group associated with 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

-- | 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. Default: <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.
--   Default: <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>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 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 instance monitoring is enabled.
--   
--   <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> , instance monitoring is
--   enabled.</li>
--   </ul>
instanceMonitoring :: InstanceMonitoring

-- | If <tt>True</tt> , instance 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 lifecycle hook, which tells Auto Scaling that you want to
--   perform an action when an instance launches or terminates. When you
--   have a lifecycle hook in place, the Auto Scaling group will either:
--   
--   <ul>
--   <li>Pause the instance after it launches, but before it is put into
--   service</li>
--   <li>Pause the instance as it terminates, but before it is fully
--   terminated</li>
--   </ul>
--   
--   For more information, see <a>Auto Scaling Lifecycle</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. The default is 3600
--   seconds (1 hour). When 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 notification
--   target that Auto Scaling uses to notify you when an instance is in the
--   transition state for the lifecycle hook. This ARN target can be either
--   an SQS queue or an SNS topic. The notification message sent to the
--   target includes the following: * Lifecycle action token * User account
--   ID * Name of the Auto Scaling group * Lifecycle hook name * EC2
--   instance ID * Lifecycle transition * Notification metadata</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. The default is 3600 seconds (1 hour). When 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 notification target that Auto Scaling uses to notify
--   you when an instance is in the transition state for the lifecycle
--   hook. This ARN target can be either an SQS queue or an SNS topic. The
--   notification message sent to the target includes the following: *
--   Lifecycle action token * User account ID * Name of the Auto Scaling
--   group * Lifecycle hook name * EC2 instance ID * Lifecycle transition *
--   Notification metadata
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 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 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 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 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)

-- | 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>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
--   associated with this scaling policy.</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 trigger-related 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]

-- | 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 associated with this scaling
--   policy.
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 trigger-related 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)

-- | Contains the parameters for SuspendProcesses and ResumeProcesses.
--   
--   <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 or Amazon Resource Name
--   (ARN) 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 or Amazon Resource Name (ARN) 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 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 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
