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


-- | Amazon Elastic Load Balancing 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.ELB</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-elb
@version 1.6.1


module Network.AWS.ELB.Types

-- | API version <tt>2012-06-01</tt> of the Amazon Elastic Load Balancing
--   SDK configuration.
elb :: Service

-- | One or more of the specified policies do not exist.
_PolicyNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified load balancer does not exist.
_AccessPointNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A policy with the specified name already exists for this load
--   balancer.
_DuplicatePolicyNameException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested configuration change is not valid.
_InvalidConfigurationRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more of the specified subnets do not exist.
_SubnetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified load balancer attribute does not exist.
_LoadBalancerAttributeNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified VPC has no associated Internet gateway.
_InvalidSubnetException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A tag key was specified more than once.
_DuplicateTagKeysException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A listener already exists for the specified load balancer name and
--   port, but with a different instance port, protocol, or SSL
--   certificate.
_DuplicateListenerException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The quota for the number of tags that can be assigned to a load
--   balancer has been reached.
_TooManyTagsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more of the specified policy types do not exist.
_PolicyTypeNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified protocol or signature version is not supported.
_UnsupportedProtocolException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified load balancer name already exists for this account.
_DuplicateAccessPointNameException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more of the specified security groups do not exist.
_InvalidSecurityGroupException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The load balancer does not have a listener configured at the specified
--   port.
_ListenerNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified endpoint is not valid.
_InvalidEndPointException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This operation is not allowed.
_OperationNotPermittedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for DependencyThrottleException' errors.
_DependencyThrottleException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified value for the schema is not valid. You can only specify
--   a scheme for load balancers in a VPC.
_InvalidSchemeException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The quota for the number of load balancers has been reached.
_TooManyAccessPointsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The quota for the number of policies for this load balancer has been
--   reached.
_TooManyPoliciesException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified ARN does not refer to a valid SSL certificate in AWS
--   Identity and Access Management (IAM) or AWS Certificate Manager (ACM).
--   Note that if you recently uploaded the certificate to IAM, this error
--   might indicate that the certificate is not fully available yet.
_CertificateNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This account identifier is used when attaching a policy to your S3
--   bucket allowing ELB to upload and write access logs.
--   
--   <i>See:</i> <a>Attach a Policy to Your S3 Bucket</a>.
getAccountId :: Region -> Text

-- | Information about the <tt>AccessLog</tt> attribute.
--   
--   <i>See:</i> <a>accessLog</a> smart constructor.
data AccessLog

-- | Creates a value of <a>AccessLog</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alEmitInterval</a> - The interval for publishing the access
--   logs. You can specify an interval of either 5 minutes or 60 minutes.
--   Default: 60 minutes</li>
--   <li><a>alS3BucketPrefix</a> - The logical hierarchy you created for
--   your Amazon S3 bucket, for example <tt>my-bucket-prefix/prod</tt> . If
--   the prefix is not provided, the log is placed at the root level of the
--   bucket.</li>
--   <li><a>alS3BucketName</a> - The name of the Amazon S3 bucket where the
--   access logs are stored.</li>
--   <li><a>alEnabled</a> - Specifies whether access logs are enabled for
--   the load balancer.</li>
--   </ul>
accessLog :: Bool -> AccessLog

-- | The interval for publishing the access logs. You can specify an
--   interval of either 5 minutes or 60 minutes. Default: 60 minutes
alEmitInterval :: Lens' AccessLog (Maybe Int)

-- | The logical hierarchy you created for your Amazon S3 bucket, for
--   example <tt>my-bucket-prefix/prod</tt> . If the prefix is not
--   provided, the log is placed at the root level of the bucket.
alS3BucketPrefix :: Lens' AccessLog (Maybe Text)

-- | The name of the Amazon S3 bucket where the access logs are stored.
alS3BucketName :: Lens' AccessLog (Maybe Text)

-- | Specifies whether access logs are enabled for the load balancer.
alEnabled :: Lens' AccessLog Bool

-- | This data type is reserved.
--   
--   <i>See:</i> <a>additionalAttribute</a> smart constructor.
data AdditionalAttribute

-- | Creates a value of <a>AdditionalAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aaValue</a> - This parameter is reserved.</li>
--   <li><a>aaKey</a> - This parameter is reserved.</li>
--   </ul>
additionalAttribute :: AdditionalAttribute

-- | This parameter is reserved.
aaValue :: Lens' AdditionalAttribute (Maybe Text)

-- | This parameter is reserved.
aaKey :: Lens' AdditionalAttribute (Maybe Text)

-- | Information about a policy for application-controlled session
--   stickiness.
--   
--   <i>See:</i> <a>appCookieStickinessPolicy</a> smart constructor.
data AppCookieStickinessPolicy

-- | Creates a value of <a>AppCookieStickinessPolicy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acspPolicyName</a> - The mnemonic name for the policy being
--   created. The name must be unique within a set of policies for this
--   load balancer.</li>
--   <li><a>acspCookieName</a> - The name of the application cookie used
--   for stickiness.</li>
--   </ul>
appCookieStickinessPolicy :: AppCookieStickinessPolicy

-- | The mnemonic name for the policy being created. The name must be
--   unique within a set of policies for this load balancer.
acspPolicyName :: Lens' AppCookieStickinessPolicy (Maybe Text)

-- | The name of the application cookie used for stickiness.
acspCookieName :: Lens' AppCookieStickinessPolicy (Maybe Text)

-- | Information about the configuration of an EC2 instance.
--   
--   <i>See:</i> <a>backendServerDescription</a> smart constructor.
data BackendServerDescription

-- | Creates a value of <a>BackendServerDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bsdPolicyNames</a> - The names of the policies enabled for the
--   EC2 instance.</li>
--   <li><a>bsdInstancePort</a> - The port on which the EC2 instance is
--   listening.</li>
--   </ul>
backendServerDescription :: BackendServerDescription

-- | The names of the policies enabled for the EC2 instance.
bsdPolicyNames :: Lens' BackendServerDescription [Text]

-- | The port on which the EC2 instance is listening.
bsdInstancePort :: Lens' BackendServerDescription (Maybe Natural)

-- | Information about the <tt>ConnectionDraining</tt> attribute.
--   
--   <i>See:</i> <a>connectionDraining</a> smart constructor.
data ConnectionDraining

-- | Creates a value of <a>ConnectionDraining</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdTimeout</a> - The maximum time, in seconds, to keep the
--   existing connections open before deregistering the instances.</li>
--   <li><a>cdEnabled</a> - Specifies whether connection draining is
--   enabled for the load balancer.</li>
--   </ul>
connectionDraining :: Bool -> ConnectionDraining

-- | The maximum time, in seconds, to keep the existing connections open
--   before deregistering the instances.
cdTimeout :: Lens' ConnectionDraining (Maybe Int)

-- | Specifies whether connection draining is enabled for the load
--   balancer.
cdEnabled :: Lens' ConnectionDraining Bool

-- | Information about the <tt>ConnectionSettings</tt> attribute.
--   
--   <i>See:</i> <a>connectionSettings</a> smart constructor.
data ConnectionSettings

-- | Creates a value of <a>ConnectionSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csIdleTimeout</a> - The time, in seconds, that the connection
--   is allowed to be idle (no data has been sent over the connection)
--   before it is closed by the load balancer.</li>
--   </ul>
connectionSettings :: Natural -> ConnectionSettings

-- | The time, in seconds, that the connection is allowed to be idle (no
--   data has been sent over the connection) before it is closed by the
--   load balancer.
csIdleTimeout :: Lens' ConnectionSettings Natural

-- | Information about the <tt>CrossZoneLoadBalancing</tt> attribute.
--   
--   <i>See:</i> <a>crossZoneLoadBalancing</a> smart constructor.
data CrossZoneLoadBalancing

-- | Creates a value of <a>CrossZoneLoadBalancing</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>czlbEnabled</a> - Specifies whether cross-zone load balancing
--   is enabled for the load balancer.</li>
--   </ul>
crossZoneLoadBalancing :: Bool -> CrossZoneLoadBalancing

-- | Specifies whether cross-zone load balancing is enabled for the load
--   balancer.
czlbEnabled :: Lens' CrossZoneLoadBalancing Bool

-- | Information about a health check.
--   
--   <i>See:</i> <a>healthCheck</a> smart constructor.
data HealthCheck

-- | Creates a value of <a>HealthCheck</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hcTarget</a> - The instance being checked. The protocol is
--   either TCP, HTTP, HTTPS, or SSL. The range of valid ports is one (1)
--   through 65535. TCP is the default, specified as a TCP: port pair, for
--   example "TCP:5000". In this case, a health check simply attempts to
--   open a TCP connection to the instance on the specified port. Failure
--   to connect within the configured timeout is considered unhealthy. SSL
--   is also specified as SSL: port pair, for example, SSL:5000. For
--   HTTP<i>HTTPS, you must include a ping path in the string. HTTP is
--   specified as a HTTP:port;</i>;PathToPing; grouping, for example
--   "HTTP:80<i>weather</i>us<i>wa</i>seattle". In this case, a HTTP GET
--   request is issued to the instance on the given port and path. Any
--   answer other than "200 OK" within the timeout period is considered
--   unhealthy. The total length of the HTTP ping target must be 1024
--   16-bit Unicode characters or less.</li>
--   <li><a>hcInterval</a> - The approximate interval, in seconds, between
--   health checks of an individual instance.</li>
--   <li><a>hcTimeout</a> - The amount of time, in seconds, during which no
--   response means a failed health check. This value must be less than the
--   <tt>Interval</tt> value.</li>
--   <li><a>hcUnhealthyThreshold</a> - The number of consecutive health
--   check failures required before moving the instance to the
--   <tt>Unhealthy</tt> state.</li>
--   <li><a>hcHealthyThreshold</a> - The number of consecutive health
--   checks successes required before moving the instance to the
--   <tt>Healthy</tt> state.</li>
--   </ul>
healthCheck :: Text -> Natural -> Natural -> Natural -> Natural -> HealthCheck

-- | The instance being checked. The protocol is either TCP, HTTP, HTTPS,
--   or SSL. The range of valid ports is one (1) through 65535. TCP is the
--   default, specified as a TCP: port pair, for example "TCP:5000". In
--   this case, a health check simply attempts to open a TCP connection to
--   the instance on the specified port. Failure to connect within the
--   configured timeout is considered unhealthy. SSL is also specified as
--   SSL: port pair, for example, SSL:5000. For HTTP<i>HTTPS, you must
--   include a ping path in the string. HTTP is specified as a
--   HTTP:port;</i>;PathToPing; grouping, for example
--   "HTTP:80<i>weather</i>us<i>wa</i>seattle". In this case, a HTTP GET
--   request is issued to the instance on the given port and path. Any
--   answer other than "200 OK" within the timeout period is considered
--   unhealthy. The total length of the HTTP ping target must be 1024
--   16-bit Unicode characters or less.
hcTarget :: Lens' HealthCheck Text

-- | The approximate interval, in seconds, between health checks of an
--   individual instance.
hcInterval :: Lens' HealthCheck Natural

-- | The amount of time, in seconds, during which no response means a
--   failed health check. This value must be less than the
--   <tt>Interval</tt> value.
hcTimeout :: Lens' HealthCheck Natural

-- | The number of consecutive health check failures required before moving
--   the instance to the <tt>Unhealthy</tt> state.
hcUnhealthyThreshold :: Lens' HealthCheck Natural

-- | The number of consecutive health checks successes required before
--   moving the instance to the <tt>Healthy</tt> state.
hcHealthyThreshold :: Lens' HealthCheck Natural

-- | The ID of 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>iInstanceId</a> - The instance ID.</li>
--   </ul>
instance' :: Instance

-- | The instance ID.
iInstanceId :: Lens' Instance (Maybe Text)

-- | Information about the state of an EC2 instance.
--   
--   <i>See:</i> <a>instanceState</a> smart constructor.
data InstanceState

-- | Creates a value of <a>InstanceState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isInstanceId</a> - The ID of the instance.</li>
--   <li><a>isState</a> - The current state of the instance. Valid values:
--   <tt>InService</tt> | <tt>OutOfService</tt> | <tt>Unknown</tt></li>
--   <li><a>isReasonCode</a> - Information about the cause of
--   <tt>OutOfService</tt> instances. Specifically, whether the cause is
--   Elastic Load Balancing or the instance. Valid values: <tt>ELB</tt> |
--   <tt>Instance</tt> | <tt>N/A</tt></li>
--   <li><a>isDescription</a> - A description of the instance state. This
--   string can contain one or more of the following messages. *
--   <tt>N/A</tt> * <tt>A transient error occurred. Please try again
--   later.</tt> * <tt>Instance has failed at least the UnhealthyThreshold
--   number of health checks consecutively.</tt> * <tt>Instance has not
--   passed the configured HealthyThreshold number of health checks
--   consecutively.</tt> * <tt>Instance registration is still in
--   progress.</tt> * <tt>Instance is in the EC2 Availability Zone for
--   which LoadBalancer is not configured to route traffic to.</tt> *
--   <tt>Instance is not currently registered with the LoadBalancer.</tt> *
--   <tt>Instance deregistration currently in progress.</tt> * <tt>Disable
--   Availability Zone is currently in progress.</tt> * <tt>Instance is in
--   pending state.</tt> * <tt>Instance is in stopped state.</tt> *
--   <tt>Instance is in terminated state.</tt></li>
--   </ul>
instanceState :: InstanceState

-- | The ID of the instance.
isInstanceId :: Lens' InstanceState (Maybe Text)

-- | The current state of the instance. Valid values: <tt>InService</tt> |
--   <tt>OutOfService</tt> | <tt>Unknown</tt>
isState :: Lens' InstanceState (Maybe Text)

-- | Information about the cause of <tt>OutOfService</tt> instances.
--   Specifically, whether the cause is Elastic Load Balancing or the
--   instance. Valid values: <tt>ELB</tt> | <tt>Instance</tt> |
--   <tt>N/A</tt>
isReasonCode :: Lens' InstanceState (Maybe Text)

-- | A description of the instance state. This string can contain one or
--   more of the following messages. * <tt>N/A</tt> * <tt>A transient error
--   occurred. Please try again later.</tt> * <tt>Instance has failed at
--   least the UnhealthyThreshold number of health checks
--   consecutively.</tt> * <tt>Instance has not passed the configured
--   HealthyThreshold number of health checks consecutively.</tt> *
--   <tt>Instance registration is still in progress.</tt> * <tt>Instance is
--   in the EC2 Availability Zone for which LoadBalancer is not configured
--   to route traffic to.</tt> * <tt>Instance is not currently registered
--   with the LoadBalancer.</tt> * <tt>Instance deregistration currently in
--   progress.</tt> * <tt>Disable Availability Zone is currently in
--   progress.</tt> * <tt>Instance is in pending state.</tt> * <tt>Instance
--   is in stopped state.</tt> * <tt>Instance is in terminated state.</tt>
isDescription :: Lens' InstanceState (Maybe Text)

-- | Information about a policy for duration-based session stickiness.
--   
--   <i>See:</i> <a>lBCookieStickinessPolicy</a> smart constructor.
data LBCookieStickinessPolicy

-- | Creates a value of <a>LBCookieStickinessPolicy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbcspPolicyName</a> - The name of the policy. This name must be
--   unique within the set of policies for this load balancer.</li>
--   <li><a>lbcspCookieExpirationPeriod</a> - The time period, in seconds,
--   after which the cookie should be considered stale. If this parameter
--   is not specified, the stickiness session lasts for the duration of the
--   browser session.</li>
--   </ul>
lBCookieStickinessPolicy :: LBCookieStickinessPolicy

