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


module Network.AWS.ELBv2.Types

-- | API version <tt>2015-12-01</tt> of the Amazon Elastic Load Balancing
--   SDK configuration.
eLBv2 :: Service

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

-- | The specified subnet does not exist.
_SubnetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of targets.
_TooManyTargetsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified rule does not exist.
_RuleNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified subnet is out of available addresses.
_InvalidSubnetException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of rules per load balancer.
_TooManyRulesException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of target groups for your AWS
--   account.
_TooManyTargetGroupsException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | The specified configuration is not valid with this protocol.
_IncompatibleProtocolsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of certificates per load
--   balancer.
_TooManyCertificatesException :: 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 with the specified port already exists.
_DuplicateListenerException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of tags per load balancer.
_TooManyTagsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A target group with the specified name already exists.
_DuplicateTargetGroupNameException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The health of the specified targets could not be retrieved due to an
--   internal error.
_HealthUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified allocation ID does not exist.
_AllocationIdNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified priority is in use.
_PriorityInUseException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of load balancers for your AWS
--   account.
_TooManyLoadBalancersException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | The specified target does not exist, is not in the same VPC as the
--   target group, or has an unsupported instance type.
_InvalidTargetException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified security group does not exist.
_InvalidSecurityGroupException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified target group does not exist.
_TargetGroupNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified listener does not exist.
_ListenerNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of times a target can be
--   registered with a load balancer.
_TooManyRegistrationsForTargetIdException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of listeners per load balancer.
_TooManyListenersException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of load balancers per target
--   group.
_TargetGroupAssociationLimitException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | The specified SSL policy does not exist.
_SSLPolicyNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested scheme is not valid.
_InvalidSchemeException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified Availability Zone is not supported.
_AvailabilityZoneNotSupportedException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | A specified resource is in use.
_ResourceInUseException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified certificate does not exist.
_CertificateNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
data ActionTypeEnum
Forward :: ActionTypeEnum
data IPAddressType
Dualstack :: IPAddressType
IPV4 :: IPAddressType
data LoadBalancerSchemeEnum
Internal :: LoadBalancerSchemeEnum
InternetFacing :: LoadBalancerSchemeEnum
data LoadBalancerStateEnum
Active :: LoadBalancerStateEnum
ActiveImpaired :: LoadBalancerStateEnum
Failed :: LoadBalancerStateEnum
Provisioning :: LoadBalancerStateEnum
data LoadBalancerTypeEnum
Application :: LoadBalancerTypeEnum
Network :: LoadBalancerTypeEnum
data ProtocolEnum
HTTP :: ProtocolEnum
HTTPS :: ProtocolEnum
TCP :: ProtocolEnum
data TargetHealthReasonEnum
Elb_InitialHealthChecking :: TargetHealthReasonEnum
Elb_InternalError :: TargetHealthReasonEnum
Elb_RegistrationInProgress :: TargetHealthReasonEnum
Target_DeregistrationInProgress :: TargetHealthReasonEnum
Target_FailedHealthChecks :: TargetHealthReasonEnum
Target_IPUnusable :: TargetHealthReasonEnum
Target_InvalidState :: TargetHealthReasonEnum
Target_NotInUse :: TargetHealthReasonEnum
Target_NotRegistered :: TargetHealthReasonEnum
Target_ResponseCodeMismatch :: TargetHealthReasonEnum
Target_Timeout :: TargetHealthReasonEnum
data TargetHealthStateEnum
Draining :: TargetHealthStateEnum
Healthy :: TargetHealthStateEnum
Initial :: TargetHealthStateEnum
Unavailable :: TargetHealthStateEnum
Unhealthy :: TargetHealthStateEnum
Unused :: TargetHealthStateEnum
data TargetTypeEnum
IP :: TargetTypeEnum
Instance :: TargetTypeEnum

-- | Information about an action.
--   
--   <i>See:</i> <a>action</a> smart constructor.
data Action

-- | Creates a value of <a>Action</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aType</a> - The type of action.</li>
--   <li><a>aTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   </ul>
action :: ActionTypeEnum -> Text -> Action

-- | The type of action.
aType :: Lens' Action ActionTypeEnum

-- | The Amazon Resource Name (ARN) of the target group.
aTargetGroupARN :: Lens' Action Text

-- | Information about an Availability Zone.
--   
--   <i>See:</i> <a>availabilityZone</a> smart constructor.
data AvailabilityZone

-- | Creates a value of <a>AvailabilityZone</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>azSubnetId</a> - The ID of the subnet.</li>
--   <li><a>azZoneName</a> - The name of the Availability Zone.</li>
--   <li><a>azLoadBalancerAddresses</a> - [Network Load Balancers] The
--   static IP address.</li>
--   </ul>
availabilityZone :: AvailabilityZone

-- | The ID of the subnet.
azSubnetId :: Lens' AvailabilityZone (Maybe Text)

-- | The name of the Availability Zone.
azZoneName :: Lens' AvailabilityZone (Maybe Text)

-- | <ul>
--   <li><i>Network Load Balancers</i> The static IP address.</li>
--   </ul>
azLoadBalancerAddresses :: Lens' AvailabilityZone [LoadBalancerAddress]

-- | Information about an SSL server certificate.
--   
--   <i>See:</i> <a>certificate</a> smart constructor.
data Certificate

-- | Creates a value of <a>Certificate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cCertificateARN</a> - The Amazon Resource Name (ARN) of the
--   certificate.</li>
--   <li><a>cIsDefault</a> - Indicates whether the certificate is the
--   default certificate.</li>
--   </ul>
certificate :: Certificate

-- | The Amazon Resource Name (ARN) of the certificate.
cCertificateARN :: Lens' Certificate (Maybe Text)

-- | Indicates whether the certificate is the default certificate.
cIsDefault :: Lens' Certificate (Maybe Bool)

-- | Information about a cipher used in a policy.
--   
--   <i>See:</i> <a>cipher</a> smart constructor.
data Cipher

-- | Creates a value of <a>Cipher</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cPriority</a> - The priority of the cipher.</li>
--   <li><a>cName</a> - The name of the cipher.</li>
--   </ul>
cipher :: Cipher

-- | The priority of the cipher.
cPriority :: Lens' Cipher (Maybe Int)

-- | The name of the cipher.
cName :: Lens' Cipher (Maybe Text)

-- | 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: *
--   application-load-balancers * listeners-per-application-load-balancer *
--   listeners-per-network-load-balancer * network-load-balancers *
--   rules-per-application-load-balancer * target-groups *
--   targets-per-application-load-balancer *
--   targets-per-availability-zone-per-network-load-balancer *
--   targets-per-network-load-balancer</li>
--   </ul>
limit :: Limit

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

-- | The name of the limit. The possible values are: *
--   application-load-balancers * listeners-per-application-load-balancer *
--   listeners-per-network-load-balancer * network-load-balancers *
--   rules-per-application-load-balancer * target-groups *
--   targets-per-application-load-balancer *
--   targets-per-availability-zone-per-network-load-balancer *
--   targets-per-network-load-balancer
lName :: Lens' Limit (Maybe Text)

-- | Information about a listener.
--   
--   <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>lSSLPolicy</a> - The security policy that defines which ciphers
--   and protocols are supported. The default is the current predefined
--   security policy.</li>
--   <li><a>lListenerARN</a> - The Amazon Resource Name (ARN) of the
--   listener.</li>
--   <li><a>lProtocol</a> - The protocol for connections from clients to
--   the load balancer.</li>
--   <li><a>lDefaultActions</a> - The default actions for the
--   listener.</li>
--   <li><a>lCertificates</a> - The SSL server certificate. You must
--   provide a certificate if the protocol is HTTPS.</li>
--   <li><a>lLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>lPort</a> - The port on which the load balancer is
--   listening.</li>
--   </ul>
listener :: Listener

-- | The security policy that defines which ciphers and protocols are
--   supported. The default is the current predefined security policy.
lSSLPolicy :: Lens' Listener (Maybe Text)

-- | The Amazon Resource Name (ARN) of the listener.
lListenerARN :: Lens' Listener (Maybe Text)

-- | The protocol for connections from clients to the load balancer.
lProtocol :: Lens' Listener (Maybe ProtocolEnum)

-- | The default actions for the listener.
lDefaultActions :: Lens' Listener [Action]

-- | The SSL server certificate. You must provide a certificate if the
--   protocol is HTTPS.
lCertificates :: Lens' Listener [Certificate]

-- | The Amazon Resource Name (ARN) of the load balancer.
lLoadBalancerARN :: Lens' Listener (Maybe Text)

-- | The port on which the load balancer is listening.
lPort :: Lens' Listener (Maybe Natural)

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

-- | Creates a value of <a>LoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbState</a> - The state of the load balancer.</li>
--   <li><a>lbSecurityGroups</a> - The IDs of the security groups for the
--   load balancer.</li>
--   <li><a>lbLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>lbCreatedTime</a> - The date and time the load balancer was
--   created.</li>
--   <li><a>lbVPCId</a> - The ID of the VPC for the load balancer.</li>
--   <li><a>lbCanonicalHostedZoneId</a> - The ID of the Amazon Route 53
--   hosted zone associated with the load balancer.</li>
--   <li><a>lbAvailabilityZones</a> - The Availability Zones for the load
--   balancer.</li>
--   <li><a>lbLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>lbIPAddressType</a> - The type of IP addresses used by the
--   subnets for your load balancer. The possible values are <tt>ipv4</tt>
--   (for IPv4 addresses) and <tt>dualstack</tt> (for IPv4 and IPv6
--   addresses).</li>
--   <li><a>lbScheme</a> - The nodes of an Internet-facing load balancer
--   have public IP addresses. The DNS name of an Internet-facing load
--   balancer is publicly resolvable to the public IP addresses of the
--   nodes. Therefore, Internet-facing load balancers can route requests
--   from clients over the Internet. The nodes of an internal load balancer
--   have only private IP addresses. The DNS name of an internal load
--   balancer is publicly resolvable to the private IP addresses of the
--   nodes. Therefore, internal load balancers can only route requests from
--   clients with access to the VPC for the load balancer.</li>
--   <li><a>lbType</a> - The type of load balancer.</li>
--   <li><a>lbDNSName</a> - The public DNS name of the load balancer.</li>
--   </ul>
loadBalancer :: LoadBalancer

-- | The state of the load balancer.
lbState :: Lens' LoadBalancer (Maybe LoadBalancerState)

-- | The IDs of the security groups for the load balancer.
lbSecurityGroups :: Lens' LoadBalancer [Text]

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

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

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

-- | The ID of the Amazon Route 53 hosted zone associated with the load
--   balancer.
lbCanonicalHostedZoneId :: Lens' LoadBalancer (Maybe Text)

-- | The Availability Zones for the load balancer.
lbAvailabilityZones :: Lens' LoadBalancer [AvailabilityZone]

-- | The Amazon Resource Name (ARN) of the load balancer.
lbLoadBalancerARN :: Lens' LoadBalancer (Maybe Text)

-- | The type of IP addresses used by the subnets for your load balancer.
--   The possible values are <tt>ipv4</tt> (for IPv4 addresses) and
--   <tt>dualstack</tt> (for IPv4 and IPv6 addresses).
lbIPAddressType :: Lens' LoadBalancer (Maybe IPAddressType)

-- | The nodes of an Internet-facing load balancer have public IP
--   addresses. The DNS name of an Internet-facing load balancer is
--   publicly resolvable to the public IP addresses of the nodes.
--   Therefore, Internet-facing load balancers can route requests from
--   clients over the Internet. The nodes of an internal load balancer have
--   only private IP addresses. The DNS name of an internal load balancer
--   is publicly resolvable to the private IP addresses of the nodes.
--   Therefore, internal load balancers can only route requests from
--   clients with access to the VPC for the load balancer.
lbScheme :: Lens' LoadBalancer (Maybe LoadBalancerSchemeEnum)

-- | The type of load balancer.
lbType :: Lens' LoadBalancer (Maybe LoadBalancerTypeEnum)

-- | The public DNS name of the load balancer.
lbDNSName :: Lens' LoadBalancer (Maybe Text)

-- | Information about a static IP address for a load balancer.
--   
--   <i>See:</i> <a>loadBalancerAddress</a> smart constructor.
data LoadBalancerAddress

-- | Creates a value of <a>LoadBalancerAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbaIPAddress</a> - The static IP address.</li>
--   <li><a>lbaAllocationId</a> - [Network Load Balancers] The allocation
--   ID of the Elastic IP address.</li>
--   </ul>
loadBalancerAddress :: LoadBalancerAddress

-- | The static IP address.
lbaIPAddress :: Lens' LoadBalancerAddress (Maybe Text)

-- | <ul>
--   <li><i>Network Load Balancers</i> The allocation ID of the Elastic IP
--   address.</li>
--   </ul>
lbaAllocationId :: Lens' LoadBalancerAddress (Maybe Text)

-- | Information about a load balancer attribute.
--   
--   <i>See:</i> <a>loadBalancerAttribute</a> smart constructor.
data LoadBalancerAttribute

-- | Creates a value of <a>LoadBalancerAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbaValue</a> - The value of the attribute.</li>
--   <li><a>lbaKey</a> - The name of the attribute. *
--   <tt>access_logs.s3.enabled</tt> - [Application Load Balancers]
--   Indicates whether access logs stored in Amazon S3 are enabled. The
--   value is <tt>true</tt> or <tt>false</tt> . *
--   <tt>access_logs.s3.bucket</tt> - [Application Load Balancers] The name
--   of the S3 bucket for the access logs. This attribute is required if
--   access logs in Amazon S3 are enabled. The bucket must exist in the
--   same region as the load balancer and have a bucket policy that grants
--   Elastic Load Balancing permission to write to the bucket. *
--   <tt>access_logs.s3.prefix</tt> - [Application Load Balancers] The
--   prefix for the location in the S3 bucket. If you don't specify a
--   prefix, the access logs are stored in the root of the bucket. *
--   <tt>deletion_protection.enabled</tt> - Indicates whether deletion
--   protection is enabled. The value is <tt>true</tt> or <tt>false</tt> .
--   * <tt>idle_timeout.timeout_seconds</tt> - [Application Load Balancers]
--   The idle timeout value, in seconds. The valid range is 1-4000. The
--   default is 60 seconds. * <tt>load_balancing.cross_zone.enabled</tt> -
--   [Network Load Balancers] Indicates whether cross-zone load balancing
--   is enabled. The value is <tt>true</tt> or <tt>false</tt> . The default
--   is <tt>false</tt> . * <tt>routing.http2.enabled</tt> - [Application
--   Load Balancers] Indicates whether HTTP/2 is enabled. The value is
--   <tt>true</tt> or <tt>false</tt> . The default is <tt>true</tt> .</li>
--   </ul>
loadBalancerAttribute :: LoadBalancerAttribute

-- | The value of the attribute.
lbaValue :: Lens' LoadBalancerAttribute (Maybe Text)

-- | The name of the attribute. * <tt>access_logs.s3.enabled</tt> -
--   [Application Load Balancers] Indicates whether access logs stored in
--   Amazon S3 are enabled. The value is <tt>true</tt> or <tt>false</tt> .
--   * <tt>access_logs.s3.bucket</tt> - [Application Load Balancers] The
--   name of the S3 bucket for the access logs. This attribute is required
--   if access logs in Amazon S3 are enabled. The bucket must exist in the
--   same region as the load balancer and have a bucket policy that grants
--   Elastic Load Balancing permission to write to the bucket. *
--   <tt>access_logs.s3.prefix</tt> - [Application Load Balancers] The
--   prefix for the location in the S3 bucket. If you don't specify a
--   prefix, the access logs are stored in the root of the bucket. *
--   <tt>deletion_protection.enabled</tt> - Indicates whether deletion
--   protection is enabled. The value is <tt>true</tt> or <tt>false</tt> .
--   * <tt>idle_timeout.timeout_seconds</tt> - [Application Load Balancers]
--   The idle timeout value, in seconds. The valid range is 1-4000. The
--   default is 60 seconds. * <tt>load_balancing.cross_zone.enabled</tt> -
--   [Network Load Balancers] Indicates whether cross-zone load balancing
--   is enabled. The value is <tt>true</tt> or <tt>false</tt> . The default
--   is <tt>false</tt> . * <tt>routing.http2.enabled</tt> - [Application
--   Load Balancers] Indicates whether HTTP/2 is enabled. The value is
--   <tt>true</tt> or <tt>false</tt> . The default is <tt>true</tt> .
lbaKey :: Lens' LoadBalancerAttribute (Maybe Text)

-- | Information about the state of the load balancer.
--   
--   <i>See:</i> <a>loadBalancerState</a> smart constructor.
data LoadBalancerState

-- | Creates a value of <a>LoadBalancerState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbsReason</a> - A description of the state.</li>
--   <li><a>lbsCode</a> - The state code. The initial state of the load
--   balancer is <tt>provisioning</tt> . After the load balancer is fully
--   set up and ready to route traffic, its state is <tt>active</tt> . If
--   the load balancer could not be set up, its state is <tt>failed</tt>
--   .</li>
--   </ul>
loadBalancerState :: LoadBalancerState

-- | A description of the state.
lbsReason :: Lens' LoadBalancerState (Maybe Text)

-- | The state code. The initial state of the load balancer is
--   <tt>provisioning</tt> . After the load balancer is fully set up and
--   ready to route traffic, its state is <tt>active</tt> . If the load
--   balancer could not be set up, its state is <tt>failed</tt> .
lbsCode :: Lens' LoadBalancerState (Maybe LoadBalancerStateEnum)

-- | Information to use when checking for a successful response from a
--   target.
--   
--   <i>See:</i> <a>matcher</a> smart constructor.
data Matcher

