module Network.AWS.ELB.Types
(
ELB
, RESTError
, ns
, SourceSecurityGroup
, sourceSecurityGroup
, ssgGroupName
, ssgOwnerAlias
, TagDescription
, tagDescription
, tdLoadBalancerName
, tdTags
, Tag
, tag
, tagKey
, tagValue
, PolicyAttributeTypeDescription
, policyAttributeTypeDescription
, patdAttributeName
, patdAttributeType
, patdCardinality
, patdDefaultValue
, patdDescription
, HealthCheck
, healthCheck
, hcHealthyThreshold
, hcInterval
, hcTarget
, hcTimeout
, hcUnhealthyThreshold
, CrossZoneLoadBalancing
, crossZoneLoadBalancing
, czlbEnabled
, LoadBalancerAttributes
, loadBalancerAttributes
, lbaAccessLog
, lbaAdditionalAttributes
, lbaConnectionDraining
, lbaConnectionSettings
, lbaCrossZoneLoadBalancing
, AccessLog
, accessLog
, alEmitInterval
, alEnabled
, alS3BucketName
, alS3BucketPrefix
, ListenerDescription
, listenerDescription
, ldListener
, ldPolicyNames
, LBCookieStickinessPolicy
, lbcookieStickinessPolicy
, lbcspCookieExpirationPeriod
, lbcspPolicyName
, PolicyDescription
, policyDescription
, pdPolicyAttributeDescriptions
, pdPolicyName
, pdPolicyTypeName
, AppCookieStickinessPolicy
, appCookieStickinessPolicy
, acspCookieName
, acspPolicyName
, PolicyAttribute
, policyAttribute
, paAttributeName
, paAttributeValue
, LoadBalancerDescription
, loadBalancerDescription
, lbdAvailabilityZones
, lbdBackendServerDescriptions
, lbdCanonicalHostedZoneName
, lbdCanonicalHostedZoneNameID
, lbdCreatedTime
, lbdDNSName
, lbdHealthCheck
, lbdInstances
, lbdListenerDescriptions
, lbdLoadBalancerName
, lbdPolicies
, lbdScheme
, lbdSecurityGroups
, lbdSourceSecurityGroup
, lbdSubnets
, lbdVPCId
, BackendServerDescription
, backendServerDescription
, bsdInstancePort
, bsdPolicyNames
, PolicyAttributeDescription
, policyAttributeDescription
, padAttributeName
, padAttributeValue
, AdditionalAttribute
, additionalAttribute
, aaKey
, aaValue
, ConnectionSettings
, connectionSettings
, csIdleTimeout
, PolicyTypeDescription
, policyTypeDescription
, ptdDescription
, ptdPolicyAttributeTypeDescriptions
, ptdPolicyTypeName
, Policies
, policies
, pAppCookieStickinessPolicies
, pLBCookieStickinessPolicies
, pOtherPolicies
, Listener
, listener
, lInstancePort
, lInstanceProtocol
, lLoadBalancerPort
, lProtocol
, lSSLCertificateId
, ConnectionDraining
, connectionDraining
, cdEnabled
, cdTimeout
, InstanceState
, instanceState
, isDescription
, isInstanceId
, isReasonCode
, isState
, TagKeyOnly
, tagKeyOnly
, tkoKey
, Instance
, instance'
, iInstanceId
) where
import Network.AWS.Error
import Network.AWS.Prelude
import Network.AWS.Signing.V4
import qualified GHC.Exts
data ELB
instance AWSService ELB where
type Sg ELB = V4
type Er ELB = RESTError
service = Service
{ _svcEndpoint = regional
, _svcAbbrev = "ELB"
, _svcPrefix = "elasticloadbalancing"
, _svcVersion = "2012-06-01"
, _svcTargetPrefix = Nothing
, _svcJSONVersion = Nothing
}
handle = restError statusSuccess
ns :: Text
ns = "http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/"
data SourceSecurityGroup = SourceSecurityGroup
{ _ssgGroupName :: Maybe Text
, _ssgOwnerAlias :: Maybe Text
} deriving (Eq, Ord, Show)
sourceSecurityGroup :: SourceSecurityGroup
sourceSecurityGroup = SourceSecurityGroup
{ _ssgOwnerAlias = Nothing
, _ssgGroupName = Nothing
}
ssgGroupName :: Lens' SourceSecurityGroup (Maybe Text)
ssgGroupName = lens _ssgGroupName (\s a -> s { _ssgGroupName = a })
ssgOwnerAlias :: Lens' SourceSecurityGroup (Maybe Text)
ssgOwnerAlias = lens _ssgOwnerAlias (\s a -> s { _ssgOwnerAlias = a })
instance FromXML SourceSecurityGroup where
parseXML x = SourceSecurityGroup
<$> x .@? "GroupName"
<*> x .@? "OwnerAlias"
instance ToQuery SourceSecurityGroup where
toQuery SourceSecurityGroup{..} = mconcat
[ "GroupName" =? _ssgGroupName
, "OwnerAlias" =? _ssgOwnerAlias
]
data TagDescription = TagDescription
{ _tdLoadBalancerName :: Maybe Text
, _tdTags :: List1 "Tags" Tag
} deriving (Eq, Show)
tagDescription :: NonEmpty Tag
-> TagDescription
tagDescription p1 = TagDescription
{ _tdTags = withIso _List1 (const id) p1
, _tdLoadBalancerName = Nothing
}
tdLoadBalancerName :: Lens' TagDescription (Maybe Text)
tdLoadBalancerName =
lens _tdLoadBalancerName (\s a -> s { _tdLoadBalancerName = a })
tdTags :: Lens' TagDescription (NonEmpty Tag)
tdTags = lens _tdTags (\s a -> s { _tdTags = a }) . _List1
instance FromXML TagDescription where
parseXML x = TagDescription
<$> x .@? "LoadBalancerName"
<*> x .@ "Tags"
instance ToQuery TagDescription where
toQuery TagDescription{..} = mconcat
[ "LoadBalancerName" =? _tdLoadBalancerName
, "Tags" =? _tdTags
]
data Tag = Tag
{ _tagKey :: Text
, _tagValue :: Maybe Text
} deriving (Eq, Ord, Show)
tag :: Text
-> Tag
tag p1 = Tag
{ _tagKey = p1
, _tagValue = Nothing
}
tagKey :: Lens' Tag Text
tagKey = lens _tagKey (\s a -> s { _tagKey = a })
tagValue :: Lens' Tag (Maybe Text)
tagValue = lens _tagValue (\s a -> s { _tagValue = a })
instance FromXML Tag where
parseXML x = Tag
<$> x .@ "Key"
<*> x .@? "Value"
instance ToQuery Tag where
toQuery Tag{..} = mconcat
[ "Key" =? _tagKey
, "Value" =? _tagValue
]
data PolicyAttributeTypeDescription = PolicyAttributeTypeDescription
{ _patdAttributeName :: Maybe Text
, _patdAttributeType :: Maybe Text
, _patdCardinality :: Maybe Text
, _patdDefaultValue :: Maybe Text
, _patdDescription :: Maybe Text
} deriving (Eq, Ord, Show)
policyAttributeTypeDescription :: PolicyAttributeTypeDescription
policyAttributeTypeDescription = PolicyAttributeTypeDescription
{ _patdAttributeName = Nothing
, _patdAttributeType = Nothing
, _patdDescription = Nothing
, _patdDefaultValue = Nothing
, _patdCardinality = Nothing
}
patdAttributeName :: Lens' PolicyAttributeTypeDescription (Maybe Text)
patdAttributeName =
lens _patdAttributeName (\s a -> s { _patdAttributeName = a })
patdAttributeType :: Lens' PolicyAttributeTypeDescription (Maybe Text)
patdAttributeType =
lens _patdAttributeType (\s a -> s { _patdAttributeType = a })
patdCardinality :: Lens' PolicyAttributeTypeDescription (Maybe Text)
patdCardinality = lens _patdCardinality (\s a -> s { _patdCardinality = a })
patdDefaultValue :: Lens' PolicyAttributeTypeDescription (Maybe Text)
patdDefaultValue = lens _patdDefaultValue (\s a -> s { _patdDefaultValue = a })
patdDescription :: Lens' PolicyAttributeTypeDescription (Maybe Text)
patdDescription = lens _patdDescription (\s a -> s { _patdDescription = a })
instance FromXML PolicyAttributeTypeDescription where
parseXML x = PolicyAttributeTypeDescription
<$> x .@? "AttributeName"
<*> x .@? "AttributeType"
<*> x .@? "Cardinality"
<*> x .@? "DefaultValue"
<*> x .@? "Description"
instance ToQuery PolicyAttributeTypeDescription where
toQuery PolicyAttributeTypeDescription{..} = mconcat
[ "AttributeName" =? _patdAttributeName
, "AttributeType" =? _patdAttributeType
, "Cardinality" =? _patdCardinality
, "DefaultValue" =? _patdDefaultValue
, "Description" =? _patdDescription
]
data HealthCheck = HealthCheck
{ _hcHealthyThreshold :: Nat
, _hcInterval :: Nat
, _hcTarget :: Text
, _hcTimeout :: Nat
, _hcUnhealthyThreshold :: Nat
} deriving (Eq, Ord, Show)
healthCheck :: Text
-> Natural
-> Natural
-> Natural
-> Natural
-> HealthCheck
healthCheck p1 p2 p3 p4 p5 = HealthCheck
{ _hcTarget = p1
, _hcInterval = withIso _Nat (const id) p2
, _hcTimeout = withIso _Nat (const id) p3
, _hcUnhealthyThreshold = withIso _Nat (const id) p4
, _hcHealthyThreshold = withIso _Nat (const id) p5
}
hcHealthyThreshold :: Lens' HealthCheck Natural
hcHealthyThreshold =
lens _hcHealthyThreshold (\s a -> s { _hcHealthyThreshold = a })
. _Nat
hcInterval :: Lens' HealthCheck Natural
hcInterval = lens _hcInterval (\s a -> s { _hcInterval = a }) . _Nat
hcTarget :: Lens' HealthCheck Text
hcTarget = lens _hcTarget (\s a -> s { _hcTarget = a })
hcTimeout :: Lens' HealthCheck Natural
hcTimeout = lens _hcTimeout (\s a -> s { _hcTimeout = a }) . _Nat
hcUnhealthyThreshold :: Lens' HealthCheck Natural
hcUnhealthyThreshold =
lens _hcUnhealthyThreshold (\s a -> s { _hcUnhealthyThreshold = a })
. _Nat
instance FromXML HealthCheck where
parseXML x = HealthCheck
<$> x .@ "HealthyThreshold"
<*> x .@ "Interval"
<*> x .@ "Target"
<*> x .@ "Timeout"
<*> x .@ "UnhealthyThreshold"
instance ToQuery HealthCheck where
toQuery HealthCheck{..} = mconcat
[ "HealthyThreshold" =? _hcHealthyThreshold
, "Interval" =? _hcInterval
, "Target" =? _hcTarget
, "Timeout" =? _hcTimeout
, "UnhealthyThreshold" =? _hcUnhealthyThreshold
]
newtype CrossZoneLoadBalancing = CrossZoneLoadBalancing
{ _czlbEnabled :: Bool
} deriving (Eq, Ord, Show, Enum)
crossZoneLoadBalancing :: Bool
-> CrossZoneLoadBalancing
crossZoneLoadBalancing p1 = CrossZoneLoadBalancing
{ _czlbEnabled = p1
}
czlbEnabled :: Lens' CrossZoneLoadBalancing Bool
czlbEnabled = lens _czlbEnabled (\s a -> s { _czlbEnabled = a })
instance FromXML CrossZoneLoadBalancing where
parseXML x = CrossZoneLoadBalancing
<$> x .@ "Enabled"
instance ToQuery CrossZoneLoadBalancing where
toQuery CrossZoneLoadBalancing{..} = mconcat
[ "Enabled" =? _czlbEnabled
]
data LoadBalancerAttributes = LoadBalancerAttributes
{ _lbaAccessLog :: Maybe AccessLog
, _lbaAdditionalAttributes :: List "AdditionalAttributes" AdditionalAttribute
, _lbaConnectionDraining :: Maybe ConnectionDraining
, _lbaConnectionSettings :: Maybe ConnectionSettings
, _lbaCrossZoneLoadBalancing :: Maybe CrossZoneLoadBalancing
} deriving (Eq, Show)
loadBalancerAttributes :: LoadBalancerAttributes
loadBalancerAttributes = LoadBalancerAttributes
{ _lbaCrossZoneLoadBalancing = Nothing
, _lbaAccessLog = Nothing
, _lbaConnectionDraining = Nothing
, _lbaConnectionSettings = Nothing
, _lbaAdditionalAttributes = mempty
}
lbaAccessLog :: Lens' LoadBalancerAttributes (Maybe AccessLog)
lbaAccessLog = lens _lbaAccessLog (\s a -> s { _lbaAccessLog = a })
lbaAdditionalAttributes :: Lens' LoadBalancerAttributes [AdditionalAttribute]
lbaAdditionalAttributes =
lens _lbaAdditionalAttributes (\s a -> s { _lbaAdditionalAttributes = a })
. _List
lbaConnectionDraining :: Lens' LoadBalancerAttributes (Maybe ConnectionDraining)
lbaConnectionDraining =
lens _lbaConnectionDraining (\s a -> s { _lbaConnectionDraining = a })
lbaConnectionSettings :: Lens' LoadBalancerAttributes (Maybe ConnectionSettings)
lbaConnectionSettings =
lens _lbaConnectionSettings (\s a -> s { _lbaConnectionSettings = a })
lbaCrossZoneLoadBalancing :: Lens' LoadBalancerAttributes (Maybe CrossZoneLoadBalancing)
lbaCrossZoneLoadBalancing =
lens _lbaCrossZoneLoadBalancing
(\s a -> s { _lbaCrossZoneLoadBalancing = a })
instance FromXML LoadBalancerAttributes where
parseXML x = LoadBalancerAttributes
<$> x .@? "AccessLog"
<*> x .@ "AdditionalAttributes"
<*> x .@? "ConnectionDraining"
<*> x .@? "ConnectionSettings"
<*> x .@? "CrossZoneLoadBalancing"
instance ToQuery LoadBalancerAttributes where
toQuery LoadBalancerAttributes{..} = mconcat
[ "AccessLog" =? _lbaAccessLog
, "AdditionalAttributes" =? _lbaAdditionalAttributes
, "ConnectionDraining" =? _lbaConnectionDraining
, "ConnectionSettings" =? _lbaConnectionSettings
, "CrossZoneLoadBalancing" =? _lbaCrossZoneLoadBalancing
]
data AccessLog = AccessLog
{ _alEmitInterval :: Maybe Int
, _alEnabled :: Bool
, _alS3BucketName :: Maybe Text
, _alS3BucketPrefix :: Maybe Text
} deriving (Eq, Ord, Show)
accessLog :: Bool
-> AccessLog
accessLog p1 = AccessLog
{ _alEnabled = p1
, _alS3BucketName = Nothing
, _alEmitInterval = Nothing
, _alS3BucketPrefix = Nothing
}
alEmitInterval :: Lens' AccessLog (Maybe Int)
alEmitInterval = lens _alEmitInterval (\s a -> s { _alEmitInterval = a })
alEnabled :: Lens' AccessLog Bool
alEnabled = lens _alEnabled (\s a -> s { _alEnabled = a })
alS3BucketName :: Lens' AccessLog (Maybe Text)
alS3BucketName = lens _alS3BucketName (\s a -> s { _alS3BucketName = a })
alS3BucketPrefix :: Lens' AccessLog (Maybe Text)
alS3BucketPrefix = lens _alS3BucketPrefix (\s a -> s { _alS3BucketPrefix = a })
instance FromXML AccessLog where
parseXML x = AccessLog
<$> x .@? "EmitInterval"
<*> x .@ "Enabled"
<*> x .@? "S3BucketName"
<*> x .@? "S3BucketPrefix"
instance ToQuery AccessLog where
toQuery AccessLog{..} = mconcat
[ "EmitInterval" =? _alEmitInterval
, "Enabled" =? _alEnabled
, "S3BucketName" =? _alS3BucketName
, "S3BucketPrefix" =? _alS3BucketPrefix
]
data ListenerDescription = ListenerDescription
{ _ldListener :: Maybe Listener
, _ldPolicyNames :: List "PolicyNames" Text
} deriving (Eq, Show)
listenerDescription :: ListenerDescription
listenerDescription = ListenerDescription
{ _ldListener = Nothing
, _ldPolicyNames = mempty
}
ldListener :: Lens' ListenerDescription (Maybe Listener)
ldListener = lens _ldListener (\s a -> s { _ldListener = a })
ldPolicyNames :: Lens' ListenerDescription [Text]
ldPolicyNames = lens _ldPolicyNames (\s a -> s { _ldPolicyNames = a }) . _List
instance FromXML ListenerDescription where
parseXML x = ListenerDescription
<$> x .@? "Listener"
<*> x .@ "PolicyNames"
instance ToQuery ListenerDescription where
toQuery ListenerDescription{..} = mconcat
[ "Listener" =? _ldListener
, "PolicyNames" =? _ldPolicyNames
]
data LBCookieStickinessPolicy = LBCookieStickinessPolicy
{ _lbcspCookieExpirationPeriod :: Maybe Integer
, _lbcspPolicyName :: Maybe Text
} deriving (Eq, Ord, Show)
lbcookieStickinessPolicy :: LBCookieStickinessPolicy
lbcookieStickinessPolicy = LBCookieStickinessPolicy
{ _lbcspPolicyName = Nothing
, _lbcspCookieExpirationPeriod = Nothing
}
lbcspCookieExpirationPeriod :: Lens' LBCookieStickinessPolicy (Maybe Integer)
lbcspCookieExpirationPeriod =
lens _lbcspCookieExpirationPeriod
(\s a -> s { _lbcspCookieExpirationPeriod = a })
lbcspPolicyName :: Lens' LBCookieStickinessPolicy (Maybe Text)
lbcspPolicyName = lens _lbcspPolicyName (\s a -> s { _lbcspPolicyName = a })
instance FromXML LBCookieStickinessPolicy where
parseXML x = LBCookieStickinessPolicy
<$> x .@? "CookieExpirationPeriod"
<*> x .@? "PolicyName"
instance ToQuery LBCookieStickinessPolicy where
toQuery LBCookieStickinessPolicy{..} = mconcat
[ "CookieExpirationPeriod" =? _lbcspCookieExpirationPeriod
, "PolicyName" =? _lbcspPolicyName
]
data PolicyDescription = PolicyDescription
{ _pdPolicyAttributeDescriptions :: List "PolicyAttributeDescriptions" PolicyAttributeDescription
, _pdPolicyName :: Maybe Text
, _pdPolicyTypeName :: Maybe Text
} deriving (Eq, Show)
policyDescription :: PolicyDescription
policyDescription = PolicyDescription
{ _pdPolicyName = Nothing
, _pdPolicyTypeName = Nothing
, _pdPolicyAttributeDescriptions = mempty
}
pdPolicyAttributeDescriptions :: Lens' PolicyDescription [PolicyAttributeDescription]
pdPolicyAttributeDescriptions =
lens _pdPolicyAttributeDescriptions
(\s a -> s { _pdPolicyAttributeDescriptions = a })
. _List
pdPolicyName :: Lens' PolicyDescription (Maybe Text)
pdPolicyName = lens _pdPolicyName (\s a -> s { _pdPolicyName = a })
pdPolicyTypeName :: Lens' PolicyDescription (Maybe Text)
pdPolicyTypeName = lens _pdPolicyTypeName (\s a -> s { _pdPolicyTypeName = a })
instance FromXML PolicyDescription where
parseXML x = PolicyDescription
<$> x .@ "PolicyAttributeDescriptions"
<*> x .@? "PolicyName"
<*> x .@? "PolicyTypeName"
instance ToQuery PolicyDescription where
toQuery PolicyDescription{..} = mconcat
[ "PolicyAttributeDescriptions" =? _pdPolicyAttributeDescriptions
, "PolicyName" =? _pdPolicyName
, "PolicyTypeName" =? _pdPolicyTypeName
]
data AppCookieStickinessPolicy = AppCookieStickinessPolicy
{ _acspCookieName :: Maybe Text
, _acspPolicyName :: Maybe Text
} deriving (Eq, Ord, Show)
appCookieStickinessPolicy :: AppCookieStickinessPolicy
appCookieStickinessPolicy = AppCookieStickinessPolicy
{ _acspPolicyName = Nothing
, _acspCookieName = Nothing
}
acspCookieName :: Lens' AppCookieStickinessPolicy (Maybe Text)
acspCookieName = lens _acspCookieName (\s a -> s { _acspCookieName = a })
acspPolicyName :: Lens' AppCookieStickinessPolicy (Maybe Text)
acspPolicyName = lens _acspPolicyName (\s a -> s { _acspPolicyName = a })
instance FromXML AppCookieStickinessPolicy where
parseXML x = AppCookieStickinessPolicy
<$> x .@? "CookieName"
<*> x .@? "PolicyName"
instance ToQuery AppCookieStickinessPolicy where
toQuery AppCookieStickinessPolicy{..} = mconcat
[ "CookieName" =? _acspCookieName
, "PolicyName" =? _acspPolicyName
]
data PolicyAttribute = PolicyAttribute
{ _paAttributeName :: Maybe Text
, _paAttributeValue :: Maybe Text
} deriving (Eq, Ord, Show)
policyAttribute :: PolicyAttribute
policyAttribute = PolicyAttribute
{ _paAttributeName = Nothing
, _paAttributeValue = Nothing
}
paAttributeName :: Lens' PolicyAttribute (Maybe Text)
paAttributeName = lens _paAttributeName (\s a -> s { _paAttributeName = a })
paAttributeValue :: Lens' PolicyAttribute (Maybe Text)
paAttributeValue = lens _paAttributeValue (\s a -> s { _paAttributeValue = a })
instance FromXML PolicyAttribute where
parseXML x = PolicyAttribute
<$> x .@? "AttributeName"
<*> x .@? "AttributeValue"
instance ToQuery PolicyAttribute where
toQuery PolicyAttribute{..} = mconcat
[ "AttributeName" =? _paAttributeName
, "AttributeValue" =? _paAttributeValue
]
data LoadBalancerDescription = LoadBalancerDescription
{ _lbdAvailabilityZones :: List "AvailabilityZones" Text
, _lbdBackendServerDescriptions :: List "BackendServerDescriptions" BackendServerDescription
, _lbdCanonicalHostedZoneName :: Maybe Text
, _lbdCanonicalHostedZoneNameID :: Maybe Text
, _lbdCreatedTime :: Maybe RFC822
, _lbdDNSName :: Maybe Text
, _lbdHealthCheck :: Maybe HealthCheck
, _lbdInstances :: List "Instances" Instance
, _lbdListenerDescriptions :: List "ListenerDescriptions" ListenerDescription
, _lbdLoadBalancerName :: Maybe Text
, _lbdPolicies :: Maybe Policies
, _lbdScheme :: Maybe Text
, _lbdSecurityGroups :: List "SecurityGroups" Text
, _lbdSourceSecurityGroup :: Maybe SourceSecurityGroup
, _lbdSubnets :: List "Subnets" Text
, _lbdVPCId :: Maybe Text
} deriving (Eq, Show)
loadBalancerDescription :: LoadBalancerDescription
loadBalancerDescription = LoadBalancerDescription
{ _lbdLoadBalancerName = Nothing
, _lbdDNSName = Nothing
, _lbdCanonicalHostedZoneName = Nothing
, _lbdCanonicalHostedZoneNameID = Nothing
, _lbdListenerDescriptions = mempty
, _lbdPolicies = Nothing
, _lbdBackendServerDescriptions = mempty
, _lbdAvailabilityZones = mempty
, _lbdSubnets = mempty
, _lbdVPCId = Nothing
, _lbdInstances = mempty
, _lbdHealthCheck = Nothing
, _lbdSourceSecurityGroup = Nothing
, _lbdSecurityGroups = mempty
, _lbdCreatedTime = Nothing
, _lbdScheme = Nothing
}
lbdAvailabilityZones :: Lens' LoadBalancerDescription [Text]
lbdAvailabilityZones =
lens _lbdAvailabilityZones (\s a -> s { _lbdAvailabilityZones = a })
. _List
lbdBackendServerDescriptions :: Lens' LoadBalancerDescription [BackendServerDescription]
lbdBackendServerDescriptions =
lens _lbdBackendServerDescriptions
(\s a -> s { _lbdBackendServerDescriptions = a })
. _List
lbdCanonicalHostedZoneName :: Lens' LoadBalancerDescription (Maybe Text)
lbdCanonicalHostedZoneName =
lens _lbdCanonicalHostedZoneName
(\s a -> s { _lbdCanonicalHostedZoneName = a })
lbdCanonicalHostedZoneNameID :: Lens' LoadBalancerDescription (Maybe Text)
lbdCanonicalHostedZoneNameID =
lens _lbdCanonicalHostedZoneNameID
(\s a -> s { _lbdCanonicalHostedZoneNameID = a })
lbdCreatedTime :: Lens' LoadBalancerDescription (Maybe UTCTime)
lbdCreatedTime = lens _lbdCreatedTime (\s a -> s { _lbdCreatedTime = a }) . mapping _Time
lbdDNSName :: Lens' LoadBalancerDescription (Maybe Text)
lbdDNSName = lens _lbdDNSName (\s a -> s { _lbdDNSName = a })
lbdHealthCheck :: Lens' LoadBalancerDescription (Maybe HealthCheck)
lbdHealthCheck = lens _lbdHealthCheck (\s a -> s { _lbdHealthCheck = a })
lbdInstances :: Lens' LoadBalancerDescription [Instance]
lbdInstances = lens _lbdInstances (\s a -> s { _lbdInstances = a }) . _List
lbdListenerDescriptions :: Lens' LoadBalancerDescription [ListenerDescription]
lbdListenerDescriptions =
lens _lbdListenerDescriptions (\s a -> s { _lbdListenerDescriptions = a })
. _List
lbdLoadBalancerName :: Lens' LoadBalancerDescription (Maybe Text)
lbdLoadBalancerName =
lens _lbdLoadBalancerName (\s a -> s { _lbdLoadBalancerName = a })
lbdPolicies :: Lens' LoadBalancerDescription (Maybe Policies)
lbdPolicies = lens _lbdPolicies (\s a -> s { _lbdPolicies = a })
lbdScheme :: Lens' LoadBalancerDescription (Maybe Text)
lbdScheme = lens _lbdScheme (\s a -> s { _lbdScheme = a })
lbdSecurityGroups :: Lens' LoadBalancerDescription [Text]
lbdSecurityGroups =
lens _lbdSecurityGroups (\s a -> s { _lbdSecurityGroups = a })
. _List
lbdSourceSecurityGroup :: Lens' LoadBalancerDescription (Maybe SourceSecurityGroup)
lbdSourceSecurityGroup =
lens _lbdSourceSecurityGroup (\s a -> s { _lbdSourceSecurityGroup = a })
lbdSubnets :: Lens' LoadBalancerDescription [Text]
lbdSubnets = lens _lbdSubnets (\s a -> s { _lbdSubnets = a }) . _List
lbdVPCId :: Lens' LoadBalancerDescription (Maybe Text)
lbdVPCId = lens _lbdVPCId (\s a -> s { _lbdVPCId = a })
instance FromXML LoadBalancerDescription where
parseXML x = LoadBalancerDescription
<$> x .@ "AvailabilityZones"
<*> x .@ "BackendServerDescriptions"
<*> x .@? "CanonicalHostedZoneName"
<*> x .@? "CanonicalHostedZoneNameID"
<*> x .@? "CreatedTime"
<*> x .@? "DNSName"
<*> x .@? "HealthCheck"
<*> x .@ "Instances"
<*> x .@ "ListenerDescriptions"
<*> x .@? "LoadBalancerName"
<*> x .@? "Policies"
<*> x .@? "Scheme"
<*> x .@ "SecurityGroups"
<*> x .@? "SourceSecurityGroup"
<*> x .@ "Subnets"
<*> x .@? "VPCId"
instance ToQuery LoadBalancerDescription where
toQuery LoadBalancerDescription{..} = mconcat
[ "AvailabilityZones" =? _lbdAvailabilityZones
, "BackendServerDescriptions" =? _lbdBackendServerDescriptions
, "CanonicalHostedZoneName" =? _lbdCanonicalHostedZoneName
, "CanonicalHostedZoneNameID" =? _lbdCanonicalHostedZoneNameID
, "CreatedTime" =? _lbdCreatedTime
, "DNSName" =? _lbdDNSName
, "HealthCheck" =? _lbdHealthCheck
, "Instances" =? _lbdInstances
, "ListenerDescriptions" =? _lbdListenerDescriptions
, "LoadBalancerName" =? _lbdLoadBalancerName
, "Policies" =? _lbdPolicies
, "Scheme" =? _lbdScheme
, "SecurityGroups" =? _lbdSecurityGroups
, "SourceSecurityGroup" =? _lbdSourceSecurityGroup
, "Subnets" =? _lbdSubnets
, "VPCId" =? _lbdVPCId
]
data BackendServerDescription = BackendServerDescription
{ _bsdInstancePort :: Maybe Nat
, _bsdPolicyNames :: List "PolicyNames" Text
} deriving (Eq, Ord, Show)
backendServerDescription :: BackendServerDescription
backendServerDescription = BackendServerDescription
{ _bsdInstancePort = Nothing
, _bsdPolicyNames = mempty
}
bsdInstancePort :: Lens' BackendServerDescription (Maybe Natural)
bsdInstancePort = lens _bsdInstancePort (\s a -> s { _bsdInstancePort = a }) . mapping _Nat
bsdPolicyNames :: Lens' BackendServerDescription [Text]
bsdPolicyNames = lens _bsdPolicyNames (\s a -> s { _bsdPolicyNames = a }) . _List
instance FromXML BackendServerDescription where
parseXML x = BackendServerDescription
<$> x .@? "InstancePort"
<*> x .@ "PolicyNames"
instance ToQuery BackendServerDescription where
toQuery BackendServerDescription{..} = mconcat
[ "InstancePort" =? _bsdInstancePort
, "PolicyNames" =? _bsdPolicyNames
]
data PolicyAttributeDescription = PolicyAttributeDescription
{ _padAttributeName :: Maybe Text
, _padAttributeValue :: Maybe Text
} deriving (Eq, Ord, Show)
policyAttributeDescription :: PolicyAttributeDescription
policyAttributeDescription = PolicyAttributeDescription
{ _padAttributeName = Nothing
, _padAttributeValue = Nothing
}
padAttributeName :: Lens' PolicyAttributeDescription (Maybe Text)
padAttributeName = lens _padAttributeName (\s a -> s { _padAttributeName = a })
padAttributeValue :: Lens' PolicyAttributeDescription (Maybe Text)
padAttributeValue =
lens _padAttributeValue (\s a -> s { _padAttributeValue = a })
instance FromXML PolicyAttributeDescription where
parseXML x = PolicyAttributeDescription
<$> x .@? "AttributeName"
<*> x .@? "AttributeValue"
instance ToQuery PolicyAttributeDescription where
toQuery PolicyAttributeDescription{..} = mconcat
[ "AttributeName" =? _padAttributeName
, "AttributeValue" =? _padAttributeValue
]
data AdditionalAttribute = AdditionalAttribute
{ _aaKey :: Maybe Text
, _aaValue :: Maybe Text
} deriving (Eq, Ord, Show)
additionalAttribute :: AdditionalAttribute
additionalAttribute = AdditionalAttribute
{ _aaKey = Nothing
, _aaValue = Nothing
}
aaKey :: Lens' AdditionalAttribute (Maybe Text)
aaKey = lens _aaKey (\s a -> s { _aaKey = a })
aaValue :: Lens' AdditionalAttribute (Maybe Text)
aaValue = lens _aaValue (\s a -> s { _aaValue = a })
instance FromXML AdditionalAttribute where
parseXML x = AdditionalAttribute
<$> x .@? "Key"
<*> x .@? "Value"
instance ToQuery AdditionalAttribute where
toQuery AdditionalAttribute{..} = mconcat
[ "Key" =? _aaKey
, "Value" =? _aaValue
]
newtype ConnectionSettings = ConnectionSettings
{ _csIdleTimeout :: Nat
} deriving (Eq, Ord, Show, Enum, Num, Integral, Whole, Real)
connectionSettings :: Natural
-> ConnectionSettings
connectionSettings p1 = ConnectionSettings
{ _csIdleTimeout = withIso _Nat (const id) p1
}
csIdleTimeout :: Lens' ConnectionSettings Natural
csIdleTimeout = lens _csIdleTimeout (\s a -> s { _csIdleTimeout = a }) . _Nat
instance FromXML ConnectionSettings where
parseXML x = ConnectionSettings
<$> x .@ "IdleTimeout"
instance ToQuery ConnectionSettings where
toQuery ConnectionSettings{..} = mconcat
[ "IdleTimeout" =? _csIdleTimeout
]
data PolicyTypeDescription = PolicyTypeDescription
{ _ptdDescription :: Maybe Text
, _ptdPolicyAttributeTypeDescriptions :: List "PolicyAttributeTypeDescriptions" PolicyAttributeTypeDescription
, _ptdPolicyTypeName :: Maybe Text
} deriving (Eq, Show)
policyTypeDescription :: PolicyTypeDescription
policyTypeDescription = PolicyTypeDescription
{ _ptdPolicyTypeName = Nothing
, _ptdDescription = Nothing
, _ptdPolicyAttributeTypeDescriptions = mempty
}
ptdDescription :: Lens' PolicyTypeDescription (Maybe Text)
ptdDescription = lens _ptdDescription (\s a -> s { _ptdDescription = a })
ptdPolicyAttributeTypeDescriptions :: Lens' PolicyTypeDescription [PolicyAttributeTypeDescription]
ptdPolicyAttributeTypeDescriptions =
lens _ptdPolicyAttributeTypeDescriptions
(\s a -> s { _ptdPolicyAttributeTypeDescriptions = a })
. _List
ptdPolicyTypeName :: Lens' PolicyTypeDescription (Maybe Text)
ptdPolicyTypeName =
lens _ptdPolicyTypeName (\s a -> s { _ptdPolicyTypeName = a })
instance FromXML PolicyTypeDescription where
parseXML x = PolicyTypeDescription
<$> x .@? "Description"
<*> x .@ "PolicyAttributeTypeDescriptions"
<*> x .@? "PolicyTypeName"
instance ToQuery PolicyTypeDescription where
toQuery PolicyTypeDescription{..} = mconcat
[ "Description" =? _ptdDescription
, "PolicyAttributeTypeDescriptions" =? _ptdPolicyAttributeTypeDescriptions
, "PolicyTypeName" =? _ptdPolicyTypeName
]
data Policies = Policies
{ _pAppCookieStickinessPolicies :: List "AppCookieStickinessPolicies" AppCookieStickinessPolicy
, _pLBCookieStickinessPolicies :: List "LBCookieStickinessPolicies" LBCookieStickinessPolicy
, _pOtherPolicies :: List "PolicyNames" Text
} deriving (Eq, Show)
policies :: Policies
policies = Policies
{ _pAppCookieStickinessPolicies = mempty
, _pLBCookieStickinessPolicies = mempty
, _pOtherPolicies = mempty
}
pAppCookieStickinessPolicies :: Lens' Policies [AppCookieStickinessPolicy]
pAppCookieStickinessPolicies =
lens _pAppCookieStickinessPolicies
(\s a -> s { _pAppCookieStickinessPolicies = a })
. _List
pLBCookieStickinessPolicies :: Lens' Policies [LBCookieStickinessPolicy]
pLBCookieStickinessPolicies =
lens _pLBCookieStickinessPolicies
(\s a -> s { _pLBCookieStickinessPolicies = a })
. _List
pOtherPolicies :: Lens' Policies [Text]
pOtherPolicies = lens _pOtherPolicies (\s a -> s { _pOtherPolicies = a }) . _List
instance FromXML Policies where
parseXML x = Policies
<$> x .@ "AppCookieStickinessPolicies"
<*> x .@ "LBCookieStickinessPolicies"
<*> x .@ "OtherPolicies"
instance ToQuery Policies where
toQuery Policies{..} = mconcat
[ "AppCookieStickinessPolicies" =? _pAppCookieStickinessPolicies
, "LBCookieStickinessPolicies" =? _pLBCookieStickinessPolicies
, "OtherPolicies" =? _pOtherPolicies
]
data Listener = Listener
{ _lInstancePort :: Nat
, _lInstanceProtocol :: Maybe Text
, _lLoadBalancerPort :: Int
, _lProtocol :: Text
, _lSSLCertificateId :: Maybe Text
} deriving (Eq, Ord, Show)
listener :: Text
-> Int
-> Natural
-> Listener
listener p1 p2 p3 = Listener
{ _lProtocol = p1
, _lLoadBalancerPort = p2
, _lInstancePort = withIso _Nat (const id) p3
, _lInstanceProtocol = Nothing
, _lSSLCertificateId = Nothing
}
lInstancePort :: Lens' Listener Natural
lInstancePort = lens _lInstancePort (\s a -> s { _lInstancePort = a }) . _Nat
lInstanceProtocol :: Lens' Listener (Maybe Text)
lInstanceProtocol =
lens _lInstanceProtocol (\s a -> s { _lInstanceProtocol = a })
lLoadBalancerPort :: Lens' Listener Int
lLoadBalancerPort =
lens _lLoadBalancerPort (\s a -> s { _lLoadBalancerPort = a })
lProtocol :: Lens' Listener Text
lProtocol = lens _lProtocol (\s a -> s { _lProtocol = a })
lSSLCertificateId :: Lens' Listener (Maybe Text)
lSSLCertificateId =
lens _lSSLCertificateId (\s a -> s { _lSSLCertificateId = a })
instance FromXML Listener where
parseXML x = Listener
<$> x .@ "InstancePort"
<*> x .@? "InstanceProtocol"
<*> x .@ "LoadBalancerPort"
<*> x .@ "Protocol"
<*> x .@? "SSLCertificateId"
instance ToQuery Listener where
toQuery Listener{..} = mconcat
[ "InstancePort" =? _lInstancePort
, "InstanceProtocol" =? _lInstanceProtocol
, "LoadBalancerPort" =? _lLoadBalancerPort
, "Protocol" =? _lProtocol
, "SSLCertificateId" =? _lSSLCertificateId
]
data ConnectionDraining = ConnectionDraining
{ _cdEnabled :: Bool
, _cdTimeout :: Maybe Int
} deriving (Eq, Ord, Show)
connectionDraining :: Bool
-> ConnectionDraining
connectionDraining p1 = ConnectionDraining
{ _cdEnabled = p1
, _cdTimeout = Nothing
}
cdEnabled :: Lens' ConnectionDraining Bool
cdEnabled = lens _cdEnabled (\s a -> s { _cdEnabled = a })
cdTimeout :: Lens' ConnectionDraining (Maybe Int)
cdTimeout = lens _cdTimeout (\s a -> s { _cdTimeout = a })
instance FromXML ConnectionDraining where
parseXML x = ConnectionDraining
<$> x .@ "Enabled"
<*> x .@? "Timeout"
instance ToQuery ConnectionDraining where
toQuery ConnectionDraining{..} = mconcat
[ "Enabled" =? _cdEnabled
, "Timeout" =? _cdTimeout
]
data InstanceState = InstanceState
{ _isDescription :: Maybe Text
, _isInstanceId :: Maybe Text
, _isReasonCode :: Maybe Text
, _isState :: Maybe Text
} deriving (Eq, Ord, Show)
instanceState :: InstanceState
instanceState = InstanceState
{ _isInstanceId = Nothing
, _isState = Nothing
, _isReasonCode = Nothing
, _isDescription = Nothing
}
isDescription :: Lens' InstanceState (Maybe Text)
isDescription = lens _isDescription (\s a -> s { _isDescription = a })
isInstanceId :: Lens' InstanceState (Maybe Text)
isInstanceId = lens _isInstanceId (\s a -> s { _isInstanceId = a })
isReasonCode :: Lens' InstanceState (Maybe Text)
isReasonCode = lens _isReasonCode (\s a -> s { _isReasonCode = a })
isState :: Lens' InstanceState (Maybe Text)
isState = lens _isState (\s a -> s { _isState = a })
instance FromXML InstanceState where
parseXML x = InstanceState
<$> x .@? "Description"
<*> x .@? "InstanceId"
<*> x .@? "ReasonCode"
<*> x .@? "State"
instance ToQuery InstanceState where
toQuery InstanceState{..} = mconcat
[ "Description" =? _isDescription
, "InstanceId" =? _isInstanceId
, "ReasonCode" =? _isReasonCode
, "State" =? _isState
]
newtype TagKeyOnly = TagKeyOnly
{ _tkoKey :: Maybe Text
} deriving (Eq, Ord, Show, Monoid)
tagKeyOnly :: TagKeyOnly
tagKeyOnly = TagKeyOnly
{ _tkoKey = Nothing
}
tkoKey :: Lens' TagKeyOnly (Maybe Text)
tkoKey = lens _tkoKey (\s a -> s { _tkoKey = a })
instance FromXML TagKeyOnly where
parseXML x = TagKeyOnly
<$> x .@? "Key"
instance ToQuery TagKeyOnly where
toQuery TagKeyOnly{..} = mconcat
[ "Key" =? _tkoKey
]
newtype Instance = Instance
{ _iInstanceId :: Maybe Text
} deriving (Eq, Ord, Show, Monoid)
instance' :: Instance
instance' = Instance
{ _iInstanceId = Nothing
}
iInstanceId :: Lens' Instance (Maybe Text)
iInstanceId = lens _iInstanceId (\s a -> s { _iInstanceId = a })
instance FromXML Instance where
parseXML x = Instance
<$> x .@? "InstanceId"
instance ToQuery Instance where
toQuery Instance{..} = mconcat
[ "InstanceId" =? _iInstanceId
]