module Stratosphere.SSMGuiConnect.Preferences.ConnectionRecordingPreferencesProperty (
        module Exports, ConnectionRecordingPreferencesProperty(..),
        mkConnectionRecordingPreferencesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.SSMGuiConnect.Preferences.RecordingDestinationsProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ConnectionRecordingPreferencesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmguiconnect-preferences-connectionrecordingpreferences.html>
    ConnectionRecordingPreferencesProperty {ConnectionRecordingPreferencesProperty -> ()
haddock_workaround_ :: (),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmguiconnect-preferences-connectionrecordingpreferences.html#cfn-ssmguiconnect-preferences-connectionrecordingpreferences-kmskeyarn>
                                            ConnectionRecordingPreferencesProperty -> Value Text
kMSKeyArn :: (Value Prelude.Text),
                                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssmguiconnect-preferences-connectionrecordingpreferences.html#cfn-ssmguiconnect-preferences-connectionrecordingpreferences-recordingdestinations>
                                            ConnectionRecordingPreferencesProperty
-> RecordingDestinationsProperty
recordingDestinations :: RecordingDestinationsProperty}
  deriving stock (ConnectionRecordingPreferencesProperty
-> ConnectionRecordingPreferencesProperty -> Bool
(ConnectionRecordingPreferencesProperty
 -> ConnectionRecordingPreferencesProperty -> Bool)
-> (ConnectionRecordingPreferencesProperty
    -> ConnectionRecordingPreferencesProperty -> Bool)
-> Eq ConnectionRecordingPreferencesProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ConnectionRecordingPreferencesProperty
-> ConnectionRecordingPreferencesProperty -> Bool
== :: ConnectionRecordingPreferencesProperty
-> ConnectionRecordingPreferencesProperty -> Bool
$c/= :: ConnectionRecordingPreferencesProperty
-> ConnectionRecordingPreferencesProperty -> Bool
/= :: ConnectionRecordingPreferencesProperty
-> ConnectionRecordingPreferencesProperty -> Bool
Prelude.Eq, Int -> ConnectionRecordingPreferencesProperty -> ShowS
[ConnectionRecordingPreferencesProperty] -> ShowS
ConnectionRecordingPreferencesProperty -> String
(Int -> ConnectionRecordingPreferencesProperty -> ShowS)
-> (ConnectionRecordingPreferencesProperty -> String)
-> ([ConnectionRecordingPreferencesProperty] -> ShowS)
-> Show ConnectionRecordingPreferencesProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ConnectionRecordingPreferencesProperty -> ShowS
showsPrec :: Int -> ConnectionRecordingPreferencesProperty -> ShowS
$cshow :: ConnectionRecordingPreferencesProperty -> String
show :: ConnectionRecordingPreferencesProperty -> String
$cshowList :: [ConnectionRecordingPreferencesProperty] -> ShowS
showList :: [ConnectionRecordingPreferencesProperty] -> ShowS
Prelude.Show)
mkConnectionRecordingPreferencesProperty ::
  Value Prelude.Text
  -> RecordingDestinationsProperty
     -> ConnectionRecordingPreferencesProperty
mkConnectionRecordingPreferencesProperty :: Value Text
-> RecordingDestinationsProperty
-> ConnectionRecordingPreferencesProperty
mkConnectionRecordingPreferencesProperty
  Value Text
kMSKeyArn
  RecordingDestinationsProperty
recordingDestinations
  = ConnectionRecordingPreferencesProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), kMSKeyArn :: Value Text
kMSKeyArn = Value Text
kMSKeyArn,
       recordingDestinations :: RecordingDestinationsProperty
recordingDestinations = RecordingDestinationsProperty
recordingDestinations}
instance ToResourceProperties ConnectionRecordingPreferencesProperty where
  toResourceProperties :: ConnectionRecordingPreferencesProperty -> ResourceProperties
