stratosphere-0.33.0: library-gen/Stratosphere/Resources/Route53ResolverResolverEndpoint.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html
module Stratosphere.Resources.Route53ResolverResolverEndpoint where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.Route53ResolverResolverEndpointIpAddressRequest
import Stratosphere.ResourceProperties.Tag
-- | Full data type definition for Route53ResolverResolverEndpoint. See
-- 'route53ResolverResolverEndpoint' for a more convenient constructor.
data Route53ResolverResolverEndpoint =
Route53ResolverResolverEndpoint
{ _route53ResolverResolverEndpointDirection :: Val Text
, _route53ResolverResolverEndpointIpAddresses :: [Route53ResolverResolverEndpointIpAddressRequest]
, _route53ResolverResolverEndpointName :: Maybe (Val Text)
, _route53ResolverResolverEndpointSecurityGroupIds :: ValList Text
, _route53ResolverResolverEndpointTags :: Maybe [Tag]
} deriving (Show, Eq)
instance ToResourceProperties Route53ResolverResolverEndpoint where
toResourceProperties Route53ResolverResolverEndpoint{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::Route53Resolver::ResolverEndpoint"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ (Just . ("Direction",) . toJSON) _route53ResolverResolverEndpointDirection
, (Just . ("IpAddresses",) . toJSON) _route53ResolverResolverEndpointIpAddresses
, fmap (("Name",) . toJSON) _route53ResolverResolverEndpointName
, (Just . ("SecurityGroupIds",) . toJSON) _route53ResolverResolverEndpointSecurityGroupIds
, fmap (("Tags",) . toJSON) _route53ResolverResolverEndpointTags
]
}
-- | Constructor for 'Route53ResolverResolverEndpoint' containing required
-- fields as arguments.
route53ResolverResolverEndpoint
:: Val Text -- ^ 'rrreDirection'
-> [Route53ResolverResolverEndpointIpAddressRequest] -- ^ 'rrreIpAddresses'
-> ValList Text -- ^ 'rrreSecurityGroupIds'
-> Route53ResolverResolverEndpoint
route53ResolverResolverEndpoint directionarg ipAddressesarg securityGroupIdsarg =
Route53ResolverResolverEndpoint
{ _route53ResolverResolverEndpointDirection = directionarg
, _route53ResolverResolverEndpointIpAddresses = ipAddressesarg
, _route53ResolverResolverEndpointName = Nothing
, _route53ResolverResolverEndpointSecurityGroupIds = securityGroupIdsarg
, _route53ResolverResolverEndpointTags = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html#cfn-route53resolver-resolverendpoint-direction
rrreDirection :: Lens' Route53ResolverResolverEndpoint (Val Text)
rrreDirection = lens _route53ResolverResolverEndpointDirection (\s a -> s { _route53ResolverResolverEndpointDirection = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html#cfn-route53resolver-resolverendpoint-ipaddresses
rrreIpAddresses :: Lens' Route53ResolverResolverEndpoint [Route53ResolverResolverEndpointIpAddressRequest]
rrreIpAddresses = lens _route53ResolverResolverEndpointIpAddresses (\s a -> s { _route53ResolverResolverEndpointIpAddresses = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html#cfn-route53resolver-resolverendpoint-name
rrreName :: Lens' Route53ResolverResolverEndpoint (Maybe (Val Text))
rrreName = lens _route53ResolverResolverEndpointName (\s a -> s { _route53ResolverResolverEndpointName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html#cfn-route53resolver-resolverendpoint-securitygroupids
rrreSecurityGroupIds :: Lens' Route53ResolverResolverEndpoint (ValList Text)
rrreSecurityGroupIds = lens _route53ResolverResolverEndpointSecurityGroupIds (\s a -> s { _route53ResolverResolverEndpointSecurityGroupIds = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53resolver-resolverendpoint.html#cfn-route53resolver-resolverendpoint-tags
rrreTags :: Lens' Route53ResolverResolverEndpoint (Maybe [Tag])
rrreTags = lens _route53ResolverResolverEndpointTags (\s a -> s { _route53ResolverResolverEndpointTags = a })