packages feed

stratosphere-0.34.0: library-gen/Stratosphere/Resources/GreengrassCoreDefinitionVersion.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html

module Stratosphere.Resources.GreengrassCoreDefinitionVersion where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.GreengrassCoreDefinitionVersionCore

-- | Full data type definition for GreengrassCoreDefinitionVersion. See
-- 'greengrassCoreDefinitionVersion' for a more convenient constructor.
data GreengrassCoreDefinitionVersion =
  GreengrassCoreDefinitionVersion
  { _greengrassCoreDefinitionVersionCoreDefinitionId :: Val Text
  , _greengrassCoreDefinitionVersionCores :: [GreengrassCoreDefinitionVersionCore]
  } deriving (Show, Eq)

instance ToResourceProperties GreengrassCoreDefinitionVersion where
  toResourceProperties GreengrassCoreDefinitionVersion{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::Greengrass::CoreDefinitionVersion"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ (Just . ("CoreDefinitionId",) . toJSON) _greengrassCoreDefinitionVersionCoreDefinitionId
        , (Just . ("Cores",) . toJSON) _greengrassCoreDefinitionVersionCores
        ]
    }

-- | Constructor for 'GreengrassCoreDefinitionVersion' containing required
-- fields as arguments.
greengrassCoreDefinitionVersion
  :: Val Text -- ^ 'gcdvCoreDefinitionId'
  -> [GreengrassCoreDefinitionVersionCore] -- ^ 'gcdvCores'
  -> GreengrassCoreDefinitionVersion
greengrassCoreDefinitionVersion coreDefinitionIdarg coresarg =
  GreengrassCoreDefinitionVersion
  { _greengrassCoreDefinitionVersionCoreDefinitionId = coreDefinitionIdarg
  , _greengrassCoreDefinitionVersionCores = coresarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html#cfn-greengrass-coredefinitionversion-coredefinitionid
gcdvCoreDefinitionId :: Lens' GreengrassCoreDefinitionVersion (Val Text)
gcdvCoreDefinitionId = lens _greengrassCoreDefinitionVersionCoreDefinitionId (\s a -> s { _greengrassCoreDefinitionVersionCoreDefinitionId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html#cfn-greengrass-coredefinitionversion-cores
gcdvCores :: Lens' GreengrassCoreDefinitionVersion [GreengrassCoreDefinitionVersionCore]
gcdvCores = lens _greengrassCoreDefinitionVersionCores (\s a -> s { _greengrassCoreDefinitionVersionCores = a })