amazonka-elb-1.3.1: Amazon Elastic Load Balancing SDK.

Copyright(c) 2013-2015 Brendan Hay
LicenseMozilla Public License, v. 2.0.
MaintainerBrendan Hay <brendan.g.hay@gmail.com>
Stabilityauto-generated
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Network.AWS.ELB

Contents

Description

Elastic Load Balancing

Elastic Load Balancing distributes incoming traffic across your EC2 instances.

For information about the features of Elastic Load Balancing, see What Is Elastic Load Balancing? in the Elastic Load Balancing Developer Guide.

For information about the AWS regions supported by Elastic Load Balancing, see Regions and Endpoints - Elastic Load Balancing in the Amazon Web Services General Reference.

All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds with a 200 OK response code.

See: AWS API Reference

Synopsis

Service Configuration

eLB :: Service Source

API version '2012-06-01' of the Amazon Elastic Load Balancing SDK configuration.

Errors

Error matchers are designed for use with the functions provided by Control.Exception.Lens. This allows catching (and rethrowing) service specific errors returned by ELB.

PolicyNotFoundException

_PolicyNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source

One or more of the specified policies do not exist.

AccessPointNotFoundException

_AccessPointNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified load balancer does not exist.

DuplicatePolicyNameException

_DuplicatePolicyNameException :: AsError a => Getting (First ServiceError) a ServiceError Source

A policy with the specified name already exists for this load balancer.

InvalidConfigurationRequestException

_InvalidConfigurationRequestException :: AsError a => Getting (First ServiceError) a ServiceError Source

The requested configuration change is not valid.

SubnetNotFoundException

_SubnetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source

One or more of the specified subnets do not exist.

LoadBalancerAttributeNotFoundException

_LoadBalancerAttributeNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified load balancer attribute does not exist.

InvalidSubnetException

_InvalidSubnetException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified VPC has no associated Internet gateway.

DuplicateTagKeysException

_DuplicateTagKeysException :: AsError a => Getting (First ServiceError) a ServiceError Source

A tag key was specified more than once.

DuplicateListenerException

_DuplicateListenerException :: AsError a => Getting (First ServiceError) a ServiceError Source

A listener already exists for the specified LoadBalancerName and LoadBalancerPort, but with a different InstancePort, Protocol, or SSLCertificateId.

TooManyTagsException

_TooManyTagsException :: AsError a => Getting (First ServiceError) a ServiceError Source

The quota for the number of tags that can be assigned to a load balancer has been reached.

PolicyTypeNotFoundException

_PolicyTypeNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source

One or more of the specified policy types do not exist.

DuplicateAccessPointNameException

_DuplicateAccessPointNameException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified load balancer name already exists for this account.

InvalidSecurityGroupException

_InvalidSecurityGroupException :: AsError a => Getting (First ServiceError) a ServiceError Source

One or more of the specified security groups do not exist.

ListenerNotFoundException

_ListenerNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source

The load balancer does not have a listener configured at the specified port.

InvalidEndPointException

_InvalidEndPointException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified endpoint is not valid.

InvalidSchemeException

_InvalidSchemeException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified value for the schema is not valid. You can only specify a scheme for load balancers in a VPC.

TooManyAccessPointsException

_TooManyAccessPointsException :: AsError a => Getting (First ServiceError) a ServiceError Source

The quota for the number of load balancers has been reached.

TooManyPoliciesException

_TooManyPoliciesException :: AsError a => Getting (First ServiceError) a ServiceError Source

The quota for the number of policies for this load balancer has been reached.

CertificateNotFoundException

_CertificateNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError Source

The specified SSL ID does not refer to a valid SSL certificate in AWS Identity and Access Management (IAM).

Waiters

Waiters poll by repeatedly sending a request until some remote success condition configured by the Wait specification is fulfilled. The Wait specification determines how many attempts should be made, in addition to delay and retry strategies.

Operations

Some AWS operations return results that are incomplete and require subsequent requests in order to obtain the entire result set. The process of sending subsequent requests to continue where a previous request left off is called pagination. For example, the ListObjects operation of Amazon S3 returns up to 1000 objects at a time, and you must send subsequent requests with the appropriate Marker in order to retrieve the next page of results.