-- | The name of the policy. This name must be unique within the set of
--   policies for this load balancer.
lbcspPolicyName :: Lens' LBCookieStickinessPolicy (Maybe Text)

-- | The time period, in seconds, after which the cookie should be
--   considered stale. If this parameter is not specified, the stickiness
--   session lasts for the duration of the browser session.
lbcspCookieExpirationPeriod :: Lens' LBCookieStickinessPolicy (Maybe Integer)

-- | Information about an Elastic Load Balancing resource limit for your
--   AWS account.
--   
--   <i>See:</i> <a>limit</a> smart constructor.
data Limit

-- | Creates a value of <a>Limit</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lMax</a> - The maximum value of the limit.</li>
--   <li><a>lName</a> - The name of the limit. The possible values are: *
--   classic-listeners * classic-load-balancers</li>
--   </ul>
limit :: Limit

-- | The maximum value of the limit.
lMax :: Lens' Limit (Maybe Text)

-- | The name of the limit. The possible values are: * classic-listeners *
--   classic-load-balancers
lName :: Lens' Limit (Maybe Text)

-- | Information about a listener.
--   
--   For information about the protocols and the ports supported by Elastic
--   Load Balancing, see <a>Listeners for Your Classic Load Balancer</a> in
--   the <i>Classic Load Balancer Guide</i> .
--   
--   <i>See:</i> <a>listener</a> smart constructor.
data Listener

-- | Creates a value of <a>Listener</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lInstanceProtocol</a> - The protocol to use for routing traffic
--   to instances: HTTP, HTTPS, TCP, or SSL. If the front-end protocol is
--   HTTP, HTTPS, TCP, or SSL, <tt>InstanceProtocol</tt> must be at the
--   same protocol. If there is another listener with the same
--   <tt>InstancePort</tt> whose <tt>InstanceProtocol</tt> is secure,
--   (HTTPS or SSL), the listener's <tt>InstanceProtocol</tt> must also be
--   secure. If there is another listener with the same
--   <tt>InstancePort</tt> whose <tt>InstanceProtocol</tt> is HTTP or TCP,
--   the listener's <tt>InstanceProtocol</tt> must be HTTP or TCP.</li>
--   <li><a>lSSLCertificateId</a> - The Amazon Resource Name (ARN) of the
--   server certificate.</li>
--   <li><a>lProtocol</a> - The load balancer transport protocol to use for
--   routing: HTTP, HTTPS, TCP, or SSL.</li>
--   <li><a>lLoadBalancerPort</a> - The port on which the load balancer is
--   listening. On EC2-VPC, you can specify any port from the range
--   1-65535. On EC2-Classic, you can specify any port from the following
--   list: 25, 80, 443, 465, 587, 1024-65535.</li>
--   <li><a>lInstancePort</a> - The port on which the instance is
--   listening.</li>
--   </ul>
listener :: Text -> Int -> Natural -> Listener

-- | The protocol to use for routing traffic to instances: HTTP, HTTPS,
--   TCP, or SSL. If the front-end protocol is HTTP, HTTPS, TCP, or SSL,
--   <tt>InstanceProtocol</tt> must be at the same protocol. If there is
--   another listener with the same <tt>InstancePort</tt> whose
--   <tt>InstanceProtocol</tt> is secure, (HTTPS or SSL), the listener's
--   <tt>InstanceProtocol</tt> must also be secure. If there is another
--   listener with the same <tt>InstancePort</tt> whose
--   <tt>InstanceProtocol</tt> is HTTP or TCP, the listener's
--   <tt>InstanceProtocol</tt> must be HTTP or TCP.
lInstanceProtocol :: Lens' Listener (Maybe Text)

-- | The Amazon Resource Name (ARN) of the server certificate.
lSSLCertificateId :: Lens' Listener (Maybe Text)

-- | The load balancer transport protocol to use for routing: HTTP, HTTPS,
--   TCP, or SSL.
lProtocol :: Lens' Listener Text

-- | The port on which the load balancer is listening. On EC2-VPC, you can
--   specify any port from the range 1-65535. On EC2-Classic, you can
--   specify any port from the following list: 25, 80, 443, 465, 587,
--   1024-65535.
lLoadBalancerPort :: Lens' Listener Int

-- | The port on which the instance is listening.
lInstancePort :: Lens' Listener Natural

-- | The policies enabled for a listener.
--   
--   <i>See:</i> <a>listenerDescription</a> smart constructor.
data ListenerDescription

-- | Creates a value of <a>ListenerDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ldPolicyNames</a> - The policies. If there are no policies
--   enabled, the list is empty.</li>
--   <li><a>ldListener</a> - The listener.</li>
--   </ul>
listenerDescription :: ListenerDescription

-- | The policies. If there are no policies enabled, the list is empty.
ldPolicyNames :: Lens' ListenerDescription [Text]

-- | The listener.
ldListener :: Lens' ListenerDescription (Maybe Listener)

-- | The attributes for a load balancer.
--   
--   <i>See:</i> <a>loadBalancerAttributes</a> smart constructor.
data LoadBalancerAttributes

-- | Creates a value of <a>LoadBalancerAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbaCrossZoneLoadBalancing</a> - If enabled, the load balancer
--   routes the request traffic evenly across all instances regardless of
--   the Availability Zones. For more information, see <a>Configure
--   Cross-Zone Load Balancing</a> in the <i>Classic Load Balancer
--   Guide</i> .</li>
--   <li><a>lbaAccessLog</a> - If enabled, the load balancer captures
--   detailed information of all requests and delivers the information to
--   the Amazon S3 bucket that you specify. For more information, see
--   <a>Enable Access Logs</a> in the <i>Classic Load Balancer Guide</i>
--   .</li>
--   <li><a>lbaAdditionalAttributes</a> - This parameter is reserved.</li>
--   <li><a>lbaConnectionSettings</a> - If enabled, the load balancer
--   allows the connections to remain idle (no data is sent over the
--   connection) for the specified duration. By default, Elastic Load
--   Balancing maintains a 60-second idle connection timeout for both
--   front-end and back-end connections of your load balancer. For more
--   information, see <a>Configure Idle Connection Timeout</a> in the
--   <i>Classic Load Balancer Guide</i> .</li>
--   <li><a>lbaConnectionDraining</a> - If enabled, the load balancer
--   allows existing requests to complete before the load balancer shifts
--   traffic away from a deregistered or unhealthy instance. For more
--   information, see <a>Configure Connection Draining</a> in the
--   <i>Classic Load Balancer Guide</i> .</li>
--   </ul>
loadBalancerAttributes :: LoadBalancerAttributes

-- | If enabled, the load balancer routes the request traffic evenly across
--   all instances regardless of the Availability Zones. For more
--   information, see <a>Configure Cross-Zone Load Balancing</a> in the
--   <i>Classic Load Balancer Guide</i> .
lbaCrossZoneLoadBalancing :: Lens' LoadBalancerAttributes (Maybe CrossZoneLoadBalancing)

-- | If enabled, the load balancer captures detailed information of all
--   requests and delivers the information to the Amazon S3 bucket that you
--   specify. For more information, see <a>Enable Access Logs</a> in the
--   <i>Classic Load Balancer Guide</i> .
lbaAccessLog :: Lens' LoadBalancerAttributes (Maybe AccessLog)

-- | This parameter is reserved.
lbaAdditionalAttributes :: Lens' LoadBalancerAttributes [AdditionalAttribute]

-- | If enabled, the load balancer allows the connections to remain idle
--   (no data is sent over the connection) for the specified duration. By
--   default, Elastic Load Balancing maintains a 60-second idle connection
--   timeout for both front-end and back-end connections of your load
--   balancer. For more information, see <a>Configure Idle Connection
--   Timeout</a> in the <i>Classic Load Balancer Guide</i> .
lbaConnectionSettings :: Lens' LoadBalancerAttributes (Maybe ConnectionSettings)

-- | If enabled, the load balancer allows existing requests to complete
--   before the load balancer shifts traffic away from a deregistered or
--   unhealthy instance. For more information, see <a>Configure Connection
--   Draining</a> in the <i>Classic Load Balancer Guide</i> .
lbaConnectionDraining :: Lens' LoadBalancerAttributes (Maybe ConnectionDraining)

-- | Information about a load balancer.
--   
--   <i>See:</i> <a>loadBalancerDescription</a> smart constructor.
data LoadBalancerDescription

-- | Creates a value of <a>LoadBalancerDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbdSourceSecurityGroup</a> - The security group for the load
--   balancer, which you can use as part of your inbound rules for your
--   registered instances. To only allow traffic from load balancers, add a
--   security group rule that specifies this source security group as the
--   inbound source.</li>
--   <li><a>lbdCanonicalHostedZoneName</a> - The DNS name of the load
--   balancer. For more information, see <a>Configure a Custom Domain
--   Name</a> in the <i>Classic Load Balancer Guide</i> .</li>
--   <li><a>lbdSecurityGroups</a> - The security groups for the load
--   balancer. Valid only for load balancers in a VPC.</li>
--   <li><a>lbdHealthCheck</a> - Information about the health checks
--   conducted on the load balancer.</li>
--   <li><a>lbdLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>lbdCreatedTime</a> - The date and time the load balancer was
--   created.</li>
--   <li><a>lbdVPCId</a> - The ID of the VPC for the load balancer.</li>
--   <li><a>lbdSubnets</a> - The IDs of the subnets for the load
--   balancer.</li>
--   <li><a>lbdAvailabilityZones</a> - The Availability Zones for the load
--   balancer.</li>
--   <li><a>lbdBackendServerDescriptions</a> - Information about your EC2
--   instances.</li>
--   <li><a>lbdCanonicalHostedZoneNameId</a> - The ID of the Amazon Route
--   53 hosted zone for the load balancer.</li>
--   <li><a>lbdInstances</a> - The IDs of the instances for the load
--   balancer.</li>
--   <li><a>lbdScheme</a> - The type of load balancer. Valid only for load
--   balancers in a VPC. If <tt>Scheme</tt> is <tt>internet-facing</tt> ,
--   the load balancer has a public DNS name that resolves to a public IP
--   address. If <tt>Scheme</tt> is <tt>internal</tt> , the load balancer
--   has a public DNS name that resolves to a private IP address.</li>
--   <li><a>lbdListenerDescriptions</a> - The listeners for the load
--   balancer.</li>
--   <li><a>lbdDNSName</a> - The DNS name of the load balancer.</li>
--   <li><a>lbdPolicies</a> - The policies defined for the load
--   balancer.</li>
--   </ul>
loadBalancerDescription :: LoadBalancerDescription

-- | The security group for the load balancer, which you can use as part of
--   your inbound rules for your registered instances. To only allow
--   traffic from load balancers, add a security group rule that specifies
--   this source security group as the inbound source.
lbdSourceSecurityGroup :: Lens' LoadBalancerDescription (Maybe SourceSecurityGroup)

-- | The DNS name of the load balancer. For more information, see
--   <a>Configure a Custom Domain Name</a> in the <i>Classic Load Balancer
--   Guide</i> .
lbdCanonicalHostedZoneName :: Lens' LoadBalancerDescription (Maybe Text)

-- | The security groups for the load balancer. Valid only for load
--   balancers in a VPC.
lbdSecurityGroups :: Lens' LoadBalancerDescription [Text]

-- | Information about the health checks conducted on the load balancer.
lbdHealthCheck :: Lens' LoadBalancerDescription (Maybe HealthCheck)

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

-- | The date and time the load balancer was created.
lbdCreatedTime :: Lens' LoadBalancerDescription (Maybe UTCTime)

-- | The ID of the VPC for the load balancer.
lbdVPCId :: Lens' LoadBalancerDescription (Maybe Text)

-- | The IDs of the subnets for the load balancer.
lbdSubnets :: Lens' LoadBalancerDescription [Text]

-- | The Availability Zones for the load balancer.
lbdAvailabilityZones :: Lens' LoadBalancerDescription [Text]

-- | Information about your EC2 instances.
lbdBackendServerDescriptions :: Lens' LoadBalancerDescription [BackendServerDescription]

-- | The ID of the Amazon Route 53 hosted zone for the load balancer.
lbdCanonicalHostedZoneNameId :: Lens' LoadBalancerDescription (Maybe Text)

-- | The IDs of the instances for the load balancer.
lbdInstances :: Lens' LoadBalancerDescription [Instance]

-- | The type of load balancer. Valid only for load balancers in a VPC. If
--   <tt>Scheme</tt> is <tt>internet-facing</tt> , the load balancer has a
--   public DNS name that resolves to a public IP address. If
--   <tt>Scheme</tt> is <tt>internal</tt> , the load balancer has a public
--   DNS name that resolves to a private IP address.
lbdScheme :: Lens' LoadBalancerDescription (Maybe Text)

-- | The listeners for the load balancer.
lbdListenerDescriptions :: Lens' LoadBalancerDescription [ListenerDescription]

-- | The DNS name of the load balancer.
lbdDNSName :: Lens' LoadBalancerDescription (Maybe Text)

-- | The policies defined for the load balancer.
lbdPolicies :: Lens' LoadBalancerDescription (Maybe Policies)

-- | The policies for a load balancer.
--   
--   <i>See:</i> <a>policies</a> smart constructor.
data Policies

-- | Creates a value of <a>Policies</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pOtherPolicies</a> - The policies other than the stickiness
--   policies.</li>
--   <li><a>pLBCookieStickinessPolicies</a> - The stickiness policies
--   created using <tt>CreateLBCookieStickinessPolicy</tt> .</li>
--   <li><a>pAppCookieStickinessPolicies</a> - The stickiness policies
--   created using <tt>CreateAppCookieStickinessPolicy</tt> .</li>
--   </ul>
policies :: Policies

-- | The policies other than the stickiness policies.
pOtherPolicies :: Lens' Policies [Text]

-- | The stickiness policies created using
--   <tt>CreateLBCookieStickinessPolicy</tt> .
pLBCookieStickinessPolicies :: Lens' Policies [LBCookieStickinessPolicy]

-- | The stickiness policies created using
--   <tt>CreateAppCookieStickinessPolicy</tt> .
pAppCookieStickinessPolicies :: Lens' Policies [AppCookieStickinessPolicy]

-- | Information about a policy attribute.
--   
--   <i>See:</i> <a>policyAttribute</a> smart constructor.
data PolicyAttribute

-- | Creates a value of <a>PolicyAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paAttributeValue</a> - The value of the attribute.</li>
--   <li><a>paAttributeName</a> - The name of the attribute.</li>
--   </ul>
policyAttribute :: PolicyAttribute

-- | The value of the attribute.
paAttributeValue :: Lens' PolicyAttribute (Maybe Text)

-- | The name of the attribute.
paAttributeName :: Lens' PolicyAttribute (Maybe Text)

-- | Information about a policy attribute.
--   
--   <i>See:</i> <a>policyAttributeDescription</a> smart constructor.
data PolicyAttributeDescription

-- | Creates a value of <a>PolicyAttributeDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>padAttributeValue</a> - The value of the attribute.</li>
--   <li><a>padAttributeName</a> - The name of the attribute.</li>
--   </ul>
policyAttributeDescription :: PolicyAttributeDescription

-- | The value of the attribute.
padAttributeValue :: Lens' PolicyAttributeDescription (Maybe Text)

-- | The name of the attribute.
padAttributeName :: Lens' PolicyAttributeDescription (Maybe Text)

