stratosphere-0.34.0: library-gen/Stratosphere/ResourceProperties/GreengrassDeviceDefinitionDevice.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html
module Stratosphere.ResourceProperties.GreengrassDeviceDefinitionDevice where
import Stratosphere.ResourceImports
-- | Full data type definition for GreengrassDeviceDefinitionDevice. See
-- 'greengrassDeviceDefinitionDevice' for a more convenient constructor.
data GreengrassDeviceDefinitionDevice =
GreengrassDeviceDefinitionDevice
{ _greengrassDeviceDefinitionDeviceCertificateArn :: Val Text
, _greengrassDeviceDefinitionDeviceId :: Val Text
, _greengrassDeviceDefinitionDeviceSyncShadow :: Maybe (Val Bool)
, _greengrassDeviceDefinitionDeviceThingArn :: Val Text
} deriving (Show, Eq)
instance ToJSON GreengrassDeviceDefinitionDevice where
toJSON GreengrassDeviceDefinitionDevice{..} =
object $
catMaybes
[ (Just . ("CertificateArn",) . toJSON) _greengrassDeviceDefinitionDeviceCertificateArn
, (Just . ("Id",) . toJSON) _greengrassDeviceDefinitionDeviceId
, fmap (("SyncShadow",) . toJSON) _greengrassDeviceDefinitionDeviceSyncShadow
, (Just . ("ThingArn",) . toJSON) _greengrassDeviceDefinitionDeviceThingArn
]
-- | Constructor for 'GreengrassDeviceDefinitionDevice' containing required
-- fields as arguments.
greengrassDeviceDefinitionDevice
:: Val Text -- ^ 'gdddCertificateArn'
-> Val Text -- ^ 'gdddId'
-> Val Text -- ^ 'gdddThingArn'
-> GreengrassDeviceDefinitionDevice
greengrassDeviceDefinitionDevice certificateArnarg idarg thingArnarg =
GreengrassDeviceDefinitionDevice
{ _greengrassDeviceDefinitionDeviceCertificateArn = certificateArnarg
, _greengrassDeviceDefinitionDeviceId = idarg
, _greengrassDeviceDefinitionDeviceSyncShadow = Nothing
, _greengrassDeviceDefinitionDeviceThingArn = thingArnarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html#cfn-greengrass-devicedefinition-device-certificatearn
gdddCertificateArn :: Lens' GreengrassDeviceDefinitionDevice (Val Text)
gdddCertificateArn = lens _greengrassDeviceDefinitionDeviceCertificateArn (\s a -> s { _greengrassDeviceDefinitionDeviceCertificateArn = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html#cfn-greengrass-devicedefinition-device-id
gdddId :: Lens' GreengrassDeviceDefinitionDevice (Val Text)
gdddId = lens _greengrassDeviceDefinitionDeviceId (\s a -> s { _greengrassDeviceDefinitionDeviceId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html#cfn-greengrass-devicedefinition-device-syncshadow
gdddSyncShadow :: Lens' GreengrassDeviceDefinitionDevice (Maybe (Val Bool))
gdddSyncShadow = lens _greengrassDeviceDefinitionDeviceSyncShadow (\s a -> s { _greengrassDeviceDefinitionDeviceSyncShadow = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html#cfn-greengrass-devicedefinition-device-thingarn
gdddThingArn :: Lens' GreengrassDeviceDefinitionDevice (Val Text)
gdddThingArn = lens _greengrassDeviceDefinitionDeviceThingArn (\s a -> s { _greengrassDeviceDefinitionDeviceThingArn = a })