module Stratosphere.DataZone.PolicyGrant.ProjectGrantFilterProperty (
        module Exports, ProjectGrantFilterProperty(..),
        mkProjectGrantFilterProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.DataZone.PolicyGrant.DomainUnitFilterForProjectProperty as Exports
import Stratosphere.ResourceProperties
data ProjectGrantFilterProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datazone-policygrant-projectgrantfilter.html>
    ProjectGrantFilterProperty {ProjectGrantFilterProperty -> ()
haddock_workaround_ :: (),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datazone-policygrant-projectgrantfilter.html#cfn-datazone-policygrant-projectgrantfilter-domainunitfilter>
                                ProjectGrantFilterProperty -> DomainUnitFilterForProjectProperty
domainUnitFilter :: DomainUnitFilterForProjectProperty}
  deriving stock (ProjectGrantFilterProperty -> ProjectGrantFilterProperty -> Bool
(ProjectGrantFilterProperty -> ProjectGrantFilterProperty -> Bool)
-> (ProjectGrantFilterProperty
    -> ProjectGrantFilterProperty -> Bool)
-> Eq ProjectGrantFilterProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ProjectGrantFilterProperty -> ProjectGrantFilterProperty -> Bool
== :: ProjectGrantFilterProperty -> ProjectGrantFilterProperty -> Bool
$c/= :: ProjectGrantFilterProperty -> ProjectGrantFilterProperty -> Bool
/= :: ProjectGrantFilterProperty -> ProjectGrantFilterProperty -> Bool
Prelude.Eq, Int -> ProjectGrantFilterProperty -> ShowS
[ProjectGrantFilterProperty] -> ShowS
ProjectGrantFilterProperty -> String
(Int -> ProjectGrantFilterProperty -> ShowS)
-> (ProjectGrantFilterProperty -> String)
-> ([ProjectGrantFilterProperty] -> ShowS)
-> Show ProjectGrantFilterProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ProjectGrantFilterProperty -> ShowS
showsPrec :: Int -> ProjectGrantFilterProperty -> ShowS
$cshow :: ProjectGrantFilterProperty -> String
show :: ProjectGrantFilterProperty -> String
$cshowList :: [ProjectGrantFilterProperty] -> ShowS
showList :: [ProjectGrantFilterProperty] -> ShowS
Prelude.Show)
mkProjectGrantFilterProperty ::
  DomainUnitFilterForProjectProperty -> ProjectGrantFilterProperty
mkProjectGrantFilterProperty :: DomainUnitFilterForProjectProperty -> ProjectGrantFilterProperty
mkProjectGrantFilterProperty DomainUnitFilterForProjectProperty
domainUnitFilter
  = ProjectGrantFilterProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), domainUnitFilter :: DomainUnitFilterForProjectProperty
domainUnitFilter = DomainUnitFilterForProjectProperty
domainUnitFilter}
instance ToResourceProperties ProjectGrantFilterProperty where
  toResourceProperties :: ProjectGrantFilterProperty -> ResourceProperties
toResourceProperties ProjectGrantFilterProperty {()
DomainUnitFilterForProjectProperty
haddock_workaround_ :: ProjectGrantFilterProperty -> ()
domainUnitFilter :: ProjectGrantFilterProperty -> DomainUnitFilterForProjectProperty
haddock_workaround_ :: ()
domainUnitFilter :: DomainUnitFilterForProjectProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::DataZone::PolicyGrant.ProjectGrantFilter",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"DomainUnitFilter" Key -> DomainUnitFilterForProjectProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DomainUnitFilterForProjectProperty
domainUnitFilter]}
instance JSON.ToJSON ProjectGrantFilterProperty where
  toJSON :: ProjectGrantFilterProperty -> Value
toJSON ProjectGrantFilterProperty {()
DomainUnitFilterForProjectProperty
haddock_workaround_ :: ProjectGrantFilterProperty -> ()
domainUnitFilter :: ProjectGrantFilterProperty -> DomainUnitFilterForProjectProperty
haddock_workaround_ :: ()
domainUnitFilter :: DomainUnitFilterForProjectProperty
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"DomainUnitFilter" Key -> DomainUnitFilterForProjectProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DomainUnitFilterForProjectProperty
domainUnitFilter]
instance Property "DomainUnitFilter" ProjectGrantFilterProperty where
  type PropertyType "DomainUnitFilter" ProjectGrantFilterProperty = DomainUnitFilterForProjectProperty
  set :: PropertyType "DomainUnitFilter" ProjectGrantFilterProperty
-> ProjectGrantFilterProperty -> ProjectGrantFilterProperty
set PropertyType "DomainUnitFilter" ProjectGrantFilterProperty
newValue ProjectGrantFilterProperty {()
DomainUnitFilterForProjectProperty
haddock_workaround_ :: ProjectGrantFilterProperty -> ()
domainUnitFilter :: ProjectGrantFilterProperty -> DomainUnitFilterForProjectProperty
haddock_workaround_ :: ()
domainUnitFilter :: DomainUnitFilterForProjectProperty
..}
    = ProjectGrantFilterProperty {domainUnitFilter :: DomainUnitFilterForProjectProperty
domainUnitFilter = PropertyType "DomainUnitFilter" ProjectGrantFilterProperty
DomainUnitFilterForProjectProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}