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