module Stratosphere.ServiceCatalog.ServiceActionAssociation (
        ServiceActionAssociation(..), mkServiceActionAssociation
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ServiceActionAssociation
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html>
    ServiceActionAssociation {ServiceActionAssociation -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html#cfn-servicecatalog-serviceactionassociation-productid>
                              ServiceActionAssociation -> Value Text
productId :: (Value Prelude.Text),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html#cfn-servicecatalog-serviceactionassociation-provisioningartifactid>
                              ServiceActionAssociation -> Value Text
provisioningArtifactId :: (Value Prelude.Text),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html#cfn-servicecatalog-serviceactionassociation-serviceactionid>
                              ServiceActionAssociation -> Value Text
serviceActionId :: (Value Prelude.Text)}
  deriving stock (ServiceActionAssociation -> ServiceActionAssociation -> Bool
(ServiceActionAssociation -> ServiceActionAssociation -> Bool)
-> (ServiceActionAssociation -> ServiceActionAssociation -> Bool)
-> Eq ServiceActionAssociation
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ServiceActionAssociation -> ServiceActionAssociation -> Bool
== :: ServiceActionAssociation -> ServiceActionAssociation -> Bool
$c/= :: ServiceActionAssociation -> ServiceActionAssociation -> Bool
/= :: ServiceActionAssociation -> ServiceActionAssociation -> Bool
Prelude.Eq, Int -> ServiceActionAssociation -> ShowS
[ServiceActionAssociation] -> ShowS
ServiceActionAssociation -> String
(Int -> ServiceActionAssociation -> ShowS)
-> (ServiceActionAssociation -> String)
-> ([ServiceActionAssociation] -> ShowS)
-> Show ServiceActionAssociation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ServiceActionAssociation -> ShowS
showsPrec :: Int -> ServiceActionAssociation -> ShowS
$cshow :: ServiceActionAssociation -> String
show :: ServiceActionAssociation -> String
$cshowList :: [ServiceActionAssociation] -> ShowS
showList :: [ServiceActionAssociation] -> ShowS
Prelude.Show)
mkServiceActionAssociation ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> ServiceActionAssociation
mkServiceActionAssociation :: Value Text -> Value Text -> Value Text -> ServiceActionAssociation
mkServiceActionAssociation
  Value Text
productId
  Value Text
provisioningArtifactId
  Value Text
serviceActionId
  = ServiceActionAssociation
      {haddock_workaround_ :: ()
haddock_workaround_ = (), productId :: Value Text
productId = Value Text
productId,
       provisioningArtifactId :: Value Text
provisioningArtifactId = Value Text
provisioningArtifactId,
       serviceActionId :: Value Text
serviceActionId = Value Text
serviceActionId}
instance ToResourceProperties ServiceActionAssociation where
  toResourceProperties :: ServiceActionAssociation -> ResourceProperties
toResourceProperties ServiceActionAssociation {()
Value Text
haddock_workaround_ :: ServiceActionAssociation -> ()
productId :: ServiceActionAssociation -> Value Text
provisioningArtifactId :: ServiceActionAssociation -> Value Text
serviceActionId :: ServiceActionAssociation -> Value Text
haddock_workaround_ :: ()
productId :: Value Text
provisioningArtifactId :: Value Text
serviceActionId :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::ServiceCatalog::ServiceActionAssociation",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ProductId" 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
productId,
                       Key
"ProvisioningArtifactId" 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
provisioningArtifactId,
                       Key
"ServiceActionId" 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
serviceActionId]}
instance JSON.ToJSON ServiceActionAssociation where
  toJSON :: ServiceActionAssociation -> Value
toJSON ServiceActionAssociation {()
Value Text
haddock_workaround_ :: ServiceActionAssociation -> ()
productId :: ServiceActionAssociation -> Value Text
provisioningArtifactId :: ServiceActionAssociation -> Value Text
serviceActionId :: ServiceActionAssociation -> Value Text
haddock_workaround_ :: ()
productId :: Value Text
provisioningArtifactId :: Value Text
serviceActionId :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"ProductId" 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
productId,
         Key
"ProvisioningArtifactId" 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
provisioningArtifactId,
         Key
"ServiceActionId" 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
serviceActionId]
instance Property "ProductId" ServiceActionAssociation where
  type PropertyType "ProductId" ServiceActionAssociation = Value Prelude.Text
  set :: PropertyType "ProductId" ServiceActionAssociation
-> ServiceActionAssociation -> ServiceActionAssociation
set PropertyType "ProductId" ServiceActionAssociation
newValue ServiceActionAssociation {()
Value Text
haddock_workaround_ :: ServiceActionAssociation -> ()
productId :: ServiceActionAssociation -> Value Text
provisioningArtifactId :: ServiceActionAssociation -> Value Text
serviceActionId :: ServiceActionAssociation -> Value Text
haddock_workaround_ :: ()
productId :: Value Text
provisioningArtifactId :: Value Text
serviceActionId :: Value Text
..}
    = ServiceActionAssociation {productId :: Value Text
productId = PropertyType "ProductId" ServiceActionAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
provisioningArtifactId :: Value Text
serviceActionId :: Value Text
haddock_workaround_ :: ()
provisioningArtifactId :: Value Text
serviceActionId :: Value Text
..}
instance Property "ProvisioningArtifactId" ServiceActionAssociation where
  type PropertyType "ProvisioningArtifactId" ServiceActionAssociation = Value Prelude.Text
  set :: PropertyType "ProvisioningArtifactId" ServiceActionAssociation
-> ServiceActionAssociation -> ServiceActionAssociation
set PropertyType "ProvisioningArtifactId" ServiceActionAssociation
newValue ServiceActionAssociation {()
Value Text
haddock_workaround_ :: ServiceActionAssociation -> ()
productId :: ServiceActionAssociation -> Value Text
provisioningArtifactId :: ServiceActionAssociation -> Value Text
serviceActionId :: ServiceActionAssociation -> Value Text
haddock_workaround_ :: ()
productId :: Value Text
provisioningArtifactId :: Value Text
serviceActionId :: Value Text
..}
    = ServiceActionAssociation {provisioningArtifactId :: Value Text
provisioningArtifactId = PropertyType "ProvisioningArtifactId" ServiceActionAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
productId :: Value Text
serviceActionId :: Value Text
haddock_workaround_ :: ()
productId :: Value Text
serviceActionId :: Value Text
..}
instance Property "ServiceActionId" ServiceActionAssociation where
  type PropertyType "ServiceActionId" ServiceActionAssociation = Value Prelude.Text
  set :: PropertyType "ServiceActionId" ServiceActionAssociation
-> ServiceActionAssociation -> ServiceActionAssociation
set PropertyType "ServiceActionId" ServiceActionAssociation
newValue ServiceActionAssociation {()
Value Text
haddock_workaround_ :: ServiceActionAssociation -> ()
productId :: ServiceActionAssociation -> Value Text
provisioningArtifactId :: ServiceActionAssociation -> Value Text
serviceActionId :: ServiceActionAssociation -> Value Text
haddock_workaround_ :: ()
productId :: Value Text
provisioningArtifactId :: Value Text
serviceActionId :: Value Text
..}
    = ServiceActionAssociation {serviceActionId :: Value Text
serviceActionId = PropertyType "ServiceActionId" ServiceActionAssociation
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
productId :: Value Text
provisioningArtifactId :: Value Text
haddock_workaround_ :: ()
productId :: Value Text
provisioningArtifactId :: Value Text
..}