-- | Creates a value of <a>Matcher</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mHTTPCode</a> - The HTTP codes. For Application Load Balancers,
--   you can specify values between 200 and 499, and the default value is
--   200. You can specify multiple values (for example, "200,202") or a
--   range of values (for example, "200-299"). For Network Load Balancers,
--   this is 200 to 399.</li>
--   </ul>
matcher :: Text -> Matcher

-- | The HTTP codes. For Application Load Balancers, you can specify values
--   between 200 and 499, and the default value is 200. You can specify
--   multiple values (for example, "200,202") or a range of values (for
--   example, "200-299"). For Network Load Balancers, this is 200 to 399.
mHTTPCode :: Lens' Matcher Text

-- | Information about a rule.
--   
--   <i>See:</i> <a>rule</a> smart constructor.
data Rule

-- | Creates a value of <a>Rule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rPriority</a> - The priority.</li>
--   <li><a>rActions</a> - The actions.</li>
--   <li><a>rConditions</a> - The conditions.</li>
--   <li><a>rRuleARN</a> - The Amazon Resource Name (ARN) of the rule.</li>
--   <li><a>rIsDefault</a> - Indicates whether this is the default
--   rule.</li>
--   </ul>
rule :: Rule

-- | The priority.
rPriority :: Lens' Rule (Maybe Text)

-- | The actions.
rActions :: Lens' Rule [Action]

-- | The conditions.
rConditions :: Lens' Rule [RuleCondition]

-- | The Amazon Resource Name (ARN) of the rule.
rRuleARN :: Lens' Rule (Maybe Text)

-- | Indicates whether this is the default rule.
rIsDefault :: Lens' Rule (Maybe Bool)

-- | Information about a condition for a rule.
--   
--   <i>See:</i> <a>ruleCondition</a> smart constructor.
data RuleCondition

-- | Creates a value of <a>RuleCondition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcField</a> - The name of the field. The possible values are
--   <tt>host-header</tt> and <tt>path-pattern</tt> .</li>
--   <li><a>rcValues</a> - The condition value. If the field name is
--   <tt>host-header</tt> , you can specify a single host name (for
--   example, my.example.com). A host name is case insensitive, can be up
--   to 128 characters in length, and can contain any of the following
--   characters. Note that you can include up to three wildcard characters.
--   * A-Z, a-z, 0-9 * - . * * (matches 0 or more characters) * ? (matches
--   exactly 1 character) If the field name is <tt>path-pattern</tt> , you
--   can specify a single path pattern (for example, <i>img</i>*). A path
--   pattern is case sensitive, can be up to 128 characters in length, and
--   can contain any of the following characters. Note that you can include
--   up to three wildcard characters. * A-Z, a-z, 0-9 * _ - . $ / ~ " ' @ :
--   + * &amp; (using &amp;amp;) * * (matches 0 or more characters) * ?
--   (matches exactly 1 character)</li>
--   </ul>
ruleCondition :: RuleCondition

-- | The name of the field. The possible values are <tt>host-header</tt>
--   and <tt>path-pattern</tt> .
rcField :: Lens' RuleCondition (Maybe Text)

-- | The condition value. If the field name is <tt>host-header</tt> , you
--   can specify a single host name (for example, my.example.com). A host
--   name is case insensitive, can be up to 128 characters in length, and
--   can contain any of the following characters. Note that you can include
--   up to three wildcard characters. * A-Z, a-z, 0-9 * - . * * (matches 0
--   or more characters) * ? (matches exactly 1 character) If the field
--   name is <tt>path-pattern</tt> , you can specify a single path pattern
--   (for example, <i>img</i>*). A path pattern is case sensitive, can be
--   up to 128 characters in length, and can contain any of the following
--   characters. Note that you can include up to three wildcard characters.
--   * A-Z, a-z, 0-9 * _ - . $ / ~ " ' @ : + * &amp; (using &amp;amp;) * *
--   (matches 0 or more characters) * ? (matches exactly 1 character)
rcValues :: Lens' RuleCondition [Text]

-- | Information about the priorities for the rules for a listener.
--   
--   <i>See:</i> <a>rulePriorityPair</a> smart constructor.
data RulePriorityPair

-- | Creates a value of <a>RulePriorityPair</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rppPriority</a> - The rule priority.</li>
--   <li><a>rppRuleARN</a> - The Amazon Resource Name (ARN) of the
--   rule.</li>
--   </ul>
rulePriorityPair :: RulePriorityPair

-- | The rule priority.
rppPriority :: Lens' RulePriorityPair (Maybe Natural)

-- | The Amazon Resource Name (ARN) of the rule.
rppRuleARN :: Lens' RulePriorityPair (Maybe Text)

-- | Information about a policy used for SSL negotiation.
--   
--   <i>See:</i> <a>sslPolicy</a> smart constructor.
data SSLPolicy

-- | Creates a value of <a>SSLPolicy</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spCiphers</a> - The ciphers.</li>
--   <li><a>spName</a> - The name of the policy.</li>
--   <li><a>spSSLProtocols</a> - The protocols.</li>
--   </ul>
sslPolicy :: SSLPolicy

-- | The ciphers.
spCiphers :: Lens' SSLPolicy [Cipher]

-- | The name of the policy.
spName :: Lens' SSLPolicy (Maybe Text)

-- | The protocols.
spSSLProtocols :: Lens' SSLPolicy [Text]

-- | Information about a subnet mapping.
--   
--   <i>See:</i> <a>subnetMapping</a> smart constructor.
data SubnetMapping

-- | Creates a value of <a>SubnetMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>smAllocationId</a> - [Network Load Balancers] The allocation ID
--   of the Elastic IP address.</li>
--   <li><a>smSubnetId</a> - The ID of the subnet.</li>
--   </ul>
subnetMapping :: SubnetMapping

-- | <ul>
--   <li><i>Network Load Balancers</i> The allocation ID of the Elastic IP
--   address.</li>
--   </ul>
smAllocationId :: Lens' SubnetMapping (Maybe Text)

-- | The ID of the subnet.
smSubnetId :: Lens' SubnetMapping (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 resource.
--   
--   <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>tdResourceARN</a> - The Amazon Resource Name (ARN) of the
--   resource.</li>
--   <li><a>tdTags</a> - Information about the tags.</li>
--   </ul>
tagDescription :: TagDescription

-- | The Amazon Resource Name (ARN) of the resource.
tdResourceARN :: Lens' TagDescription (Maybe Text)

-- | Information about the tags.
tdTags :: Lens' TagDescription (Maybe (NonEmpty Tag))

-- | Information about a target.
--   
--   <i>See:</i> <a>targetDescription</a> smart constructor.
data TargetDescription

-- | Creates a value of <a>TargetDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdAvailabilityZone</a> - An Availability Zone or <tt>all</tt> .
--   This determines whether the target receives traffic from the load
--   balancer nodes in the specified Availability Zone or from all enabled
--   Availability Zones for the load balancer. This parameter is not
--   supported if the target type of the target group is <tt>instance</tt>
--   . If the IP address is in a subnet of the VPC for the target group,
--   the Availability Zone is automatically detected and this parameter is
--   optional. If the IP address is outside the VPC, this parameter is
--   required. With an Application Load Balancer, if the IP address is
--   outside the VPC for the target group, the only supported value is
--   <tt>all</tt> .</li>
--   <li><a>tdPort</a> - The port on which the target is listening.</li>
--   <li><a>tdId</a> - The ID of the target. If the target type of the
--   target group is <tt>instance</tt> , specify an instance ID. If the
--   target type is <tt>ip</tt> , specify an IP address.</li>
--   </ul>
targetDescription :: Text -> TargetDescription

-- | An Availability Zone or <tt>all</tt> . This determines whether the
--   target receives traffic from the load balancer nodes in the specified
--   Availability Zone or from all enabled Availability Zones for the load
--   balancer. This parameter is not supported if the target type of the
--   target group is <tt>instance</tt> . If the IP address is in a subnet
--   of the VPC for the target group, the Availability Zone is
--   automatically detected and this parameter is optional. If the IP
--   address is outside the VPC, this parameter is required. With an
--   Application Load Balancer, if the IP address is outside the VPC for
--   the target group, the only supported value is <tt>all</tt> .
tdAvailabilityZone :: Lens' TargetDescription (Maybe Text)

-- | The port on which the target is listening.
tdPort :: Lens' TargetDescription (Maybe Natural)

-- | The ID of the target. If the target type of the target group is
--   <tt>instance</tt> , specify an instance ID. If the target type is
--   <tt>ip</tt> , specify an IP address.
tdId :: Lens' TargetDescription Text

-- | Information about a target group.
--   
--   <i>See:</i> <a>targetGroup</a> smart constructor.
data TargetGroup

-- | Creates a value of <a>TargetGroup</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgMatcher</a> - The HTTP codes to use when checking for a
--   successful response from a target.</li>
--   <li><a>tgHealthCheckPath</a> - The destination for the health check
--   request.</li>
--   <li><a>tgUnhealthyThresholdCount</a> - The number of consecutive
--   health check failures required before considering the target
--   unhealthy.</li>
--   <li><a>tgVPCId</a> - The ID of the VPC for the targets.</li>
--   <li><a>tgTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   <li><a>tgProtocol</a> - The protocol to use for routing traffic to the
--   targets.</li>
--   <li><a>tgHealthCheckIntervalSeconds</a> - The approximate amount of
--   time, in seconds, between health checks of an individual target.</li>
--   <li><a>tgTargetType</a> - The type of target that you must specify
--   when registering targets with this target group. The possible values
--   are <tt>instance</tt> (targets are specified by instance ID) or
--   <tt>ip</tt> (targets are specified by IP address).</li>
--   <li><a>tgHealthyThresholdCount</a> - The number of consecutive health
--   checks successes required before considering an unhealthy target
--   healthy.</li>
--   <li><a>tgHealthCheckProtocol</a> - The protocol to use to connect with
--   the target.</li>
--   <li><a>tgLoadBalancerARNs</a> - The Amazon Resource Names (ARN) of the
--   load balancers that route traffic to this target group.</li>
--   <li><a>tgHealthCheckTimeoutSeconds</a> - The amount of time, in
--   seconds, during which no response means a failed health check.</li>
--   <li><a>tgHealthCheckPort</a> - The port to use to connect with the
--   target.</li>
--   <li><a>tgTargetGroupName</a> - The name of the target group.</li>
--   <li><a>tgPort</a> - The port on which the targets are listening.</li>
--   </ul>
targetGroup :: TargetGroup

-- | The HTTP codes to use when checking for a successful response from a
--   target.
tgMatcher :: Lens' TargetGroup (Maybe Matcher)

-- | The destination for the health check request.
tgHealthCheckPath :: Lens' TargetGroup (Maybe Text)

-- | The number of consecutive health check failures required before
--   considering the target unhealthy.
tgUnhealthyThresholdCount :: Lens' TargetGroup (Maybe Natural)

-- | The ID of the VPC for the targets.
tgVPCId :: Lens' TargetGroup (Maybe Text)

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

-- | The protocol to use for routing traffic to the targets.
tgProtocol :: Lens' TargetGroup (Maybe ProtocolEnum)

-- | The approximate amount of time, in seconds, between health checks of
--   an individual target.
tgHealthCheckIntervalSeconds :: Lens' TargetGroup (Maybe Natural)

-- | The type of target that you must specify when registering targets with
--   this target group. The possible values are <tt>instance</tt> (targets
--   are specified by instance ID) or <tt>ip</tt> (targets are specified by
--   IP address).
tgTargetType :: Lens' TargetGroup (Maybe TargetTypeEnum)

-- | The number of consecutive health checks successes required before
--   considering an unhealthy target healthy.
tgHealthyThresholdCount :: Lens' TargetGroup (Maybe Natural)

-- | The protocol to use to connect with the target.
tgHealthCheckProtocol :: Lens' TargetGroup (Maybe ProtocolEnum)

-- | The Amazon Resource Names (ARN) of the load balancers that route
--   traffic to this target group.
tgLoadBalancerARNs :: Lens' TargetGroup [Text]

-- | The amount of time, in seconds, during which no response means a
--   failed health check.
tgHealthCheckTimeoutSeconds :: Lens' TargetGroup (Maybe Natural)

-- | The port to use to connect with the target.
tgHealthCheckPort :: Lens' TargetGroup (Maybe Text)

-- | The name of the target group.
tgTargetGroupName :: Lens' TargetGroup (Maybe Text)

-- | The port on which the targets are listening.
tgPort :: Lens' TargetGroup (Maybe Natural)

-- | Information about a target group attribute.
--   
--   <i>See:</i> <a>targetGroupAttribute</a> smart constructor.
data TargetGroupAttribute

-- | Creates a value of <a>TargetGroupAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgaValue</a> - The value of the attribute.</li>
--   <li><a>tgaKey</a> - The name of the attribute. *
--   <tt>deregistration_delay.timeout_seconds</tt> - The amount time for
--   Elastic Load Balancing to wait before changing the state of a
--   deregistering target from <tt>draining</tt> to <tt>unused</tt> . The
--   range is 0-3600 seconds. The default value is 300 seconds. *
--   <tt>proxy_protocol_v2.enabled</tt> - [Network Load Balancers]
--   Indicates whether Proxy Protocol version 2 is enabled. *
--   <tt>stickiness.enabled</tt> - [Application Load Balancers] Indicates
--   whether sticky sessions are enabled. The value is <tt>true</tt> or
--   <tt>false</tt> . * <tt>stickiness.type</tt> - [Application Load
--   Balancers] The type of sticky sessions. The possible value is
--   <tt>lb_cookie</tt> . * <tt>stickiness.lb_cookie.duration_seconds</tt>
--   - [Application Load Balancers] The time period, in seconds, during
--   which requests from a client should be routed to the same target.
--   After this time period expires, the load balancer-generated cookie is
--   considered stale. The range is 1 second to 1 week (604800 seconds).
--   The default value is 1 day (86400 seconds).</li>
--   </ul>
targetGroupAttribute :: TargetGroupAttribute

-- | The value of the attribute.
tgaValue :: Lens' TargetGroupAttribute (Maybe Text)

-- | The name of the attribute. *
--   <tt>deregistration_delay.timeout_seconds</tt> - The amount time for
--   Elastic Load Balancing to wait before changing the state of a
--   deregistering target from <tt>draining</tt> to <tt>unused</tt> . The
--   range is 0-3600 seconds. The default value is 300 seconds. *
--   <tt>proxy_protocol_v2.enabled</tt> - [Network Load Balancers]
--   Indicates whether Proxy Protocol version 2 is enabled. *
--   <tt>stickiness.enabled</tt> - [Application Load Balancers] Indicates
--   whether sticky sessions are enabled. The value is <tt>true</tt> or
--   <tt>false</tt> . * <tt>stickiness.type</tt> - [Application Load
--   Balancers] The type of sticky sessions. The possible value is
--   <tt>lb_cookie</tt> . * <tt>stickiness.lb_cookie.duration_seconds</tt>
--   - [Application Load Balancers] The time period, in seconds, during
--   which requests from a client should be routed to the same target.
--   After this time period expires, the load balancer-generated cookie is
--   considered stale. The range is 1 second to 1 week (604800 seconds).
--   The default value is 1 day (86400 seconds).
tgaKey :: Lens' TargetGroupAttribute (Maybe Text)

-- | Information about the current health of a target.
--   
--   <i>See:</i> <a>targetHealth</a> smart constructor.
data TargetHealth

-- | Creates a value of <a>TargetHealth</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>thState</a> - The state of the target.</li>
--   <li><a>thReason</a> - The reason code. If the target state is
--   <tt>healthy</tt> , a reason code is not provided. If the target state
--   is <tt>initial</tt> , the reason code can be one of the following
--   values: * <tt>Elb.RegistrationInProgress</tt> - The target is in the
--   process of being registered with the load balancer. *
--   <tt>Elb.InitialHealthChecking</tt> - The load balancer is still
--   sending the target the minimum number of health checks required to
--   determine its health status. If the target state is <tt>unhealthy</tt>
--   , the reason code can be one of the following values: *
--   <tt>Target.ResponseCodeMismatch</tt> - The health checks did not
--   return an expected HTTP code. * <tt>Target.Timeout</tt> - The health
--   check requests timed out. * <tt>Target.FailedHealthChecks</tt> - The
--   health checks failed because the connection to the target timed out,
--   the target response was malformed, or the target failed the health
--   check for an unknown reason. * <tt>Elb.InternalError</tt> - The health
--   checks failed due to an internal error. If the target state is
--   <tt>unused</tt> , the reason code can be one of the following values:
--   * <tt>Target.NotRegistered</tt> - The target is not registered with
--   the target group. * <tt>Target.NotInUse</tt> - The target group is not
--   used by any load balancer or the target is in an Availability Zone
--   that is not enabled for its load balancer. *
--   <tt>Target.IpUnusable</tt> - The target IP address is reserved for use
--   by a load balancer. * <tt>Target.InvalidState</tt> - The target is in
--   the stopped or terminated state. If the target state is
--   <tt>draining</tt> , the reason code can be the following value: *
--   <tt>Target.DeregistrationInProgress</tt> - The target is in the
--   process of being deregistered and the deregistration delay period has
--   not expired.</li>
--   <li><a>thDescription</a> - A description of the target health that
--   provides additional details. If the state is <tt>healthy</tt> , a
--   description is not provided.</li>
--   </ul>
targetHealth :: TargetHealth

-- | The state of the target.
thState :: Lens' TargetHealth (Maybe TargetHealthStateEnum)

