module Stratosphere.IoT.TopicRule.SigV4AuthorizationProperty (
        SigV4AuthorizationProperty(..), mkSigV4AuthorizationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SigV4AuthorizationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html>
    SigV4AuthorizationProperty {SigV4AuthorizationProperty -> ()
haddock_workaround_ :: (),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-rolearn>
                                SigV4AuthorizationProperty -> Value Text
roleArn :: (Value Prelude.Text),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-servicename>
                                SigV4AuthorizationProperty -> Value Text
serviceName :: (Value Prelude.Text),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html#cfn-iot-topicrule-sigv4authorization-signingregion>
                                SigV4AuthorizationProperty -> Value Text
signingRegion :: (Value Prelude.Text)}
  deriving stock (SigV4AuthorizationProperty -> SigV4AuthorizationProperty -> Bool
(SigV4AuthorizationProperty -> SigV4AuthorizationProperty -> Bool)
-> (SigV4AuthorizationProperty
    -> SigV4AuthorizationProperty -> Bool)
-> Eq SigV4AuthorizationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SigV4AuthorizationProperty -> SigV4AuthorizationProperty -> Bool
== :: SigV4AuthorizationProperty -> SigV4AuthorizationProperty -> Bool
$c/= :: SigV4AuthorizationProperty -> SigV4AuthorizationProperty -> Bool
/= :: SigV4AuthorizationProperty -> SigV4AuthorizationProperty -> Bool
Prelude.Eq, Int -> SigV4AuthorizationProperty -> ShowS
[SigV4AuthorizationProperty] -> ShowS
SigV4AuthorizationProperty -> String
(Int -> SigV4AuthorizationProperty -> ShowS)
-> (SigV4AuthorizationProperty -> String)
-> ([SigV4AuthorizationProperty] -> ShowS)
-> Show SigV4AuthorizationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SigV4AuthorizationProperty -> ShowS
showsPrec :: Int -> SigV4AuthorizationProperty -> ShowS
$cshow :: SigV4AuthorizationProperty -> String
show :: SigV4AuthorizationProperty -> String
$cshowList :: [SigV4AuthorizationProperty] -> ShowS
showList :: [SigV4AuthorizationProperty] -> ShowS
Prelude.Show)
mkSigV4AuthorizationProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> SigV4AuthorizationProperty
mkSigV4AuthorizationProperty :: Value Text
-> Value Text -> Value Text -> SigV4AuthorizationProperty
mkSigV4AuthorizationProperty Value Text
roleArn Value Text
serviceName Value Text
signingRegion
  = SigV4AuthorizationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), roleArn :: Value Text
roleArn = Value Text
roleArn,
       serviceName :: Value Text
serviceName = Value Text
serviceName, signingRegion :: Value Text
signingRegion = Value Text
signingRegion}
instance ToResourceProperties SigV4AuthorizationProperty where
  toResourceProperties :: SigV4AuthorizationProperty -> ResourceProperties
toResourceProperties SigV4AuthorizationProperty {()
Value Text
haddock_workaround_ :: SigV4AuthorizationProperty -> ()
roleArn :: SigV4AuthorizationProperty -> Value Text
serviceName :: SigV4AuthorizationProperty -> Value Text
signingRegion :: SigV4AuthorizationProperty -> Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceName :: Value Text
signingRegion :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoT::TopicRule.SigV4Authorization",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"RoleArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
roleArn,
                       Key
"ServiceName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
serviceName,
                       Key
"SigningRegion" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
signingRegion]}
instance JSON.ToJSON SigV4AuthorizationProperty where
  toJSON :: SigV4AuthorizationProperty -> Value
toJSON SigV4AuthorizationProperty {()
Value Text
haddock_workaround_ :: SigV4AuthorizationProperty -> ()
roleArn :: SigV4AuthorizationProperty -> Value Text
serviceName :: SigV4AuthorizationProperty -> Value Text
signingRegion :: SigV4AuthorizationProperty -> Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceName :: Value Text
signingRegion :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"RoleArn" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
roleArn, Key
"ServiceName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
serviceName,
         Key
"SigningRegion" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
signingRegion]
instance Property "RoleArn" SigV4AuthorizationProperty where
  type PropertyType "RoleArn" SigV4AuthorizationProperty = Value Prelude.Text
  set :: PropertyType "RoleArn" SigV4AuthorizationProperty
-> SigV4AuthorizationProperty -> SigV4AuthorizationProperty
set PropertyType "RoleArn" SigV4AuthorizationProperty
newValue SigV4AuthorizationProperty {()
Value Text
haddock_workaround_ :: SigV4AuthorizationProperty -> ()
roleArn :: SigV4AuthorizationProperty -> Value Text
serviceName :: SigV4AuthorizationProperty -> Value Text
signingRegion :: SigV4AuthorizationProperty -> Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceName :: Value Text
signingRegion :: Value Text
..}
    = SigV4AuthorizationProperty {roleArn :: Value Text
roleArn = PropertyType "RoleArn" SigV4AuthorizationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
serviceName :: Value Text
signingRegion :: Value Text
haddock_workaround_ :: ()
serviceName :: Value Text
signingRegion :: Value Text
..}
instance Property "ServiceName" SigV4AuthorizationProperty where
  type PropertyType "ServiceName" SigV4AuthorizationProperty = Value Prelude.Text
  set :: PropertyType "ServiceName" SigV4AuthorizationProperty
-> SigV4AuthorizationProperty -> SigV4AuthorizationProperty
set PropertyType "ServiceName" SigV4AuthorizationProperty
newValue SigV4AuthorizationProperty {()
Value Text
haddock_workaround_ :: SigV4AuthorizationProperty -> ()
roleArn :: SigV4AuthorizationProperty -> Value Text
serviceName :: SigV4AuthorizationProperty -> Value Text
signingRegion :: SigV4AuthorizationProperty -> Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceName :: Value Text
signingRegion :: Value Text
..}
    = SigV4AuthorizationProperty {serviceName :: Value Text
serviceName = PropertyType "ServiceName" SigV4AuthorizationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
signingRegion :: Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
signingRegion :: Value Text
..}
instance Property "SigningRegion" SigV4AuthorizationProperty where
  type PropertyType "SigningRegion" SigV4AuthorizationProperty = Value Prelude.Text
  set :: PropertyType "SigningRegion" SigV4AuthorizationProperty
-> SigV4AuthorizationProperty -> SigV4AuthorizationProperty
set PropertyType "SigningRegion" SigV4AuthorizationProperty
newValue SigV4AuthorizationProperty {()
Value Text
haddock_workaround_ :: SigV4AuthorizationProperty -> ()
roleArn :: SigV4AuthorizationProperty -> Value Text
serviceName :: SigV4AuthorizationProperty -> Value Text
signingRegion :: SigV4AuthorizationProperty -> Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceName :: Value Text
signingRegion :: Value Text
..}
    = SigV4AuthorizationProperty {signingRegion :: Value Text
signingRegion = PropertyType "SigningRegion" SigV4AuthorizationProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceName :: Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
serviceName :: Value Text
..}