stratosphere-0.51.0: library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionOriginGroups.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html
module Stratosphere.ResourceProperties.CloudFrontDistributionOriginGroups where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.CloudFrontDistributionOriginGroup
-- | Full data type definition for CloudFrontDistributionOriginGroups. See
-- 'cloudFrontDistributionOriginGroups' for a more convenient constructor.
data CloudFrontDistributionOriginGroups =
CloudFrontDistributionOriginGroups
{ _cloudFrontDistributionOriginGroupsItems :: Maybe [CloudFrontDistributionOriginGroup]
, _cloudFrontDistributionOriginGroupsQuantity :: Val Integer
} deriving (Show, Eq)
instance ToJSON CloudFrontDistributionOriginGroups where
toJSON CloudFrontDistributionOriginGroups{..} =
object $
catMaybes
[ fmap (("Items",) . toJSON) _cloudFrontDistributionOriginGroupsItems
, (Just . ("Quantity",) . toJSON) _cloudFrontDistributionOriginGroupsQuantity
]
-- | Constructor for 'CloudFrontDistributionOriginGroups' containing required
-- fields as arguments.
cloudFrontDistributionOriginGroups
:: Val Integer -- ^ 'cfdogQuantity'
-> CloudFrontDistributionOriginGroups
cloudFrontDistributionOriginGroups quantityarg =
CloudFrontDistributionOriginGroups
{ _cloudFrontDistributionOriginGroupsItems = Nothing
, _cloudFrontDistributionOriginGroupsQuantity = quantityarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html#cfn-cloudfront-distribution-origingroups-items
cfdogItems :: Lens' CloudFrontDistributionOriginGroups (Maybe [CloudFrontDistributionOriginGroup])
cfdogItems = lens _cloudFrontDistributionOriginGroupsItems (\s a -> s { _cloudFrontDistributionOriginGroupsItems = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroups.html#cfn-cloudfront-distribution-origingroups-quantity
cfdogQuantity :: Lens' CloudFrontDistributionOriginGroups (Val Integer)
cfdogQuantity = lens _cloudFrontDistributionOriginGroupsQuantity (\s a -> s { _cloudFrontDistributionOriginGroupsQuantity = a })