-- | The reason code. If the target state is <tt>healthy</tt> , a reason
--   code is not provided. If the target state is <tt>initial</tt> , the
--   reason code can be one of the following values: *
--   <tt>Elb.RegistrationInProgress</tt> - The target is in the process of
--   being registered with the load balancer. *
--   <tt>Elb.InitialHealthChecking</tt> - The load balancer is still
--   sending the target the minimum number of health checks required to
--   determine its health status. If the target state is <tt>unhealthy</tt>
--   , the reason code can be one of the following values: *
--   <tt>Target.ResponseCodeMismatch</tt> - The health checks did not
--   return an expected HTTP code. * <tt>Target.Timeout</tt> - The health
--   check requests timed out. * <tt>Target.FailedHealthChecks</tt> - The
--   health checks failed because the connection to the target timed out,
--   the target response was malformed, or the target failed the health
--   check for an unknown reason. * <tt>Elb.InternalError</tt> - The health
--   checks failed due to an internal error. If the target state is
--   <tt>unused</tt> , the reason code can be one of the following values:
--   * <tt>Target.NotRegistered</tt> - The target is not registered with
--   the target group. * <tt>Target.NotInUse</tt> - The target group is not
--   used by any load balancer or the target is in an Availability Zone
--   that is not enabled for its load balancer. *
--   <tt>Target.IpUnusable</tt> - The target IP address is reserved for use
--   by a load balancer. * <tt>Target.InvalidState</tt> - The target is in
--   the stopped or terminated state. If the target state is
--   <tt>draining</tt> , the reason code can be the following value: *
--   <tt>Target.DeregistrationInProgress</tt> - The target is in the
--   process of being deregistered and the deregistration delay period has
--   not expired.
thReason :: Lens' TargetHealth (Maybe TargetHealthReasonEnum)

-- | A description of the target health that provides additional details.
--   If the state is <tt>healthy</tt> , a description is not provided.
thDescription :: Lens' TargetHealth (Maybe Text)

-- | Information about the health of a target.
--   
--   <i>See:</i> <a>targetHealthDescription</a> smart constructor.
data TargetHealthDescription

-- | Creates a value of <a>TargetHealthDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>thdTargetHealth</a> - The health information for the
--   target.</li>
--   <li><a>thdHealthCheckPort</a> - The port to use to connect with the
--   target.</li>
--   <li><a>thdTarget</a> - The description of the target.</li>
--   </ul>
targetHealthDescription :: TargetHealthDescription

-- | The health information for the target.
thdTargetHealth :: Lens' TargetHealthDescription (Maybe TargetHealth)

-- | The port to use to connect with the target.
thdHealthCheckPort :: Lens' TargetHealthDescription (Maybe Text)

-- | The description of the target.
thdTarget :: Lens' TargetHealthDescription (Maybe TargetDescription)


-- | Enables the Availability Zone for the specified public subnets for the
--   specified Application Load Balancer. The specified subnets replace the
--   previously enabled subnets.
--   
--   Note that you can't change the subnets for a Network Load Balancer.
module Network.AWS.ELBv2.SetSubnets

-- | Creates a value of <a>SetSubnets</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssSubnetMappings</a> - The IDs of the public subnets. You must
--   specify subnets from at least two Availability Zones. You can specify
--   only one subnet per Availability Zone. You must specify either subnets
--   or subnet mappings. You cannot specify Elastic IP addresses for your
--   subnets.</li>
--   <li><a>ssLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>ssSubnets</a> - The IDs of the public subnets. You must specify
--   subnets from at least two Availability Zones. You can specify only one
--   subnet per Availability Zone. You must specify either subnets or
--   subnet mappings.</li>
--   </ul>
setSubnets :: Text -> SetSubnets

-- | <i>See:</i> <a>setSubnets</a> smart constructor.
data SetSubnets

-- | The IDs of the public subnets. You must specify subnets from at least
--   two Availability Zones. You can specify only one subnet per
--   Availability Zone. You must specify either subnets or subnet mappings.
--   You cannot specify Elastic IP addresses for your subnets.
ssSubnetMappings :: Lens' SetSubnets [SubnetMapping]

-- | The Amazon Resource Name (ARN) of the load balancer.
ssLoadBalancerARN :: Lens' SetSubnets Text

-- | The IDs of the public subnets. You must specify subnets from at least
--   two Availability Zones. You can specify only one subnet per
--   Availability Zone. You must specify either subnets or subnet mappings.
ssSubnets :: Lens' SetSubnets [Text]

-- | Creates a value of <a>SetSubnetsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssrsAvailabilityZones</a> - Information about the subnet and
--   Availability Zone.</li>
--   <li><a>ssrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
setSubnetsResponse :: Int -> SetSubnetsResponse

-- | <i>See:</i> <a>setSubnetsResponse</a> smart constructor.
data SetSubnetsResponse

-- | Information about the subnet and Availability Zone.
ssrsAvailabilityZones :: Lens' SetSubnetsResponse [AvailabilityZone]

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


-- | Associates the specified security groups with the specified
--   Application Load Balancer. The specified security groups override the
--   previously associated security groups.
--   
--   Note that you can't specify a security group for a Network Load
--   Balancer.
module Network.AWS.ELBv2.SetSecurityGroups

-- | Creates a value of <a>SetSecurityGroups</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ssgLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>ssgSecurityGroups</a> - The IDs of the security groups.</li>
--   </ul>
setSecurityGroups :: Text -> SetSecurityGroups

-- | <i>See:</i> <a>setSecurityGroups</a> smart constructor.
data SetSecurityGroups

-- | The Amazon Resource Name (ARN) of the load balancer.
ssgLoadBalancerARN :: Lens' SetSecurityGroups Text

-- | The IDs of the security groups.
ssgSecurityGroups :: Lens' SetSecurityGroups [Text]

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

-- | <i>See:</i> <a>setSecurityGroupsResponse</a> smart constructor.
data SetSecurityGroupsResponse

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

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


-- | Sets the priorities of the specified rules.
--   
--   You can reorder the rules as long as there are no priority conflicts
--   in the new order. Any existing rules that you do not specify retain
--   their current priority.
module Network.AWS.ELBv2.SetRulePriorities

-- | Creates a value of <a>SetRulePriorities</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srpRulePriorities</a> - The rule priorities.</li>
--   </ul>
setRulePriorities :: SetRulePriorities

-- | <i>See:</i> <a>setRulePriorities</a> smart constructor.
data SetRulePriorities

-- | The rule priorities.
srpRulePriorities :: Lens' SetRulePriorities [RulePriorityPair]

-- | Creates a value of <a>SetRulePrioritiesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srprsRules</a> - Information about the rules.</li>
--   <li><a>srprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
setRulePrioritiesResponse :: Int -> SetRulePrioritiesResponse

-- | <i>See:</i> <a>setRulePrioritiesResponse</a> smart constructor.
data SetRulePrioritiesResponse

-- | Information about the rules.
srprsRules :: Lens' SetRulePrioritiesResponse [Rule]

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


-- | Sets the type of IP addresses used by the subnets of the specified
--   Application Load Balancer or Network Load Balancer.
--   
--   Note that Network Load Balancers must use <tt>ipv4</tt> .
module Network.AWS.ELBv2.SetIPAddressType

-- | Creates a value of <a>SetIPAddressType</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siatLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>siatIPAddressType</a> - The IP address type. The possible
--   values are <tt>ipv4</tt> (for IPv4 addresses) and <tt>dualstack</tt>
--   (for IPv4 and IPv6 addresses). Internal load balancers must use
--   <tt>ipv4</tt> .</li>
--   </ul>
setIPAddressType :: Text -> IPAddressType -> SetIPAddressType

-- | <i>See:</i> <a>setIPAddressType</a> smart constructor.
data SetIPAddressType

-- | The Amazon Resource Name (ARN) of the load balancer.
siatLoadBalancerARN :: Lens' SetIPAddressType Text

-- | The IP address type. The possible values are <tt>ipv4</tt> (for IPv4
--   addresses) and <tt>dualstack</tt> (for IPv4 and IPv6 addresses).
--   Internal load balancers must use <tt>ipv4</tt> .
siatIPAddressType :: Lens' SetIPAddressType IPAddressType

-- | Creates a value of <a>SetIPAddressTypeResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>siatrsIPAddressType</a> - The IP address type.</li>
--   <li><a>siatrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
setIPAddressTypeResponse :: Int -> SetIPAddressTypeResponse

-- | <i>See:</i> <a>setIPAddressTypeResponse</a> smart constructor.
data SetIPAddressTypeResponse

-- | The IP address type.
siatrsIPAddressType :: Lens' SetIPAddressTypeResponse (Maybe IPAddressType)

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


-- | Removes the specified tags from the specified Elastic Load Balancing
--   resource.
--   
--   To list the current tags for your resources, use <tt>DescribeTags</tt>
--   .
module Network.AWS.ELBv2.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>rtResourceARNs</a> - The Amazon Resource Name (ARN) of the
--   resource.</li>
--   <li><a>rtTagKeys</a> - The tag keys for the tags to remove.</li>
--   </ul>
removeTags :: RemoveTags

-- | <i>See:</i> <a>removeTags</a> smart constructor.
data RemoveTags

-- | The Amazon Resource Name (ARN) of the resource.
rtResourceARNs :: Lens' RemoveTags [Text]

-- | The tag keys for the tags to remove.
rtTagKeys :: Lens' RemoveTags [Text]

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

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


-- | Removes the specified certificate from the specified secure listener.
--   
--   You can't remove the default certificate for a listener. To replace
--   the default certificate, call <tt>ModifyListener</tt> .
--   
--   To list the certificates for your listener, use
--   <tt>DescribeListenerCertificates</tt> .
module Network.AWS.ELBv2.RemoveListenerCertificates

-- | Creates a value of <a>RemoveListenerCertificates</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rlcListenerARN</a> - The Amazon Resource Name (ARN) of the
--   listener.</li>
--   <li><a>rlcCertificates</a> - The certificate to remove. You can
--   specify one certificate per call.</li>
--   </ul>
removeListenerCertificates :: Text -> RemoveListenerCertificates

-- | <i>See:</i> <a>removeListenerCertificates</a> smart constructor.
data RemoveListenerCertificates

-- | The Amazon Resource Name (ARN) of the listener.
rlcListenerARN :: Lens' RemoveListenerCertificates Text

-- | The certificate to remove. You can specify one certificate per call.
rlcCertificates :: Lens' RemoveListenerCertificates [Certificate]

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

-- | <i>See:</i> <a>removeListenerCertificatesResponse</a> smart
--   constructor.
data RemoveListenerCertificatesResponse

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


-- | Registers the specified targets with the specified target group.
--   
--   You can register targets by instance ID or by IP address. If the
--   target is an EC2 instance, it must be in the <tt>running</tt> state
--   when you register it.
--   
--   By default, the load balancer routes requests to registered targets
--   using the protocol and port for the target group. Alternatively, you
--   can override the port for a target when you register it. You can
--   register each EC2 instance or IP address with the same target group
--   multiple times using different ports.
--   
--   With a Network Load Balancer, you cannot register instances by
--   instance ID if they have the following instance types: C1, CC1, CC2,
--   CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can
--   register instances of these types by IP address.
--   
--   To remove a target from a target group, use <tt>DeregisterTargets</tt>
--   .
module Network.AWS.ELBv2.RegisterTargets

-- | Creates a value of <a>RegisterTargets</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rtTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   <li><a>rtTargets</a> - The targets.</li>
--   </ul>
registerTargets :: Text -> RegisterTargets

-- | <i>See:</i> <a>registerTargets</a> smart constructor.
data RegisterTargets

-- | The Amazon Resource Name (ARN) of the target group.
rtTargetGroupARN :: Lens' RegisterTargets Text

-- | The targets.
rtTargets :: Lens' RegisterTargets [TargetDescription]

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

-- | <i>See:</i> <a>registerTargetsResponse</a> smart constructor.
data RegisterTargetsResponse

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


-- | Modifies the specified attributes of the specified target group.
module Network.AWS.ELBv2.ModifyTargetGroupAttributes

-- | Creates a value of <a>ModifyTargetGroupAttributes</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mtgaTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   <li><a>mtgaAttributes</a> - The attributes.</li>
--   </ul>
modifyTargetGroupAttributes :: Text -> ModifyTargetGroupAttributes

-- | <i>See:</i> <a>modifyTargetGroupAttributes</a> smart constructor.
data ModifyTargetGroupAttributes

-- | The Amazon Resource Name (ARN) of the target group.
mtgaTargetGroupARN :: Lens' ModifyTargetGroupAttributes Text

-- | The attributes.
mtgaAttributes :: Lens' ModifyTargetGroupAttributes [TargetGroupAttribute]

-- | Creates a value of <a>ModifyTargetGroupAttributesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mtgarsAttributes</a> - Information about the attributes.</li>
--   <li><a>mtgarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyTargetGroupAttributesResponse :: Int -> ModifyTargetGroupAttributesResponse

-- | <i>See:</i> <a>modifyTargetGroupAttributesResponse</a> smart
--   constructor.
data ModifyTargetGroupAttributesResponse

-- | Information about the attributes.
mtgarsAttributes :: Lens' ModifyTargetGroupAttributesResponse [TargetGroupAttribute]

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


-- | Modifies the health checks used when evaluating the health state of
--   the targets in the specified target group.
--   
--   To monitor the health of the targets, use
--   <tt>DescribeTargetHealth</tt> .
module Network.AWS.ELBv2.ModifyTargetGroup

-- | Creates a value of <a>ModifyTargetGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mtgMatcher</a> - [HTTP/HTTPS health checks] The HTTP codes to
--   use when checking for a successful response from a target.</li>
--   <li><a>mtgHealthCheckPath</a> - [HTTP/HTTPS health checks] The ping
--   path that is the destination for the health check request.</li>
--   <li><a>mtgUnhealthyThresholdCount</a> - The number of consecutive
--   health check failures required before considering the target
--   unhealthy. For Network Load Balancers, this value must be the same as
--   the healthy threshold count.</li>
--   <li><a>mtgHealthCheckIntervalSeconds</a> - The approximate amount of
--   time, in seconds, between health checks of an individual target. For
--   Application Load Balancers, the range is 5 to 300 seconds. For Network
--   Load Balancers, the supported values are 10 or 30 seconds.</li>
--   <li><a>mtgHealthyThresholdCount</a> - The number of consecutive health
--   checks successes required before considering an unhealthy target
--   healthy.</li>
--   <li><a>mtgHealthCheckProtocol</a> - The protocol the load balancer
--   uses when performing health checks on targets. The TCP protocol is
--   supported only if the protocol of the target group is TCP.</li>
--   <li><a>mtgHealthCheckTimeoutSeconds</a> - [HTTP/HTTPS health checks]
--   The amount of time, in seconds, during which no response means a
--   failed health check.</li>
--   <li><a>mtgHealthCheckPort</a> - The port the load balancer uses when
--   performing health checks on targets.</li>
--   <li><a>mtgTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   </ul>
modifyTargetGroup :: Text -> ModifyTargetGroup

-- | <i>See:</i> <a>modifyTargetGroup</a> smart constructor.
data ModifyTargetGroup

-- | <ul>
--   <li><i>HTTP/HTTPS health checks</i> The HTTP codes to use when
--   checking for a successful response from a target.</li>
--   </ul>
mtgMatcher :: Lens' ModifyTargetGroup (Maybe Matcher)

-- | <ul>
--   <li><i>HTTP/HTTPS health checks</i> The ping path that is the
--   destination for the health check request.</li>
--   </ul>
mtgHealthCheckPath :: Lens' ModifyTargetGroup (Maybe Text)

-- | The number of consecutive health check failures required before
--   considering the target unhealthy. For Network Load Balancers, this
--   value must be the same as the healthy threshold count.
mtgUnhealthyThresholdCount :: Lens' ModifyTargetGroup (Maybe Natural)

-- | The approximate amount of time, in seconds, between health checks of
--   an individual target. For Application Load Balancers, the range is 5
--   to 300 seconds. For Network Load Balancers, the supported values are
--   10 or 30 seconds.
mtgHealthCheckIntervalSeconds :: Lens' ModifyTargetGroup (Maybe Natural)

-- | The number of consecutive health checks successes required before
--   considering an unhealthy target healthy.
mtgHealthyThresholdCount :: Lens' ModifyTargetGroup (Maybe Natural)

-- | The protocol the load balancer uses when performing health checks on
--   targets. The TCP protocol is supported only if the protocol of the
--   target group is TCP.
mtgHealthCheckProtocol :: Lens' ModifyTargetGroup (Maybe ProtocolEnum)

-- | <ul>
--   <li><i>HTTP/HTTPS health checks</i> The amount of time, in seconds,
--   during which no response means a failed health check.</li>
--   </ul>
mtgHealthCheckTimeoutSeconds :: Lens' ModifyTargetGroup (Maybe Natural)

-- | The port the load balancer uses when performing health checks on
--   targets.
mtgHealthCheckPort :: Lens' ModifyTargetGroup (Maybe Text)

-- | The Amazon Resource Name (ARN) of the target group.
mtgTargetGroupARN :: Lens' ModifyTargetGroup Text

-- | Creates a value of <a>ModifyTargetGroupResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mtgrsTargetGroups</a> - Information about the target
--   group.</li>
--   <li><a>mtgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyTargetGroupResponse :: Int -> ModifyTargetGroupResponse

-- | <i>See:</i> <a>modifyTargetGroupResponse</a> smart constructor.
data ModifyTargetGroupResponse

-- | Information about the target group.
mtgrsTargetGroups :: Lens' ModifyTargetGroupResponse [TargetGroup]

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


-- | Modifies the specified rule.
--   
--   Any existing properties that you do not modify retain their current
--   values.
--   
--   To modify the default action, use <tt>ModifyListener</tt> .
module Network.AWS.ELBv2.ModifyRule

