packages feed

stratosphere-0.11.0: library-gen/Stratosphere/ResourceProperties/CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig.hs

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

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

module Stratosphere.ResourceProperties.CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig where

import Control.Lens hiding ((.=))
import Data.Aeson
import Data.Maybe (catMaybes)
import Data.Monoid (mempty)
import Data.Text

import Stratosphere.Values


-- | Full data type definition for
-- CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig.
-- See
-- 'cloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig'
-- for a more convenient constructor.
data CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig =
  CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig
  { _cloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigComment :: Val Text
  } deriving (Show, Eq)

instance ToJSON CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig where
  toJSON CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig{..} =
    object $
    catMaybes
    [ (Just . ("Comment",) . toJSON) _cloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigComment
    ]

instance FromJSON CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig where
  parseJSON (Object obj) =
    CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig <$>
      (obj .: "Comment")
  parseJSON _ = mempty

-- | Constructor for
-- 'CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig'
-- containing required fields as arguments.
cloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig
  :: Val Text -- ^ 'cfcfoaicfoaicComment'
  -> CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig
cloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig commentarg =
  CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig
  { _cloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigComment = commentarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig.html#cfn-cloudfront-cloudfrontoriginaccessidentity-cloudfrontoriginaccessidentityconfig-comment
cfcfoaicfoaicComment :: Lens' CloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfig (Val Text)
cfcfoaicfoaicComment = lens _cloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigComment (\s a -> s { _cloudFrontCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigComment = a })