Operations that have an AWSPager instance can transparently perform subsequent requests, correctly setting Markers and other request facets to iterate through the entire result set of a truncated API operation. Operations which support this have an additional note in the documentation.

Many operations have the ability to filter results on the server side. See the individual operation parameters for details.

DescribeLoadBalancers (Paginated)

DescribeTags

DescribeLoadBalancerPolicyTypes

ApplySecurityGroupsToLoadBalancer

RemoveTags

CreateLBCookieStickinessPolicy

DeleteLoadBalancer

DeregisterInstancesFromLoadBalancer

CreateLoadBalancerPolicy

DescribeLoadBalancerPolicies

DisableAvailabilityZonesForLoadBalancer

EnableAvailabilityZonesForLoadBalancer

SetLoadBalancerPoliciesForBackendServer

SetLoadBalancerListenerSSLCertificate

AttachLoadBalancerToSubnets

ConfigureHealthCheck

ModifyLoadBalancerAttributes

CreateAppCookieStickinessPolicy

DescribeInstanceHealth

AddTags

DescribeLoadBalancerAttributes

CreateLoadBalancerListeners

DeleteLoadBalancerPolicy

DetachLoadBalancerFromSubnets

RegisterInstancesWithLoadBalancer

CreateLoadBalancer

DeleteLoadBalancerListeners

SetLoadBalancerPoliciesOfListener

Types

AccessLog

accessLog Source

Arguments

:: Bool

alEnabled

-> AccessLog 

Creates a value of AccessLog with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

alEmitInterval :: Lens' AccessLog (Maybe Int) Source

The interval for publishing the access logs. You can specify an interval of either 5 minutes or 60 minutes.

Default: 60 minutes

alS3BucketPrefix :: Lens' AccessLog (Maybe Text) Source

The logical hierarchy you created for your Amazon S3 bucket, for example 'my-bucket-prefix\/prod'. If the prefix is not provided, the log is placed at the root level of the bucket.

alS3BucketName :: Lens' AccessLog (Maybe Text) Source

The name of the Amazon S3 bucket where the access logs are stored.

alEnabled :: Lens' AccessLog Bool Source

Specifies whether access log is enabled for the load balancer.

AdditionalAttribute

additionalAttribute :: AdditionalAttribute Source

Creates a value of AdditionalAttribute with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

aaValue :: Lens' AdditionalAttribute (Maybe Text) Source

This parameter is reserved.

aaKey :: Lens' AdditionalAttribute (Maybe Text) Source

This parameter is reserved.

AppCookieStickinessPolicy

appCookieStickinessPolicy :: AppCookieStickinessPolicy Source

Creates a value of AppCookieStickinessPolicy with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

acspPolicyName :: Lens' AppCookieStickinessPolicy (Maybe Text) Source

The mnemonic name for the policy being created. The name must be unique within a set of policies for this load balancer.

acspCookieName :: Lens' AppCookieStickinessPolicy (Maybe Text) Source

The name of the application cookie used for stickiness.

BackendServerDescription

backendServerDescription :: BackendServerDescription Source

Creates a value of BackendServerDescription with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

bsdPolicyNames :: Lens' BackendServerDescription [Text] Source

The names of the policies enabled for the back-end server.

bsdInstancePort :: Lens' BackendServerDescription (Maybe Natural) Source

The port on which the back-end server is listening.

ConnectionDraining

connectionDraining Source

Creates a value of ConnectionDraining with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

cdTimeout :: Lens' ConnectionDraining (Maybe Int) Source

The maximum time, in seconds, to keep the existing connections open before deregistering the instances.

cdEnabled :: Lens' ConnectionDraining Bool Source

Specifies whether connection draining is enabled for the load balancer.

ConnectionSettings

connectionSettings Source

Creates a value of ConnectionSettings with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

csIdleTimeout :: Lens' ConnectionSettings Natural Source

The time, in seconds, that the connection is allowed to be idle (no data has been sent over the connection) before it is closed by the load balancer.

CrossZoneLoadBalancing

crossZoneLoadBalancing Source

Creates a value of CrossZoneLoadBalancing with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

czlbEnabled :: Lens' CrossZoneLoadBalancing Bool Source