-- | Creates a value of <a>ModifyRule</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mrActions</a> - The actions. The target group must use the HTTP
--   or HTTPS protocol.</li>
--   <li><a>mrConditions</a> - The conditions.</li>
--   <li><a>mrRuleARN</a> - The Amazon Resource Name (ARN) of the
--   rule.</li>
--   </ul>
modifyRule :: Text -> ModifyRule

-- | <i>See:</i> <a>modifyRule</a> smart constructor.
data ModifyRule

-- | The actions. The target group must use the HTTP or HTTPS protocol.
mrActions :: Lens' ModifyRule [Action]

-- | The conditions.
mrConditions :: Lens' ModifyRule [RuleCondition]

-- | The Amazon Resource Name (ARN) of the rule.
mrRuleARN :: Lens' ModifyRule Text

-- | Creates a value of <a>ModifyRuleResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mrrsRules</a> - Information about the rule.</li>
--   <li><a>mrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyRuleResponse :: Int -> ModifyRuleResponse

-- | <i>See:</i> <a>modifyRuleResponse</a> smart constructor.
data ModifyRuleResponse

-- | Information about the rule.
mrrsRules :: Lens' ModifyRuleResponse [Rule]

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


-- | Modifies the specified attributes of the specified Application Load
--   Balancer or Network Load Balancer.
--   
--   If any of the specified attributes can't be modified as requested, the
--   call fails. Any existing attributes that you do not modify retain
--   their current values.
module Network.AWS.ELBv2.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>mlbaLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>mlbaAttributes</a> - The load balancer attributes.</li>
--   </ul>
modifyLoadBalancerAttributes :: Text -> ModifyLoadBalancerAttributes

-- | <i>See:</i> <a>modifyLoadBalancerAttributes</a> smart constructor.
data ModifyLoadBalancerAttributes

-- | The Amazon Resource Name (ARN) of the load balancer.
mlbaLoadBalancerARN :: Lens' ModifyLoadBalancerAttributes Text

-- | The load balancer attributes.
mlbaAttributes :: Lens' ModifyLoadBalancerAttributes [LoadBalancerAttribute]

-- | 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>mlbarsAttributes</a> - Information about the load balancer
--   attributes.</li>
--   <li><a>mlbarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyLoadBalancerAttributesResponse :: Int -> ModifyLoadBalancerAttributesResponse

-- | <i>See:</i> <a>modifyLoadBalancerAttributesResponse</a> smart
--   constructor.
data ModifyLoadBalancerAttributesResponse

-- | Information about the load balancer attributes.
mlbarsAttributes :: Lens' ModifyLoadBalancerAttributesResponse [LoadBalancerAttribute]

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


-- | Modifies the specified properties of the specified listener.
--   
--   Any properties that you do not specify retain their current values.
--   However, changing the protocol from HTTPS to HTTP removes the security
--   policy and SSL certificate properties. If you change the protocol from
--   HTTP to HTTPS, you must add the security policy and server
--   certificate.
module Network.AWS.ELBv2.ModifyListener

-- | Creates a value of <a>ModifyListener</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlSSLPolicy</a> - The security policy that defines which
--   protocols and ciphers are supported. For more information, see
--   <a>Security Policies</a> in the <i>Application Load Balancers
--   Guide</i> .</li>
--   <li><a>mlProtocol</a> - The protocol for connections from clients to
--   the load balancer. Application Load Balancers support HTTP and HTTPS
--   and Network Load Balancers support TCP.</li>
--   <li><a>mlDefaultActions</a> - The default action. For Application Load
--   Balancers, the protocol of the specified target group must be HTTP or
--   HTTPS. For Network Load Balancers, the protocol of the specified
--   target group must be TCP.</li>
--   <li><a>mlCertificates</a> - The default SSL server certificate.</li>
--   <li><a>mlPort</a> - The port for connections from clients to the load
--   balancer.</li>
--   <li><a>mlListenerARN</a> - The Amazon Resource Name (ARN) of the
--   listener.</li>
--   </ul>
modifyListener :: Text -> ModifyListener

-- | <i>See:</i> <a>modifyListener</a> smart constructor.
data ModifyListener

-- | The security policy that defines which protocols and ciphers are
--   supported. For more information, see <a>Security Policies</a> in the
--   <i>Application Load Balancers Guide</i> .
mlSSLPolicy :: Lens' ModifyListener (Maybe Text)

-- | The protocol for connections from clients to the load balancer.
--   Application Load Balancers support HTTP and HTTPS and Network Load
--   Balancers support TCP.
mlProtocol :: Lens' ModifyListener (Maybe ProtocolEnum)

-- | The default action. For Application Load Balancers, the protocol of
--   the specified target group must be HTTP or HTTPS. For Network Load
--   Balancers, the protocol of the specified target group must be TCP.
mlDefaultActions :: Lens' ModifyListener [Action]

-- | The default SSL server certificate.
mlCertificates :: Lens' ModifyListener [Certificate]

-- | The port for connections from clients to the load balancer.
mlPort :: Lens' ModifyListener (Maybe Natural)

-- | The Amazon Resource Name (ARN) of the listener.
mlListenerARN :: Lens' ModifyListener Text

-- | Creates a value of <a>ModifyListenerResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mlrsListeners</a> - Information about the modified
--   listeners.</li>
--   <li><a>mlrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
modifyListenerResponse :: Int -> ModifyListenerResponse

-- | <i>See:</i> <a>modifyListenerResponse</a> smart constructor.
data ModifyListenerResponse

-- | Information about the modified listeners.
mlrsListeners :: Lens' ModifyListenerResponse [Listener]

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


-- | Describes the health of the specified targets or all of your targets.
module Network.AWS.ELBv2.DescribeTargetHealth

-- | Creates a value of <a>DescribeTargetHealth</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dthTargets</a> - The targets.</li>
--   <li><a>dthTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   </ul>
describeTargetHealth :: Text -> DescribeTargetHealth

-- | <i>See:</i> <a>describeTargetHealth</a> smart constructor.
data DescribeTargetHealth

-- | The targets.
dthTargets :: Lens' DescribeTargetHealth [TargetDescription]

-- | The Amazon Resource Name (ARN) of the target group.
dthTargetGroupARN :: Lens' DescribeTargetHealth Text

-- | Creates a value of <a>DescribeTargetHealthResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dthrsTargetHealthDescriptions</a> - Information about the
--   health of the targets.</li>
--   <li><a>dthrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTargetHealthResponse :: Int -> DescribeTargetHealthResponse

-- | <i>See:</i> <a>describeTargetHealthResponse</a> smart constructor.
data DescribeTargetHealthResponse

-- | Information about the health of the targets.
dthrsTargetHealthDescriptions :: Lens' DescribeTargetHealthResponse [TargetHealthDescription]

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


-- | Describes the specified target groups or all of your target groups. By
--   default, all target groups are described. Alternatively, you can
--   specify one of the following to filter the results: the ARN of the
--   load balancer, the names of one or more target groups, or the ARNs of
--   one or more target groups.
--   
--   To describe the targets for a target group, use
--   <tt>DescribeTargetHealth</tt> . To describe the attributes of a target
--   group, use <tt>DescribeTargetGroupAttributes</tt> .
--   
--   This operation returns paginated results.
module Network.AWS.ELBv2.DescribeTargetGroups

-- | Creates a value of <a>DescribeTargetGroups</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtgTargetGroupARNs</a> - The Amazon Resource Names (ARN) of the
--   target groups.</li>
--   <li><a>dtgNames</a> - The names of the target groups.</li>
--   <li><a>dtgLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>dtgMarker</a> - The marker for the next set of results. (You
--   received this marker from a previous call.)</li>
--   <li><a>dtgPageSize</a> - The maximum number of results to return with
--   this call.</li>
--   </ul>
describeTargetGroups :: DescribeTargetGroups

-- | <i>See:</i> <a>describeTargetGroups</a> smart constructor.
data DescribeTargetGroups

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

-- | The names of the target groups.
dtgNames :: Lens' DescribeTargetGroups [Text]

-- | The Amazon Resource Name (ARN) of the load balancer.
dtgLoadBalancerARN :: Lens' DescribeTargetGroups (Maybe Text)

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

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

-- | Creates a value of <a>DescribeTargetGroupsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtgsrsNextMarker</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>dtgsrsTargetGroups</a> - Information about the target
--   groups.</li>
--   <li><a>dtgsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTargetGroupsResponse :: Int -> DescribeTargetGroupsResponse

-- | <i>See:</i> <a>describeTargetGroupsResponse</a> smart constructor.
data DescribeTargetGroupsResponse

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

-- | Information about the target groups.
dtgsrsTargetGroups :: Lens' DescribeTargetGroupsResponse [TargetGroup]

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


-- | Describes the attributes for the specified target group.
module Network.AWS.ELBv2.DescribeTargetGroupAttributes

-- | Creates a value of <a>DescribeTargetGroupAttributes</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtgaTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   </ul>
describeTargetGroupAttributes :: Text -> DescribeTargetGroupAttributes

-- | <i>See:</i> <a>describeTargetGroupAttributes</a> smart constructor.
data DescribeTargetGroupAttributes

-- | The Amazon Resource Name (ARN) of the target group.
dtgaTargetGroupARN :: Lens' DescribeTargetGroupAttributes Text

-- | Creates a value of <a>DescribeTargetGroupAttributesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtgarsAttributes</a> - Information about the target group
--   attributes</li>
--   <li><a>dtgarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeTargetGroupAttributesResponse :: Int -> DescribeTargetGroupAttributesResponse

-- | <i>See:</i> <a>describeTargetGroupAttributesResponse</a> smart
--   constructor.
data DescribeTargetGroupAttributesResponse

-- | Information about the target group attributes
dtgarsAttributes :: Lens' DescribeTargetGroupAttributesResponse [TargetGroupAttribute]

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


-- | Describes the tags for the specified resources. You can describe the
--   tags for one or more Application Load Balancers, Network Load
--   Balancers, and target groups.
module Network.AWS.ELBv2.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>dtResourceARNs</a> - The Amazon Resource Names (ARN) of the
--   resources.</li>
--   </ul>
describeTags :: DescribeTags

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

-- | The Amazon Resource Names (ARN) of the resources.
dtResourceARNs :: Lens' DescribeTags [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

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


-- | Describes the specified policies or all policies used for SSL
--   negotiation.
--   
--   For more information, see <a>Security Policies</a> in the
--   <i>Application Load Balancers Guide</i> .
module Network.AWS.ELBv2.DescribeSSLPolicies

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

-- | <i>See:</i> <a>describeSSLPolicies</a> smart constructor.
data DescribeSSLPolicies

-- | The names of the policies.
dspNames :: Lens' DescribeSSLPolicies [Text]

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

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

-- | Creates a value of <a>DescribeSSLPoliciesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsprsSSLPolicies</a> - Information about the policies.</li>
--   <li><a>dsprsNextMarker</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>dsprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeSSLPoliciesResponse :: Int -> DescribeSSLPoliciesResponse

-- | <i>See:</i> <a>describeSSLPoliciesResponse</a> smart constructor.
data DescribeSSLPoliciesResponse

-- | Information about the policies.
dsprsSSLPolicies :: Lens' DescribeSSLPoliciesResponse [SSLPolicy]

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

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


-- | Describes the specified rules or the rules for the specified listener.
--   You must specify either a listener or one or more rules.
module Network.AWS.ELBv2.DescribeRules

-- | Creates a value of <a>DescribeRules</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drListenerARN</a> - The Amazon Resource Name (ARN) of the
--   listener.</li>
--   <li><a>drMarker</a> - The marker for the next set of results. (You
--   received this marker from a previous call.)</li>
--   <li><a>drRuleARNs</a> - The Amazon Resource Names (ARN) of the
--   rules.</li>
--   <li><a>drPageSize</a> - The maximum number of results to return with
--   this call.</li>
--   </ul>
describeRules :: DescribeRules

-- | <i>See:</i> <a>describeRules</a> smart constructor.
data DescribeRules

-- | The Amazon Resource Name (ARN) of the listener.
drListenerARN :: Lens' DescribeRules (Maybe Text)

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

-- | The Amazon Resource Names (ARN) of the rules.
drRuleARNs :: Lens' DescribeRules [Text]

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

-- | Creates a value of <a>DescribeRulesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsrsRules</a> - Information about the rules.</li>
--   <li><a>drsrsNextMarker</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>drsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeRulesResponse :: Int -> DescribeRulesResponse

-- | <i>See:</i> <a>describeRulesResponse</a> smart constructor.
data DescribeRulesResponse

-- | Information about the rules.
drsrsRules :: Lens' DescribeRulesResponse [Rule]

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

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


-- | Describes the specified load balancers or all of your load balancers.
--   
--   To describe the listeners for a load balancer, use
--   <tt>DescribeListeners</tt> . To describe the attributes for a load
--   balancer, use <tt>DescribeLoadBalancerAttributes</tt> .
--   
--   This operation returns paginated results.
module Network.AWS.ELBv2.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>dlbNames</a> - The names of the load balancers.</li>
--   <li><a>dlbLoadBalancerARNs</a> - The Amazon Resource Names (ARN) of
--   the load balancers. You can specify up to 20 load balancers in a
--   single call.</li>
--   <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.</li>
--   </ul>
describeLoadBalancers :: DescribeLoadBalancers

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

-- | The names of the load balancers.
dlbNames :: Lens' DescribeLoadBalancers [Text]

-- | The Amazon Resource Names (ARN) of the load balancers. You can specify
--   up to 20 load balancers in a single call.
dlbLoadBalancerARNs :: Lens' DescribeLoadBalancers [Text]

-- | 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.
dlbPageSize :: Lens' DescribeLoadBalancers (Maybe Natural)

-- | Creates a value of <a>DescribeLoadBalancersResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlbrsLoadBalancers</a> - 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

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

-- | Information about the load balancers.
dlbrsLoadBalancers :: Lens' DescribeLoadBalancersResponse [LoadBalancer]

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


-- | Describes the attributes for the specified Application Load Balancer
--   or Network Load Balancer.
module Network.AWS.ELBv2.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>dlbaLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   </ul>
describeLoadBalancerAttributes :: Text -> DescribeLoadBalancerAttributes

-- | <i>See:</i> <a>describeLoadBalancerAttributes</a> smart constructor.
data DescribeLoadBalancerAttributes

-- | The Amazon Resource Name (ARN) of the load balancer.
dlbaLoadBalancerARN :: 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>dlbarsAttributes</a> - Information about the load balancer
--   attributes.</li>
--   <li><a>dlbarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeLoadBalancerAttributesResponse :: Int -> DescribeLoadBalancerAttributesResponse

-- | <i>See:</i> <a>describeLoadBalancerAttributesResponse</a> smart
--   constructor.
data DescribeLoadBalancerAttributesResponse

-- | Information about the load balancer attributes.
dlbarsAttributes :: Lens' DescribeLoadBalancerAttributesResponse [LoadBalancerAttribute]

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


-- | Describes the specified listeners or the listeners for the specified
--   Application Load Balancer or Network Load Balancer. You must specify
--   either a load balancer or one or more listeners.
--   
--   This operation returns paginated results.
module Network.AWS.ELBv2.DescribeListeners

-- | Creates a value of <a>DescribeListeners</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlListenerARNs</a> - The Amazon Resource Names (ARN) of the
--   listeners.</li>
--   <li><a>dlLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>dlMarker</a> - The marker for the next set of results. (You
--   received this marker from a previous call.)</li>
--   <li><a>dlPageSize</a> - The maximum number of results to return with
--   this call.</li>
--   </ul>
describeListeners :: DescribeListeners

-- | <i>See:</i> <a>describeListeners</a> smart constructor.
data DescribeListeners

-- | The Amazon Resource Names (ARN) of the listeners.
dlListenerARNs :: Lens' DescribeListeners [Text]

-- | The Amazon Resource Name (ARN) of the load balancer.
dlLoadBalancerARN :: Lens' DescribeListeners (Maybe Text)

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

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

-- | Creates a value of <a>DescribeListenersResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlsrsNextMarker</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>dlsrsListeners</a> - Information about the listeners.</li>
--   <li><a>dlsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeListenersResponse :: Int -> DescribeListenersResponse

-- | <i>See:</i> <a>describeListenersResponse</a> smart constructor.
data DescribeListenersResponse

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

-- | Information about the listeners.
dlsrsListeners :: Lens' DescribeListenersResponse [Listener]

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


-- | Describes the certificates for the specified secure listener.
module Network.AWS.ELBv2.DescribeListenerCertificates

-- | Creates a value of <a>DescribeListenerCertificates</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlcMarker</a> - The marker for the next set of results. (You
--   received this marker from a previous call.)</li>
--   <li><a>dlcPageSize</a> - The maximum number of results to return with
--   this call.</li>
--   <li><a>dlcListenerARN</a> - The Amazon Resource Names (ARN) of the
--   listener.</li>
--   </ul>
describeListenerCertificates :: Text -> DescribeListenerCertificates

-- | <i>See:</i> <a>describeListenerCertificates</a> smart constructor.
data DescribeListenerCertificates

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

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

-- | The Amazon Resource Names (ARN) of the listener.
dlcListenerARN :: Lens' DescribeListenerCertificates Text

-- | Creates a value of <a>DescribeListenerCertificatesResponse</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dlcrsCertificates</a> - Information about the
--   certificates.</li>
--   <li><a>dlcrsNextMarker</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>dlcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeListenerCertificatesResponse :: Int -> DescribeListenerCertificatesResponse

-- | <i>See:</i> <a>describeListenerCertificatesResponse</a> smart
--   constructor.
data DescribeListenerCertificatesResponse

-- | Information about the certificates.
dlcrsCertificates :: Lens' DescribeListenerCertificatesResponse [Certificate]

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

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


