packages feed

stratosphere-0.52.0: library-gen/Stratosphere/ResourceProperties/IoTTopicRuleSigV4Authorization.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html

module Stratosphere.ResourceProperties.IoTTopicRuleSigV4Authorization where

import Stratosphere.ResourceImports


-- | Full data type definition for IoTTopicRuleSigV4Authorization. See
-- 'ioTTopicRuleSigV4Authorization' for a more convenient constructor.
data IoTTopicRuleSigV4Authorization =
  IoTTopicRuleSigV4Authorization
  { _ioTTopicRuleSigV4AuthorizationRoleArn :: Val Text
  , _ioTTopicRuleSigV4AuthorizationServiceName :: Val Text
  , _ioTTopicRuleSigV4AuthorizationSigningRegion :: Val Text
  } deriving (Show, Eq)

instance ToJSON IoTTopicRuleSigV4Authorization where
  toJSON IoTTopicRuleSigV4Authorization{..} =
    object $
    catMaybes
    [ (Just . ("RoleArn",) . toJSON) _ioTTopicRuleSigV4AuthorizationRoleArn
    , (Just . ("ServiceName",) . toJSON) _ioTTopicRuleSigV4AuthorizationServiceName
    , (Just . ("SigningRegion",) . toJSON) _ioTTopicRuleSigV4AuthorizationSigningRegion
    ]

-- | Constructor for 'IoTTopicRuleSigV4Authorization' containing required
-- fields as arguments.
ioTTopicRuleSigV4Authorization
  :: Val Text -- ^ 'ittrsvaRoleArn'
  -> Val Text -- ^ 'ittrsvaServiceName'
  -> Val Text -- ^ 'ittrsvaSigningRegion'
  -> IoTTopicRuleSigV4Authorization
ioTTopicRuleSigV4Authorization roleArnarg serviceNamearg signingRegionarg =
  IoTTopicRuleSigV4Authorization
  { _ioTTopicRuleSigV4AuthorizationRoleArn = roleArnarg
  , _ioTTopicRuleSigV4AuthorizationServiceName = serviceNamearg
  , _ioTTopicRuleSigV4AuthorizationSigningRegion = signingRegionarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-rolearn
ittrsvaRoleArn :: Lens' IoTTopicRuleSigV4Authorization (Val Text)
ittrsvaRoleArn = lens _ioTTopicRuleSigV4AuthorizationRoleArn (\s a -> s { _ioTTopicRuleSigV4AuthorizationRoleArn = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-servicename
ittrsvaServiceName :: Lens' IoTTopicRuleSigV4Authorization (Val Text)
ittrsvaServiceName = lens _ioTTopicRuleSigV4AuthorizationServiceName (\s a -> s { _ioTTopicRuleSigV4AuthorizationServiceName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-signingregion
ittrsvaSigningRegion :: Lens' IoTTopicRuleSigV4Authorization (Val Text)
ittrsvaSigningRegion = lens _ioTTopicRuleSigV4AuthorizationSigningRegion (\s a -> s { _ioTTopicRuleSigV4AuthorizationSigningRegion = a })