module Stratosphere.S3.AccessGrant.AccessGrantsLocationConfigurationProperty (
        AccessGrantsLocationConfigurationProperty(..),
        mkAccessGrantsLocationConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AccessGrantsLocationConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accessgrant-accessgrantslocationconfiguration.html>
    AccessGrantsLocationConfigurationProperty {AccessGrantsLocationConfigurationProperty -> ()
haddock_workaround_ :: (),
                                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-accessgrant-accessgrantslocationconfiguration.html#cfn-s3-accessgrant-accessgrantslocationconfiguration-s3subprefix>
                                               AccessGrantsLocationConfigurationProperty -> Value Text
s3SubPrefix :: (Value Prelude.Text)}
  deriving stock (AccessGrantsLocationConfigurationProperty
-> AccessGrantsLocationConfigurationProperty -> Bool
(AccessGrantsLocationConfigurationProperty
 -> AccessGrantsLocationConfigurationProperty -> Bool)
-> (AccessGrantsLocationConfigurationProperty
    -> AccessGrantsLocationConfigurationProperty -> Bool)
-> Eq AccessGrantsLocationConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccessGrantsLocationConfigurationProperty
-> AccessGrantsLocationConfigurationProperty -> Bool
== :: AccessGrantsLocationConfigurationProperty
-> AccessGrantsLocationConfigurationProperty -> Bool
$c/= :: AccessGrantsLocationConfigurationProperty
-> AccessGrantsLocationConfigurationProperty -> Bool
/= :: AccessGrantsLocationConfigurationProperty
-> AccessGrantsLocationConfigurationProperty -> Bool
Prelude.Eq, Int -> AccessGrantsLocationConfigurationProperty -> ShowS
[AccessGrantsLocationConfigurationProperty] -> ShowS
AccessGrantsLocationConfigurationProperty -> String
(Int -> AccessGrantsLocationConfigurationProperty -> ShowS)
-> (AccessGrantsLocationConfigurationProperty -> String)
-> ([AccessGrantsLocationConfigurationProperty] -> ShowS)
-> Show AccessGrantsLocationConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AccessGrantsLocationConfigurationProperty -> ShowS
showsPrec :: Int -> AccessGrantsLocationConfigurationProperty -> ShowS
$cshow :: AccessGrantsLocationConfigurationProperty -> String
show :: AccessGrantsLocationConfigurationProperty -> String
$cshowList :: [AccessGrantsLocationConfigurationProperty] -> ShowS
showList :: [AccessGrantsLocationConfigurationProperty] -> ShowS
Prelude.Show)
mkAccessGrantsLocationConfigurationProperty ::
  Value Prelude.Text -> AccessGrantsLocationConfigurationProperty
mkAccessGrantsLocationConfigurationProperty :: Value Text -> AccessGrantsLocationConfigurationProperty
mkAccessGrantsLocationConfigurationProperty Value Text
s3SubPrefix
  = AccessGrantsLocationConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), s3SubPrefix :: Value Text
s3SubPrefix = Value Text
s3SubPrefix}
instance ToResourceProperties AccessGrantsLocationConfigurationProperty where
  toResourceProperties :: AccessGrantsLocationConfigurationProperty -> ResourceProperties
toResourceProperties AccessGrantsLocationConfigurationProperty {()
Value Text
haddock_workaround_ :: AccessGrantsLocationConfigurationProperty -> ()
s3SubPrefix :: AccessGrantsLocationConfigurationProperty -> Value Text
haddock_workaround_ :: ()
s3SubPrefix :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::S3::AccessGrant.AccessGrantsLocationConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"S3SubPrefix" 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
s3SubPrefix]}
instance JSON.ToJSON AccessGrantsLocationConfigurationProperty where
  toJSON :: AccessGrantsLocationConfigurationProperty -> Value
toJSON AccessGrantsLocationConfigurationProperty {()
Value Text
haddock_workaround_ :: AccessGrantsLocationConfigurationProperty -> ()
s3SubPrefix :: AccessGrantsLocationConfigurationProperty -> Value Text
haddock_workaround_ :: ()
s3SubPrefix :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"S3SubPrefix" 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
s3SubPrefix]
instance Property "S3SubPrefix" AccessGrantsLocationConfigurationProperty where
  type PropertyType "S3SubPrefix" AccessGrantsLocationConfigurationProperty = Value Prelude.Text
  set :: PropertyType
  "S3SubPrefix" AccessGrantsLocationConfigurationProperty
-> AccessGrantsLocationConfigurationProperty
-> AccessGrantsLocationConfigurationProperty
set PropertyType
  "S3SubPrefix" AccessGrantsLocationConfigurationProperty
newValue AccessGrantsLocationConfigurationProperty {()
Value Text
haddock_workaround_ :: AccessGrantsLocationConfigurationProperty -> ()
s3SubPrefix :: AccessGrantsLocationConfigurationProperty -> Value Text
haddock_workaround_ :: ()
s3SubPrefix :: Value Text
..}
    = AccessGrantsLocationConfigurationProperty
        {s3SubPrefix :: Value Text
s3SubPrefix = PropertyType
  "S3SubPrefix" AccessGrantsLocationConfigurationProperty
Value Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}