Specifies whether cross-zone load balancing is enabled for the load balancer.

HealthCheck

healthCheck Source

Creates a value of HealthCheck with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

hcTarget :: Lens' HealthCheck Text Source

The instance being checked. The protocol is either TCP, HTTP, HTTPS, or SSL. The range of valid ports is one (1) through 65535.

TCP is the default, specified as a TCP: port pair, for example "TCP:5000". In this case, a health check simply attempts to open a TCP connection to the instance on the specified port. Failure to connect within the configured timeout is considered unhealthy.

SSL is also specified as SSL: port pair, for example, SSL:5000.

For HTTP/HTTPS, you must include a ping path in the string. HTTP is specified as a HTTP:port;/;PathToPing; grouping, for example "HTTP:80/weather/us/wa/seattle". In this case, a HTTP GET request is issued to the instance on the given port and path. Any answer other than "200 OK" within the timeout period is considered unhealthy.

The total length of the HTTP ping target must be 1024 16-bit Unicode characters or less.

hcInterval :: Lens' HealthCheck Natural Source

The approximate interval, in seconds, between health checks of an individual instance.

hcTimeout :: Lens' HealthCheck Natural Source

The amount of time, in seconds, during which no response means a failed health check.

This value must be less than the Interval value.

hcUnhealthyThreshold :: Lens' HealthCheck Natural Source

The number of consecutive health check failures required before moving the instance to the Unhealthy state.

hcHealthyThreshold :: Lens' HealthCheck Natural Source

The number of consecutive health checks successes required before moving the instance to the Healthy state.

Instance

data Instance Source

The ID of a back-end instance.

See: instance' smart constructor.

instance' :: Instance Source

Creates a value of Instance with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

iInstanceId :: Lens' Instance (Maybe Text) Source

The ID of the instance.

InstanceState

data InstanceState Source

Information about the state of a back-end instance.

See: instanceState smart constructor.

instanceState :: InstanceState Source

Creates a value of InstanceState with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

isInstanceId :: Lens' InstanceState (Maybe Text) Source

The ID of the instance.

isState :: Lens' InstanceState (Maybe Text) Source

The current state of the instance.

Valid values: InService | OutOfService | Unknown

isReasonCode :: Lens' InstanceState (Maybe Text) Source

Information about the cause of OutOfService instances. Specifically, whether the cause is Elastic Load Balancing or the instance.

Valid values: ELB | Instance | 'N\/A'

isDescription :: Lens' InstanceState (Maybe Text) Source

A description of the instance state. This string can contain one or more of the following messages.

  • 'N\/A'
  • 'A transient error occurred. Please try again later.'
  • 'Instance has failed at least the UnhealthyThreshold number of health checks consecutively.'
  • 'Instance has not passed the configured HealthyThreshold number of health checks consecutively.'
  • 'Instance registration is still in progress.'
  • 'Instance is in the EC2 Availability Zone for which LoadBalancer is not configured to route traffic to.'
  • 'Instance is not currently registered with the LoadBalancer.'
  • 'Instance deregistration currently in progress.'
  • 'Disable Availability Zone is currently in progress.'
  • 'Instance is in pending state.'
  • 'Instance is in stopped state.'
  • 'Instance is in terminated state.'

LBCookieStickinessPolicy

lBCookieStickinessPolicy :: LBCookieStickinessPolicy Source

Creates a value of LBCookieStickinessPolicy with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

lbcspPolicyName :: Lens' LBCookieStickinessPolicy (Maybe Text) Source

The name for the policy being created. The name must be unique within the set of policies for this load balancer.

lbcspCookieExpirationPeriod :: Lens' LBCookieStickinessPolicy (Maybe Integer) Source

The time period, in seconds, after which the cookie should be considered stale. If this parameter is not specified, the stickiness session lasts for the duration of the browser session.

Listener

data Listener Source

Information about a listener.

For information about the protocols and the ports supported by Elastic Load Balancing, see Listener Configurations for Elastic Load Balancing in the Elastic Load Balancing Developer Guide.

See: listener smart constructor.

listener Source

Creates a value of Listener with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

lInstanceProtocol :: Lens' Listener (Maybe Text) Source

The protocol to use for routing traffic to back-end instances: HTTP, HTTPS, TCP, or SSL.

