module Stratosphere.ACMPCA.CertificateAuthority.AccessDescriptionProperty (
        module Exports, AccessDescriptionProperty(..),
        mkAccessDescriptionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.ACMPCA.CertificateAuthority.AccessMethodProperty as Exports
import {-# SOURCE #-} Stratosphere.ACMPCA.CertificateAuthority.GeneralNameProperty as Exports
import Stratosphere.ResourceProperties
data AccessDescriptionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html>
    AccessDescriptionProperty {AccessDescriptionProperty -> ()
haddock_workaround_ :: (),
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html#cfn-acmpca-certificateauthority-accessdescription-accesslocation>
                               AccessDescriptionProperty -> GeneralNameProperty
accessLocation :: GeneralNameProperty,
                               -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-acmpca-certificateauthority-accessdescription.html#cfn-acmpca-certificateauthority-accessdescription-accessmethod>
                               AccessDescriptionProperty -> AccessMethodProperty
accessMethod :: AccessMethodProperty}
  deriving stock (AccessDescriptionProperty -> AccessDescriptionProperty -> Bool
(AccessDescriptionProperty -> AccessDescriptionProperty -> Bool)
-> (AccessDescriptionProperty -> AccessDescriptionProperty -> Bool)
-> Eq AccessDescriptionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccessDescriptionProperty -> AccessDescriptionProperty -> Bool
== :: AccessDescriptionProperty -> AccessDescriptionProperty -> Bool
$c/= :: AccessDescriptionProperty -> AccessDescriptionProperty -> Bool
/= :: AccessDescriptionProperty -> AccessDescriptionProperty -> Bool
Prelude.Eq, Int -> AccessDescriptionProperty -> ShowS
[AccessDescriptionProperty] -> ShowS
AccessDescriptionProperty -> String
(Int -> AccessDescriptionProperty -> ShowS)
-> (AccessDescriptionProperty -> String)
-> ([AccessDescriptionProperty] -> ShowS)
-> Show AccessDescriptionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AccessDescriptionProperty -> ShowS
showsPrec :: Int -> AccessDescriptionProperty -> ShowS
$cshow :: AccessDescriptionProperty -> String
show :: AccessDescriptionProperty -> String
$cshowList :: [AccessDescriptionProperty] -> ShowS
showList :: [AccessDescriptionProperty] -> ShowS
Prelude.Show)
mkAccessDescriptionProperty ::
  GeneralNameProperty
  -> AccessMethodProperty -> AccessDescriptionProperty
mkAccessDescriptionProperty :: GeneralNameProperty
-> AccessMethodProperty -> AccessDescriptionProperty
mkAccessDescriptionProperty GeneralNameProperty
accessLocation AccessMethodProperty
accessMethod
  = AccessDescriptionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), accessLocation :: GeneralNameProperty
accessLocation = GeneralNameProperty
accessLocation,
       accessMethod :: AccessMethodProperty
accessMethod = AccessMethodProperty
accessMethod}
instance ToResourceProperties AccessDescriptionProperty where
  toResourceProperties :: AccessDescriptionProperty -> ResourceProperties
toResourceProperties AccessDescriptionProperty {()
AccessMethodProperty
GeneralNameProperty
haddock_workaround_ :: AccessDescriptionProperty -> ()
accessLocation :: AccessDescriptionProperty -> GeneralNameProperty
accessMethod :: AccessDescriptionProperty -> AccessMethodProperty
haddock_workaround_ :: ()
accessLocation :: GeneralNameProperty
accessMethod :: AccessMethodProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ACMPCA::CertificateAuthority.AccessDescription",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AccessLocation" Key -> GeneralNameProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= GeneralNameProperty
accessLocation,
                       Key
"AccessMethod" Key -> AccessMethodProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AccessMethodProperty
accessMethod]}
instance JSON.ToJSON AccessDescriptionProperty where
  toJSON :: AccessDescriptionProperty -> Value
toJSON AccessDescriptionProperty {()
AccessMethodProperty
GeneralNameProperty
haddock_workaround_ :: AccessDescriptionProperty -> ()
accessLocation :: AccessDescriptionProperty -> GeneralNameProperty
accessMethod :: AccessDescriptionProperty -> AccessMethodProperty
haddock_workaround_ :: ()
accessLocation :: GeneralNameProperty
accessMethod :: AccessMethodProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AccessLocation" Key -> GeneralNameProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= GeneralNameProperty
accessLocation,
         Key
"AccessMethod" Key -> AccessMethodProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= AccessMethodProperty
accessMethod]
instance Property "AccessLocation" AccessDescriptionProperty where
  type PropertyType "AccessLocation" AccessDescriptionProperty = GeneralNameProperty
  set :: PropertyType "AccessLocation" AccessDescriptionProperty
-> AccessDescriptionProperty -> AccessDescriptionProperty
set PropertyType "AccessLocation" AccessDescriptionProperty
newValue AccessDescriptionProperty {()
AccessMethodProperty
GeneralNameProperty
haddock_workaround_ :: AccessDescriptionProperty -> ()
accessLocation :: AccessDescriptionProperty -> GeneralNameProperty
accessMethod :: AccessDescriptionProperty -> AccessMethodProperty
haddock_workaround_ :: ()
accessLocation :: GeneralNameProperty
accessMethod :: AccessMethodProperty
..}
    = AccessDescriptionProperty {accessLocation :: GeneralNameProperty
accessLocation = PropertyType "AccessLocation" AccessDescriptionProperty
GeneralNameProperty
newValue, ()
AccessMethodProperty
haddock_workaround_ :: ()
accessMethod :: AccessMethodProperty
haddock_workaround_ :: ()
accessMethod :: AccessMethodProperty
..}
instance Property "AccessMethod" AccessDescriptionProperty where
  type PropertyType "AccessMethod" AccessDescriptionProperty = AccessMethodProperty
  set :: PropertyType "AccessMethod" AccessDescriptionProperty
-> AccessDescriptionProperty -> AccessDescriptionProperty
set PropertyType "AccessMethod" AccessDescriptionProperty
newValue AccessDescriptionProperty {()
AccessMethodProperty
GeneralNameProperty
haddock_workaround_ :: AccessDescriptionProperty -> ()
accessLocation :: AccessDescriptionProperty -> GeneralNameProperty
accessMethod :: AccessDescriptionProperty -> AccessMethodProperty
haddock_workaround_ :: ()
accessLocation :: GeneralNameProperty
accessMethod :: AccessMethodProperty
..}
    = AccessDescriptionProperty {accessMethod :: AccessMethodProperty
accessMethod = PropertyType "AccessMethod" AccessDescriptionProperty
AccessMethodProperty
newValue, ()
GeneralNameProperty
haddock_workaround_ :: ()
accessLocation :: GeneralNameProperty
haddock_workaround_ :: ()
accessLocation :: GeneralNameProperty
..}