-- | Information about a policy attribute type.
--   
--   <i>See:</i> <a>policyAttributeTypeDescription</a> smart constructor.
data PolicyAttributeTypeDescription

-- | Creates a value of <a>PolicyAttributeTypeDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>patdAttributeType</a> - The type of the attribute. For example,
--   <tt>Boolean</tt> or <tt>Integer</tt> .</li>
--   <li><a>patdCardinality</a> - The cardinality of the attribute. Valid
--   values: * ONE(1) : Single value required * ZERO_OR_ONE(0..1) : Up to
--   one value is allowed * ZERO_OR_MORE(0..*) : Optional. Multiple values
--   are allowed * ONE_OR_MORE(1..*0) : Required. Multiple values are
--   allowed</li>
--   <li><a>patdDefaultValue</a> - The default value of the attribute, if
--   applicable.</li>
--   <li><a>patdAttributeName</a> - The name of the attribute.</li>
--   <li><a>patdDescription</a> - A description of the attribute.</li>
--   </ul>
policyAttributeTypeDescription :: PolicyAttributeTypeDescription

-- | The type of the attribute. For example, <tt>Boolean</tt> or
--   <tt>Integer</tt> .
patdAttributeType :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | The cardinality of the attribute. Valid values: * ONE(1) : Single
--   value required * ZERO_OR_ONE(0..1) : Up to one value is allowed *
--   ZERO_OR_MORE(0..*) : Optional. Multiple values are allowed *
--   ONE_OR_MORE(1..*0) : Required. Multiple values are allowed
patdCardinality :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | The default value of the attribute, if applicable.
patdDefaultValue :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | The name of the attribute.
patdAttributeName :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | A description of the attribute.
patdDescription :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | Information about a policy.
--   
--   <i>See:</i> <a>policyDescription</a> smart constructor.
data PolicyDescription

-- | Creates a value of <a>PolicyDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdPolicyName</a> - The name of the policy.</li>
--   <li><a>pdPolicyAttributeDescriptions</a> - The policy attributes.</li>
--   <li><a>pdPolicyTypeName</a> - The name of the policy type.</li>
--   </ul>
policyDescription :: PolicyDescription

-- | The name of the policy.
pdPolicyName :: Lens' PolicyDescription (Maybe Text)

-- | The policy attributes.
pdPolicyAttributeDescriptions :: Lens' PolicyDescription [PolicyAttributeDescription]

-- | The name of the policy type.
pdPolicyTypeName :: Lens' PolicyDescription (Maybe Text)

-- | Information about a policy type.
--   
--   <i>See:</i> <a>policyTypeDescription</a> smart constructor.
data PolicyTypeDescription

-- | Creates a value of <a>PolicyTypeDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ptdPolicyTypeName</a> - The name of the policy type.</li>
--   <li><a>ptdDescription</a> - A description of the policy type.</li>
--   <li><a>ptdPolicyAttributeTypeDescriptions</a> - The description of the
--   policy attributes associated with the policies defined by Elastic Load
--   Balancing.</li>
--   </ul>
policyTypeDescription :: PolicyTypeDescription

-- | The name of the policy type.
ptdPolicyTypeName :: Lens' PolicyTypeDescription (Maybe Text)

-- | A description of the policy type.
ptdDescription :: Lens' PolicyTypeDescription (Maybe Text)

-- | The description of the policy attributes associated with the policies
--   defined by Elastic Load Balancing.
ptdPolicyAttributeTypeDescriptions :: Lens' PolicyTypeDescription [PolicyAttributeTypeDescription]

-- | Information about a source security group.
--   
--   <i>See:</i> <a>sourceSecurityGroup</a> smart constructor.
data SourceSecurityGroup

-- | Creates a value of <a>SourceSecurityGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssgOwnerAlias</a> - The owner of the security group.</li>
--   <li><a>ssgGroupName</a> - The name of the security group.</li>
--   </ul>
sourceSecurityGroup :: SourceSecurityGroup

-- | The owner of the security group.
ssgOwnerAlias :: Lens' SourceSecurityGroup (Maybe Text)

-- | The name of the security group.
ssgGroupName :: Lens' SourceSecurityGroup (Maybe Text)

-- | Information about a tag.
--   
--   <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>tagValue</a> - The value of the tag.</li>
--   <li><a>tagKey</a> - The key of the tag.</li>
--   </ul>
tag :: Text -> Tag

-- | The value of the tag.
tagValue :: Lens' Tag (Maybe Text)

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

-- | The tags associated with a load balancer.
--   
--   <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>tdLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>tdTags</a> - The tags.</li>
--   </ul>
tagDescription :: TagDescription

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

-- | The tags.
tdTags :: Lens' TagDescription (Maybe (NonEmpty Tag))

-- | The key of a tag.
--   
--   <i>See:</i> <a>tagKeyOnly</a> smart constructor.
data TagKeyOnly

-- | Creates a value of <a>TagKeyOnly</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tkoKey</a> - The name of the key.</li>
--   </ul>
tagKeyOnly :: TagKeyOnly

-- | The name of the key.
tkoKey :: Lens' TagKeyOnly (Maybe Text)


-- | Replaces the current set of policies for the specified load balancer
--   port with the specified set of policies.
--   
--   To enable back-end server authentication, use
--   <tt>SetLoadBalancerPoliciesForBackendServer</tt> .
--   
--   For more information about setting policies, see <a>Update the SSL
--   Negotiation Configuration</a> , <a>Duration-Based Session
--   Stickiness</a> , and <a>Application-Controlled Session Stickiness</a>
--   in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.SetLoadBalancerPoliciesOfListener

-- | Creates a value of <a>SetLoadBalancerPoliciesOfListener</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slbpolLoadBalancerName</a> - The name of the load
--   balancer.</li>
--   <li><a>slbpolLoadBalancerPort</a> - The external port of the load
--   balancer.</li>
--   <li><a>slbpolPolicyNames</a> - The names of the policies. This list
--   must include all policies to be enabled. If you omit a policy that is
--   currently enabled, it is disabled. If the list is empty, all current
--   policies are disabled.</li>
--   </ul>
setLoadBalancerPoliciesOfListener :: Text -> Int -> SetLoadBalancerPoliciesOfListener

-- | Contains the parameters for SetLoadBalancePoliciesOfListener.
--   
--   <i>See:</i> <a>setLoadBalancerPoliciesOfListener</a> smart
--   constructor.
data SetLoadBalancerPoliciesOfListener

-- | The name of the load balancer.
slbpolLoadBalancerName :: Lens' SetLoadBalancerPoliciesOfListener Text

-- | The external port of the load balancer.
slbpolLoadBalancerPort :: Lens' SetLoadBalancerPoliciesOfListener Int

-- | The names of the policies. This list must include all policies to be
--   enabled. If you omit a policy that is currently enabled, it is
--   disabled. If the list is empty, all current policies are disabled.
slbpolPolicyNames :: Lens' SetLoadBalancerPoliciesOfListener [Text]

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

-- | Contains the output of SetLoadBalancePoliciesOfListener.
--   
--   <i>See:</i> <a>setLoadBalancerPoliciesOfListenerResponse</a> smart
--   constructor.
data SetLoadBalancerPoliciesOfListenerResponse

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


-- | Replaces the set of policies associated with the specified port on
--   which the EC2 instance is listening with a new set of policies. At
--   this time, only the back-end server authentication policy type can be
--   applied to the instance ports; this policy type is composed of
--   multiple public key policies.
--   
--   Each time you use <tt>SetLoadBalancerPoliciesForBackendServer</tt> to
--   enable the policies, use the <tt>PolicyNames</tt> parameter to list
--   the policies that you want to enable.
--   
--   You can use <tt>DescribeLoadBalancers</tt> or
--   <tt>DescribeLoadBalancerPolicies</tt> to verify that the policy is
--   associated with the EC2 instance.
--   
--   For more information about enabling back-end instance authentication,
--   see <a>Configure Back-end Instance Authentication</a> in the
--   <i>Classic Load Balancer Guide</i> . For more information about Proxy
--   Protocol, see <a>Configure Proxy Protocol Support</a> in the
--   <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.SetLoadBalancerPoliciesForBackendServer

-- | Creates a value of <a>SetLoadBalancerPoliciesForBackendServer</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slbpfbsLoadBalancerName</a> - The name of the load
--   balancer.</li>
--   <li><a>slbpfbsInstancePort</a> - The port number associated with the
--   EC2 instance.</li>
--   <li><a>slbpfbsPolicyNames</a> - The names of the policies. If the list
--   is empty, then all current polices are removed from the EC2
--   instance.</li>
--   </ul>
setLoadBalancerPoliciesForBackendServer :: Text -> Int -> SetLoadBalancerPoliciesForBackendServer

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

-- | The name of the load balancer.
slbpfbsLoadBalancerName :: Lens' SetLoadBalancerPoliciesForBackendServer Text

-- | The port number associated with the EC2 instance.
slbpfbsInstancePort :: Lens' SetLoadBalancerPoliciesForBackendServer Int

-- | The names of the policies. If the list is empty, then all current
--   polices are removed from the EC2 instance.
slbpfbsPolicyNames :: Lens' SetLoadBalancerPoliciesForBackendServer [Text]

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

-- | Contains the output of SetLoadBalancerPoliciesForBackendServer.
--   
--   <i>See:</i> <a>setLoadBalancerPoliciesForBackendServerResponse</a>
--   smart constructor.
data SetLoadBalancerPoliciesForBackendServerResponse

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


-- | Sets the certificate that terminates the specified listener's SSL
--   connections. The specified certificate replaces any prior certificate
--   that was used on the same load balancer and port.
--   
--   For more information about updating your SSL certificate, see
--   <a>Replace the SSL Certificate for Your Load Balancer</a> in the
--   <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.SetLoadBalancerListenerSSLCertificate

-- | Creates a value of <a>SetLoadBalancerListenerSSLCertificate</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>slblscLoadBalancerName</a> - The name of the load
--   balancer.</li>
--   <li><a>slblscLoadBalancerPort</a> - The port that uses the specified
--   SSL certificate.</li>
--   <li><a>slblscSSLCertificateId</a> - The Amazon Resource Name (ARN) of
--   the SSL certificate.</li>
--   </ul>
setLoadBalancerListenerSSLCertificate :: Text -> Int -> Text -> SetLoadBalancerListenerSSLCertificate

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

-- | The name of the load balancer.
slblscLoadBalancerName :: Lens' SetLoadBalancerListenerSSLCertificate Text

-- | The port that uses the specified SSL certificate.
slblscLoadBalancerPort :: Lens' SetLoadBalancerListenerSSLCertificate Int

-- | The Amazon Resource Name (ARN) of the SSL certificate.
slblscSSLCertificateId :: Lens' SetLoadBalancerListenerSSLCertificate Text

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

-- | Contains the output of SetLoadBalancerListenerSSLCertificate.
--   
--   <i>See:</i> <a>setLoadBalancerListenerSSLCertificateResponse</a> smart
--   constructor.
data SetLoadBalancerListenerSSLCertificateResponse

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


-- | Removes one or more tags from the specified load balancer.
module Network.AWS.ELB.RemoveTags

-- | Creates a value of <a>RemoveTags</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtLoadBalancerNames</a> - The name of the load balancer. You
--   can specify a maximum of one load balancer name.</li>
--   <li><a>rtTags</a> - The list of tag keys to remove.</li>
--   </ul>
removeTags :: NonEmpty TagKeyOnly -> RemoveTags

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

-- | The name of the load balancer. You can specify a maximum of one load
--   balancer name.
rtLoadBalancerNames :: Lens' RemoveTags [Text]

-- | The list of tag keys to remove.
rtTags :: Lens' RemoveTags (NonEmpty TagKeyOnly)

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

-- | Contains the output of RemoveTags.
--   
--   <i>See:</i> <a>removeTagsResponse</a> smart constructor.
data RemoveTagsResponse

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


-- | Adds the specified instances to the specified load balancer.
--   
--   The instance must be a running instance in the same network as the
--   load balancer (EC2-Classic or the same VPC). If you have EC2-Classic
--   instances and a load balancer in a VPC with ClassicLink enabled, you
--   can link the EC2-Classic instances to that VPC and then register the
--   linked EC2-Classic instances with the load balancer in the VPC.
--   
--   Note that <tt>RegisterInstanceWithLoadBalancer</tt> completes when the
--   request has been registered. Instance registration takes a little time
--   to complete. To check the state of the registered instances, use
--   <tt>DescribeLoadBalancers</tt> or <tt>DescribeInstanceHealth</tt> .
--   
--   After the instance is registered, it starts receiving traffic and
--   requests from the load balancer. Any instance that is not in one of
--   the Availability Zones registered for the load balancer is moved to
--   the <tt>OutOfService</tt> state. If an Availability Zone is added to
--   the load balancer later, any instances registered with the load
--   balancer move to the <tt>InService</tt> state.
--   
--   To deregister instances from a load balancer, use
--   <tt>DeregisterInstancesFromLoadBalancer</tt> .
--   
--   For more information, see <a>Register or De-Register EC2 Instances</a>
--   in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.RegisterInstancesWithLoadBalancer

-- | Creates a value of <a>RegisterInstancesWithLoadBalancer</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riwlbLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>riwlbInstances</a> - The IDs of the instances.</li>
--   </ul>
registerInstancesWithLoadBalancer :: Text -> RegisterInstancesWithLoadBalancer

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

-- | The name of the load balancer.
riwlbLoadBalancerName :: Lens' RegisterInstancesWithLoadBalancer Text

-- | The IDs of the instances.
riwlbInstances :: Lens' RegisterInstancesWithLoadBalancer [Instance]

-- | Creates a value of <a>RegisterInstancesWithLoadBalancerResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riwlbrsInstances</a> - The updated list of instances for the
--   load balancer.</li>
--   <li><a>riwlbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerInstancesWithLoadBalancerResponse :: Int -> RegisterInstancesWithLoadBalancerResponse

-- | Contains the output of RegisterInstancesWithLoadBalancer.
--   
--   <i>See:</i> <a>registerInstancesWithLoadBalancerResponse</a> smart
--   constructor.
data RegisterInstancesWithLoadBalancerResponse

-- | The updated list of instances for the load balancer.
riwlbrsInstances :: Lens' RegisterInstancesWithLoadBalancerResponse [Instance]

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


-- | Modifies the attributes of the specified load balancer.
--   
--   You can modify the load balancer attributes, such as
--   <tt>AccessLogs</tt> , <tt>ConnectionDraining</tt> , and
--   <tt>CrossZoneLoadBalancing</tt> by either enabling or disabling them.
--   Or, you can modify the load balancer attribute
--   <tt>ConnectionSettings</tt> by specifying an idle connection timeout
--   value for your load balancer.
--   
--   For more information, see the following in the <i>Classic Load
--   Balancer Guide</i> :
--   
--   <ul>
--   <li><a>Cross-Zone Load Balancing</a></li>
--   <li><a>Connection Draining</a></li>
--   <li><a>Access Logs</a></li>
--   <li><a>Idle Connection Timeout</a></li>
--   </ul>
module Network.AWS.ELB.ModifyLoadBalancerAttributes

-- | Creates a value of <a>ModifyLoadBalancerAttributes</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlbaLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>mlbaLoadBalancerAttributes</a> - The attributes for the load
--   balancer.</li>
--   </ul>
modifyLoadBalancerAttributes :: Text -> LoadBalancerAttributes -> ModifyLoadBalancerAttributes

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

-- | The name of the load balancer.
mlbaLoadBalancerName :: Lens' ModifyLoadBalancerAttributes Text

