packages feed

stratosphere-0.34.0: library-gen/Stratosphere/ResourceProperties/GreengrassResourceDefinitionVersionResourceInstance.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html

module Stratosphere.ResourceProperties.GreengrassResourceDefinitionVersionResourceInstance where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.GreengrassResourceDefinitionVersionResourceDataContainer

-- | Full data type definition for
-- GreengrassResourceDefinitionVersionResourceInstance. See
-- 'greengrassResourceDefinitionVersionResourceInstance' for a more
-- convenient constructor.
data GreengrassResourceDefinitionVersionResourceInstance =
  GreengrassResourceDefinitionVersionResourceInstance
  { _greengrassResourceDefinitionVersionResourceInstanceId :: Val Text
  , _greengrassResourceDefinitionVersionResourceInstanceName :: Val Text
  , _greengrassResourceDefinitionVersionResourceInstanceResourceDataContainer :: GreengrassResourceDefinitionVersionResourceDataContainer
  } deriving (Show, Eq)

instance ToJSON GreengrassResourceDefinitionVersionResourceInstance where
  toJSON GreengrassResourceDefinitionVersionResourceInstance{..} =
    object $
    catMaybes
    [ (Just . ("Id",) . toJSON) _greengrassResourceDefinitionVersionResourceInstanceId
    , (Just . ("Name",) . toJSON) _greengrassResourceDefinitionVersionResourceInstanceName
    , (Just . ("ResourceDataContainer",) . toJSON) _greengrassResourceDefinitionVersionResourceInstanceResourceDataContainer
    ]

-- | Constructor for 'GreengrassResourceDefinitionVersionResourceInstance'
-- containing required fields as arguments.
greengrassResourceDefinitionVersionResourceInstance
  :: Val Text -- ^ 'grdvriId'
  -> Val Text -- ^ 'grdvriName'
  -> GreengrassResourceDefinitionVersionResourceDataContainer -- ^ 'grdvriResourceDataContainer'
  -> GreengrassResourceDefinitionVersionResourceInstance
greengrassResourceDefinitionVersionResourceInstance idarg namearg resourceDataContainerarg =
  GreengrassResourceDefinitionVersionResourceInstance
  { _greengrassResourceDefinitionVersionResourceInstanceId = idarg
  , _greengrassResourceDefinitionVersionResourceInstanceName = namearg
  , _greengrassResourceDefinitionVersionResourceInstanceResourceDataContainer = resourceDataContainerarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html#cfn-greengrass-resourcedefinitionversion-resourceinstance-id
grdvriId :: Lens' GreengrassResourceDefinitionVersionResourceInstance (Val Text)
grdvriId = lens _greengrassResourceDefinitionVersionResourceInstanceId (\s a -> s { _greengrassResourceDefinitionVersionResourceInstanceId = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html#cfn-greengrass-resourcedefinitionversion-resourceinstance-name
grdvriName :: Lens' GreengrassResourceDefinitionVersionResourceInstance (Val Text)
grdvriName = lens _greengrassResourceDefinitionVersionResourceInstanceName (\s a -> s { _greengrassResourceDefinitionVersionResourceInstanceName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html#cfn-greengrass-resourcedefinitionversion-resourceinstance-resourcedatacontainer
grdvriResourceDataContainer :: Lens' GreengrassResourceDefinitionVersionResourceInstance GreengrassResourceDefinitionVersionResourceDataContainer
grdvriResourceDataContainer = lens _greengrassResourceDefinitionVersionResourceInstanceResourceDataContainer (\s a -> s { _greengrassResourceDefinitionVersionResourceInstanceResourceDataContainer = a })