If the front-end protocol is HTTP, HTTPS, TCP, or SSL, InstanceProtocol must be at the same protocol.

If there is another listener with the same InstancePort whose InstanceProtocol is secure, (HTTPS or SSL), the listener's InstanceProtocol must also be secure.

If there is another listener with the same InstancePort whose InstanceProtocol is HTTP or TCP, the listener's InstanceProtocol must be HTTP or TCP.

lSSLCertificateId :: Lens' Listener (Maybe Text) Source

The Amazon Resource Name (ARN) of the server certificate.

lProtocol :: Lens' Listener Text Source

The load balancer transport protocol to use for routing: HTTP, HTTPS, TCP, or SSL.

lLoadBalancerPort :: Lens' Listener Int Source

The port on which the load balancer is listening. The supported ports are: 25, 80, 443, 465, 587, and 1024-65535.

lInstancePort :: Lens' Listener Natural Source

The port on which the instance is listening.

ListenerDescription

listenerDescription :: ListenerDescription Source

Creates a value of ListenerDescription with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

ldPolicyNames :: Lens' ListenerDescription [Text] Source

The policies. If there are no policies enabled, the list is empty.

LoadBalancerAttributes

loadBalancerAttributes :: LoadBalancerAttributes Source

Creates a value of LoadBalancerAttributes with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

lbaCrossZoneLoadBalancing :: Lens' LoadBalancerAttributes (Maybe CrossZoneLoadBalancing) Source

If enabled, the load balancer routes the request traffic evenly across all back-end instances regardless of the Availability Zones.

For more information, see Enable Cross-Zone Load Balancing in the Elastic Load Balancing Developer Guide.

lbaAccessLog :: Lens' LoadBalancerAttributes (Maybe AccessLog) Source

If enabled, the load balancer captures detailed information of all requests and delivers the information to the Amazon S3 bucket that you specify.

For more information, see Enable Access Logs in the Elastic Load Balancing Developer Guide.

lbaConnectionSettings :: Lens' LoadBalancerAttributes (Maybe ConnectionSettings) Source

If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration.

By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see Configure Idle Connection Timeout in the Elastic Load Balancing Developer Guide.

lbaConnectionDraining :: Lens' LoadBalancerAttributes (Maybe ConnectionDraining) Source

If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy back-end instance.

For more information, see Enable Connection Draining in the Elastic Load Balancing Developer Guide.

LoadBalancerDescription

lbdSourceSecurityGroup :: Lens' LoadBalancerDescription (Maybe SourceSecurityGroup) Source

The security group that you can use as part of your inbound rules for your load balancer's back-end application instances. To only allow traffic from load balancers, add a security group rule to your back end instance that specifies this source security group as the inbound source.

lbdCanonicalHostedZoneName :: Lens' LoadBalancerDescription (Maybe Text) Source

The Amazon Route 53 hosted zone associated with the load balancer.

For more information, see Using Domain Names With Elastic Load Balancing in the Elastic Load Balancing Developer Guide.

lbdSecurityGroups :: Lens' LoadBalancerDescription [Text] Source

The security groups for the load balancer. Valid only for load balancers in a VPC.

lbdHealthCheck :: Lens' LoadBalancerDescription (Maybe HealthCheck) Source

Information about the health checks conducted on the load balancer.

lbdCreatedTime :: Lens' LoadBalancerDescription (Maybe UTCTime) Source

The date and time the load balancer was created.

lbdVPCId :: Lens' LoadBalancerDescription (Maybe Text) Source

The ID of the VPC for the load balancer.

lbdSubnets :: Lens' LoadBalancerDescription [Text] Source

The IDs of the subnets for the load balancer.

lbdAvailabilityZones :: Lens' LoadBalancerDescription [Text] Source

The Availability Zones for the load balancer.

lbdCanonicalHostedZoneNameId :: Lens' LoadBalancerDescription (Maybe Text) Source

The ID of the Amazon Route 53 hosted zone name associated with the load balancer.

lbdInstances :: Lens' LoadBalancerDescription [Instance] Source

The IDs of the instances for the load balancer.

lbdScheme :: Lens' LoadBalancerDescription (Maybe Text) Source