-- | The attributes for the load balancer.
mlbaLoadBalancerAttributes :: Lens' ModifyLoadBalancerAttributes LoadBalancerAttributes

-- | Creates a value of <a>ModifyLoadBalancerAttributesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlbarsLoadBalancerName</a> - The name of the load
--   balancer.</li>
--   <li><a>mlbarsLoadBalancerAttributes</a> - Information about the load
--   balancer attributes.</li>
--   <li><a>mlbarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyLoadBalancerAttributesResponse :: Int -> ModifyLoadBalancerAttributesResponse

-- | Contains the output of ModifyLoadBalancerAttributes.
--   
--   <i>See:</i> <a>modifyLoadBalancerAttributesResponse</a> smart
--   constructor.
data ModifyLoadBalancerAttributesResponse

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

-- | Information about the load balancer attributes.
mlbarsLoadBalancerAttributes :: Lens' ModifyLoadBalancerAttributesResponse (Maybe LoadBalancerAttributes)

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


-- | Adds the specified Availability Zones to the set of Availability Zones
--   for the specified load balancer.
--   
--   The load balancer evenly distributes requests across all its
--   registered Availability Zones that contain instances.
--   
--   For more information, see <a>Add or Remove Availability Zones</a> in
--   the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.EnableAvailabilityZonesForLoadBalancer

-- | Creates a value of <a>EnableAvailabilityZonesForLoadBalancer</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eazflbLoadBalancerName</a> - The name of the load
--   balancer.</li>
--   <li><a>eazflbAvailabilityZones</a> - The Availability Zones. These
--   must be in the same region as the load balancer.</li>
--   </ul>
enableAvailabilityZonesForLoadBalancer :: Text -> EnableAvailabilityZonesForLoadBalancer

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

-- | The name of the load balancer.
eazflbLoadBalancerName :: Lens' EnableAvailabilityZonesForLoadBalancer Text

-- | The Availability Zones. These must be in the same region as the load
--   balancer.
eazflbAvailabilityZones :: Lens' EnableAvailabilityZonesForLoadBalancer [Text]

-- | Creates a value of
--   <a>EnableAvailabilityZonesForLoadBalancerResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eazflbrsAvailabilityZones</a> - The updated list of
--   Availability Zones for the load balancer.</li>
--   <li><a>eazflbrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
enableAvailabilityZonesForLoadBalancerResponse :: Int -> EnableAvailabilityZonesForLoadBalancerResponse

-- | Contains the output of EnableAvailabilityZonesForLoadBalancer.
--   
--   <i>See:</i> <a>enableAvailabilityZonesForLoadBalancerResponse</a>
--   smart constructor.
data EnableAvailabilityZonesForLoadBalancerResponse

-- | The updated list of Availability Zones for the load balancer.
eazflbrsAvailabilityZones :: Lens' EnableAvailabilityZonesForLoadBalancerResponse [Text]

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


-- | Removes the specified Availability Zones from the set of Availability
--   Zones for the specified load balancer.
--   
--   There must be at least one Availability Zone registered with a load
--   balancer at all times. After an Availability Zone is removed, all
--   instances registered with the load balancer that are in the removed
--   Availability Zone go into the <tt>OutOfService</tt> state. Then, the
--   load balancer attempts to equally balance the traffic among its
--   remaining Availability Zones.
--   
--   For more information, see <a>Add or Remove Availability Zones</a> in
--   the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.DisableAvailabilityZonesForLoadBalancer

-- | Creates a value of <a>DisableAvailabilityZonesForLoadBalancer</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dazflbLoadBalancerName</a> - The name of the load
--   balancer.</li>
--   <li><a>dazflbAvailabilityZones</a> - The Availability Zones.</li>
--   </ul>
disableAvailabilityZonesForLoadBalancer :: Text -> DisableAvailabilityZonesForLoadBalancer

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

-- | The name of the load balancer.
dazflbLoadBalancerName :: Lens' DisableAvailabilityZonesForLoadBalancer Text

-- | The Availability Zones.
dazflbAvailabilityZones :: Lens' DisableAvailabilityZonesForLoadBalancer [Text]

-- | Creates a value of
--   <a>DisableAvailabilityZonesForLoadBalancerResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dazflbrsAvailabilityZones</a> - The remaining Availability
--   Zones for the load balancer.</li>
--   <li><a>dazflbrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
disableAvailabilityZonesForLoadBalancerResponse :: Int -> DisableAvailabilityZonesForLoadBalancerResponse

-- | Contains the output for DisableAvailabilityZonesForLoadBalancer.
--   
--   <i>See:</i> <a>disableAvailabilityZonesForLoadBalancerResponse</a>
--   smart constructor.
data DisableAvailabilityZonesForLoadBalancerResponse

-- | The remaining Availability Zones for the load balancer.
dazflbrsAvailabilityZones :: Lens' DisableAvailabilityZonesForLoadBalancerResponse [Text]

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


-- | Removes the specified subnets from the set of configured subnets for
--   the load balancer.
--   
--   After a subnet is removed, all EC2 instances registered with the load
--   balancer in the removed subnet go into the <tt>OutOfService</tt>
--   state. Then, the load balancer balances the traffic among the
--   remaining routable subnets.
module Network.AWS.ELB.DetachLoadBalancerFromSubnets

-- | Creates a value of <a>DetachLoadBalancerFromSubnets</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbfsLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>dlbfsSubnets</a> - The IDs of the subnets.</li>
--   </ul>
detachLoadBalancerFromSubnets :: Text -> DetachLoadBalancerFromSubnets

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

-- | The name of the load balancer.
dlbfsLoadBalancerName :: Lens' DetachLoadBalancerFromSubnets Text

-- | The IDs of the subnets.
dlbfsSubnets :: Lens' DetachLoadBalancerFromSubnets [Text]

-- | Creates a value of <a>DetachLoadBalancerFromSubnetsResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbfsrsSubnets</a> - The IDs of the remaining subnets for the
--   load balancer.</li>
--   <li><a>dlbfsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
detachLoadBalancerFromSubnetsResponse :: Int -> DetachLoadBalancerFromSubnetsResponse

-- | Contains the output of DetachLoadBalancerFromSubnets.
--   
--   <i>See:</i> <a>detachLoadBalancerFromSubnetsResponse</a> smart
--   constructor.
data DetachLoadBalancerFromSubnetsResponse

-- | The IDs of the remaining subnets for the load balancer.
dlbfsrsSubnets :: Lens' DetachLoadBalancerFromSubnetsResponse [Text]

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


-- | Describes the tags associated with the specified load balancers.
module Network.AWS.ELB.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>dtLoadBalancerNames</a> - The names of the load balancers.</li>
--   </ul>
describeTags :: NonEmpty Text -> DescribeTags

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

-- | The names of the load balancers.
dtLoadBalancerNames :: Lens' DescribeTags (NonEmpty Text)

-- | 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>dtrsTagDescriptions</a> - Information about the tags.</li>
--   <li><a>dtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTagsResponse :: Int -> DescribeTagsResponse

-- | Contains the output for DescribeTags.
--   
--   <i>See:</i> <a>describeTagsResponse</a> smart constructor.
data DescribeTagsResponse

-- | Information about the tags.
dtrsTagDescriptions :: Lens' DescribeTagsResponse [TagDescription]

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


-- | Describes the specified the load balancers. If no load balancers are
--   specified, the call describes all of your load balancers.
--   
--   This operation returns paginated results.
module Network.AWS.ELB.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>dlbMarker</a> - The marker for the next set of results. (You
--   received this marker from a previous call.)</li>
--   <li><a>dlbPageSize</a> - The maximum number of results to return with
--   this call (a number from 1 to 400). The default is 400.</li>
--   <li><a>dlbLoadBalancerNames</a> - The names of the load
--   balancers.</li>
--   </ul>
describeLoadBalancers :: DescribeLoadBalancers

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

-- | The marker for the next set of results. (You received this marker from
--   a previous call.)
dlbMarker :: Lens' DescribeLoadBalancers (Maybe Text)

-- | The maximum number of results to return with this call (a number from
--   1 to 400). The default is 400.
dlbPageSize :: Lens' DescribeLoadBalancers (Maybe Natural)

-- | The names of the load balancers.
dlbLoadBalancerNames :: 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>dlbrsLoadBalancerDescriptions</a> - Information about the load
--   balancers.</li>
--   <li><a>dlbrsNextMarker</a> - The marker to use when requesting the
--   next set of results. If there are no additional results, the string is
--   empty.</li>
--   <li><a>dlbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLoadBalancersResponse :: Int -> DescribeLoadBalancersResponse

-- | Contains the parameters for DescribeLoadBalancers.
--   
--   <i>See:</i> <a>describeLoadBalancersResponse</a> smart constructor.
data DescribeLoadBalancersResponse

-- | Information about the load balancers.
dlbrsLoadBalancerDescriptions :: Lens' DescribeLoadBalancersResponse [LoadBalancerDescription]

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

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


-- | Describes the specified load balancer policy types or all load
--   balancer policy types.
--   
--   The description of each type indicates how it can be used. For
--   example, some policies can be used only with layer 7 listeners, some
--   policies can be used only with layer 4 listeners, and some policies
--   can be used only with your EC2 instances.
--   
--   You can use <tt>CreateLoadBalancerPolicy</tt> to create a policy
--   configuration for any of these policy types. Then, depending on the
--   policy type, use either <tt>SetLoadBalancerPoliciesOfListener</tt> or
--   <tt>SetLoadBalancerPoliciesForBackendServer</tt> to set the policy.
module Network.AWS.ELB.DescribeLoadBalancerPolicyTypes

-- | Creates a value of <a>DescribeLoadBalancerPolicyTypes</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbptPolicyTypeNames</a> - The names of the policy types. If no
--   names are specified, describes all policy types defined by Elastic
--   Load Balancing.</li>
--   </ul>
describeLoadBalancerPolicyTypes :: DescribeLoadBalancerPolicyTypes

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

-- | The names of the policy types. If no names are specified, describes
--   all policy types defined by Elastic Load Balancing.
dlbptPolicyTypeNames :: Lens' DescribeLoadBalancerPolicyTypes [Text]

-- | Creates a value of <a>DescribeLoadBalancerPolicyTypesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbptrsPolicyTypeDescriptions</a> - Information about the
--   policy types.</li>
--   <li><a>dlbptrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLoadBalancerPolicyTypesResponse :: Int -> DescribeLoadBalancerPolicyTypesResponse

-- | Contains the output of DescribeLoadBalancerPolicyTypes.
--   
--   <i>See:</i> <a>describeLoadBalancerPolicyTypesResponse</a> smart
--   constructor.
data DescribeLoadBalancerPolicyTypesResponse

-- | Information about the policy types.
dlbptrsPolicyTypeDescriptions :: Lens' DescribeLoadBalancerPolicyTypesResponse [PolicyTypeDescription]

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


-- | Describes the specified policies.
--   
--   If you specify a load balancer name, the action returns the
--   descriptions of all policies created for the load balancer. If you
--   specify a policy name associated with your load balancer, the action
--   returns the description of that policy. If you don't specify a load
--   balancer name, the action returns descriptions of the specified sample
--   policies, or descriptions of all sample policies. The names of the
--   sample policies have the <tt>ELBSample-</tt> prefix.
module Network.AWS.ELB.DescribeLoadBalancerPolicies

-- | Creates a value of <a>DescribeLoadBalancerPolicies</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbpPolicyNames</a> - The names of the policies.</li>
--   <li><a>dlbpLoadBalancerName</a> - The name of the load balancer.</li>
--   </ul>
describeLoadBalancerPolicies :: DescribeLoadBalancerPolicies

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

-- | The names of the policies.
dlbpPolicyNames :: Lens' DescribeLoadBalancerPolicies [Text]

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

-- | Creates a value of <a>DescribeLoadBalancerPoliciesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbprsPolicyDescriptions</a> - Information about the
--   policies.</li>
--   <li><a>dlbprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLoadBalancerPoliciesResponse :: Int -> DescribeLoadBalancerPoliciesResponse

-- | Contains the output of DescribeLoadBalancerPolicies.
--   
--   <i>See:</i> <a>describeLoadBalancerPoliciesResponse</a> smart
--   constructor.
data DescribeLoadBalancerPoliciesResponse

-- | Information about the policies.
dlbprsPolicyDescriptions :: Lens' DescribeLoadBalancerPoliciesResponse [PolicyDescription]

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


-- | Describes the attributes for the specified load balancer.
module Network.AWS.ELB.DescribeLoadBalancerAttributes

-- | Creates a value of <a>DescribeLoadBalancerAttributes</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbaLoadBalancerName</a> - The name of the load balancer.</li>
--   </ul>
describeLoadBalancerAttributes :: Text -> DescribeLoadBalancerAttributes

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

-- | The name of the load balancer.
dlbaLoadBalancerName :: Lens' DescribeLoadBalancerAttributes Text

-- | Creates a value of <a>DescribeLoadBalancerAttributesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbarsLoadBalancerAttributes</a> - Information about the load
--   balancer attributes.</li>
--   <li><a>dlbarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLoadBalancerAttributesResponse :: Int -> DescribeLoadBalancerAttributesResponse

-- | Contains the output of DescribeLoadBalancerAttributes.
--   
--   <i>See:</i> <a>describeLoadBalancerAttributesResponse</a> smart
--   constructor.
data DescribeLoadBalancerAttributesResponse

-- | Information about the load balancer attributes.
dlbarsLoadBalancerAttributes :: Lens' DescribeLoadBalancerAttributesResponse (Maybe LoadBalancerAttributes)

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


-- | Describes the state of the specified instances with respect to the
--   specified load balancer. If no instances are specified, the call
--   describes the state of all instances that are currently registered
--   with the load balancer. If instances are specified, their state is
--   returned even if they are no longer registered with the load balancer.
--   The state of terminated instances is not returned.
module Network.AWS.ELB.DescribeInstanceHealth

-- | Creates a value of <a>DescribeInstanceHealth</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dihInstances</a> - The IDs of the instances.</li>
--   <li><a>dihLoadBalancerName</a> - The name of the load balancer.</li>
--   </ul>
describeInstanceHealth :: Text -> DescribeInstanceHealth

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

-- | The IDs of the instances.
dihInstances :: Lens' DescribeInstanceHealth [Instance]

-- | The name of the load balancer.
dihLoadBalancerName :: Lens' DescribeInstanceHealth Text

-- | Creates a value of <a>DescribeInstanceHealthResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dihrsInstanceStates</a> - Information about the health of the
--   instances.</li>
--   <li><a>dihrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeInstanceHealthResponse :: Int -> DescribeInstanceHealthResponse

-- | Contains the output for DescribeInstanceHealth.
--   
--   <i>See:</i> <a>describeInstanceHealthResponse</a> smart constructor.
data DescribeInstanceHealthResponse

-- | Information about the health of the instances.
dihrsInstanceStates :: Lens' DescribeInstanceHealthResponse [InstanceState]

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


-- | Describes the current Elastic Load Balancing resource limits for your
--   AWS account.
--   
--   For more information, see <a>Limits for Your Classic Load Balancer</a>
--   in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.DescribeAccountLimits

-- | Creates a value of <a>DescribeAccountLimits</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dalMarker</a> - The marker for the next set of results. (You
--   received this marker from a previous call.)</li>
--   <li><a>dalPageSize</a> - The maximum number of results to return with
--   this call.</li>
--   </ul>
describeAccountLimits :: DescribeAccountLimits

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