-- | Describes the current Elastic Load Balancing resource limits for your
--   AWS account.
--   
--   For more information, see <a>Limits for Your Application Load
--   Balancers</a> in the <i>Application Load Balancer Guide</i> or
--   <a>Limits for Your Network Load Balancers</a> in the <i>Network Load
--   Balancers Guide</i> .
module Network.AWS.ELBv2.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.ELBv2.DescribeAccountLimits.DescribeAccountLimitsResponse
instance Data.Data.Data Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimitsResponse
instance GHC.Show.Show Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimitsResponse
instance GHC.Read.Read Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimitsResponse
instance GHC.Classes.Eq Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimitsResponse
instance GHC.Generics.Generic Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance Data.Data.Data Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance GHC.Show.Show Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance GHC.Read.Read Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance GHC.Classes.Eq Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance Network.AWS.Types.AWSRequest Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance Control.DeepSeq.NFData Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimitsResponse
instance Data.Hashable.Class.Hashable Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance Control.DeepSeq.NFData Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance Network.AWS.Data.Path.ToPath Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits
instance Network.AWS.Data.Query.ToQuery Network.AWS.ELBv2.DescribeAccountLimits.DescribeAccountLimits


-- | Deregisters the specified targets from the specified target group.
--   After the targets are deregistered, they no longer receive traffic
--   from the load balancer.
module Network.AWS.ELBv2.DeregisterTargets

-- | Creates a value of <a>DeregisterTargets</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   <li><a>dtTargets</a> - The targets. If you specified a port override
--   when you registered a target, you must specify both the target ID and
--   the port when you deregister it.</li>
--   </ul>
deregisterTargets :: Text -> DeregisterTargets

-- | <i>See:</i> <a>deregisterTargets</a> smart constructor.
data DeregisterTargets

-- | The Amazon Resource Name (ARN) of the target group.
dtTargetGroupARN :: Lens' DeregisterTargets Text

-- | The targets. If you specified a port override when you registered a
--   target, you must specify both the target ID and the port when you
--   deregister it.
dtTargets :: Lens' DeregisterTargets [TargetDescription]

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

-- | <i>See:</i> <a>deregisterTargetsResponse</a> smart constructor.
data DeregisterTargetsResponse

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


-- | Deletes the specified target group.
--   
--   You can delete a target group if it is not referenced by any actions.
--   Deleting a target group also deletes any associated health checks.
module Network.AWS.ELBv2.DeleteTargetGroup

-- | Creates a value of <a>DeleteTargetGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtgTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   </ul>
deleteTargetGroup :: Text -> DeleteTargetGroup

-- | <i>See:</i> <a>deleteTargetGroup</a> smart constructor.
data DeleteTargetGroup

-- | The Amazon Resource Name (ARN) of the target group.
dtgTargetGroupARN :: Lens' DeleteTargetGroup Text

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

-- | <i>See:</i> <a>deleteTargetGroupResponse</a> smart constructor.
data DeleteTargetGroupResponse

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


-- | Deletes the specified rule.
module Network.AWS.ELBv2.DeleteRule

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

-- | <i>See:</i> <a>deleteRule</a> smart constructor.
data DeleteRule

-- | The Amazon Resource Name (ARN) of the rule.
drRuleARN :: Lens' DeleteRule Text

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

-- | <i>See:</i> <a>deleteRuleResponse</a> smart constructor.
data DeleteRuleResponse

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


-- | Deletes the specified Application Load Balancer or Network Load
--   Balancer and its attached listeners.
--   
--   You can't delete a load balancer if deletion protection is enabled. If
--   the load balancer does not exist or has already been deleted, the call
--   succeeds.
--   
--   Deleting a load balancer does not affect its registered targets. For
--   example, your EC2 instances continue to run and are still registered
--   to their target groups. If you no longer need these EC2 instances, you
--   can stop or terminate them.
module Network.AWS.ELBv2.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>dlbLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   </ul>
deleteLoadBalancer :: Text -> DeleteLoadBalancer

-- | <i>See:</i> <a>deleteLoadBalancer</a> smart constructor.
data DeleteLoadBalancer

-- | The Amazon Resource Name (ARN) of the load balancer.
dlbLoadBalancerARN :: 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

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


-- | Deletes the specified listener.
--   
--   Alternatively, your listener is deleted when you delete the load
--   balancer it is attached to using <tt>DeleteLoadBalancer</tt> .
module Network.AWS.ELBv2.DeleteListener

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

-- | <i>See:</i> <a>deleteListener</a> smart constructor.
data DeleteListener

-- | The Amazon Resource Name (ARN) of the listener.
dlListenerARN :: Lens' DeleteListener Text

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

-- | <i>See:</i> <a>deleteListenerResponse</a> smart constructor.
data DeleteListenerResponse

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


-- | Creates a target group.
--   
--   To register targets with the target group, use
--   <tt>RegisterTargets</tt> . To update the health check settings for the
--   target group, use <tt>ModifyTargetGroup</tt> . To monitor the health
--   of targets in the target group, use <tt>DescribeTargetHealth</tt> .
--   
--   To route traffic to the targets in a target group, specify the target
--   group in an action using <tt>CreateListener</tt> or
--   <tt>CreateRule</tt> .
--   
--   To delete a target group, use <tt>DeleteTargetGroup</tt> .
--   
--   This operation is idempotent, which means that it completes at most
--   one time. If you attempt to create multiple target groups with the
--   same settings, each call succeeds.
--   
--   For more information, see <a>Target Groups for Your Application Load
--   Balancers</a> in the <i>Application Load Balancers Guide</i> or
--   <a>Target Groups for Your Network Load Balancers</a> in the <i>Network
--   Load Balancers Guide</i> .
module Network.AWS.ELBv2.CreateTargetGroup

-- | Creates a value of <a>CreateTargetGroup</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctgMatcher</a> - [HTTP/HTTPS health checks] The HTTP codes to
--   use when checking for a successful response from a target.</li>
--   <li><a>ctgHealthCheckPath</a> - [HTTP<i>HTTPS health checks] The ping
--   path that is the destination on the targets for health checks. The
--   default is </i>.</li>
--   <li><a>ctgUnhealthyThresholdCount</a> - The number of consecutive
--   health check failures required before considering a target unhealthy.
--   For Application Load Balancers, the default is 2. For Network Load
--   Balancers, this value must be the same as the healthy threshold
--   count.</li>
--   <li><a>ctgHealthCheckIntervalSeconds</a> - The approximate amount of
--   time, in seconds, between health checks of an individual target. For
--   Application Load Balancers, the range is 5 to 300 seconds. For Network
--   Load Balancers, the supported values are 10 or 30 seconds. The default
--   is 30 seconds.</li>
--   <li><a>ctgTargetType</a> - The type of target that you must specify
--   when registering targets with this target group. The possible values
--   are <tt>instance</tt> (targets are specified by instance ID) or
--   <tt>ip</tt> (targets are specified by IP address). The default is
--   <tt>instance</tt> . Note that you can't specify targets for a target
--   group using both instance IDs and IP addresses. If the target type is
--   <tt>ip</tt> , specify IP addresses from the subnets of the virtual
--   private cloud (VPC) for the target group, the RFC 1918 range
--   (10.0.0.0<i>8, 172.16.0.0</i>12, and 192.168.0.0<i>16), and the RFC
--   6598 range (100.64.0.0</i>10). You can't specify publicly routable IP
--   addresses.</li>
--   <li><a>ctgHealthyThresholdCount</a> - The number of consecutive health
--   checks successes required before considering an unhealthy target
--   healthy. For Application Load Balancers, the default is 5. For Network
--   Load Balancers, the default is 3.</li>
--   <li><a>ctgHealthCheckProtocol</a> - The protocol the load balancer
--   uses when performing health checks on targets. The TCP protocol is
--   supported only if the protocol of the target group is TCP. For
--   Application Load Balancers, the default is HTTP. For Network Load
--   Balancers, the default is TCP.</li>
--   <li><a>ctgHealthCheckTimeoutSeconds</a> - The amount of time, in
--   seconds, during which no response from a target means a failed health
--   check. For Application Load Balancers, the range is 2 to 60 seconds
--   and the default is 5 seconds. For Network Load Balancers, this is 10
--   seconds for TCP and HTTPS health checks and 6 seconds for HTTP health
--   checks.</li>
--   <li><a>ctgHealthCheckPort</a> - The port the load balancer uses when
--   performing health checks on targets. The default is
--   <tt>traffic-port</tt> , which is the port on which each target
--   receives traffic from the load balancer.</li>
--   <li><a>ctgName</a> - The name of the target group. This name must be
--   unique per region per account, can have a maximum of 32 characters,
--   must contain only alphanumeric characters or hyphens, and must not
--   begin or end with a hyphen.</li>
--   <li><a>ctgProtocol</a> - The protocol to use for routing traffic to
--   the targets. For Application Load Balancers, the supported protocols
--   are HTTP and HTTPS. For Network Load Balancers, the supported protocol
--   is TCP.</li>
--   <li><a>ctgPort</a> - The port on which the targets receive traffic.
--   This port is used unless you specify a port override when registering
--   the target.</li>
--   <li><a>ctgVPCId</a> - The identifier of the virtual private cloud
--   (VPC).</li>
--   </ul>
createTargetGroup :: Text -> ProtocolEnum -> Natural -> Text -> CreateTargetGroup

-- | <i>See:</i> <a>createTargetGroup</a> smart constructor.
data CreateTargetGroup

-- | <ul>
--   <li><i>HTTP/HTTPS health checks</i> The HTTP codes to use when
--   checking for a successful response from a target.</li>
--   </ul>
ctgMatcher :: Lens' CreateTargetGroup (Maybe Matcher)

-- | <ul>
--   <li><i>HTTP/HTTPS health checks</i> The ping path that is the
--   destination on the targets for health checks. The default is /.</li>
--   </ul>
ctgHealthCheckPath :: Lens' CreateTargetGroup (Maybe Text)

-- | The number of consecutive health check failures required before
--   considering a target unhealthy. For Application Load Balancers, the
--   default is 2. For Network Load Balancers, this value must be the same
--   as the healthy threshold count.
ctgUnhealthyThresholdCount :: Lens' CreateTargetGroup (Maybe Natural)

-- | The approximate amount of time, in seconds, between health checks of
--   an individual target. For Application Load Balancers, the range is 5
--   to 300 seconds. For Network Load Balancers, the supported values are
--   10 or 30 seconds. The default is 30 seconds.
ctgHealthCheckIntervalSeconds :: Lens' CreateTargetGroup (Maybe Natural)

-- | The type of target that you must specify when registering targets with
--   this target group. The possible values are <tt>instance</tt> (targets
--   are specified by instance ID) or <tt>ip</tt> (targets are specified by
--   IP address). The default is <tt>instance</tt> . Note that you can't
--   specify targets for a target group using both instance IDs and IP
--   addresses. If the target type is <tt>ip</tt> , specify IP addresses
--   from the subnets of the virtual private cloud (VPC) for the target
--   group, the RFC 1918 range (10.0.0.0<i>8, 172.16.0.0</i>12, and
--   192.168.0.0<i>16), and the RFC 6598 range (100.64.0.0</i>10). You
--   can't specify publicly routable IP addresses.
ctgTargetType :: Lens' CreateTargetGroup (Maybe TargetTypeEnum)

-- | The number of consecutive health checks successes required before
--   considering an unhealthy target healthy. For Application Load
--   Balancers, the default is 5. For Network Load Balancers, the default
--   is 3.
ctgHealthyThresholdCount :: Lens' CreateTargetGroup (Maybe Natural)

-- | The protocol the load balancer uses when performing health checks on
--   targets. The TCP protocol is supported only if the protocol of the
--   target group is TCP. For Application Load Balancers, the default is
--   HTTP. For Network Load Balancers, the default is TCP.
ctgHealthCheckProtocol :: Lens' CreateTargetGroup (Maybe ProtocolEnum)

-- | The amount of time, in seconds, during which no response from a target
--   means a failed health check. For Application Load Balancers, the range
--   is 2 to 60 seconds and the default is 5 seconds. For Network Load
--   Balancers, this is 10 seconds for TCP and HTTPS health checks and 6
--   seconds for HTTP health checks.
ctgHealthCheckTimeoutSeconds :: Lens' CreateTargetGroup (Maybe Natural)

-- | The port the load balancer uses when performing health checks on
--   targets. The default is <tt>traffic-port</tt> , which is the port on
--   which each target receives traffic from the load balancer.
ctgHealthCheckPort :: Lens' CreateTargetGroup (Maybe Text)

-- | The name of the target group. This name must be unique per region per
--   account, can have a maximum of 32 characters, must contain only
--   alphanumeric characters or hyphens, and must not begin or end with a
--   hyphen.
ctgName :: Lens' CreateTargetGroup Text

-- | The protocol to use for routing traffic to the targets. For
--   Application Load Balancers, the supported protocols are HTTP and
--   HTTPS. For Network Load Balancers, the supported protocol is TCP.
ctgProtocol :: Lens' CreateTargetGroup ProtocolEnum

-- | The port on which the targets receive traffic. This port is used
--   unless you specify a port override when registering the target.
ctgPort :: Lens' CreateTargetGroup Natural

-- | The identifier of the virtual private cloud (VPC).
ctgVPCId :: Lens' CreateTargetGroup Text

-- | Creates a value of <a>CreateTargetGroupResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ctgrsTargetGroups</a> - Information about the target
--   group.</li>
--   <li><a>ctgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createTargetGroupResponse :: Int -> CreateTargetGroupResponse

-- | <i>See:</i> <a>createTargetGroupResponse</a> smart constructor.
data CreateTargetGroupResponse

-- | Information about the target group.
ctgrsTargetGroups :: Lens' CreateTargetGroupResponse [TargetGroup]

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


-- | Creates a rule for the specified listener. The listener must be
--   associated with an Application Load Balancer.
--   
--   Rules are evaluated in priority order, from the lowest value to the
--   highest value. When the condition for a rule is met, the specified
--   action is taken. If no conditions are met, the action for the default
--   rule is taken. For more information, see <a>Listener Rules</a> in the
--   <i>Application Load Balancers Guide</i> .
--   
--   To view your current rules, use <tt>DescribeRules</tt> . To update a
--   rule, use <tt>ModifyRule</tt> . To set the priorities of your rules,
--   use <tt>SetRulePriorities</tt> . To delete a rule, use
--   <tt>DeleteRule</tt> .
module Network.AWS.ELBv2.CreateRule

-- | Creates a value of <a>CreateRule</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crListenerARN</a> - The Amazon Resource Name (ARN) of the
--   listener.</li>
--   <li><a>crConditions</a> - The conditions. Each condition specifies a
--   field name and a single value. If the field name is
--   <tt>host-header</tt> , you can specify a single host name (for
--   example, my.example.com). A host name is case insensitive, can be up
--   to 128 characters in length, and can contain any of the following
--   characters. Note that you can include up to three wildcard characters.
--   * A-Z, a-z, 0-9 * - . * * (matches 0 or more characters) * ? (matches
--   exactly 1 character) If the field name is <tt>path-pattern</tt> , you
--   can specify a single path pattern. A path pattern is case sensitive,
--   can be up to 128 characters in length, and can contain any of the
--   following characters. Note that you can include up to three wildcard
--   characters. * A-Z, a-z, 0-9 * _ - . $ / ~ " ' @ : + * &amp; (using
--   &amp;amp;) * * (matches 0 or more characters) * ? (matches exactly 1
--   character)</li>
--   <li><a>crPriority</a> - The priority for the rule. A listener can't
--   have multiple rules with the same priority.</li>
--   <li><a>crActions</a> - An action. Each action has the type
--   <tt>forward</tt> and specifies a target group.</li>
--   </ul>
createRule :: Text -> Natural -> CreateRule

-- | <i>See:</i> <a>createRule</a> smart constructor.
data CreateRule

-- | The Amazon Resource Name (ARN) of the listener.
crListenerARN :: Lens' CreateRule Text

-- | The conditions. Each condition specifies a field name and a single
--   value. If the field name is <tt>host-header</tt> , you can specify a
--   single host name (for example, my.example.com). A host name is case
--   insensitive, can be up to 128 characters in length, and can contain
--   any of the following characters. Note that you can include up to three
--   wildcard characters. * A-Z, a-z, 0-9 * - . * * (matches 0 or more
--   characters) * ? (matches exactly 1 character) If the field name is
--   <tt>path-pattern</tt> , you can specify a single path pattern. A path
--   pattern is case sensitive, can be up to 128 characters in length, and
--   can contain any of the following characters. Note that you can include
--   up to three wildcard characters. * A-Z, a-z, 0-9 * _ - . $ / ~ " ' @ :
--   + * &amp; (using &amp;amp;) * * (matches 0 or more characters) * ?
--   (matches exactly 1 character)
crConditions :: Lens' CreateRule [RuleCondition]

-- | The priority for the rule. A listener can't have multiple rules with
--   the same priority.
crPriority :: Lens' CreateRule Natural

-- | An action. Each action has the type <tt>forward</tt> and specifies a
--   target group.
crActions :: Lens' CreateRule [Action]

-- | Creates a value of <a>CreateRuleResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crrsRules</a> - Information about the rule.</li>
--   <li><a>crrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createRuleResponse :: Int -> CreateRuleResponse

-- | <i>See:</i> <a>createRuleResponse</a> smart constructor.
data CreateRuleResponse

-- | Information about the rule.
crrsRules :: Lens' CreateRuleResponse [Rule]

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