toResourceProperties ConnectionRecordingPreferencesProperty {()
Value Text
RecordingDestinationsProperty
haddock_workaround_ :: ConnectionRecordingPreferencesProperty -> ()
kMSKeyArn :: ConnectionRecordingPreferencesProperty -> Value Text
recordingDestinations :: ConnectionRecordingPreferencesProperty
-> RecordingDestinationsProperty
haddock_workaround_ :: ()
kMSKeyArn :: Value Text
recordingDestinations :: RecordingDestinationsProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::SSMGuiConnect::Preferences.ConnectionRecordingPreferences",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"KMSKeyArn" 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
kMSKeyArn,
                       Key
"RecordingDestinations" Key -> RecordingDestinationsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RecordingDestinationsProperty
recordingDestinations]}
instance JSON.ToJSON ConnectionRecordingPreferencesProperty where
  toJSON :: ConnectionRecordingPreferencesProperty -> Value
toJSON ConnectionRecordingPreferencesProperty {()
Value Text
RecordingDestinationsProperty
haddock_workaround_ :: ConnectionRecordingPreferencesProperty -> ()
kMSKeyArn :: ConnectionRecordingPreferencesProperty -> Value Text
recordingDestinations :: ConnectionRecordingPreferencesProperty
-> RecordingDestinationsProperty
haddock_workaround_ :: ()
kMSKeyArn :: Value Text
recordingDestinations :: RecordingDestinationsProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"KMSKeyArn" 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
kMSKeyArn,
         Key
"RecordingDestinations" Key -> RecordingDestinationsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= RecordingDestinationsProperty
recordingDestinations]
instance Property "KMSKeyArn" ConnectionRecordingPreferencesProperty where
  type PropertyType "KMSKeyArn" ConnectionRecordingPreferencesProperty = Value Prelude.Text
  set :: PropertyType "KMSKeyArn" ConnectionRecordingPreferencesProperty
-> ConnectionRecordingPreferencesProperty
-> ConnectionRecordingPreferencesProperty
set PropertyType "KMSKeyArn" ConnectionRecordingPreferencesProperty
newValue ConnectionRecordingPreferencesProperty {()
Value Text
RecordingDestinationsProperty
haddock_workaround_ :: ConnectionRecordingPreferencesProperty -> ()
kMSKeyArn :: ConnectionRecordingPreferencesProperty -> Value Text
recordingDestinations :: ConnectionRecordingPreferencesProperty
-> RecordingDestinationsProperty
haddock_workaround_ :: ()
kMSKeyArn :: Value Text
recordingDestinations :: RecordingDestinationsProperty
..}
    = ConnectionRecordingPreferencesProperty {kMSKeyArn :: Value Text
kMSKeyArn = PropertyType "KMSKeyArn" ConnectionRecordingPreferencesProperty
Value Text
newValue, ()
RecordingDestinationsProperty
haddock_workaround_ :: ()
recordingDestinations :: RecordingDestinationsProperty
haddock_workaround_ :: ()
recordingDestinations :: RecordingDestinationsProperty
..}
instance Property "RecordingDestinations" ConnectionRecordingPreferencesProperty where
  type PropertyType "RecordingDestinations" ConnectionRecordingPreferencesProperty = RecordingDestinationsProperty
  set :: PropertyType
  "RecordingDestinations" ConnectionRecordingPreferencesProperty
-> ConnectionRecordingPreferencesProperty
-> ConnectionRecordingPreferencesProperty
set PropertyType
  "RecordingDestinations" ConnectionRecordingPreferencesProperty
newValue ConnectionRecordingPreferencesProperty {()
Value Text
RecordingDestinationsProperty
haddock_workaround_ :: ConnectionRecordingPreferencesProperty -> ()
kMSKeyArn :: ConnectionRecordingPreferencesProperty -> Value Text
recordingDestinations :: ConnectionRecordingPreferencesProperty
-> RecordingDestinationsProperty
haddock_workaround_ :: ()
kMSKeyArn :: Value Text
recordingDestinations :: RecordingDestinationsProperty
..}
    = ConnectionRecordingPreferencesProperty
        {recordingDestinations :: RecordingDestinationsProperty
recordingDestinations = PropertyType
  "RecordingDestinations" ConnectionRecordingPreferencesProperty
RecordingDestinationsProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
kMSKeyArn :: Value Text
haddock_workaround_ :: ()
kMSKeyArn :: Value Text
..}