-- | The marker for the next set of results. (You received this marker from
--   a previous call.)
dalMarker :: Lens' DescribeAccountLimits (Maybe Text)

-- | The maximum number of results to return with this call.
dalPageSize :: Lens' DescribeAccountLimits (Maybe Natural)

-- | 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>dalrsLimits</a> - Information about the limits.</li>
--   <li><a>dalrsNextMarker</a> - The marker to use when requesting the
--   next set of results. If there are no additional results, the string is
--   empty.</li>
--   <li><a>dalrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAccountLimitsResponse :: Int -> DescribeAccountLimitsResponse

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

-- | Information about the limits.
dalrsLimits :: Lens' DescribeAccountLimitsResponse [Limit]

-- | The marker to use when requesting the next set of results. If there
--   are no additional results, the string is empty.
dalrsNextMarker :: Lens' DescribeAccountLimitsResponse (Maybe Text)

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


-- | Deregisters the specified instances from the specified load balancer.
--   After the instance is deregistered, it no longer receives traffic from
--   the load balancer.
--   
--   You can use <tt>DescribeLoadBalancers</tt> to verify that the instance
--   is deregistered from the load balancer.
--   
--   For more information, see <a>Register or De-Register EC2 Instances</a>
--   in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.DeregisterInstancesFromLoadBalancer

-- | Creates a value of <a>DeregisterInstancesFromLoadBalancer</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diflbLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>diflbInstances</a> - The IDs of the instances.</li>
--   </ul>
deregisterInstancesFromLoadBalancer :: Text -> DeregisterInstancesFromLoadBalancer

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

-- | The name of the load balancer.
diflbLoadBalancerName :: Lens' DeregisterInstancesFromLoadBalancer Text

-- | The IDs of the instances.
diflbInstances :: Lens' DeregisterInstancesFromLoadBalancer [Instance]

-- | Creates a value of <a>DeregisterInstancesFromLoadBalancerResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diflbrsInstances</a> - The remaining instances registered with
--   the load balancer.</li>
--   <li><a>diflbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deregisterInstancesFromLoadBalancerResponse :: Int -> DeregisterInstancesFromLoadBalancerResponse

-- | Contains the output of DeregisterInstancesFromLoadBalancer.
--   
--   <i>See:</i> <a>deregisterInstancesFromLoadBalancerResponse</a> smart
--   constructor.
data DeregisterInstancesFromLoadBalancerResponse

-- | The remaining instances registered with the load balancer.
diflbrsInstances :: Lens' DeregisterInstancesFromLoadBalancerResponse [Instance]

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


-- | Deletes the specified policy from the specified load balancer. This
--   policy must not be enabled for any listeners.
module Network.AWS.ELB.DeleteLoadBalancerPolicy

-- | Creates a value of <a>DeleteLoadBalancerPolicy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>dPolicyName</a> - The name of the policy.</li>
--   </ul>
deleteLoadBalancerPolicy :: Text -> Text -> DeleteLoadBalancerPolicy

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

-- | The name of the load balancer.
dLoadBalancerName :: Lens' DeleteLoadBalancerPolicy Text

-- | The name of the policy.
dPolicyName :: Lens' DeleteLoadBalancerPolicy Text

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

-- | Contains the output of DeleteLoadBalancerPolicy.
--   
--   <i>See:</i> <a>deleteLoadBalancerPolicyResponse</a> smart constructor.
data DeleteLoadBalancerPolicyResponse

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


-- | Deletes the specified listeners from the specified load balancer.
module Network.AWS.ELB.DeleteLoadBalancerListeners

-- | Creates a value of <a>DeleteLoadBalancerListeners</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlblLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>dlblLoadBalancerPorts</a> - The client port numbers of the
--   listeners.</li>
--   </ul>
deleteLoadBalancerListeners :: Text -> DeleteLoadBalancerListeners

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

-- | The name of the load balancer.
dlblLoadBalancerName :: Lens' DeleteLoadBalancerListeners Text

-- | The client port numbers of the listeners.
dlblLoadBalancerPorts :: Lens' DeleteLoadBalancerListeners [Int]

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

-- | Contains the output of DeleteLoadBalancerListeners.
--   
--   <i>See:</i> <a>deleteLoadBalancerListenersResponse</a> smart
--   constructor.
data DeleteLoadBalancerListenersResponse

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


-- | Deletes the specified load balancer.
--   
--   If you are attempting to recreate a load balancer, you must
--   reconfigure all settings. The DNS name associated with a deleted load
--   balancer are no longer usable. The name and associated DNS record of
--   the deleted load balancer no longer exist and traffic sent to any of
--   its IP addresses is no longer delivered to your instances.
--   
--   If the load balancer does not exist or has already been deleted, the
--   call to <tt>DeleteLoadBalancer</tt> still succeeds.
module Network.AWS.ELB.DeleteLoadBalancer

-- | Creates a value of <a>DeleteLoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbLoadBalancerName</a> - The name of the load balancer.</li>
--   </ul>
deleteLoadBalancer :: Text -> DeleteLoadBalancer

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

-- | The name of the load balancer.
dlbLoadBalancerName :: Lens' DeleteLoadBalancer Text

-- | Creates a value of <a>DeleteLoadBalancerResponse</a> 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>
deleteLoadBalancerResponse :: Int -> DeleteLoadBalancerResponse

-- | Contains the output of DeleteLoadBalancer.
--   
--   <i>See:</i> <a>deleteLoadBalancerResponse</a> smart constructor.
data DeleteLoadBalancerResponse

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


-- | Creates a policy with the specified attributes for the specified load
--   balancer.
--   
--   Policies are settings that are saved for your load balancer and that
--   can be applied to the listener or the application server, depending on
--   the policy type.
module Network.AWS.ELB.CreateLoadBalancerPolicy

-- | Creates a value of <a>CreateLoadBalancerPolicy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbpPolicyAttributes</a> - The policy attributes.</li>
--   <li><a>clbpLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>clbpPolicyName</a> - The name of the load balancer policy to be
--   created. This name must be unique within the set of policies for this
--   load balancer.</li>
--   <li><a>clbpPolicyTypeName</a> - The name of the base policy type. To
--   get the list of policy types, use
--   <tt>DescribeLoadBalancerPolicyTypes</tt> .</li>
--   </ul>
createLoadBalancerPolicy :: Text -> Text -> Text -> CreateLoadBalancerPolicy

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

-- | The policy attributes.
clbpPolicyAttributes :: Lens' CreateLoadBalancerPolicy [PolicyAttribute]

-- | The name of the load balancer.
clbpLoadBalancerName :: Lens' CreateLoadBalancerPolicy Text

-- | The name of the load balancer policy to be created. This name must be
--   unique within the set of policies for this load balancer.
clbpPolicyName :: Lens' CreateLoadBalancerPolicy Text

-- | The name of the base policy type. To get the list of policy types, use
--   <tt>DescribeLoadBalancerPolicyTypes</tt> .
clbpPolicyTypeName :: Lens' CreateLoadBalancerPolicy Text

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

-- | Contains the output of CreateLoadBalancerPolicy.
--   
--   <i>See:</i> <a>createLoadBalancerPolicyResponse</a> smart constructor.
data CreateLoadBalancerPolicyResponse

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


-- | Creates one or more listeners for the specified load balancer. If a
--   listener with the specified port does not already exist, it is
--   created; otherwise, the properties of the new listener must match the
--   properties of the existing listener.
--   
--   For more information, see <a>Listeners for Your Classic Load
--   Balancer</a> in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.CreateLoadBalancerListeners

-- | Creates a value of <a>CreateLoadBalancerListeners</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clblLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>clblListeners</a> - The listeners.</li>
--   </ul>
createLoadBalancerListeners :: Text -> CreateLoadBalancerListeners

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

-- | The name of the load balancer.
clblLoadBalancerName :: Lens' CreateLoadBalancerListeners Text

-- | The listeners.
clblListeners :: Lens' CreateLoadBalancerListeners [Listener]

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

-- | Contains the parameters for CreateLoadBalancerListener.
--   
--   <i>See:</i> <a>createLoadBalancerListenersResponse</a> smart
--   constructor.
data CreateLoadBalancerListenersResponse

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


-- | Creates a Classic Load Balancer.
--   
--   You can add listeners, security groups, subnets, and tags when you
--   create your load balancer, or you can add them later using
--   <tt>CreateLoadBalancerListeners</tt> ,
--   <tt>ApplySecurityGroupsToLoadBalancer</tt> ,
--   <tt>AttachLoadBalancerToSubnets</tt> , and <tt>AddTags</tt> .
--   
--   To describe your current load balancers, see
--   <tt>DescribeLoadBalancers</tt> . When you are finished with a load
--   balancer, you can delete it using <tt>DeleteLoadBalancer</tt> .
--   
--   You can create up to 20 load balancers per region per account. You can
--   request an increase for the number of load balancers for your account.
--   For more information, see <a>Limits for Your Classic Load Balancer</a>
--   in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.CreateLoadBalancer

-- | Creates a value of <a>CreateLoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbSecurityGroups</a> - The IDs of the security groups to
--   assign to the load balancer.</li>
--   <li><a>clbSubnets</a> - The IDs of the subnets in your VPC to attach
--   to the load balancer. Specify one subnet per Availability Zone
--   specified in <tt>AvailabilityZones</tt> .</li>
--   <li><a>clbAvailabilityZones</a> - One or more Availability Zones from
--   the same region as the load balancer. You must specify at least one
--   Availability Zone. You can add more Availability Zones after you
--   create the load balancer using
--   <tt>EnableAvailabilityZonesForLoadBalancer</tt> .</li>
--   <li><a>clbScheme</a> - The type of a load balancer. Valid only for
--   load balancers in a VPC. By default, Elastic Load Balancing creates an
--   Internet-facing load balancer with a DNS name that resolves to public
--   IP addresses. For more information about Internet-facing and Internal
--   load balancers, see <a>Load Balancer Scheme</a> in the <i>Elastic Load
--   Balancing User Guide</i> . Specify <tt>internal</tt> to create a load
--   balancer with a DNS name that resolves to private IP addresses.</li>
--   <li><a>clbTags</a> - A list of tags to assign to the load balancer.
--   For more information about tagging your load balancer, see <a>Tag Your
--   Classic Load Balancer</a> in the <i>Classic Load Balancer Guide</i>
--   .</li>
--   <li><a>clbLoadBalancerName</a> - The name of the load balancer. This
--   name must be unique within your set of load balancers for the region,
--   must have a maximum of 32 characters, must contain only alphanumeric
--   characters or hyphens, and cannot begin or end with a hyphen.</li>
--   <li><a>clbListeners</a> - The listeners. For more information, see
--   <a>Listeners for Your Classic Load Balancer</a> in the <i>Classic Load
--   Balancer Guide</i> .</li>
--   </ul>
createLoadBalancer :: Text -> CreateLoadBalancer

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

-- | The IDs of the security groups to assign to the load balancer.
clbSecurityGroups :: Lens' CreateLoadBalancer [Text]

-- | The IDs of the subnets in your VPC to attach to the load balancer.
--   Specify one subnet per Availability Zone specified in
--   <tt>AvailabilityZones</tt> .
clbSubnets :: Lens' CreateLoadBalancer [Text]

-- | One or more Availability Zones from the same region as the load
--   balancer. You must specify at least one Availability Zone. You can add
--   more Availability Zones after you create the load balancer using
--   <tt>EnableAvailabilityZonesForLoadBalancer</tt> .
clbAvailabilityZones :: Lens' CreateLoadBalancer [Text]

-- | The type of a load balancer. Valid only for load balancers in a VPC.
--   By default, Elastic Load Balancing creates an Internet-facing load
--   balancer with a DNS name that resolves to public IP addresses. For
--   more information about Internet-facing and Internal load balancers,
--   see <a>Load Balancer Scheme</a> in the <i>Elastic Load Balancing User
--   Guide</i> . Specify <tt>internal</tt> to create a load balancer with a
--   DNS name that resolves to private IP addresses.
clbScheme :: Lens' CreateLoadBalancer (Maybe Text)

-- | A list of tags to assign to the load balancer. For more information
--   about tagging your load balancer, see <a>Tag Your Classic Load
--   Balancer</a> in the <i>Classic Load Balancer Guide</i> .
clbTags :: Lens' CreateLoadBalancer (Maybe (NonEmpty Tag))

-- | The name of the load balancer. This name must be unique within your
--   set of load balancers for the region, must have a maximum of 32
--   characters, must contain only alphanumeric characters or hyphens, and
--   cannot begin or end with a hyphen.
clbLoadBalancerName :: Lens' CreateLoadBalancer Text

-- | The listeners. For more information, see <a>Listeners for Your Classic
--   Load Balancer</a> in the <i>Classic Load Balancer Guide</i> .
clbListeners :: Lens' CreateLoadBalancer [Listener]

-- | Creates a value of <a>CreateLoadBalancerResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbrsDNSName</a> - The DNS name of the load balancer.</li>
--   <li><a>clbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createLoadBalancerResponse :: Int -> CreateLoadBalancerResponse

-- | Contains the output for CreateLoadBalancer.
--   
--   <i>See:</i> <a>createLoadBalancerResponse</a> smart constructor.
data CreateLoadBalancerResponse

-- | The DNS name of the load balancer.
clbrsDNSName :: Lens' CreateLoadBalancerResponse (Maybe Text)

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


-- | Generates a stickiness policy with sticky session lifetimes controlled
--   by the lifetime of the browser (user-agent) or a specified expiration
--   period. This policy can be associated only with HTTP/HTTPS listeners.
--   
--   When a load balancer implements this policy, the load balancer uses a
--   special cookie to track the instance for each request. When the load
--   balancer receives a request, it first checks to see if this cookie is
--   present in the request. If so, the load balancer sends the request to
--   the application server specified in the cookie. If not, the load
--   balancer sends the request to a server that is chosen based on the
--   existing load-balancing algorithm.
--   
--   A cookie is inserted into the response for binding subsequent requests
--   from the same user to that server. The validity of the cookie is based
--   on the cookie expiration time, which is specified in the policy
--   configuration.
--   
--   For more information, see <a>Duration-Based Session Stickiness</a> in
--   the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.CreateLBCookieStickinessPolicy

-- | Creates a value of <a>CreateLBCookieStickinessPolicy</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clbcspCookieExpirationPeriod</a> - The time period, in seconds,
--   after which the cookie should be considered stale. If you do not
--   specify this parameter, the default value is 0, which indicates that
--   the sticky session should last for the duration of the browser
--   session.</li>
--   <li><a>clbcspLoadBalancerName</a> - The name of the load
--   balancer.</li>
--   <li><a>clbcspPolicyName</a> - The name of the policy being created.
--   Policy names must consist of alphanumeric characters and dashes (-).
--   This name must be unique within the set of policies for this load
--   balancer.</li>
--   </ul>
createLBCookieStickinessPolicy :: Text -> Text -> CreateLBCookieStickinessPolicy

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

-- | The time period, in seconds, after which the cookie should be
--   considered stale. If you do not specify this parameter, the default
--   value is 0, which indicates that the sticky session should last for
--   the duration of the browser session.
clbcspCookieExpirationPeriod :: Lens' CreateLBCookieStickinessPolicy (Maybe Integer)

-- | The name of the load balancer.
clbcspLoadBalancerName :: Lens' CreateLBCookieStickinessPolicy Text

-- | The name of the policy being created. Policy names must consist of
--   alphanumeric characters and dashes (-). This name must be unique
--   within the set of policies for this load balancer.
clbcspPolicyName :: Lens' CreateLBCookieStickinessPolicy Text

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

