{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.ELBV2.Lens
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ELBV2.Lens
  ( -- * Operations

    -- ** DescribeLoadBalancers
    describeLoadBalancers_names,
    describeLoadBalancers_loadBalancerArns,
    describeLoadBalancers_marker,
    describeLoadBalancers_pageSize,
    describeLoadBalancersResponse_loadBalancers,
    describeLoadBalancersResponse_nextMarker,
    describeLoadBalancersResponse_httpStatus,

    -- ** DescribeTags
    describeTags_resourceArns,
    describeTagsResponse_tagDescriptions,
    describeTagsResponse_httpStatus,

    -- ** DeleteRule
    deleteRule_ruleArn,
    deleteRuleResponse_httpStatus,

    -- ** RemoveTags
    removeTags_resourceArns,
    removeTags_tagKeys,
    removeTagsResponse_httpStatus,

    -- ** DeleteTargetGroup
    deleteTargetGroup_targetGroupArn,
    deleteTargetGroupResponse_httpStatus,

    -- ** SetSubnets
    setSubnets_subnetMappings,
    setSubnets_subnets,
    setSubnets_ipAddressType,
    setSubnets_loadBalancerArn,
    setSubnetsResponse_availabilityZones,
    setSubnetsResponse_ipAddressType,
    setSubnetsResponse_httpStatus,

    -- ** CreateRule
    createRule_tags,
    createRule_listenerArn,
    createRule_conditions,
    createRule_priority,
    createRule_actions,
    createRuleResponse_rules,
    createRuleResponse_httpStatus,

    -- ** DescribeListenerCertificates
    describeListenerCertificates_marker,
    describeListenerCertificates_pageSize,
    describeListenerCertificates_listenerArn,
    describeListenerCertificatesResponse_certificates,
    describeListenerCertificatesResponse_nextMarker,
    describeListenerCertificatesResponse_httpStatus,

    -- ** SetSecurityGroups
    setSecurityGroups_loadBalancerArn,
    setSecurityGroups_securityGroups,
    setSecurityGroupsResponse_securityGroupIds,
    setSecurityGroupsResponse_httpStatus,

    -- ** SetRulePriorities
    setRulePriorities_rulePriorities,
    setRulePrioritiesResponse_rules,
    setRulePrioritiesResponse_httpStatus,

    -- ** DescribeTargetGroups
    describeTargetGroups_targetGroupArns,
    describeTargetGroups_names,
    describeTargetGroups_loadBalancerArn,
    describeTargetGroups_marker,
    describeTargetGroups_pageSize,
    describeTargetGroupsResponse_nextMarker,
    describeTargetGroupsResponse_targetGroups,
    describeTargetGroupsResponse_httpStatus,

    -- ** DescribeRules
    describeRules_listenerArn,
    describeRules_marker,
    describeRules_ruleArns,
    describeRules_pageSize,
    describeRulesResponse_rules,
    describeRulesResponse_nextMarker,
    describeRulesResponse_httpStatus,

    -- ** DeleteLoadBalancer
    deleteLoadBalancer_loadBalancerArn,
    deleteLoadBalancerResponse_httpStatus,

    -- ** RegisterTargets
    registerTargets_targetGroupArn,
    registerTargets_targets,
    registerTargetsResponse_httpStatus,

    -- ** ModifyListener
    modifyListener_sslPolicy,
    modifyListener_protocol,
    modifyListener_defaultActions,
    modifyListener_certificates,
    modifyListener_alpnPolicy,
    modifyListener_port,
    modifyListener_listenerArn,
    modifyListenerResponse_listeners,
    modifyListenerResponse_httpStatus,

    -- ** ModifyTargetGroup
    modifyTargetGroup_matcher,
    modifyTargetGroup_healthCheckPath,
    modifyTargetGroup_healthCheckEnabled,
    modifyTargetGroup_unhealthyThresholdCount,
    modifyTargetGroup_healthCheckIntervalSeconds,
    modifyTargetGroup_healthyThresholdCount,
    modifyTargetGroup_healthCheckProtocol,
    modifyTargetGroup_healthCheckTimeoutSeconds,
    modifyTargetGroup_healthCheckPort,
    modifyTargetGroup_targetGroupArn,
    modifyTargetGroupResponse_targetGroups,
    modifyTargetGroupResponse_httpStatus,

    -- ** ModifyTargetGroupAttributes
    modifyTargetGroupAttributes_targetGroupArn,
    modifyTargetGroupAttributes_attributes,
    modifyTargetGroupAttributesResponse_attributes,
    modifyTargetGroupAttributesResponse_httpStatus,

    -- ** DescribeTargetGroupAttributes
    describeTargetGroupAttributes_targetGroupArn,
    describeTargetGroupAttributesResponse_attributes,
    describeTargetGroupAttributesResponse_httpStatus,

    -- ** DeleteListener
    deleteListener_listenerArn,
    deleteListenerResponse_httpStatus,

    -- ** DescribeSSLPolicies
    describeSSLPolicies_loadBalancerType,
    describeSSLPolicies_names,
    describeSSLPolicies_marker,
    describeSSLPolicies_pageSize,
    describeSSLPoliciesResponse_sslPolicies,
    describeSSLPoliciesResponse_nextMarker,
    describeSSLPoliciesResponse_httpStatus,

    -- ** DescribeAccountLimits
    describeAccountLimits_marker,
    describeAccountLimits_pageSize,
    describeAccountLimitsResponse_limits,
    describeAccountLimitsResponse_nextMarker,
    describeAccountLimitsResponse_httpStatus,

    -- ** DeregisterTargets
    deregisterTargets_targetGroupArn,
    deregisterTargets_targets,
    deregisterTargetsResponse_httpStatus,

    -- ** CreateListener
    createListener_sslPolicy,
    createListener_protocol,
    createListener_certificates,
    createListener_alpnPolicy,
    createListener_tags,
    createListener_port,
    createListener_loadBalancerArn,
    createListener_defaultActions,
    createListenerResponse_listeners,
    createListenerResponse_httpStatus,

    -- ** CreateTargetGroup
    createTargetGroup_protocolVersion,
    createTargetGroup_matcher,
    createTargetGroup_healthCheckPath,
    createTargetGroup_healthCheckEnabled,
    createTargetGroup_unhealthyThresholdCount,
    createTargetGroup_vpcId,
    createTargetGroup_protocol,
    createTargetGroup_healthCheckIntervalSeconds,
    createTargetGroup_targetType,
    createTargetGroup_healthyThresholdCount,
    createTargetGroup_healthCheckProtocol,
    createTargetGroup_ipAddressType,
    createTargetGroup_healthCheckTimeoutSeconds,
    createTargetGroup_healthCheckPort,
    createTargetGroup_tags,
    createTargetGroup_port,
    createTargetGroup_name,
    createTargetGroupResponse_targetGroups,
    createTargetGroupResponse_httpStatus,

    -- ** ModifyLoadBalancerAttributes
    modifyLoadBalancerAttributes_loadBalancerArn,
    modifyLoadBalancerAttributes_attributes,
    modifyLoadBalancerAttributesResponse_attributes,
    modifyLoadBalancerAttributesResponse_httpStatus,

    -- ** SetIpAddressType
    setIpAddressType_loadBalancerArn,
    setIpAddressType_ipAddressType,
    setIpAddressTypeResponse_ipAddressType,
    setIpAddressTypeResponse_httpStatus,

    -- ** AddTags
    addTags_resourceArns,
    addTags_tags,
    addTagsResponse_httpStatus,

    -- ** DescribeLoadBalancerAttributes
    describeLoadBalancerAttributes_loadBalancerArn,
    describeLoadBalancerAttributesResponse_attributes,
    describeLoadBalancerAttributesResponse_httpStatus,

    -- ** DescribeListeners
    describeListeners_listenerArns,
    describeListeners_loadBalancerArn,
    describeListeners_marker,
    describeListeners_pageSize,
    describeListenersResponse_nextMarker,
    describeListenersResponse_listeners,
    describeListenersResponse_httpStatus,

    -- ** DescribeTargetHealth
    describeTargetHealth_targets,
    describeTargetHealth_targetGroupArn,
    describeTargetHealthResponse_targetHealthDescriptions,
    describeTargetHealthResponse_httpStatus,

    -- ** CreateLoadBalancer
    createLoadBalancer_subnetMappings,
    createLoadBalancer_securityGroups,
    createLoadBalancer_subnets,
    createLoadBalancer_customerOwnedIpv4Pool,
    createLoadBalancer_ipAddressType,
    createLoadBalancer_scheme,
    createLoadBalancer_type,
    createLoadBalancer_tags,
    createLoadBalancer_name,
    createLoadBalancerResponse_loadBalancers,
    createLoadBalancerResponse_httpStatus,

    -- ** RemoveListenerCertificates
    removeListenerCertificates_listenerArn,
    removeListenerCertificates_certificates,
    removeListenerCertificatesResponse_httpStatus,

    -- ** ModifyRule
    modifyRule_actions,
    modifyRule_conditions,
    modifyRule_ruleArn,
    modifyRuleResponse_rules,
    modifyRuleResponse_httpStatus,

    -- ** AddListenerCertificates
    addListenerCertificates_listenerArn,
    addListenerCertificates_certificates,
    addListenerCertificatesResponse_certificates,
    addListenerCertificatesResponse_httpStatus,

    -- * Types

    -- ** Action
    action_fixedResponseConfig,
    action_targetGroupArn,
    action_forwardConfig,
    action_redirectConfig,
    action_authenticateCognitoConfig,
    action_order,
    action_authenticateOidcConfig,
    action_type,

    -- ** AuthenticateCognitoActionConfig
    authenticateCognitoActionConfig_authenticationRequestExtraParams,
    authenticateCognitoActionConfig_scope,
    authenticateCognitoActionConfig_onUnauthenticatedRequest,
    authenticateCognitoActionConfig_sessionCookieName,
    authenticateCognitoActionConfig_sessionTimeout,
    authenticateCognitoActionConfig_userPoolArn,
    authenticateCognitoActionConfig_userPoolClientId,
    authenticateCognitoActionConfig_userPoolDomain,

    -- ** AuthenticateOidcActionConfig
    authenticateOidcActionConfig_clientSecret,
    authenticateOidcActionConfig_useExistingClientSecret,
    authenticateOidcActionConfig_authenticationRequestExtraParams,
    authenticateOidcActionConfig_scope,
    authenticateOidcActionConfig_onUnauthenticatedRequest,
    authenticateOidcActionConfig_sessionCookieName,
    authenticateOidcActionConfig_sessionTimeout,
    authenticateOidcActionConfig_issuer,
    authenticateOidcActionConfig_authorizationEndpoint,
    authenticateOidcActionConfig_tokenEndpoint,
    authenticateOidcActionConfig_userInfoEndpoint,
    authenticateOidcActionConfig_clientId,

    -- ** AvailabilityZone
    availabilityZone_subnetId,
    availabilityZone_zoneName,
    availabilityZone_loadBalancerAddresses,
    availabilityZone_outpostId,

    -- ** Certificate
    certificate_certificateArn,
    certificate_isDefault,

    -- ** Cipher
    cipher_priority,
    cipher_name,

    -- ** FixedResponseActionConfig
    fixedResponseActionConfig_messageBody,
    fixedResponseActionConfig_contentType,
    fixedResponseActionConfig_statusCode,

    -- ** ForwardActionConfig
    forwardActionConfig_targetGroups,
    forwardActionConfig_targetGroupStickinessConfig,

    -- ** HostHeaderConditionConfig
    hostHeaderConditionConfig_values,

    -- ** HttpHeaderConditionConfig
    httpHeaderConditionConfig_values,
    httpHeaderConditionConfig_httpHeaderName,

    -- ** HttpRequestMethodConditionConfig
    httpRequestMethodConditionConfig_values,

    -- ** Limit
    limit_max,
    limit_name,

    -- ** Listener
    listener_sslPolicy,
    listener_listenerArn,
    listener_protocol,
    listener_defaultActions,
    listener_certificates,
    listener_loadBalancerArn,
    listener_alpnPolicy,
    listener_port,

    -- ** LoadBalancer
    loadBalancer_state,
    loadBalancer_securityGroups,
    loadBalancer_loadBalancerName,
    loadBalancer_createdTime,
    loadBalancer_vpcId,
    loadBalancer_canonicalHostedZoneId,
    loadBalancer_availabilityZones,
    loadBalancer_customerOwnedIpv4Pool,
    loadBalancer_loadBalancerArn,
    loadBalancer_ipAddressType,
    loadBalancer_scheme,
    loadBalancer_type,
    loadBalancer_dNSName,

    -- ** LoadBalancerAddress
    loadBalancerAddress_iPv6Address,
    loadBalancerAddress_ipAddress,
    loadBalancerAddress_allocationId,
    loadBalancerAddress_privateIPv4Address,

    -- ** LoadBalancerAttribute
    loadBalancerAttribute_value,
    loadBalancerAttribute_key,

    -- ** LoadBalancerState
    loadBalancerState_reason,
    loadBalancerState_code,

    -- ** Matcher
    matcher_httpCode,
    matcher_grpcCode,

    -- ** PathPatternConditionConfig
    pathPatternConditionConfig_values,

    -- ** QueryStringConditionConfig
    queryStringConditionConfig_values,

    -- ** QueryStringKeyValuePair
    queryStringKeyValuePair_value,
    queryStringKeyValuePair_key,

    -- ** RedirectActionConfig
    redirectActionConfig_path,
    redirectActionConfig_protocol,
    redirectActionConfig_query,
    redirectActionConfig_host,
    redirectActionConfig_port,
    redirectActionConfig_statusCode,

    -- ** Rule
    rule_priority,
    rule_actions,
    rule_conditions,
    rule_ruleArn,
    rule_isDefault,

    -- ** RuleCondition
    ruleCondition_field,
    ruleCondition_httpHeaderConfig,
    ruleCondition_hostHeaderConfig,
    ruleCondition_values,
    ruleCondition_sourceIpConfig,
    ruleCondition_httpRequestMethodConfig,
    ruleCondition_pathPatternConfig,
    ruleCondition_queryStringConfig,

    -- ** RulePriorityPair
    rulePriorityPair_priority,
    rulePriorityPair_ruleArn,

    -- ** SourceIpConditionConfig
    sourceIpConditionConfig_values,

    -- ** SslPolicy
    sslPolicy_supportedLoadBalancerTypes,
    sslPolicy_ciphers,
    sslPolicy_name,
    sslPolicy_sslProtocols,

    -- ** SubnetMapping
    subnetMapping_iPv6Address,
    subnetMapping_allocationId,
    subnetMapping_privateIPv4Address,
    subnetMapping_subnetId,

    -- ** Tag
    tag_value,
    tag_key,

    -- ** TagDescription
    tagDescription_resourceArn,
    tagDescription_tags,

    -- ** TargetDescription
    targetDescription_availabilityZone,
    targetDescription_port,
    targetDescription_id,

    -- ** TargetGroup
    targetGroup_protocolVersion,
    targetGroup_matcher,
    targetGroup_healthCheckPath,
    targetGroup_healthCheckEnabled,
    targetGroup_unhealthyThresholdCount,
    targetGroup_vpcId,
    targetGroup_targetGroupArn,
    targetGroup_protocol,
    targetGroup_healthCheckIntervalSeconds,
    targetGroup_targetType,
    targetGroup_healthyThresholdCount,
    targetGroup_healthCheckProtocol,
    targetGroup_loadBalancerArns,
    targetGroup_ipAddressType,
    targetGroup_healthCheckTimeoutSeconds,
    targetGroup_healthCheckPort,
    targetGroup_targetGroupName,
    targetGroup_port,

    -- ** TargetGroupAttribute
    targetGroupAttribute_value,
    targetGroupAttribute_key,

    -- ** TargetGroupStickinessConfig
    targetGroupStickinessConfig_enabled,
    targetGroupStickinessConfig_durationSeconds,

    -- ** TargetGroupTuple
    targetGroupTuple_weight,
    targetGroupTuple_targetGroupArn,

    -- ** TargetHealth
    targetHealth_state,
    targetHealth_reason,
    targetHealth_description,

    -- ** TargetHealthDescription
    targetHealthDescription_targetHealth,
    targetHealthDescription_healthCheckPort,
    targetHealthDescription_target,
  )
where

import Amazonka.ELBV2.AddListenerCertificates
import Amazonka.ELBV2.AddTags
import Amazonka.ELBV2.CreateListener
import Amazonka.ELBV2.CreateLoadBalancer
import Amazonka.ELBV2.CreateRule
import Amazonka.ELBV2.CreateTargetGroup
import Amazonka.ELBV2.DeleteListener
import Amazonka.ELBV2.DeleteLoadBalancer
import Amazonka.ELBV2.DeleteRule
import Amazonka.ELBV2.DeleteTargetGroup
import Amazonka.ELBV2.DeregisterTargets
import Amazonka.ELBV2.DescribeAccountLimits
import Amazonka.ELBV2.DescribeListenerCertificates
import Amazonka.ELBV2.DescribeListeners
import Amazonka.ELBV2.DescribeLoadBalancerAttributes
import Amazonka.ELBV2.DescribeLoadBalancers
import Amazonka.ELBV2.DescribeRules
import Amazonka.ELBV2.DescribeSSLPolicies
import Amazonka.ELBV2.DescribeTags
import Amazonka.ELBV2.DescribeTargetGroupAttributes
import Amazonka.ELBV2.DescribeTargetGroups
import Amazonka.ELBV2.DescribeTargetHealth
import Amazonka.ELBV2.ModifyListener
import Amazonka.ELBV2.ModifyLoadBalancerAttributes
import Amazonka.ELBV2.ModifyRule
import Amazonka.ELBV2.ModifyTargetGroup
import Amazonka.ELBV2.ModifyTargetGroupAttributes
import Amazonka.ELBV2.RegisterTargets
import Amazonka.ELBV2.RemoveListenerCertificates
import Amazonka.ELBV2.RemoveTags
import Amazonka.ELBV2.SetIpAddressType
import Amazonka.ELBV2.SetRulePriorities
import Amazonka.ELBV2.SetSecurityGroups
import Amazonka.ELBV2.SetSubnets
import Amazonka.ELBV2.Types.Action
import Amazonka.ELBV2.Types.AuthenticateCognitoActionConfig
import Amazonka.ELBV2.Types.AuthenticateOidcActionConfig
import Amazonka.ELBV2.Types.AvailabilityZone
import Amazonka.ELBV2.Types.Certificate
import Amazonka.ELBV2.Types.Cipher
import Amazonka.ELBV2.Types.FixedResponseActionConfig
import Amazonka.ELBV2.Types.ForwardActionConfig
import Amazonka.ELBV2.Types.HostHeaderConditionConfig
import Amazonka.ELBV2.Types.HttpHeaderConditionConfig
import Amazonka.ELBV2.Types.HttpRequestMethodConditionConfig
import Amazonka.ELBV2.Types.Limit
import Amazonka.ELBV2.Types.Listener
import Amazonka.ELBV2.Types.LoadBalancer
import Amazonka.ELBV2.Types.LoadBalancerAddress
import Amazonka.ELBV2.Types.LoadBalancerAttribute
import Amazonka.ELBV2.Types.LoadBalancerState
import Amazonka.ELBV2.Types.Matcher
import Amazonka.ELBV2.Types.PathPatternConditionConfig
import Amazonka.ELBV2.Types.QueryStringConditionConfig
import Amazonka.ELBV2.Types.QueryStringKeyValuePair
import Amazonka.ELBV2.Types.RedirectActionConfig
import Amazonka.ELBV2.Types.Rule
import Amazonka.ELBV2.Types.RuleCondition
import Amazonka.ELBV2.Types.RulePriorityPair
import Amazonka.ELBV2.Types.SourceIpConditionConfig
import Amazonka.ELBV2.Types.SslPolicy
import Amazonka.ELBV2.Types.SubnetMapping
import Amazonka.ELBV2.Types.Tag
import Amazonka.ELBV2.Types.TagDescription
import Amazonka.ELBV2.Types.TargetDescription
import Amazonka.ELBV2.Types.TargetGroup
import Amazonka.ELBV2.Types.TargetGroupAttribute
import Amazonka.ELBV2.Types.TargetGroupStickinessConfig
import Amazonka.ELBV2.Types.TargetGroupTuple
import Amazonka.ELBV2.Types.TargetHealth
import Amazonka.ELBV2.Types.TargetHealthDescription