The type of load balancer. Valid only for load balancers in a VPC.

If Scheme is 'internet-facing', the load balancer has a public DNS name that resolves to a public IP address.

If Scheme is internal, the load balancer has a public DNS name that resolves to a private IP address.

lbdDNSName :: Lens' LoadBalancerDescription (Maybe Text) Source

The external DNS name of the load balancer.

lbdPolicies :: Lens' LoadBalancerDescription (Maybe Policies) Source

The policies defined for the load balancer.

Policies

data Policies Source

The policies for a load balancer.

See: policies smart constructor.

policies :: Policies Source

Creates a value of Policies with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

pOtherPolicies :: Lens' Policies [Text] Source

The policies other than the stickiness policies.

pLBCookieStickinessPolicies :: Lens' Policies [LBCookieStickinessPolicy] Source

The stickiness policies created using CreateLBCookieStickinessPolicy.

pAppCookieStickinessPolicies :: Lens' Policies [AppCookieStickinessPolicy] Source

The stickiness policies created using CreateAppCookieStickinessPolicy.

PolicyAttribute

policyAttribute :: PolicyAttribute Source

Creates a value of PolicyAttribute with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

paAttributeValue :: Lens' PolicyAttribute (Maybe Text) Source

The value of the attribute.

paAttributeName :: Lens' PolicyAttribute (Maybe Text) Source

The name of the attribute.

PolicyAttributeDescription

policyAttributeDescription :: PolicyAttributeDescription Source

Creates a value of PolicyAttributeDescription with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

PolicyAttributeTypeDescription

policyAttributeTypeDescription :: PolicyAttributeTypeDescription Source

Creates a value of PolicyAttributeTypeDescription with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

patdAttributeType :: Lens' PolicyAttributeTypeDescription (Maybe Text) Source

The type of the attribute. For example, Boolean or Integer.

patdCardinality :: Lens' PolicyAttributeTypeDescription (Maybe Text) Source

The cardinality of the attribute.

Valid values:

  • ONE(1) : Single value required
  • ZERO_OR_ONE(0..1) : Up to one value can be supplied
  • ZERO_OR_MORE(0..*) : Optional. Multiple values are allowed
  • ONE_OR_MORE(1..*0) : Required. Multiple values are allowed

patdDefaultValue :: Lens' PolicyAttributeTypeDescription (Maybe Text) Source

The default value of the attribute, if applicable.

PolicyDescription

policyDescription :: PolicyDescription Source

Creates a value of PolicyDescription with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

pdPolicyName :: Lens' PolicyDescription (Maybe Text) Source

The name of the policy.

pdPolicyTypeName :: Lens' PolicyDescription (Maybe Text) Source

The name of the policy type.

PolicyTypeDescription

policyTypeDescription :: PolicyTypeDescription Source

Creates a value of PolicyTypeDescription with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

ptdDescription :: Lens' PolicyTypeDescription (Maybe Text) Source

A description of the policy type.

ptdPolicyAttributeTypeDescriptions :: Lens' PolicyTypeDescription [PolicyAttributeTypeDescription] Source

The description of the policy attributes associated with the policies defined by Elastic Load Balancing.

SourceSecurityGroup

sourceSecurityGroup :: SourceSecurityGroup Source

Creates a value of SourceSecurityGroup with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

ssgOwnerAlias :: Lens' SourceSecurityGroup (Maybe Text) Source

The owner of the security group.

ssgGroupName :: Lens' SourceSecurityGroup (Maybe Text) Source

The name of the security group.

Tag

data Tag Source

Information about a tag.

See: tag smart constructor.

tag Source

Arguments

:: Text

tagKey

-> Tag 

Creates a value of Tag with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

tagValue :: Lens' Tag (Maybe Text) Source

The value of the tag.

tagKey :: Lens' Tag Text Source

The key of the tag.

TagDescription

tagDescription :: TagDescription Source

Creates a value of TagDescription with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

tdLoadBalancerName :: Lens' TagDescription (Maybe Text) Source

The name of the load balancer.

TagKeyOnly

tagKeyOnly :: TagKeyOnly Source

Creates a value of TagKeyOnly with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

tkoKey :: Lens' TagKeyOnly (Maybe Text) Source

The name of the key.