-- | Contains the output for CreateLBCookieStickinessPolicy.
--   
--   <i>See:</i> <a>createLBCookieStickinessPolicyResponse</a> smart
--   constructor.
data CreateLBCookieStickinessPolicyResponse

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


-- | Generates a stickiness policy with sticky session lifetimes that
--   follow that of an application-generated cookie. This policy can be
--   associated only with HTTP/HTTPS listeners.
--   
--   This policy is similar to the policy created by
--   <tt>CreateLBCookieStickinessPolicy</tt> , except that the lifetime of
--   the special Elastic Load Balancing cookie, <tt>AWSELB</tt> , follows
--   the lifetime of the application-generated cookie specified in the
--   policy configuration. The load balancer only inserts a new stickiness
--   cookie when the application response includes a new application
--   cookie.
--   
--   If the application cookie is explicitly removed or expires, the
--   session stops being sticky until a new application cookie is issued.
--   
--   For more information, see <a>Application-Controlled Session
--   Stickiness</a> in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.CreateAppCookieStickinessPolicy

-- | Creates a value of <a>CreateAppCookieStickinessPolicy</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cacspLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>cacspPolicyName</a> - The name of the policy being created.
--   Policy names must consist of alphanumeric characters and dashes (-).
--   This name must be unique within the set of policies for this load
--   balancer.</li>
--   <li><a>cacspCookieName</a> - The name of the application cookie used
--   for stickiness.</li>
--   </ul>
createAppCookieStickinessPolicy :: Text -> Text -> Text -> CreateAppCookieStickinessPolicy

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

-- | The name of the load balancer.
cacspLoadBalancerName :: Lens' CreateAppCookieStickinessPolicy Text

-- | The name of the policy being created. Policy names must consist of
--   alphanumeric characters and dashes (-). This name must be unique
--   within the set of policies for this load balancer.
cacspPolicyName :: Lens' CreateAppCookieStickinessPolicy Text

-- | The name of the application cookie used for stickiness.
cacspCookieName :: Lens' CreateAppCookieStickinessPolicy Text

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

-- | Contains the output for CreateAppCookieStickinessPolicy.
--   
--   <i>See:</i> <a>createAppCookieStickinessPolicyResponse</a> smart
--   constructor.
data CreateAppCookieStickinessPolicyResponse

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


-- | Specifies the health check settings to use when evaluating the health
--   state of your EC2 instances.
--   
--   For more information, see <a>Configure Health Checks for Your Load
--   Balancer</a> in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.ConfigureHealthCheck

-- | Creates a value of <a>ConfigureHealthCheck</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>chcLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>chcHealthCheck</a> - The configuration information.</li>
--   </ul>
configureHealthCheck :: Text -> HealthCheck -> ConfigureHealthCheck

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

-- | The name of the load balancer.
chcLoadBalancerName :: Lens' ConfigureHealthCheck Text

-- | The configuration information.
chcHealthCheck :: Lens' ConfigureHealthCheck HealthCheck

-- | Creates a value of <a>ConfigureHealthCheckResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>chcrsHealthCheck</a> - The updated health check.</li>
--   <li><a>chcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
configureHealthCheckResponse :: Int -> ConfigureHealthCheckResponse

-- | Contains the output of ConfigureHealthCheck.
--   
--   <i>See:</i> <a>configureHealthCheckResponse</a> smart constructor.
data ConfigureHealthCheckResponse

-- | The updated health check.
chcrsHealthCheck :: Lens' ConfigureHealthCheckResponse (Maybe HealthCheck)

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


-- | Adds one or more subnets to the set of configured subnets for the
--   specified load balancer.
--   
--   The load balancer evenly distributes requests across all registered
--   subnets. For more information, see <a>Add or Remove Subnets for Your
--   Load Balancer in a VPC</a> in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.AttachLoadBalancerToSubnets

-- | Creates a value of <a>AttachLoadBalancerToSubnets</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>albtsLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>albtsSubnets</a> - The IDs of the subnets to add. You can add
--   only one subnet per Availability Zone.</li>
--   </ul>
attachLoadBalancerToSubnets :: Text -> AttachLoadBalancerToSubnets

-- | Contains the parameters for AttachLoaBalancerToSubnets.
--   
--   <i>See:</i> <a>attachLoadBalancerToSubnets</a> smart constructor.
data AttachLoadBalancerToSubnets

-- | The name of the load balancer.
albtsLoadBalancerName :: Lens' AttachLoadBalancerToSubnets Text

-- | The IDs of the subnets to add. You can add only one subnet per
--   Availability Zone.
albtsSubnets :: Lens' AttachLoadBalancerToSubnets [Text]

-- | Creates a value of <a>AttachLoadBalancerToSubnetsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>albtsrsSubnets</a> - The IDs of the subnets attached to the
--   load balancer.</li>
--   <li><a>albtsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachLoadBalancerToSubnetsResponse :: Int -> AttachLoadBalancerToSubnetsResponse

-- | Contains the output of AttachLoadBalancerToSubnets.
--   
--   <i>See:</i> <a>attachLoadBalancerToSubnetsResponse</a> smart
--   constructor.
data AttachLoadBalancerToSubnetsResponse

-- | The IDs of the subnets attached to the load balancer.
albtsrsSubnets :: Lens' AttachLoadBalancerToSubnetsResponse [Text]

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


-- | Associates one or more security groups with your load balancer in a
--   virtual private cloud (VPC). The specified security groups override
--   the previously associated security groups.
--   
--   For more information, see <a>Security Groups for Load Balancers in a
--   VPC</a> in the <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.ApplySecurityGroupsToLoadBalancer

-- | Creates a value of <a>ApplySecurityGroupsToLoadBalancer</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asgtlbLoadBalancerName</a> - The name of the load
--   balancer.</li>
--   <li><a>asgtlbSecurityGroups</a> - The IDs of the security groups to
--   associate with the load balancer. Note that you cannot specify the
--   name of the security group.</li>
--   </ul>
applySecurityGroupsToLoadBalancer :: Text -> ApplySecurityGroupsToLoadBalancer

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

-- | The name of the load balancer.
asgtlbLoadBalancerName :: Lens' ApplySecurityGroupsToLoadBalancer Text

-- | The IDs of the security groups to associate with the load balancer.
--   Note that you cannot specify the name of the security group.
asgtlbSecurityGroups :: Lens' ApplySecurityGroupsToLoadBalancer [Text]

-- | Creates a value of <a>ApplySecurityGroupsToLoadBalancerResponse</a>
--   with the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asgtlbrsSecurityGroups</a> - The IDs of the security groups
--   associated with the load balancer.</li>
--   <li><a>asgtlbrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
applySecurityGroupsToLoadBalancerResponse :: Int -> ApplySecurityGroupsToLoadBalancerResponse

-- | Contains the output of ApplySecurityGroupsToLoadBalancer.
--   
--   <i>See:</i> <a>applySecurityGroupsToLoadBalancerResponse</a> smart
--   constructor.
data ApplySecurityGroupsToLoadBalancerResponse

-- | The IDs of the security groups associated with the load balancer.
asgtlbrsSecurityGroups :: Lens' ApplySecurityGroupsToLoadBalancerResponse [Text]

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


-- | Adds the specified tags to the specified load balancer. Each load
--   balancer can have a maximum of 10 tags.
--   
--   Each tag consists of a key and an optional value. If a tag with the
--   same key is already associated with the load balancer,
--   <tt>AddTags</tt> updates its value.
--   
--   For more information, see <a>Tag Your Classic Load Balancer</a> in the
--   <i>Classic Load Balancer Guide</i> .
module Network.AWS.ELB.AddTags

-- | Creates a value of <a>AddTags</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>atLoadBalancerNames</a> - The name of the load balancer. You
--   can specify one load balancer only.</li>
--   <li><a>atTags</a> - The tags.</li>
--   </ul>
addTags :: NonEmpty Tag -> AddTags

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

-- | The name of the load balancer. You can specify one load balancer only.
atLoadBalancerNames :: Lens' AddTags [Text]

-- | The tags.
atTags :: Lens' AddTags (NonEmpty Tag)

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

-- | Contains the output of AddTags.
--   
--   <i>See:</i> <a>addTagsResponse</a> smart constructor.
data AddTagsResponse

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


module Network.AWS.ELB.Waiters

-- | Polls <a>DescribeInstanceHealth</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
anyInstanceInService :: Wait DescribeInstanceHealth

-- | Polls <a>DescribeInstanceHealth</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
instanceDeregistered :: Wait DescribeInstanceHealth

-- | Polls <a>DescribeInstanceHealth</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
instanceInService :: Wait DescribeInstanceHealth


-- | <b>Elastic Load Balancing</b>
--   
--   A load balancer can distribute incoming traffic across your EC2
--   instances. This enables you to increase the availability of your
--   application. The load balancer also monitors the health of its
--   registered instances and ensures that it routes traffic only to
--   healthy instances. You configure your load balancer to accept incoming
--   traffic by specifying one or more listeners, which are configured with
--   a protocol and port number for connections from clients to the load
--   balancer and a protocol and port number for connections from the load
--   balancer to the instances.
--   
--   Elastic Load Balancing supports three types of load balancers:
--   Application Load Balancers, Network Load Balancers, and Classic Load
--   Balancers. You can select a load balancer based on your application
--   needs. For more information, see the <a>Elastic Load Balancing User
--   Guide</a> .
--   
--   This reference covers the 2012-06-01 API, which supports Classic Load
--   Balancers. The 2015-12-01 API supports Application Load Balancers and
--   Network Load Balancers.
--   
--   To get started, create a load balancer with one or more listeners
--   using <a>CreateLoadBalancer</a> . Register your instances with the
--   load balancer using <a>RegisterInstancesWithLoadBalancer</a> .
--   
--   All Elastic Load Balancing operations are <i>idempotent</i> , which
--   means that they complete at most one time. If you repeat an operation,
--   it succeeds with a 200 OK response code.
module Network.AWS.ELB

-- | API version <tt>2012-06-01</tt> of the Amazon Elastic Load Balancing
--   SDK configuration.
elb :: Service

-- | One or more of the specified policies do not exist.
_PolicyNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified load balancer does not exist.
_AccessPointNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A policy with the specified name already exists for this load
--   balancer.
_DuplicatePolicyNameException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested configuration change is not valid.
_InvalidConfigurationRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more of the specified subnets do not exist.
_SubnetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified load balancer attribute does not exist.
_LoadBalancerAttributeNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified VPC has no associated Internet gateway.
_InvalidSubnetException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A tag key was specified more than once.
_DuplicateTagKeysException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A listener already exists for the specified load balancer name and
--   port, but with a different instance port, protocol, or SSL
--   certificate.
_DuplicateListenerException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The quota for the number of tags that can be assigned to a load
--   balancer has been reached.
_TooManyTagsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more of the specified policy types do not exist.
_PolicyTypeNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified protocol or signature version is not supported.
_UnsupportedProtocolException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified load balancer name already exists for this account.
_DuplicateAccessPointNameException :: AsError a => Getting (First ServiceError) a ServiceError

-- | One or more of the specified security groups do not exist.
_InvalidSecurityGroupException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The load balancer does not have a listener configured at the specified
--   port.
_ListenerNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified endpoint is not valid.
_InvalidEndPointException :: AsError a => Getting (First ServiceError) a ServiceError

-- | This operation is not allowed.
_OperationNotPermittedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for DependencyThrottleException' errors.
_DependencyThrottleException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified value for the schema is not valid. You can only specify
--   a scheme for load balancers in a VPC.
_InvalidSchemeException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The quota for the number of load balancers has been reached.
_TooManyAccessPointsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The quota for the number of policies for this load balancer has been
--   reached.
_TooManyPoliciesException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified ARN does not refer to a valid SSL certificate in AWS
--   Identity and Access Management (IAM) or AWS Certificate Manager (ACM).
--   Note that if you recently uploaded the certificate to IAM, this error
--   might indicate that the certificate is not fully available yet.
_CertificateNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Polls <a>DescribeInstanceHealth</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
anyInstanceInService :: Wait DescribeInstanceHealth

-- | Polls <a>DescribeInstanceHealth</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
instanceDeregistered :: Wait DescribeInstanceHealth

-- | Polls <a>DescribeInstanceHealth</a> every 15 seconds until a
--   successful state is reached. An error is returned after 40 failed
--   checks.
instanceInService :: Wait DescribeInstanceHealth

-- | This account identifier is used when attaching a policy to your S3
--   bucket allowing ELB to upload and write access logs.
--   
--   <i>See:</i> <a>Attach a Policy to Your S3 Bucket</a>.
getAccountId :: Region -> Text

-- | Information about the <tt>AccessLog</tt> attribute.
--   
--   <i>See:</i> <a>accessLog</a> smart constructor.
data AccessLog

-- | Creates a value of <a>AccessLog</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alEmitInterval</a> - The interval for publishing the access
--   logs. You can specify an interval of either 5 minutes or 60 minutes.
--   Default: 60 minutes</li>
--   <li><a>alS3BucketPrefix</a> - The logical hierarchy you created for
--   your Amazon S3 bucket, for example <tt>my-bucket-prefix/prod</tt> . If
--   the prefix is not provided, the log is placed at the root level of the
--   bucket.</li>
--   <li><a>alS3BucketName</a> - The name of the Amazon S3 bucket where the
--   access logs are stored.</li>
--   <li><a>alEnabled</a> - Specifies whether access logs are enabled for
--   the load balancer.</li>
--   </ul>
accessLog :: Bool -> AccessLog

-- | The interval for publishing the access logs. You can specify an
--   interval of either 5 minutes or 60 minutes. Default: 60 minutes
alEmitInterval :: Lens' AccessLog (Maybe Int)

-- | The logical hierarchy you created for your Amazon S3 bucket, for
--   example <tt>my-bucket-prefix/prod</tt> . If the prefix is not
--   provided, the log is placed at the root level of the bucket.
alS3BucketPrefix :: Lens' AccessLog (Maybe Text)

-- | The name of the Amazon S3 bucket where the access logs are stored.
alS3BucketName :: Lens' AccessLog (Maybe Text)

-- | Specifies whether access logs are enabled for the load balancer.
alEnabled :: Lens' AccessLog Bool

-- | This data type is reserved.
--   
--   <i>See:</i> <a>additionalAttribute</a> smart constructor.
data AdditionalAttribute

-- | Creates a value of <a>AdditionalAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aaValue</a> - This parameter is reserved.</li>
--   <li><a>aaKey</a> - This parameter is reserved.</li>
--   </ul>
additionalAttribute :: AdditionalAttribute

-- | This parameter is reserved.
aaValue :: Lens' AdditionalAttribute (Maybe Text)

-- | This parameter is reserved.
aaKey :: Lens' AdditionalAttribute (Maybe Text)

-- | Information about a policy for application-controlled session
--   stickiness.
--   
--   <i>See:</i> <a>appCookieStickinessPolicy</a> smart constructor.
data AppCookieStickinessPolicy

-- | Creates a value of <a>AppCookieStickinessPolicy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>acspPolicyName</a> - The mnemonic name for the policy being
--   created. The name must be unique within a set of policies for this
--   load balancer.</li>
--   <li><a>acspCookieName</a> - The name of the application cookie used
--   for stickiness.</li>
--   </ul>
appCookieStickinessPolicy :: AppCookieStickinessPolicy

