packages feed

stratosphere-0.51.0: library-gen/Stratosphere/ResourceProperties/CloudFrontDistributionOriginGroupMembers.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html

module Stratosphere.ResourceProperties.CloudFrontDistributionOriginGroupMembers where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.CloudFrontDistributionOriginGroupMember

-- | Full data type definition for CloudFrontDistributionOriginGroupMembers.
-- See 'cloudFrontDistributionOriginGroupMembers' for a more convenient
-- constructor.
data CloudFrontDistributionOriginGroupMembers =
  CloudFrontDistributionOriginGroupMembers
  { _cloudFrontDistributionOriginGroupMembersItems :: [CloudFrontDistributionOriginGroupMember]
  , _cloudFrontDistributionOriginGroupMembersQuantity :: Val Integer
  } deriving (Show, Eq)

instance ToJSON CloudFrontDistributionOriginGroupMembers where
  toJSON CloudFrontDistributionOriginGroupMembers{..} =
    object $
    catMaybes
    [ (Just . ("Items",) . toJSON) _cloudFrontDistributionOriginGroupMembersItems
    , (Just . ("Quantity",) . toJSON) _cloudFrontDistributionOriginGroupMembersQuantity
    ]

-- | Constructor for 'CloudFrontDistributionOriginGroupMembers' containing
-- required fields as arguments.
cloudFrontDistributionOriginGroupMembers
  :: [CloudFrontDistributionOriginGroupMember] -- ^ 'cfdogmItems'
  -> Val Integer -- ^ 'cfdogmQuantity'
  -> CloudFrontDistributionOriginGroupMembers
cloudFrontDistributionOriginGroupMembers itemsarg quantityarg =
  CloudFrontDistributionOriginGroupMembers
  { _cloudFrontDistributionOriginGroupMembersItems = itemsarg
  , _cloudFrontDistributionOriginGroupMembersQuantity = quantityarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html#cfn-cloudfront-distribution-origingroupmembers-items
cfdogmItems :: Lens' CloudFrontDistributionOriginGroupMembers [CloudFrontDistributionOriginGroupMember]
cfdogmItems = lens _cloudFrontDistributionOriginGroupMembersItems (\s a -> s { _cloudFrontDistributionOriginGroupMembersItems = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origingroupmembers.html#cfn-cloudfront-distribution-origingroupmembers-quantity
cfdogmQuantity :: Lens' CloudFrontDistributionOriginGroupMembers (Val Integer)
cfdogmQuantity = lens _cloudFrontDistributionOriginGroupMembersQuantity (\s a -> s { _cloudFrontDistributionOriginGroupMembersQuantity = a })