-- | Creates an Application Load Balancer or a Network Load Balancer.
--   
--   When you create a load balancer, you can specify security groups,
--   public subnets, IP address type, and tags. Otherwise, you could do so
--   later using <tt>SetSecurityGroups</tt> , <tt>SetSubnets</tt> ,
--   <tt>SetIpAddressType</tt> , and <tt>AddTags</tt> .
--   
--   To create listeners for your load balancer, use
--   <tt>CreateListener</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> .
--   
--   For limit information, see <a>Limits for Your Application Load
--   Balancer</a> in the <i>Application Load Balancers Guide</i> and
--   <a>Limits for Your Network Load Balancer</a> in the <i>Network Load
--   Balancers Guide</i> .
--   
--   This operation is idempotent, which means that it completes at most
--   one time. If you attempt to create multiple load balancers with the
--   same settings, each call succeeds.
--   
--   For more information, see <a>Application Load Balancers</a> in the
--   <i>Application Load Balancers Guide</i> and <a>Network Load
--   Balancers</a> in the <i>Network Load Balancers Guide</i> .
module Network.AWS.ELBv2.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>clbSubnetMappings</a> - The IDs of the public subnets. You can
--   specify only one subnet per Availability Zone. You must specify either
--   subnets or subnet mappings. [Application Load Balancers] You must
--   specify subnets from at least two Availability Zones. You cannot
--   specify Elastic IP addresses for your subnets. [Network Load
--   Balancers] You can specify subnets from one or more Availability
--   Zones. You can specify one Elastic IP address per subnet.</li>
--   <li><a>clbSecurityGroups</a> - [Application Load Balancers] The IDs of
--   the security groups for the load balancer.</li>
--   <li><a>clbSubnets</a> - The IDs of the public subnets. You can specify
--   only one subnet per Availability Zone. You must specify either subnets
--   or subnet mappings. [Application Load Balancers] You must specify
--   subnets from at least two Availability Zones. [Network Load Balancers]
--   You can specify subnets from one or more Availability Zones.</li>
--   <li><a>clbIPAddressType</a> - [Application Load Balancers] The type of
--   IP addresses used by the subnets for your load balancer. The possible
--   values are <tt>ipv4</tt> (for IPv4 addresses) and <tt>dualstack</tt>
--   (for IPv4 and IPv6 addresses). Internal load balancers must use
--   <tt>ipv4</tt> .</li>
--   <li><a>clbScheme</a> - The nodes of an Internet-facing load balancer
--   have public IP addresses. The DNS name of an Internet-facing load
--   balancer is publicly resolvable to the public IP addresses of the
--   nodes. Therefore, Internet-facing load balancers can route requests
--   from clients over the Internet. The nodes of an internal load balancer
--   have only private IP addresses. The DNS name of an internal load
--   balancer is publicly resolvable to the private IP addresses of the
--   nodes. Therefore, internal load balancers can only route requests from
--   clients with access to the VPC for the load balancer. The default is
--   an Internet-facing load balancer.</li>
--   <li><a>clbType</a> - The type of load balancer. The default is
--   <tt>application</tt> .</li>
--   <li><a>clbTags</a> - One or more tags to assign to the load
--   balancer.</li>
--   <li><a>clbName</a> - The name of the load balancer. This name must be
--   unique per region per account, can have a maximum of 32 characters,
--   must contain only alphanumeric characters or hyphens, and must not
--   begin or end with a hyphen.</li>
--   </ul>
createLoadBalancer :: Text -> CreateLoadBalancer

-- | <i>See:</i> <a>createLoadBalancer</a> smart constructor.
data CreateLoadBalancer

-- | The IDs of the public subnets. You can specify only one subnet per
--   Availability Zone. You must specify either subnets or subnet mappings.
--   [Application Load Balancers] You must specify subnets from at least
--   two Availability Zones. You cannot specify Elastic IP addresses for
--   your subnets. [Network Load Balancers] You can specify subnets from
--   one or more Availability Zones. You can specify one Elastic IP address
--   per subnet.
clbSubnetMappings :: Lens' CreateLoadBalancer [SubnetMapping]

-- | <ul>
--   <li><i>Application Load Balancers</i> The IDs of the security groups
--   for the load balancer.</li>
--   </ul>
clbSecurityGroups :: Lens' CreateLoadBalancer [Text]

-- | The IDs of the public subnets. You can specify only one subnet per
--   Availability Zone. You must specify either subnets or subnet mappings.
--   [Application Load Balancers] You must specify subnets from at least
--   two Availability Zones. [Network Load Balancers] You can specify
--   subnets from one or more Availability Zones.
clbSubnets :: Lens' CreateLoadBalancer [Text]

-- | <ul>
--   <li><i>Application Load Balancers</i> The type of IP addresses used by
--   the subnets for your load balancer. The possible values are
--   <tt>ipv4</tt> (for IPv4 addresses) and <tt>dualstack</tt> (for IPv4
--   and IPv6 addresses). Internal load balancers must use <tt>ipv4</tt>
--   .</li>
--   </ul>
clbIPAddressType :: Lens' CreateLoadBalancer (Maybe IPAddressType)

-- | The nodes of an Internet-facing load balancer have public IP
--   addresses. The DNS name of an Internet-facing load balancer is
--   publicly resolvable to the public IP addresses of the nodes.
--   Therefore, Internet-facing load balancers can route requests from
--   clients over the Internet. The nodes of an internal load balancer have
--   only private IP addresses. The DNS name of an internal load balancer
--   is publicly resolvable to the private IP addresses of the nodes.
--   Therefore, internal load balancers can only route requests from
--   clients with access to the VPC for the load balancer. The default is
--   an Internet-facing load balancer.
clbScheme :: Lens' CreateLoadBalancer (Maybe LoadBalancerSchemeEnum)

-- | The type of load balancer. The default is <tt>application</tt> .
clbType :: Lens' CreateLoadBalancer (Maybe LoadBalancerTypeEnum)

-- | One or more tags to assign to the load balancer.
clbTags :: Lens' CreateLoadBalancer (Maybe (NonEmpty Tag))

-- | The name of the load balancer. This name must be unique per region per
--   account, can have a maximum of 32 characters, must contain only
--   alphanumeric characters or hyphens, and must not begin or end with a
--   hyphen.
clbName :: Lens' CreateLoadBalancer Text

-- | 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>clbrsLoadBalancers</a> - Information about the load
--   balancer.</li>
--   <li><a>clbrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createLoadBalancerResponse :: Int -> CreateLoadBalancerResponse

-- | <i>See:</i> <a>createLoadBalancerResponse</a> smart constructor.
data CreateLoadBalancerResponse

-- | Information about the load balancer.
clbrsLoadBalancers :: Lens' CreateLoadBalancerResponse [LoadBalancer]

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


-- | Creates a listener for the specified Application Load Balancer or
--   Network Load Balancer.
--   
--   To update a listener, use <tt>ModifyListener</tt> . When you are
--   finished with a listener, you can delete it using
--   <tt>DeleteListener</tt> . If you are finished with both the listener
--   and the load balancer, you can delete them both using
--   <tt>DeleteLoadBalancer</tt> .
--   
--   This operation is idempotent, which means that it completes at most
--   one time. If you attempt to create multiple listeners with the same
--   settings, each call succeeds.
--   
--   For more information, see <a>Listeners for Your Application Load
--   Balancers</a> in the <i>Application Load Balancers Guide</i> and
--   <a>Listeners for Your Network Load Balancers</a> in the <i>Network
--   Load Balancers Guide</i> .
module Network.AWS.ELBv2.CreateListener

-- | Creates a value of <a>CreateListener</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clSSLPolicy</a> - [HTTPS listeners] The security policy that
--   defines which ciphers and protocols are supported. The default is the
--   current predefined security policy.</li>
--   <li><a>clCertificates</a> - [HTTPS listeners] The SSL server
--   certificate. You must provide exactly one certificate.</li>
--   <li><a>clLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>clProtocol</a> - The protocol for connections from clients to
--   the load balancer. For Application Load Balancers, the supported
--   protocols are HTTP and HTTPS. For Network Load Balancers, the
--   supported protocol is TCP.</li>
--   <li><a>clPort</a> - The port on which the load balancer is
--   listening.</li>
--   <li><a>clDefaultActions</a> - The default action for the listener. For
--   Application Load Balancers, the protocol of the specified target group
--   must be HTTP or HTTPS. For Network Load Balancers, the protocol of the
--   specified target group must be TCP.</li>
--   </ul>
createListener :: Text -> ProtocolEnum -> Natural -> CreateListener

-- | <i>See:</i> <a>createListener</a> smart constructor.
data CreateListener

-- | <ul>
--   <li><i>HTTPS listeners</i> The security policy that defines which
--   ciphers and protocols are supported. The default is the current
--   predefined security policy.</li>
--   </ul>
clSSLPolicy :: Lens' CreateListener (Maybe Text)

-- | <ul>
--   <li><i>HTTPS listeners</i> The SSL server certificate. You must
--   provide exactly one certificate.</li>
--   </ul>
clCertificates :: Lens' CreateListener [Certificate]

-- | The Amazon Resource Name (ARN) of the load balancer.
clLoadBalancerARN :: Lens' CreateListener Text

-- | The protocol for connections from clients to the load balancer. For
--   Application Load Balancers, the supported protocols are HTTP and
--   HTTPS. For Network Load Balancers, the supported protocol is TCP.
clProtocol :: Lens' CreateListener ProtocolEnum

-- | The port on which the load balancer is listening.
clPort :: Lens' CreateListener Natural

-- | The default action for the listener. For Application Load Balancers,
--   the protocol of the specified target group must be HTTP or HTTPS. For
--   Network Load Balancers, the protocol of the specified target group
--   must be TCP.
clDefaultActions :: Lens' CreateListener [Action]

-- | Creates a value of <a>CreateListenerResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>clrsListeners</a> - Information about the listener.</li>
--   <li><a>clrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createListenerResponse :: Int -> CreateListenerResponse

-- | <i>See:</i> <a>createListenerResponse</a> smart constructor.
data CreateListenerResponse

-- | Information about the listener.
clrsListeners :: Lens' CreateListenerResponse [Listener]

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


-- | Adds the specified tags to the specified Elastic Load Balancing
--   resource. You can tag your Application Load Balancers, Network Load
--   Balancers, and your target groups.
--   
--   Each tag consists of a key and an optional value. If a resource
--   already has a tag with the same key, <tt>AddTags</tt> updates its
--   value.
--   
--   To list the current tags for your resources, use <tt>DescribeTags</tt>
--   . To remove tags from your resources, use <tt>RemoveTags</tt> .
module Network.AWS.ELBv2.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>atResourceARNs</a> - The Amazon Resource Name (ARN) of the
--   resource.</li>
--   <li><a>atTags</a> - The tags. Each resource can have a maximum of 10
--   tags.</li>
--   </ul>
addTags :: NonEmpty Tag -> AddTags

-- | <i>See:</i> <a>addTags</a> smart constructor.
data AddTags

-- | The Amazon Resource Name (ARN) of the resource.
atResourceARNs :: Lens' AddTags [Text]

-- | The tags. Each resource can have a maximum of 10 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

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


-- | Adds the specified certificate to the specified secure listener.
--   
--   If the certificate was already added, the call is successful but the
--   certificate is not added again.
--   
--   To list the certificates for your listener, use
--   <tt>DescribeListenerCertificates</tt> . To remove certificates from
--   your listener, use <tt>RemoveListenerCertificates</tt> .
module Network.AWS.ELBv2.AddListenerCertificates

-- | Creates a value of <a>AddListenerCertificates</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alcListenerARN</a> - The Amazon Resource Name (ARN) of the
--   listener.</li>
--   <li><a>alcCertificates</a> - The certificate to add. You can specify
--   one certificate per call.</li>
--   </ul>
addListenerCertificates :: Text -> AddListenerCertificates

-- | <i>See:</i> <a>addListenerCertificates</a> smart constructor.
data AddListenerCertificates

-- | The Amazon Resource Name (ARN) of the listener.
alcListenerARN :: Lens' AddListenerCertificates Text

-- | The certificate to add. You can specify one certificate per call.
alcCertificates :: Lens' AddListenerCertificates [Certificate]

-- | Creates a value of <a>AddListenerCertificatesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>alcrsCertificates</a> - Information about the
--   certificates.</li>
--   <li><a>alcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
addListenerCertificatesResponse :: Int -> AddListenerCertificatesResponse

-- | <i>See:</i> <a>addListenerCertificatesResponse</a> smart constructor.
data AddListenerCertificatesResponse

-- | Information about the certificates.
alcrsCertificates :: Lens' AddListenerCertificatesResponse [Certificate]

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


module Network.AWS.ELBv2.Waiters

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

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

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

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

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


-- | <b>Elastic Load Balancing</b>
--   
--   A load balancer distributes incoming traffic across targets, such as
--   your EC2 instances. This enables you to increase the availability of
--   your application. The load balancer also monitors the health of its
--   registered targets and ensures that it routes traffic only to healthy
--   targets. 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. You configure a target group with a protocol and port number
--   for connections from the load balancer to the targets, and with health
--   check settings to be used when checking the health status of the
--   targets.
--   
--   Elastic Load Balancing supports the following types of load balancers:
--   Application Load Balancers, Network Load Balancers, and Classic Load
--   Balancers.
--   
--   An Application Load Balancer makes routing and load balancing
--   decisions at the application layer (HTTP/HTTPS). A Network Load
--   Balancer makes routing and load balancing decisions at the transport
--   layer (TCP). Both Application Load Balancers and Network Load
--   Balancers can route requests to one or more ports on each EC2 instance
--   or container instance in your virtual private cloud (VPC).
--   
--   A Classic Load Balancer makes routing and load balancing decisions
--   either at the transport layer (TCP<i>SSL) or the application layer
--   (HTTP</i>HTTPS), and supports either EC2-Classic or a VPC. For more
--   information, see the <a>Elastic Load Balancing User Guide</a> .
--   
--   This reference covers the 2015-12-01 API, which supports Application
--   Load Balancers and Network Load Balancers. The 2012-06-01 API supports
--   Classic Load Balancers.
--   
--   To get started, complete the following tasks:
--   
--   <ul>
--   <li>Create a load balancer using <a>CreateLoadBalancer</a> .</li>
--   <li>Create a target group using <a>CreateTargetGroup</a> .</li>
--   <li>Register targets for the target group using <a>RegisterTargets</a>
--   .</li>
--   <li>Create one or more listeners for your load balancer using
--   <a>CreateListener</a> .</li>
--   </ul>
--   
--   To delete a load balancer and its related resources, complete the
--   following tasks:
--   
--   <ul>
--   <li>Delete the load balancer using <a>DeleteLoadBalancer</a> .</li>
--   <li>Delete the target group using <a>DeleteTargetGroup</a> .</li>
--   </ul>
--   
--   All Elastic Load Balancing operations are idempotent, which means that
--   they complete at most one time. If you repeat an operation, it
--   succeeds.
module Network.AWS.ELBv2

-- | API version <tt>2015-12-01</tt> of the Amazon Elastic Load Balancing
--   SDK configuration.
eLBv2 :: Service

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

-- | The specified subnet does not exist.
_SubnetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of targets.
_TooManyTargetsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified rule does not exist.
_RuleNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified subnet is out of available addresses.
_InvalidSubnetException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of rules per load balancer.
_TooManyRulesException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of target groups for your AWS
--   account.
_TooManyTargetGroupsException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | The specified configuration is not valid with this protocol.
_IncompatibleProtocolsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of certificates per load
--   balancer.
_TooManyCertificatesException :: 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 with the specified port already exists.
_DuplicateListenerException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of tags per load balancer.
_TooManyTagsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | A target group with the specified name already exists.
_DuplicateTargetGroupNameException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The health of the specified targets could not be retrieved due to an
--   internal error.
_HealthUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified allocation ID does not exist.
_AllocationIdNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified priority is in use.
_PriorityInUseException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of load balancers for your AWS
--   account.
_TooManyLoadBalancersException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | The specified target does not exist, is not in the same VPC as the
--   target group, or has an unsupported instance type.
_InvalidTargetException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified security group does not exist.
_InvalidSecurityGroupException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified target group does not exist.
_TargetGroupNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified listener does not exist.
_ListenerNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of times a target can be
--   registered with a load balancer.
_TooManyRegistrationsForTargetIdException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of listeners per load balancer.
_TooManyListenersException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You've reached the limit on the number of load balancers per target
--   group.
_TargetGroupAssociationLimitException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | The specified SSL policy does not exist.
_SSLPolicyNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested scheme is not valid.
_InvalidSchemeException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified Availability Zone is not supported.
_AvailabilityZoneNotSupportedException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | A specified resource is in use.
_ResourceInUseException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified certificate does not exist.
_CertificateNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

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

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

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

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

-- | Polls <a>DescribeLoadBalancers</a> every 15 seconds until a successful
--   state is reached. An error is returned after 40 failed checks.
loadBalancerExists :: Wait DescribeLoadBalancers
data ActionTypeEnum
Forward :: ActionTypeEnum
data IPAddressType
Dualstack :: IPAddressType
IPV4 :: IPAddressType
data LoadBalancerSchemeEnum
Internal :: LoadBalancerSchemeEnum
InternetFacing :: LoadBalancerSchemeEnum
data LoadBalancerStateEnum
Active :: LoadBalancerStateEnum
ActiveImpaired :: LoadBalancerStateEnum
Failed :: LoadBalancerStateEnum
Provisioning :: LoadBalancerStateEnum
data LoadBalancerTypeEnum
Application :: LoadBalancerTypeEnum
Network :: LoadBalancerTypeEnum
data ProtocolEnum
HTTP :: ProtocolEnum
HTTPS :: ProtocolEnum
TCP :: ProtocolEnum
data TargetHealthReasonEnum
Elb_InitialHealthChecking :: TargetHealthReasonEnum
Elb_InternalError :: TargetHealthReasonEnum
Elb_RegistrationInProgress :: TargetHealthReasonEnum
Target_DeregistrationInProgress :: TargetHealthReasonEnum
Target_FailedHealthChecks :: TargetHealthReasonEnum
Target_IPUnusable :: TargetHealthReasonEnum
Target_InvalidState :: TargetHealthReasonEnum
Target_NotInUse :: TargetHealthReasonEnum
Target_NotRegistered :: TargetHealthReasonEnum
Target_ResponseCodeMismatch :: TargetHealthReasonEnum
Target_Timeout :: TargetHealthReasonEnum
data TargetHealthStateEnum
Draining :: TargetHealthStateEnum
Healthy :: TargetHealthStateEnum
Initial :: TargetHealthStateEnum
Unavailable :: TargetHealthStateEnum
Unhealthy :: TargetHealthStateEnum
Unused :: TargetHealthStateEnum
data TargetTypeEnum
IP :: TargetTypeEnum
Instance :: TargetTypeEnum