-- | The mnemonic name for the policy being created. The name must be
--   unique within a set of policies for this load balancer.
acspPolicyName :: Lens' AppCookieStickinessPolicy (Maybe Text)

-- | The name of the application cookie used for stickiness.
acspCookieName :: Lens' AppCookieStickinessPolicy (Maybe Text)

-- | Information about the configuration of an EC2 instance.
--   
--   <i>See:</i> <a>backendServerDescription</a> smart constructor.
data BackendServerDescription

-- | Creates a value of <a>BackendServerDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bsdPolicyNames</a> - The names of the policies enabled for the
--   EC2 instance.</li>
--   <li><a>bsdInstancePort</a> - The port on which the EC2 instance is
--   listening.</li>
--   </ul>
backendServerDescription :: BackendServerDescription

-- | The names of the policies enabled for the EC2 instance.
bsdPolicyNames :: Lens' BackendServerDescription [Text]

-- | The port on which the EC2 instance is listening.
bsdInstancePort :: Lens' BackendServerDescription (Maybe Natural)

-- | Information about the <tt>ConnectionDraining</tt> attribute.
--   
--   <i>See:</i> <a>connectionDraining</a> smart constructor.
data ConnectionDraining

-- | Creates a value of <a>ConnectionDraining</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdTimeout</a> - The maximum time, in seconds, to keep the
--   existing connections open before deregistering the instances.</li>
--   <li><a>cdEnabled</a> - Specifies whether connection draining is
--   enabled for the load balancer.</li>
--   </ul>
connectionDraining :: Bool -> ConnectionDraining

-- | The maximum time, in seconds, to keep the existing connections open
--   before deregistering the instances.
cdTimeout :: Lens' ConnectionDraining (Maybe Int)

-- | Specifies whether connection draining is enabled for the load
--   balancer.
cdEnabled :: Lens' ConnectionDraining Bool

-- | Information about the <tt>ConnectionSettings</tt> attribute.
--   
--   <i>See:</i> <a>connectionSettings</a> smart constructor.
data ConnectionSettings

-- | Creates a value of <a>ConnectionSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csIdleTimeout</a> - The time, in seconds, that the connection
--   is allowed to be idle (no data has been sent over the connection)
--   before it is closed by the load balancer.</li>
--   </ul>
connectionSettings :: Natural -> ConnectionSettings

-- | The time, in seconds, that the connection is allowed to be idle (no
--   data has been sent over the connection) before it is closed by the
--   load balancer.
csIdleTimeout :: Lens' ConnectionSettings Natural

-- | Information about the <tt>CrossZoneLoadBalancing</tt> attribute.
--   
--   <i>See:</i> <a>crossZoneLoadBalancing</a> smart constructor.
data CrossZoneLoadBalancing

-- | Creates a value of <a>CrossZoneLoadBalancing</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>czlbEnabled</a> - Specifies whether cross-zone load balancing
--   is enabled for the load balancer.</li>
--   </ul>
crossZoneLoadBalancing :: Bool -> CrossZoneLoadBalancing

-- | Specifies whether cross-zone load balancing is enabled for the load
--   balancer.
czlbEnabled :: Lens' CrossZoneLoadBalancing Bool

-- | Information about a health check.
--   
--   <i>See:</i> <a>healthCheck</a> smart constructor.
data HealthCheck

-- | Creates a value of <a>HealthCheck</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>hcTarget</a> - The instance being checked. The protocol is
--   either TCP, HTTP, HTTPS, or SSL. The range of valid ports is one (1)
--   through 65535. TCP is the default, specified as a TCP: port pair, for
--   example "TCP:5000". In this case, a health check simply attempts to
--   open a TCP connection to the instance on the specified port. Failure
--   to connect within the configured timeout is considered unhealthy. SSL
--   is also specified as SSL: port pair, for example, SSL:5000. For
--   HTTP<i>HTTPS, you must include a ping path in the string. HTTP is
--   specified as a HTTP:port;</i>;PathToPing; grouping, for example
--   "HTTP:80<i>weather</i>us<i>wa</i>seattle". In this case, a HTTP GET
--   request is issued to the instance on the given port and path. Any
--   answer other than "200 OK" within the timeout period is considered
--   unhealthy. The total length of the HTTP ping target must be 1024
--   16-bit Unicode characters or less.</li>
--   <li><a>hcInterval</a> - The approximate interval, in seconds, between
--   health checks of an individual instance.</li>
--   <li><a>hcTimeout</a> - The amount of time, in seconds, during which no
--   response means a failed health check. This value must be less than the
--   <tt>Interval</tt> value.</li>
--   <li><a>hcUnhealthyThreshold</a> - The number of consecutive health
--   check failures required before moving the instance to the
--   <tt>Unhealthy</tt> state.</li>
--   <li><a>hcHealthyThreshold</a> - The number of consecutive health
--   checks successes required before moving the instance to the
--   <tt>Healthy</tt> state.</li>
--   </ul>
healthCheck :: Text -> Natural -> Natural -> Natural -> Natural -> HealthCheck

-- | The instance being checked. The protocol is either TCP, HTTP, HTTPS,
--   or SSL. The range of valid ports is one (1) through 65535. TCP is the
--   default, specified as a TCP: port pair, for example "TCP:5000". In
--   this case, a health check simply attempts to open a TCP connection to
--   the instance on the specified port. Failure to connect within the
--   configured timeout is considered unhealthy. SSL is also specified as
--   SSL: port pair, for example, SSL:5000. For HTTP<i>HTTPS, you must
--   include a ping path in the string. HTTP is specified as a
--   HTTP:port;</i>;PathToPing; grouping, for example
--   "HTTP:80<i>weather</i>us<i>wa</i>seattle". In this case, a HTTP GET
--   request is issued to the instance on the given port and path. Any
--   answer other than "200 OK" within the timeout period is considered
--   unhealthy. The total length of the HTTP ping target must be 1024
--   16-bit Unicode characters or less.
hcTarget :: Lens' HealthCheck Text

-- | The approximate interval, in seconds, between health checks of an
--   individual instance.
hcInterval :: Lens' HealthCheck Natural

-- | The amount of time, in seconds, during which no response means a
--   failed health check. This value must be less than the
--   <tt>Interval</tt> value.
hcTimeout :: Lens' HealthCheck Natural

-- | The number of consecutive health check failures required before moving
--   the instance to the <tt>Unhealthy</tt> state.
hcUnhealthyThreshold :: Lens' HealthCheck Natural

-- | The number of consecutive health checks successes required before
--   moving the instance to the <tt>Healthy</tt> state.
hcHealthyThreshold :: Lens' HealthCheck Natural

-- | The ID of 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>iInstanceId</a> - The instance ID.</li>
--   </ul>
instance' :: Instance

-- | The instance ID.
iInstanceId :: Lens' Instance (Maybe Text)

-- | Information about the state of an EC2 instance.
--   
--   <i>See:</i> <a>instanceState</a> smart constructor.
data InstanceState

-- | Creates a value of <a>InstanceState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>isInstanceId</a> - The ID of the instance.</li>
--   <li><a>isState</a> - The current state of the instance. Valid values:
--   <tt>InService</tt> | <tt>OutOfService</tt> | <tt>Unknown</tt></li>
--   <li><a>isReasonCode</a> - Information about the cause of
--   <tt>OutOfService</tt> instances. Specifically, whether the cause is
--   Elastic Load Balancing or the instance. Valid values: <tt>ELB</tt> |
--   <tt>Instance</tt> | <tt>N/A</tt></li>
--   <li><a>isDescription</a> - A description of the instance state. This
--   string can contain one or more of the following messages. *
--   <tt>N/A</tt> * <tt>A transient error occurred. Please try again
--   later.</tt> * <tt>Instance has failed at least the UnhealthyThreshold
--   number of health checks consecutively.</tt> * <tt>Instance has not
--   passed the configured HealthyThreshold number of health checks
--   consecutively.</tt> * <tt>Instance registration is still in
--   progress.</tt> * <tt>Instance is in the EC2 Availability Zone for
--   which LoadBalancer is not configured to route traffic to.</tt> *
--   <tt>Instance is not currently registered with the LoadBalancer.</tt> *
--   <tt>Instance deregistration currently in progress.</tt> * <tt>Disable
--   Availability Zone is currently in progress.</tt> * <tt>Instance is in
--   pending state.</tt> * <tt>Instance is in stopped state.</tt> *
--   <tt>Instance is in terminated state.</tt></li>
--   </ul>
instanceState :: InstanceState

-- | The ID of the instance.
isInstanceId :: Lens' InstanceState (Maybe Text)

-- | The current state of the instance. Valid values: <tt>InService</tt> |
--   <tt>OutOfService</tt> | <tt>Unknown</tt>
isState :: Lens' InstanceState (Maybe Text)

-- | Information about the cause of <tt>OutOfService</tt> instances.
--   Specifically, whether the cause is Elastic Load Balancing or the
--   instance. Valid values: <tt>ELB</tt> | <tt>Instance</tt> |
--   <tt>N/A</tt>
isReasonCode :: Lens' InstanceState (Maybe Text)

-- | A description of the instance state. This string can contain one or
--   more of the following messages. * <tt>N/A</tt> * <tt>A transient error
--   occurred. Please try again later.</tt> * <tt>Instance has failed at
--   least the UnhealthyThreshold number of health checks
--   consecutively.</tt> * <tt>Instance has not passed the configured
--   HealthyThreshold number of health checks consecutively.</tt> *
--   <tt>Instance registration is still in progress.</tt> * <tt>Instance is
--   in the EC2 Availability Zone for which LoadBalancer is not configured
--   to route traffic to.</tt> * <tt>Instance is not currently registered
--   with the LoadBalancer.</tt> * <tt>Instance deregistration currently in
--   progress.</tt> * <tt>Disable Availability Zone is currently in
--   progress.</tt> * <tt>Instance is in pending state.</tt> * <tt>Instance
--   is in stopped state.</tt> * <tt>Instance is in terminated state.</tt>
isDescription :: Lens' InstanceState (Maybe Text)

-- | Information about a policy for duration-based session stickiness.
--   
--   <i>See:</i> <a>lBCookieStickinessPolicy</a> smart constructor.
data LBCookieStickinessPolicy

-- | Creates a value of <a>LBCookieStickinessPolicy</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbcspPolicyName</a> - The name of the policy. This name must be
--   unique within the set of policies for this load balancer.</li>
--   <li><a>lbcspCookieExpirationPeriod</a> - The time period, in seconds,
--   after which the cookie should be considered stale. If this parameter
--   is not specified, the stickiness session lasts for the duration of the
--   browser session.</li>
--   </ul>
lBCookieStickinessPolicy :: LBCookieStickinessPolicy

-- | The name of the policy. This name must be unique within the set of
--   policies for this load balancer.
lbcspPolicyName :: Lens' LBCookieStickinessPolicy (Maybe Text)

-- | The time period, in seconds, after which the cookie should be
--   considered stale. If this parameter is not specified, the stickiness
--   session lasts for the duration of the browser session.
lbcspCookieExpirationPeriod :: Lens' LBCookieStickinessPolicy (Maybe Integer)

-- | Information about an Elastic Load Balancing resource limit for your
--   AWS account.
--   
--   <i>See:</i> <a>limit</a> smart constructor.
data Limit

-- | Creates a value of <a>Limit</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lMax</a> - The maximum value of the limit.</li>
--   <li><a>lName</a> - The name of the limit. The possible values are: *
--   classic-listeners * classic-load-balancers</li>
--   </ul>
limit :: Limit

-- | The maximum value of the limit.
lMax :: Lens' Limit (Maybe Text)

-- | The name of the limit. The possible values are: * classic-listeners *
--   classic-load-balancers
lName :: Lens' Limit (Maybe Text)

-- | Information about a listener.
--   
--   For information about the protocols and the ports supported by Elastic
--   Load Balancing, see <a>Listeners for Your Classic Load Balancer</a> in
--   the <i>Classic Load Balancer Guide</i> .
--   
--   <i>See:</i> <a>listener</a> smart constructor.
data Listener

-- | Creates a value of <a>Listener</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lInstanceProtocol</a> - The protocol to use for routing traffic
--   to instances: HTTP, HTTPS, TCP, or SSL. If the front-end protocol is
--   HTTP, HTTPS, TCP, or SSL, <tt>InstanceProtocol</tt> must be at the
--   same protocol. If there is another listener with the same
--   <tt>InstancePort</tt> whose <tt>InstanceProtocol</tt> is secure,
--   (HTTPS or SSL), the listener's <tt>InstanceProtocol</tt> must also be
--   secure. If there is another listener with the same
--   <tt>InstancePort</tt> whose <tt>InstanceProtocol</tt> is HTTP or TCP,
--   the listener's <tt>InstanceProtocol</tt> must be HTTP or TCP.</li>
--   <li><a>lSSLCertificateId</a> - The Amazon Resource Name (ARN) of the
--   server certificate.</li>
--   <li><a>lProtocol</a> - The load balancer transport protocol to use for
--   routing: HTTP, HTTPS, TCP, or SSL.</li>
--   <li><a>lLoadBalancerPort</a> - The port on which the load balancer is
--   listening. On EC2-VPC, you can specify any port from the range
--   1-65535. On EC2-Classic, you can specify any port from the following
--   list: 25, 80, 443, 465, 587, 1024-65535.</li>
--   <li><a>lInstancePort</a> - The port on which the instance is
--   listening.</li>
--   </ul>
listener :: Text -> Int -> Natural -> Listener

-- | The protocol to use for routing traffic to instances: HTTP, HTTPS,
--   TCP, or SSL. If the front-end protocol is HTTP, HTTPS, TCP, or SSL,
--   <tt>InstanceProtocol</tt> must be at the same protocol. If there is
--   another listener with the same <tt>InstancePort</tt> whose
--   <tt>InstanceProtocol</tt> is secure, (HTTPS or SSL), the listener's
--   <tt>InstanceProtocol</tt> must also be secure. If there is another
--   listener with the same <tt>InstancePort</tt> whose
--   <tt>InstanceProtocol</tt> is HTTP or TCP, the listener's
--   <tt>InstanceProtocol</tt> must be HTTP or TCP.
lInstanceProtocol :: Lens' Listener (Maybe Text)

-- | The Amazon Resource Name (ARN) of the server certificate.
lSSLCertificateId :: Lens' Listener (Maybe Text)

-- | The load balancer transport protocol to use for routing: HTTP, HTTPS,
--   TCP, or SSL.
lProtocol :: Lens' Listener Text

-- | The port on which the load balancer is listening. On EC2-VPC, you can
--   specify any port from the range 1-65535. On EC2-Classic, you can
--   specify any port from the following list: 25, 80, 443, 465, 587,
--   1024-65535.
lLoadBalancerPort :: Lens' Listener Int

-- | The port on which the instance is listening.
lInstancePort :: Lens' Listener Natural

-- | The policies enabled for a listener.
--   
--   <i>See:</i> <a>listenerDescription</a> smart constructor.
data ListenerDescription

-- | Creates a value of <a>ListenerDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ldPolicyNames</a> - The policies. If there are no policies
--   enabled, the list is empty.</li>
--   <li><a>ldListener</a> - The listener.</li>
--   </ul>
listenerDescription :: ListenerDescription

-- | The policies. If there are no policies enabled, the list is empty.
ldPolicyNames :: Lens' ListenerDescription [Text]

-- | The listener.
ldListener :: Lens' ListenerDescription (Maybe Listener)

-- | The attributes for a load balancer.
--   
--   <i>See:</i> <a>loadBalancerAttributes</a> smart constructor.
data LoadBalancerAttributes

