module Stratosphere.Athena.WorkGroup.AclConfigurationProperty (
        AclConfigurationProperty(..), mkAclConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AclConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-aclconfiguration.html>
    AclConfigurationProperty {AclConfigurationProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-athena-workgroup-aclconfiguration.html#cfn-athena-workgroup-aclconfiguration-s3acloption>
                              AclConfigurationProperty -> Value Text
s3AclOption :: (Value Prelude.Text)}
  deriving stock (AclConfigurationProperty -> AclConfigurationProperty -> Bool
(AclConfigurationProperty -> AclConfigurationProperty -> Bool)
-> (AclConfigurationProperty -> AclConfigurationProperty -> Bool)
-> Eq AclConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AclConfigurationProperty -> AclConfigurationProperty -> Bool
== :: AclConfigurationProperty -> AclConfigurationProperty -> Bool
$c/= :: AclConfigurationProperty -> AclConfigurationProperty -> Bool
/= :: AclConfigurationProperty -> AclConfigurationProperty -> Bool
Prelude.Eq, Int -> AclConfigurationProperty -> ShowS
[AclConfigurationProperty] -> ShowS
AclConfigurationProperty -> String
(Int -> AclConfigurationProperty -> ShowS)
-> (AclConfigurationProperty -> String)
-> ([AclConfigurationProperty] -> ShowS)
-> Show AclConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AclConfigurationProperty -> ShowS
showsPrec :: Int -> AclConfigurationProperty -> ShowS
$cshow :: AclConfigurationProperty -> String
show :: AclConfigurationProperty -> String
$cshowList :: [AclConfigurationProperty] -> ShowS
showList :: [AclConfigurationProperty] -> ShowS
Prelude.Show)
mkAclConfigurationProperty ::
  Value Prelude.Text -> AclConfigurationProperty
mkAclConfigurationProperty :: Value Text -> AclConfigurationProperty
mkAclConfigurationProperty Value Text
s3AclOption
  = AclConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), s3AclOption :: Value Text
s3AclOption = Value Text
s3AclOption}
instance ToResourceProperties AclConfigurationProperty where
  toResourceProperties :: AclConfigurationProperty -> ResourceProperties
toResourceProperties AclConfigurationProperty {()
Value Text
haddock_workaround_ :: AclConfigurationProperty -> ()
s3AclOption :: AclConfigurationProperty -> Value Text
haddock_workaround_ :: ()
s3AclOption :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Athena::WorkGroup.AclConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"S3AclOption" 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
s3AclOption]}
instance JSON.ToJSON AclConfigurationProperty where
  toJSON :: AclConfigurationProperty -> Value
toJSON AclConfigurationProperty {()
Value Text
haddock_workaround_ :: AclConfigurationProperty -> ()
s3AclOption :: AclConfigurationProperty -> Value Text
haddock_workaround_ :: ()
s3AclOption :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"S3AclOption" 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
s3AclOption]
instance Property "S3AclOption" AclConfigurationProperty where
  type PropertyType "S3AclOption" AclConfigurationProperty = Value Prelude.Text
  set :: PropertyType "S3AclOption" AclConfigurationProperty
-> AclConfigurationProperty -> AclConfigurationProperty
set PropertyType "S3AclOption" AclConfigurationProperty
newValue AclConfigurationProperty {()
Value Text
haddock_workaround_ :: AclConfigurationProperty -> ()
s3AclOption :: AclConfigurationProperty -> Value Text
haddock_workaround_ :: ()
s3AclOption :: Value Text
..}
    = AclConfigurationProperty {s3AclOption :: Value Text
s3AclOption = PropertyType "S3AclOption" AclConfigurationProperty
Value Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}