-- | Information about an action.
--   
--   <i>See:</i> <a>action</a> smart constructor.
data Action

-- | Creates a value of <a>Action</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aType</a> - The type of action.</li>
--   <li><a>aTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   </ul>
action :: ActionTypeEnum -> Text -> Action

-- | The type of action.
aType :: Lens' Action ActionTypeEnum

-- | The Amazon Resource Name (ARN) of the target group.
aTargetGroupARN :: Lens' Action Text

-- | Information about an Availability Zone.
--   
--   <i>See:</i> <a>availabilityZone</a> smart constructor.
data AvailabilityZone

-- | Creates a value of <a>AvailabilityZone</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>azSubnetId</a> - The ID of the subnet.</li>
--   <li><a>azZoneName</a> - The name of the Availability Zone.</li>
--   <li><a>azLoadBalancerAddresses</a> - [Network Load Balancers] The
--   static IP address.</li>
--   </ul>
availabilityZone :: AvailabilityZone

-- | The ID of the subnet.
azSubnetId :: Lens' AvailabilityZone (Maybe Text)

-- | The name of the Availability Zone.
azZoneName :: Lens' AvailabilityZone (Maybe Text)

-- | <ul>
--   <li><i>Network Load Balancers</i> The static IP address.</li>
--   </ul>
azLoadBalancerAddresses :: Lens' AvailabilityZone [LoadBalancerAddress]

-- | Information about an SSL server certificate.
--   
--   <i>See:</i> <a>certificate</a> smart constructor.
data Certificate

-- | Creates a value of <a>Certificate</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cCertificateARN</a> - The Amazon Resource Name (ARN) of the
--   certificate.</li>
--   <li><a>cIsDefault</a> - Indicates whether the certificate is the
--   default certificate.</li>
--   </ul>
certificate :: Certificate

-- | The Amazon Resource Name (ARN) of the certificate.
cCertificateARN :: Lens' Certificate (Maybe Text)

-- | Indicates whether the certificate is the default certificate.
cIsDefault :: Lens' Certificate (Maybe Bool)

-- | Information about a cipher used in a policy.
--   
--   <i>See:</i> <a>cipher</a> smart constructor.
data Cipher

-- | Creates a value of <a>Cipher</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cPriority</a> - The priority of the cipher.</li>
--   <li><a>cName</a> - The name of the cipher.</li>
--   </ul>
cipher :: Cipher

-- | The priority of the cipher.
cPriority :: Lens' Cipher (Maybe Int)

-- | The name of the cipher.
cName :: Lens' Cipher (Maybe Text)

-- | 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: *
--   application-load-balancers * listeners-per-application-load-balancer *
--   listeners-per-network-load-balancer * network-load-balancers *
--   rules-per-application-load-balancer * target-groups *
--   targets-per-application-load-balancer *
--   targets-per-availability-zone-per-network-load-balancer *
--   targets-per-network-load-balancer</li>
--   </ul>
limit :: Limit

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

-- | The name of the limit. The possible values are: *
--   application-load-balancers * listeners-per-application-load-balancer *
--   listeners-per-network-load-balancer * network-load-balancers *
--   rules-per-application-load-balancer * target-groups *
--   targets-per-application-load-balancer *
--   targets-per-availability-zone-per-network-load-balancer *
--   targets-per-network-load-balancer
lName :: Lens' Limit (Maybe Text)

-- | Information about a listener.
--   
--   <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>lSSLPolicy</a> - The security policy that defines which ciphers
--   and protocols are supported. The default is the current predefined
--   security policy.</li>
--   <li><a>lListenerARN</a> - The Amazon Resource Name (ARN) of the
--   listener.</li>
--   <li><a>lProtocol</a> - The protocol for connections from clients to
--   the load balancer.</li>
--   <li><a>lDefaultActions</a> - The default actions for the
--   listener.</li>
--   <li><a>lCertificates</a> - The SSL server certificate. You must
--   provide a certificate if the protocol is HTTPS.</li>
--   <li><a>lLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>lPort</a> - The port on which the load balancer is
--   listening.</li>
--   </ul>
listener :: Listener

-- | The security policy that defines which ciphers and protocols are
--   supported. The default is the current predefined security policy.
lSSLPolicy :: Lens' Listener (Maybe Text)

-- | The Amazon Resource Name (ARN) of the listener.
lListenerARN :: Lens' Listener (Maybe Text)

-- | The protocol for connections from clients to the load balancer.
lProtocol :: Lens' Listener (Maybe ProtocolEnum)

-- | The default actions for the listener.
lDefaultActions :: Lens' Listener [Action]

-- | The SSL server certificate. You must provide a certificate if the
--   protocol is HTTPS.
lCertificates :: Lens' Listener [Certificate]

-- | The Amazon Resource Name (ARN) of the load balancer.
lLoadBalancerARN :: Lens' Listener (Maybe Text)

-- | The port on which the load balancer is listening.
lPort :: Lens' Listener (Maybe Natural)

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

-- | Creates a value of <a>LoadBalancer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbState</a> - The state of the load balancer.</li>
--   <li><a>lbSecurityGroups</a> - The IDs of the security groups for the
--   load balancer.</li>
--   <li><a>lbLoadBalancerName</a> - The name of the load balancer.</li>
--   <li><a>lbCreatedTime</a> - The date and time the load balancer was
--   created.</li>
--   <li><a>lbVPCId</a> - The ID of the VPC for the load balancer.</li>
--   <li><a>lbCanonicalHostedZoneId</a> - The ID of the Amazon Route 53
--   hosted zone associated with the load balancer.</li>
--   <li><a>lbAvailabilityZones</a> - The Availability Zones for the load
--   balancer.</li>
--   <li><a>lbLoadBalancerARN</a> - The Amazon Resource Name (ARN) of the
--   load balancer.</li>
--   <li><a>lbIPAddressType</a> - The type of IP addresses used by the
--   subnets for your load balancer. The possible values are <tt>ipv4</tt>
--   (for IPv4 addresses) and <tt>dualstack</tt> (for IPv4 and IPv6
--   addresses).</li>
--   <li><a>lbScheme</a> - The nodes of an Internet-facing load balancer
--   have public IP addresses. The DNS name of an Internet-facing load
--   balancer is publicly resolvable to the public IP addresses of the
--   nodes. Therefore, Internet-facing load balancers can route requests
--   from clients over the Internet. The nodes of an internal load balancer
--   have only private IP addresses. The DNS name of an internal load
--   balancer is publicly resolvable to the private IP addresses of the
--   nodes. Therefore, internal load balancers can only route requests from
--   clients with access to the VPC for the load balancer.</li>
--   <li><a>lbType</a> - The type of load balancer.</li>
--   <li><a>lbDNSName</a> - The public DNS name of the load balancer.</li>
--   </ul>
loadBalancer :: LoadBalancer

-- | The state of the load balancer.
lbState :: Lens' LoadBalancer (Maybe LoadBalancerState)

-- | The IDs of the security groups for the load balancer.
lbSecurityGroups :: Lens' LoadBalancer [Text]

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

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

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

-- | The ID of the Amazon Route 53 hosted zone associated with the load
--   balancer.
lbCanonicalHostedZoneId :: Lens' LoadBalancer (Maybe Text)

-- | The Availability Zones for the load balancer.
lbAvailabilityZones :: Lens' LoadBalancer [AvailabilityZone]

-- | The Amazon Resource Name (ARN) of the load balancer.
lbLoadBalancerARN :: Lens' LoadBalancer (Maybe Text)

-- | The type of IP addresses used by the subnets for your load balancer.
--   The possible values are <tt>ipv4</tt> (for IPv4 addresses) and
--   <tt>dualstack</tt> (for IPv4 and IPv6 addresses).
lbIPAddressType :: Lens' LoadBalancer (Maybe IPAddressType)

-- | The nodes of an Internet-facing load balancer have public IP
--   addresses. The DNS name of an Internet-facing load balancer is
--   publicly resolvable to the public IP addresses of the nodes.
--   Therefore, Internet-facing load balancers can route requests from
--   clients over the Internet. The nodes of an internal load balancer have
--   only private IP addresses. The DNS name of an internal load balancer
--   is publicly resolvable to the private IP addresses of the nodes.
--   Therefore, internal load balancers can only route requests from
--   clients with access to the VPC for the load balancer.
lbScheme :: Lens' LoadBalancer (Maybe LoadBalancerSchemeEnum)

-- | The type of load balancer.
lbType :: Lens' LoadBalancer (Maybe LoadBalancerTypeEnum)

-- | The public DNS name of the load balancer.
lbDNSName :: Lens' LoadBalancer (Maybe Text)

-- | Information about a static IP address for a load balancer.
--   
--   <i>See:</i> <a>loadBalancerAddress</a> smart constructor.
data LoadBalancerAddress

-- | Creates a value of <a>LoadBalancerAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbaIPAddress</a> - The static IP address.</li>
--   <li><a>lbaAllocationId</a> - [Network Load Balancers] The allocation
--   ID of the Elastic IP address.</li>
--   </ul>
loadBalancerAddress :: LoadBalancerAddress

-- | The static IP address.
lbaIPAddress :: Lens' LoadBalancerAddress (Maybe Text)

-- | <ul>
--   <li><i>Network Load Balancers</i> The allocation ID of the Elastic IP
--   address.</li>
--   </ul>
lbaAllocationId :: Lens' LoadBalancerAddress (Maybe Text)

-- | Information about a load balancer attribute.
--   
--   <i>See:</i> <a>loadBalancerAttribute</a> smart constructor.
data LoadBalancerAttribute

-- | Creates a value of <a>LoadBalancerAttribute</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbaValue</a> - The value of the attribute.</li>
--   <li><a>lbaKey</a> - The name of the attribute. *
--   <tt>access_logs.s3.enabled</tt> - [Application Load Balancers]
--   Indicates whether access logs stored in Amazon S3 are enabled. The
--   value is <tt>true</tt> or <tt>false</tt> . *
--   <tt>access_logs.s3.bucket</tt> - [Application Load Balancers] The name
--   of the S3 bucket for the access logs. This attribute is required if
--   access logs in Amazon S3 are enabled. The bucket must exist in the
--   same region as the load balancer and have a bucket policy that grants
--   Elastic Load Balancing permission to write to the bucket. *
--   <tt>access_logs.s3.prefix</tt> - [Application Load Balancers] The
--   prefix for the location in the S3 bucket. If you don't specify a
--   prefix, the access logs are stored in the root of the bucket. *
--   <tt>deletion_protection.enabled</tt> - Indicates whether deletion
--   protection is enabled. The value is <tt>true</tt> or <tt>false</tt> .
--   * <tt>idle_timeout.timeout_seconds</tt> - [Application Load Balancers]
--   The idle timeout value, in seconds. The valid range is 1-4000. The
--   default is 60 seconds. * <tt>load_balancing.cross_zone.enabled</tt> -
--   [Network Load Balancers] Indicates whether cross-zone load balancing
--   is enabled. The value is <tt>true</tt> or <tt>false</tt> . The default
--   is <tt>false</tt> . * <tt>routing.http2.enabled</tt> - [Application
--   Load Balancers] Indicates whether HTTP/2 is enabled. The value is
--   <tt>true</tt> or <tt>false</tt> . The default is <tt>true</tt> .</li>
--   </ul>
loadBalancerAttribute :: LoadBalancerAttribute

-- | The value of the attribute.
lbaValue :: Lens' LoadBalancerAttribute (Maybe Text)

-- | The name of the attribute. * <tt>access_logs.s3.enabled</tt> -
--   [Application Load Balancers] Indicates whether access logs stored in
--   Amazon S3 are enabled. The value is <tt>true</tt> or <tt>false</tt> .
--   * <tt>access_logs.s3.bucket</tt> - [Application Load Balancers] The
--   name of the S3 bucket for the access logs. This attribute is required
--   if access logs in Amazon S3 are enabled. The bucket must exist in the
--   same region as the load balancer and have a bucket policy that grants
--   Elastic Load Balancing permission to write to the bucket. *
--   <tt>access_logs.s3.prefix</tt> - [Application Load Balancers] The
--   prefix for the location in the S3 bucket. If you don't specify a
--   prefix, the access logs are stored in the root of the bucket. *
--   <tt>deletion_protection.enabled</tt> - Indicates whether deletion
--   protection is enabled. The value is <tt>true</tt> or <tt>false</tt> .
--   * <tt>idle_timeout.timeout_seconds</tt> - [Application Load Balancers]
--   The idle timeout value, in seconds. The valid range is 1-4000. The
--   default is 60 seconds. * <tt>load_balancing.cross_zone.enabled</tt> -
--   [Network Load Balancers] Indicates whether cross-zone load balancing
--   is enabled. The value is <tt>true</tt> or <tt>false</tt> . The default
--   is <tt>false</tt> . * <tt>routing.http2.enabled</tt> - [Application
--   Load Balancers] Indicates whether HTTP/2 is enabled. The value is
--   <tt>true</tt> or <tt>false</tt> . The default is <tt>true</tt> .
lbaKey :: Lens' LoadBalancerAttribute (Maybe Text)

-- | Information about the state of the load balancer.
--   
--   <i>See:</i> <a>loadBalancerState</a> smart constructor.
data LoadBalancerState

-- | Creates a value of <a>LoadBalancerState</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lbsReason</a> - A description of the state.</li>
--   <li><a>lbsCode</a> - The state code. The initial state of the load
--   balancer is <tt>provisioning</tt> . After the load balancer is fully
--   set up and ready to route traffic, its state is <tt>active</tt> . If
--   the load balancer could not be set up, its state is <tt>failed</tt>
--   .</li>
--   </ul>
loadBalancerState :: LoadBalancerState

-- | A description of the state.
lbsReason :: Lens' LoadBalancerState (Maybe Text)

-- | The state code. The initial state of the load balancer is
--   <tt>provisioning</tt> . After the load balancer is fully set up and
--   ready to route traffic, its state is <tt>active</tt> . If the load
--   balancer could not be set up, its state is <tt>failed</tt> .
lbsCode :: Lens' LoadBalancerState (Maybe LoadBalancerStateEnum)

-- | Information to use when checking for a successful response from a
--   target.
--   
--   <i>See:</i> <a>matcher</a> smart constructor.
data Matcher

-- | Creates a value of <a>Matcher</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mHTTPCode</a> - The HTTP codes. For Application Load Balancers,
--   you can specify values between 200 and 499, and the default value is
--   200. You can specify multiple values (for example, "200,202") or a
--   range of values (for example, "200-299"). For Network Load Balancers,
--   this is 200 to 399.</li>
--   </ul>
matcher :: Text -> Matcher

-- | The HTTP codes. For Application Load Balancers, you can specify values
--   between 200 and 499, and the default value is 200. You can specify
--   multiple values (for example, "200,202") or a range of values (for
--   example, "200-299"). For Network Load Balancers, this is 200 to 399.
mHTTPCode :: Lens' Matcher Text

-- | Information about a rule.
--   
--   <i>See:</i> <a>rule</a> smart constructor.
data Rule

-- | Creates a value of <a>Rule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rPriority</a> - The priority.</li>
--   <li><a>rActions</a> - The actions.</li>
--   <li><a>rConditions</a> - The conditions.</li>
--   <li><a>rRuleARN</a> - The Amazon Resource Name (ARN) of the rule.</li>
--   <li><a>rIsDefault</a> - Indicates whether this is the default
--   rule.</li>
--   </ul>
rule :: Rule

-- | The priority.
rPriority :: Lens' Rule (Maybe Text)

-- | The actions.
rActions :: Lens' Rule [Action]

-- | The conditions.
rConditions :: Lens' Rule [RuleCondition]

-- | The Amazon Resource Name (ARN) of the rule.
rRuleARN :: Lens' Rule (Maybe Text)

-- | Indicates whether this is the default rule.
rIsDefault :: Lens' Rule (Maybe Bool)

-- | Information about a condition for a rule.
--   
--   <i>See:</i> <a>ruleCondition</a> smart constructor.
data RuleCondition

-- | Creates a value of <a>RuleCondition</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rcField</a> - The name of the field. The possible values are
--   <tt>host-header</tt> and <tt>path-pattern</tt> .</li>
--   <li><a>rcValues</a> - The condition value. If the field name is
--   <tt>host-header</tt> , you can specify a single host name (for
--   example, my.example.com). A host name is case insensitive, can be up
--   to 128 characters in length, and can contain any of the following
--   characters. Note that you can include up to three wildcard characters.
--   * A-Z, a-z, 0-9 * - . * * (matches 0 or more characters) * ? (matches
--   exactly 1 character) If the field name is <tt>path-pattern</tt> , you
--   can specify a single path pattern (for example, <i>img</i>*). A path
--   pattern is case sensitive, can be up to 128 characters in length, and
--   can contain any of the following characters. Note that you can include
--   up to three wildcard characters. * A-Z, a-z, 0-9 * _ - . $ / ~ " ' @ :
--   + * &amp; (using &amp;amp;) * * (matches 0 or more characters) * ?
--   (matches exactly 1 character)</li>
--   </ul>
ruleCondition :: RuleCondition