-- | Creates a value of <a>LoadBalancerAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbaCrossZoneLoadBalancing</a> - If enabled, the load balancer
--   routes the request traffic evenly across all instances regardless of
--   the Availability Zones. For more information, see <a>Configure
--   Cross-Zone Load Balancing</a> in the <i>Classic Load Balancer
--   Guide</i> .</li>
--   <li><a>lbaAccessLog</a> - If enabled, the load balancer captures
--   detailed information of all requests and delivers the information to
--   the Amazon S3 bucket that you specify. For more information, see
--   <a>Enable Access Logs</a> in the <i>Classic Load Balancer Guide</i>
--   .</li>
--   <li><a>lbaAdditionalAttributes</a> - This parameter is reserved.</li>
--   <li><a>lbaConnectionSettings</a> - If enabled, the load balancer
--   allows the connections to remain idle (no data is sent over the
--   connection) for the specified duration. By default, Elastic Load
--   Balancing maintains a 60-second idle connection timeout for both
--   front-end and back-end connections of your load balancer. For more
--   information, see <a>Configure Idle Connection Timeout</a> in the
--   <i>Classic Load Balancer Guide</i> .</li>
--   <li><a>lbaConnectionDraining</a> - If enabled, the load balancer
--   allows existing requests to complete before the load balancer shifts
--   traffic away from a deregistered or unhealthy instance. For more
--   information, see <a>Configure Connection Draining</a> in the
--   <i>Classic Load Balancer Guide</i> .</li>
--   </ul>
loadBalancerAttributes :: LoadBalancerAttributes

-- | If enabled, the load balancer routes the request traffic evenly across
--   all instances regardless of the Availability Zones. For more
--   information, see <a>Configure Cross-Zone Load Balancing</a> in the
--   <i>Classic Load Balancer Guide</i> .
lbaCrossZoneLoadBalancing :: Lens' LoadBalancerAttributes (Maybe CrossZoneLoadBalancing)

-- | If enabled, the load balancer captures detailed information of all
--   requests and delivers the information to the Amazon S3 bucket that you
--   specify. For more information, see <a>Enable Access Logs</a> in the
--   <i>Classic Load Balancer Guide</i> .
lbaAccessLog :: Lens' LoadBalancerAttributes (Maybe AccessLog)

-- | This parameter is reserved.
lbaAdditionalAttributes :: Lens' LoadBalancerAttributes [AdditionalAttribute]

-- | If enabled, the load balancer allows the connections to remain idle
--   (no data is sent over the connection) for the specified duration. By
--   default, Elastic Load Balancing maintains a 60-second idle connection
--   timeout for both front-end and back-end connections of your load
--   balancer. For more information, see <a>Configure Idle Connection
--   Timeout</a> in the <i>Classic Load Balancer Guide</i> .
lbaConnectionSettings :: Lens' LoadBalancerAttributes (Maybe ConnectionSettings)

-- | If enabled, the load balancer allows existing requests to complete
--   before the load balancer shifts traffic away from a deregistered or
--   unhealthy instance. For more information, see <a>Configure Connection
--   Draining</a> in the <i>Classic Load Balancer Guide</i> .
lbaConnectionDraining :: Lens' LoadBalancerAttributes (Maybe ConnectionDraining)

-- | Information about a load balancer.
--   
--   <i>See:</i> <a>loadBalancerDescription</a> smart constructor.
data LoadBalancerDescription

-- | Creates a value of <a>LoadBalancerDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbdSourceSecurityGroup</a> - The security group for the load
--   balancer, which you can use as part of your inbound rules for your
--   registered instances. To only allow traffic from load balancers, add a
--   security group rule that specifies this source security group as the
--   inbound source.</li>
--   <li><a>lbdCanonicalHostedZoneName</a> - The DNS name of the load
--   balancer. For more information, see <a>Configure a Custom Domain
--   Name</a> in the <i>Classic Load Balancer Guide</i> .</li>
--   <li><a>lbdSecurityGroups</a> - The security groups for the load
--   balancer. Valid only for load balancers in a VPC.</li>
--   <li><a>lbdHealthCheck</a> - Information about the health checks
--   conducted on the load balancer.</li>
--   <li><a>lbdLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>lbdCreatedTime</a> - The date and time the load balancer was
--   created.</li>
--   <li><a>lbdVPCId</a> - The ID of the VPC for the load balancer.</li>
--   <li><a>lbdSubnets</a> - The IDs of the subnets for the load
--   balancer.</li>
--   <li><a>lbdAvailabilityZones</a> - The Availability Zones for the load
--   balancer.</li>
--   <li><a>lbdBackendServerDescriptions</a> - Information about your EC2
--   instances.</li>
--   <li><a>lbdCanonicalHostedZoneNameId</a> - The ID of the Amazon Route
--   53 hosted zone for the load balancer.</li>
--   <li><a>lbdInstances</a> - The IDs of the instances for the load
--   balancer.</li>
--   <li><a>lbdScheme</a> - The type of load balancer. Valid only for load
--   balancers in a VPC. If <tt>Scheme</tt> is <tt>internet-facing</tt> ,
--   the load balancer has a public DNS name that resolves to a public IP
--   address. If <tt>Scheme</tt> is <tt>internal</tt> , the load balancer
--   has a public DNS name that resolves to a private IP address.</li>
--   <li><a>lbdListenerDescriptions</a> - The listeners for the load
--   balancer.</li>
--   <li><a>lbdDNSName</a> - The DNS name of the load balancer.</li>
--   <li><a>lbdPolicies</a> - The policies defined for the load
--   balancer.</li>
--   </ul>
loadBalancerDescription :: LoadBalancerDescription

-- | The security group for the load balancer, which you can use as part of
--   your inbound rules for your registered instances. To only allow
--   traffic from load balancers, add a security group rule that specifies
--   this source security group as the inbound source.
lbdSourceSecurityGroup :: Lens' LoadBalancerDescription (Maybe SourceSecurityGroup)

-- | The DNS name of the load balancer. For more information, see
--   <a>Configure a Custom Domain Name</a> in the <i>Classic Load Balancer
--   Guide</i> .
lbdCanonicalHostedZoneName :: Lens' LoadBalancerDescription (Maybe Text)

-- | The security groups for the load balancer. Valid only for load
--   balancers in a VPC.
lbdSecurityGroups :: Lens' LoadBalancerDescription [Text]

-- | Information about the health checks conducted on the load balancer.
lbdHealthCheck :: Lens' LoadBalancerDescription (Maybe HealthCheck)

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

-- | The date and time the load balancer was created.
lbdCreatedTime :: Lens' LoadBalancerDescription (Maybe UTCTime)

-- | The ID of the VPC for the load balancer.
lbdVPCId :: Lens' LoadBalancerDescription (Maybe Text)

-- | The IDs of the subnets for the load balancer.
lbdSubnets :: Lens' LoadBalancerDescription [Text]

-- | The Availability Zones for the load balancer.
lbdAvailabilityZones :: Lens' LoadBalancerDescription [Text]

-- | Information about your EC2 instances.
lbdBackendServerDescriptions :: Lens' LoadBalancerDescription [BackendServerDescription]

-- | The ID of the Amazon Route 53 hosted zone for the load balancer.
lbdCanonicalHostedZoneNameId :: Lens' LoadBalancerDescription (Maybe Text)

-- | The IDs of the instances for the load balancer.
lbdInstances :: Lens' LoadBalancerDescription [Instance]

-- | The type of load balancer. Valid only for load balancers in a VPC. If
--   <tt>Scheme</tt> is <tt>internet-facing</tt> , the load balancer has a
--   public DNS name that resolves to a public IP address. If
--   <tt>Scheme</tt> is <tt>internal</tt> , the load balancer has a public
--   DNS name that resolves to a private IP address.
lbdScheme :: Lens' LoadBalancerDescription (Maybe Text)

-- | The listeners for the load balancer.
lbdListenerDescriptions :: Lens' LoadBalancerDescription [ListenerDescription]

-- | The DNS name of the load balancer.
lbdDNSName :: Lens' LoadBalancerDescription (Maybe Text)

-- | The policies defined for the load balancer.
lbdPolicies :: Lens' LoadBalancerDescription (Maybe Policies)

-- | The policies for a load balancer.
--   
--   <i>See:</i> <a>policies</a> smart constructor.
data Policies

-- | Creates a value of <a>Policies</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pOtherPolicies</a> - The policies other than the stickiness
--   policies.</li>
--   <li><a>pLBCookieStickinessPolicies</a> - The stickiness policies
--   created using <tt>CreateLBCookieStickinessPolicy</tt> .</li>
--   <li><a>pAppCookieStickinessPolicies</a> - The stickiness policies
--   created using <tt>CreateAppCookieStickinessPolicy</tt> .</li>
--   </ul>
policies :: Policies

-- | The policies other than the stickiness policies.
pOtherPolicies :: Lens' Policies [Text]

-- | The stickiness policies created using
--   <tt>CreateLBCookieStickinessPolicy</tt> .
pLBCookieStickinessPolicies :: Lens' Policies [LBCookieStickinessPolicy]

-- | The stickiness policies created using
--   <tt>CreateAppCookieStickinessPolicy</tt> .
pAppCookieStickinessPolicies :: Lens' Policies [AppCookieStickinessPolicy]

-- | Information about a policy attribute.
--   
--   <i>See:</i> <a>policyAttribute</a> smart constructor.
data PolicyAttribute

-- | Creates a value of <a>PolicyAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>paAttributeValue</a> - The value of the attribute.</li>
--   <li><a>paAttributeName</a> - The name of the attribute.</li>
--   </ul>
policyAttribute :: PolicyAttribute

-- | The value of the attribute.
paAttributeValue :: Lens' PolicyAttribute (Maybe Text)

-- | The name of the attribute.
paAttributeName :: Lens' PolicyAttribute (Maybe Text)

-- | Information about a policy attribute.
--   
--   <i>See:</i> <a>policyAttributeDescription</a> smart constructor.
data PolicyAttributeDescription

-- | Creates a value of <a>PolicyAttributeDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>padAttributeValue</a> - The value of the attribute.</li>
--   <li><a>padAttributeName</a> - The name of the attribute.</li>
--   </ul>
policyAttributeDescription :: PolicyAttributeDescription

-- | The value of the attribute.
padAttributeValue :: Lens' PolicyAttributeDescription (Maybe Text)

-- | The name of the attribute.
padAttributeName :: Lens' PolicyAttributeDescription (Maybe Text)

-- | Information about a policy attribute type.
--   
--   <i>See:</i> <a>policyAttributeTypeDescription</a> smart constructor.
data PolicyAttributeTypeDescription

-- | Creates a value of <a>PolicyAttributeTypeDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>patdAttributeType</a> - The type of the attribute. For example,
--   <tt>Boolean</tt> or <tt>Integer</tt> .</li>
--   <li><a>patdCardinality</a> - The cardinality of the attribute. Valid
--   values: * ONE(1) : Single value required * ZERO_OR_ONE(0..1) : Up to
--   one value is allowed * ZERO_OR_MORE(0..*) : Optional. Multiple values
--   are allowed * ONE_OR_MORE(1..*0) : Required. Multiple values are
--   allowed</li>
--   <li><a>patdDefaultValue</a> - The default value of the attribute, if
--   applicable.</li>
--   <li><a>patdAttributeName</a> - The name of the attribute.</li>
--   <li><a>patdDescription</a> - A description of the attribute.</li>
--   </ul>
policyAttributeTypeDescription :: PolicyAttributeTypeDescription

-- | The type of the attribute. For example, <tt>Boolean</tt> or
--   <tt>Integer</tt> .
patdAttributeType :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | The cardinality of the attribute. Valid values: * ONE(1) : Single
--   value required * ZERO_OR_ONE(0..1) : Up to one value is allowed *
--   ZERO_OR_MORE(0..*) : Optional. Multiple values are allowed *
--   ONE_OR_MORE(1..*0) : Required. Multiple values are allowed
patdCardinality :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | The default value of the attribute, if applicable.
patdDefaultValue :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | The name of the attribute.
patdAttributeName :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | A description of the attribute.
patdDescription :: Lens' PolicyAttributeTypeDescription (Maybe Text)

-- | Information about a policy.
--   
--   <i>See:</i> <a>policyDescription</a> smart constructor.
data PolicyDescription

-- | Creates a value of <a>PolicyDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pdPolicyName</a> - The name of the policy.</li>
--   <li><a>pdPolicyAttributeDescriptions</a> - The policy attributes.</li>
--   <li><a>pdPolicyTypeName</a> - The name of the policy type.</li>
--   </ul>
policyDescription :: PolicyDescription

-- | The name of the policy.
pdPolicyName :: Lens' PolicyDescription (Maybe Text)

-- | The policy attributes.
pdPolicyAttributeDescriptions :: Lens' PolicyDescription [PolicyAttributeDescription]

-- | The name of the policy type.
pdPolicyTypeName :: Lens' PolicyDescription (Maybe Text)

-- | Information about a policy type.
--   
--   <i>See:</i> <a>policyTypeDescription</a> smart constructor.
data PolicyTypeDescription

-- | Creates a value of <a>PolicyTypeDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ptdPolicyTypeName</a> - The name of the policy type.</li>
--   <li><a>ptdDescription</a> - A description of the policy type.</li>
--   <li><a>ptdPolicyAttributeTypeDescriptions</a> - The description of the
--   policy attributes associated with the policies defined by Elastic Load
--   Balancing.</li>
--   </ul>
policyTypeDescription :: PolicyTypeDescription

-- | The name of the policy type.
ptdPolicyTypeName :: Lens' PolicyTypeDescription (Maybe Text)

-- | A description of the policy type.
ptdDescription :: Lens' PolicyTypeDescription (Maybe Text)

-- | The description of the policy attributes associated with the policies
--   defined by Elastic Load Balancing.
ptdPolicyAttributeTypeDescriptions :: Lens' PolicyTypeDescription [PolicyAttributeTypeDescription]

-- | Information about a source security group.
--   
--   <i>See:</i> <a>sourceSecurityGroup</a> smart constructor.
data SourceSecurityGroup

-- | Creates a value of <a>SourceSecurityGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssgOwnerAlias</a> - The owner of the security group.</li>
--   <li><a>ssgGroupName</a> - The name of the security group.</li>
--   </ul>
sourceSecurityGroup :: SourceSecurityGroup

-- | The owner of the security group.
ssgOwnerAlias :: Lens' SourceSecurityGroup (Maybe Text)

-- | The name of the security group.
ssgGroupName :: Lens' SourceSecurityGroup (Maybe Text)

-- | Information about a tag.
--   
--   <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>tagValue</a> - The value of the tag.</li>
--   <li><a>tagKey</a> - The key of the tag.</li>
--   </ul>
tag :: Text -> Tag

-- | The value of the tag.
tagValue :: Lens' Tag (Maybe Text)

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

-- | The tags associated with a load balancer.
--   
--   <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>tdLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>tdTags</a> - The tags.</li>
--   </ul>
tagDescription :: TagDescription

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

-- | The tags.
tdTags :: Lens' TagDescription (Maybe (NonEmpty Tag))

-- | The key of a tag.
--   
--   <i>See:</i> <a>tagKeyOnly</a> smart constructor.
data TagKeyOnly

-- | Creates a value of <a>TagKeyOnly</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tkoKey</a> - The name of the key.</li>
--   </ul>
tagKeyOnly :: TagKeyOnly

-- | The name of the key.
tkoKey :: Lens' TagKeyOnly (Maybe Text)