-- | The name of the field. The possible values are <tt>host-header</tt>
--   and <tt>path-pattern</tt> .
rcField :: Lens' RuleCondition (Maybe Text)

-- | The condition value. If the field name is <tt>host-header</tt> , you
--   can specify a single host name (for example, my.example.com). A host
--   name is case insensitive, can be up to 128 characters in length, and
--   can contain any of the following characters. Note that you can include
--   up to three wildcard characters. * A-Z, a-z, 0-9 * - . * * (matches 0
--   or more characters) * ? (matches exactly 1 character) If the field
--   name is <tt>path-pattern</tt> , you can specify a single path pattern
--   (for example, <i>img</i>*). A path pattern is case sensitive, can be
--   up to 128 characters in length, and can contain any of the following
--   characters. Note that you can include up to three wildcard characters.
--   * A-Z, a-z, 0-9 * _ - . $ / ~ " ' @ : + * &amp; (using &amp;amp;) * *
--   (matches 0 or more characters) * ? (matches exactly 1 character)
rcValues :: Lens' RuleCondition [Text]

-- | Information about the priorities for the rules for a listener.
--   
--   <i>See:</i> <a>rulePriorityPair</a> smart constructor.
data RulePriorityPair

-- | Creates a value of <a>RulePriorityPair</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rppPriority</a> - The rule priority.</li>
--   <li><a>rppRuleARN</a> - The Amazon Resource Name (ARN) of the
--   rule.</li>
--   </ul>
rulePriorityPair :: RulePriorityPair

-- | The rule priority.
rppPriority :: Lens' RulePriorityPair (Maybe Natural)

-- | The Amazon Resource Name (ARN) of the rule.
rppRuleARN :: Lens' RulePriorityPair (Maybe Text)

-- | Information about a policy used for SSL negotiation.
--   
--   <i>See:</i> <a>sslPolicy</a> smart constructor.
data SSLPolicy

-- | Creates a value of <a>SSLPolicy</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>spCiphers</a> - The ciphers.</li>
--   <li><a>spName</a> - The name of the policy.</li>
--   <li><a>spSSLProtocols</a> - The protocols.</li>
--   </ul>
sslPolicy :: SSLPolicy

-- | The ciphers.
spCiphers :: Lens' SSLPolicy [Cipher]

-- | The name of the policy.
spName :: Lens' SSLPolicy (Maybe Text)

-- | The protocols.
spSSLProtocols :: Lens' SSLPolicy [Text]

-- | Information about a subnet mapping.
--   
--   <i>See:</i> <a>subnetMapping</a> smart constructor.
data SubnetMapping

-- | Creates a value of <a>SubnetMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>smAllocationId</a> - [Network Load Balancers] The allocation ID
--   of the Elastic IP address.</li>
--   <li><a>smSubnetId</a> - The ID of the subnet.</li>
--   </ul>
subnetMapping :: SubnetMapping

-- | <ul>
--   <li><i>Network Load Balancers</i> The allocation ID of the Elastic IP
--   address.</li>
--   </ul>
smAllocationId :: Lens' SubnetMapping (Maybe Text)

-- | The ID of the subnet.
smSubnetId :: Lens' SubnetMapping (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 resource.
--   
--   <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>tdResourceARN</a> - The Amazon Resource Name (ARN) of the
--   resource.</li>
--   <li><a>tdTags</a> - Information about the tags.</li>
--   </ul>
tagDescription :: TagDescription

-- | The Amazon Resource Name (ARN) of the resource.
tdResourceARN :: Lens' TagDescription (Maybe Text)

-- | Information about the tags.
tdTags :: Lens' TagDescription (Maybe (NonEmpty Tag))

-- | Information about a target.
--   
--   <i>See:</i> <a>targetDescription</a> smart constructor.
data TargetDescription

-- | Creates a value of <a>TargetDescription</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tdAvailabilityZone</a> - An Availability Zone or <tt>all</tt> .
--   This determines whether the target receives traffic from the load
--   balancer nodes in the specified Availability Zone or from all enabled
--   Availability Zones for the load balancer. This parameter is not
--   supported if the target type of the target group is <tt>instance</tt>
--   . If the IP address is in a subnet of the VPC for the target group,
--   the Availability Zone is automatically detected and this parameter is
--   optional. If the IP address is outside the VPC, this parameter is
--   required. With an Application Load Balancer, if the IP address is
--   outside the VPC for the target group, the only supported value is
--   <tt>all</tt> .</li>
--   <li><a>tdPort</a> - The port on which the target is listening.</li>
--   <li><a>tdId</a> - The ID of the target. If the target type of the
--   target group is <tt>instance</tt> , specify an instance ID. If the
--   target type is <tt>ip</tt> , specify an IP address.</li>
--   </ul>
targetDescription :: Text -> TargetDescription

-- | An Availability Zone or <tt>all</tt> . This determines whether the
--   target receives traffic from the load balancer nodes in the specified
--   Availability Zone or from all enabled Availability Zones for the load
--   balancer. This parameter is not supported if the target type of the
--   target group is <tt>instance</tt> . If the IP address is in a subnet
--   of the VPC for the target group, the Availability Zone is
--   automatically detected and this parameter is optional. If the IP
--   address is outside the VPC, this parameter is required. With an
--   Application Load Balancer, if the IP address is outside the VPC for
--   the target group, the only supported value is <tt>all</tt> .
tdAvailabilityZone :: Lens' TargetDescription (Maybe Text)

-- | The port on which the target is listening.
tdPort :: Lens' TargetDescription (Maybe Natural)

-- | The ID of the target. If the target type of the target group is
--   <tt>instance</tt> , specify an instance ID. If the target type is
--   <tt>ip</tt> , specify an IP address.
tdId :: Lens' TargetDescription Text

-- | Information about a target group.
--   
--   <i>See:</i> <a>targetGroup</a> smart constructor.
data TargetGroup

-- | Creates a value of <a>TargetGroup</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgMatcher</a> - The HTTP codes to use when checking for a
--   successful response from a target.</li>
--   <li><a>tgHealthCheckPath</a> - The destination for the health check
--   request.</li>
--   <li><a>tgUnhealthyThresholdCount</a> - The number of consecutive
--   health check failures required before considering the target
--   unhealthy.</li>
--   <li><a>tgVPCId</a> - The ID of the VPC for the targets.</li>
--   <li><a>tgTargetGroupARN</a> - The Amazon Resource Name (ARN) of the
--   target group.</li>
--   <li><a>tgProtocol</a> - The protocol to use for routing traffic to the
--   targets.</li>
--   <li><a>tgHealthCheckIntervalSeconds</a> - The approximate amount of
--   time, in seconds, between health checks of an individual target.</li>
--   <li><a>tgTargetType</a> - The type of target that you must specify
--   when registering targets with this target group. The possible values
--   are <tt>instance</tt> (targets are specified by instance ID) or
--   <tt>ip</tt> (targets are specified by IP address).</li>
--   <li><a>tgHealthyThresholdCount</a> - The number of consecutive health
--   checks successes required before considering an unhealthy target
--   healthy.</li>
--   <li><a>tgHealthCheckProtocol</a> - The protocol to use to connect with
--   the target.</li>
--   <li><a>tgLoadBalancerARNs</a> - The Amazon Resource Names (ARN) of the
--   load balancers that route traffic to this target group.</li>
--   <li><a>tgHealthCheckTimeoutSeconds</a> - The amount of time, in
--   seconds, during which no response means a failed health check.</li>
--   <li><a>tgHealthCheckPort</a> - The port to use to connect with the
--   target.</li>
--   <li><a>tgTargetGroupName</a> - The name of the target group.</li>
--   <li><a>tgPort</a> - The port on which the targets are listening.</li>
--   </ul>
targetGroup :: TargetGroup

-- | The HTTP codes to use when checking for a successful response from a
--   target.
tgMatcher :: Lens' TargetGroup (Maybe Matcher)

-- | The destination for the health check request.
tgHealthCheckPath :: Lens' TargetGroup (Maybe Text)

-- | The number of consecutive health check failures required before
--   considering the target unhealthy.
tgUnhealthyThresholdCount :: Lens' TargetGroup (Maybe Natural)

-- | The ID of the VPC for the targets.
tgVPCId :: Lens' TargetGroup (Maybe Text)

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

-- | The protocol to use for routing traffic to the targets.
tgProtocol :: Lens' TargetGroup (Maybe ProtocolEnum)

-- | The approximate amount of time, in seconds, between health checks of
--   an individual target.
tgHealthCheckIntervalSeconds :: Lens' TargetGroup (Maybe Natural)

-- | The type of target that you must specify when registering targets with
--   this target group. The possible values are <tt>instance</tt> (targets
--   are specified by instance ID) or <tt>ip</tt> (targets are specified by
--   IP address).
tgTargetType :: Lens' TargetGroup (Maybe TargetTypeEnum)

-- | The number of consecutive health checks successes required before
--   considering an unhealthy target healthy.
tgHealthyThresholdCount :: Lens' TargetGroup (Maybe Natural)

-- | The protocol to use to connect with the target.
tgHealthCheckProtocol :: Lens' TargetGroup (Maybe ProtocolEnum)

-- | The Amazon Resource Names (ARN) of the load balancers that route
--   traffic to this target group.
tgLoadBalancerARNs :: Lens' TargetGroup [Text]

-- | The amount of time, in seconds, during which no response means a
--   failed health check.
tgHealthCheckTimeoutSeconds :: Lens' TargetGroup (Maybe Natural)

-- | The port to use to connect with the target.
tgHealthCheckPort :: Lens' TargetGroup (Maybe Text)

-- | The name of the target group.
tgTargetGroupName :: Lens' TargetGroup (Maybe Text)

-- | The port on which the targets are listening.
tgPort :: Lens' TargetGroup (Maybe Natural)

-- | Information about a target group attribute.
--   
--   <i>See:</i> <a>targetGroupAttribute</a> smart constructor.
data TargetGroupAttribute

-- | Creates a value of <a>TargetGroupAttribute</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tgaValue</a> - The value of the attribute.</li>
--   <li><a>tgaKey</a> - The name of the attribute. *
--   <tt>deregistration_delay.timeout_seconds</tt> - The amount time for
--   Elastic Load Balancing to wait before changing the state of a
--   deregistering target from <tt>draining</tt> to <tt>unused</tt> . The
--   range is 0-3600 seconds. The default value is 300 seconds. *
--   <tt>proxy_protocol_v2.enabled</tt> - [Network Load Balancers]
--   Indicates whether Proxy Protocol version 2 is enabled. *
--   <tt>stickiness.enabled</tt> - [Application Load Balancers] Indicates
--   whether sticky sessions are enabled. The value is <tt>true</tt> or
--   <tt>false</tt> . * <tt>stickiness.type</tt> - [Application Load
--   Balancers] The type of sticky sessions. The possible value is
--   <tt>lb_cookie</tt> . * <tt>stickiness.lb_cookie.duration_seconds</tt>
--   - [Application Load Balancers] The time period, in seconds, during
--   which requests from a client should be routed to the same target.
--   After this time period expires, the load balancer-generated cookie is
--   considered stale. The range is 1 second to 1 week (604800 seconds).
--   The default value is 1 day (86400 seconds).</li>
--   </ul>
targetGroupAttribute :: TargetGroupAttribute

-- | The value of the attribute.
tgaValue :: Lens' TargetGroupAttribute (Maybe Text)

-- | The name of the attribute. *
--   <tt>deregistration_delay.timeout_seconds</tt> - The amount time for
--   Elastic Load Balancing to wait before changing the state of a
--   deregistering target from <tt>draining</tt> to <tt>unused</tt> . The
--   range is 0-3600 seconds. The default value is 300 seconds. *
--   <tt>proxy_protocol_v2.enabled</tt> - [Network Load Balancers]
--   Indicates whether Proxy Protocol version 2 is enabled. *
--   <tt>stickiness.enabled</tt> - [Application Load Balancers] Indicates
--   whether sticky sessions are enabled. The value is <tt>true</tt> or
--   <tt>false</tt> . * <tt>stickiness.type</tt> - [Application Load
--   Balancers] The type of sticky sessions. The possible value is
--   <tt>lb_cookie</tt> . * <tt>stickiness.lb_cookie.duration_seconds</tt>
--   - [Application Load Balancers] The time period, in seconds, during
--   which requests from a client should be routed to the same target.
--   After this time period expires, the load balancer-generated cookie is
--   considered stale. The range is 1 second to 1 week (604800 seconds).
--   The default value is 1 day (86400 seconds).
tgaKey :: Lens' TargetGroupAttribute (Maybe Text)

-- | Information about the current health of a target.
--   
--   <i>See:</i> <a>targetHealth</a> smart constructor.
data TargetHealth

-- | Creates a value of <a>TargetHealth</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>thState</a> - The state of the target.</li>
--   <li><a>thReason</a> - The reason code. If the target state is
--   <tt>healthy</tt> , a reason code is not provided. If the target state
--   is <tt>initial</tt> , the reason code can be one of the following
--   values: * <tt>Elb.RegistrationInProgress</tt> - The target is in the
--   process of being registered with the load balancer. *
--   <tt>Elb.InitialHealthChecking</tt> - The load balancer is still
--   sending the target the minimum number of health checks required to
--   determine its health status. If the target state is <tt>unhealthy</tt>
--   , the reason code can be one of the following values: *
--   <tt>Target.ResponseCodeMismatch</tt> - The health checks did not
--   return an expected HTTP code. * <tt>Target.Timeout</tt> - The health
--   check requests timed out. * <tt>Target.FailedHealthChecks</tt> - The
--   health checks failed because the connection to the target timed out,
--   the target response was malformed, or the target failed the health
--   check for an unknown reason. * <tt>Elb.InternalError</tt> - The health
--   checks failed due to an internal error. If the target state is
--   <tt>unused</tt> , the reason code can be one of the following values:
--   * <tt>Target.NotRegistered</tt> - The target is not registered with
--   the target group. * <tt>Target.NotInUse</tt> - The target group is not
--   used by any load balancer or the target is in an Availability Zone
--   that is not enabled for its load balancer. *
--   <tt>Target.IpUnusable</tt> - The target IP address is reserved for use
--   by a load balancer. * <tt>Target.InvalidState</tt> - The target is in
--   the stopped or terminated state. If the target state is
--   <tt>draining</tt> , the reason code can be the following value: *
--   <tt>Target.DeregistrationInProgress</tt> - The target is in the
--   process of being deregistered and the deregistration delay period has
--   not expired.</li>
--   <li><a>thDescription</a> - A description of the target health that
--   provides additional details. If the state is <tt>healthy</tt> , a
--   description is not provided.</li>
--   </ul>
targetHealth :: TargetHealth

-- | The state of the target.
thState :: Lens' TargetHealth (Maybe TargetHealthStateEnum)

-- | The reason code. If the target state is <tt>healthy</tt> , a reason
--   code is not provided. If the target state is <tt>initial</tt> , the
--   reason code can be one of the following values: *
--   <tt>Elb.RegistrationInProgress</tt> - The target is in the process of
--   being registered with the load balancer. *
--   <tt>Elb.InitialHealthChecking</tt> - The load balancer is still
--   sending the target the minimum number of health checks required to
--   determine its health status. If the target state is <tt>unhealthy</tt>
--   , the reason code can be one of the following values: *
--   <tt>Target.ResponseCodeMismatch</tt> - The health checks did not
--   return an expected HTTP code. * <tt>Target.Timeout</tt> - The health
--   check requests timed out. * <tt>Target.FailedHealthChecks</tt> - The
--   health checks failed because the connection to the target timed out,
--   the target response was malformed, or the target failed the health
--   check for an unknown reason. * <tt>Elb.InternalError</tt> - The health
--   checks failed due to an internal error. If the target state is
--   <tt>unused</tt> , the reason code can be one of the following values:
--   * <tt>Target.NotRegistered</tt> - The target is not registered with
--   the target group. * <tt>Target.NotInUse</tt> - The target group is not
--   used by any load balancer or the target is in an Availability Zone
--   that is not enabled for its load balancer. *
--   <tt>Target.IpUnusable</tt> - The target IP address is reserved for use
--   by a load balancer. * <tt>Target.InvalidState</tt> - The target is in
--   the stopped or terminated state. If the target state is
--   <tt>draining</tt> , the reason code can be the following value: *
--   <tt>Target.DeregistrationInProgress</tt> - The target is in the
--   process of being deregistered and the deregistration delay period has
--   not expired.
thReason :: Lens' TargetHealth (Maybe TargetHealthReasonEnum)

-- | A description of the target health that provides additional details.
--   If the state is <tt>healthy</tt> , a description is not provided.
thDescription :: Lens' TargetHealth (Maybe Text)

-- | Information about the health of a target.
--   
--   <i>See:</i> <a>targetHealthDescription</a> smart constructor.
data TargetHealthDescription

-- | Creates a value of <a>TargetHealthDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>thdTargetHealth</a> - The health information for the
--   target.</li>
--   <li><a>thdHealthCheckPort</a> - The port to use to connect with the
--   target.</li>
--   <li><a>thdTarget</a> - The description of the target.</li>
--   </ul>
targetHealthDescription :: TargetHealthDescription

-- | The health information for the target.
thdTargetHealth :: Lens' TargetHealthDescription (Maybe TargetHealth)

-- | The port to use to connect with the target.
thdHealthCheckPort :: Lens' TargetHealthDescription (Maybe Text)

-- | The description of the target.
thdTarget :: Lens' TargetHealthDescription (Maybe TargetDescription)
