packages feed

stratosphere-datazone-1.0.0: gen/Stratosphere/DataZone/SubscriptionTarget.hs

module Stratosphere.DataZone.SubscriptionTarget (
        module Exports, SubscriptionTarget(..), mkSubscriptionTarget
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.DataZone.SubscriptionTarget.SubscriptionTargetFormProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SubscriptionTarget
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html>
    SubscriptionTarget {haddock_workaround_ :: (),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html#cfn-datazone-subscriptiontarget-applicableassettypes>
                        applicableAssetTypes :: (ValueList Prelude.Text),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html#cfn-datazone-subscriptiontarget-authorizedprincipals>
                        authorizedPrincipals :: (ValueList Prelude.Text),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html#cfn-datazone-subscriptiontarget-domainidentifier>
                        domainIdentifier :: (Value Prelude.Text),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html#cfn-datazone-subscriptiontarget-environmentidentifier>
                        environmentIdentifier :: (Value Prelude.Text),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html#cfn-datazone-subscriptiontarget-manageaccessrole>
                        manageAccessRole :: (Prelude.Maybe (Value Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html#cfn-datazone-subscriptiontarget-name>
                        name :: (Value Prelude.Text),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html#cfn-datazone-subscriptiontarget-provider>
                        provider :: (Prelude.Maybe (Value Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html#cfn-datazone-subscriptiontarget-subscriptiontargetconfig>
                        subscriptionTargetConfig :: [SubscriptionTargetFormProperty],
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-subscriptiontarget.html#cfn-datazone-subscriptiontarget-type>
                        type' :: (Value Prelude.Text)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkSubscriptionTarget ::
  ValueList Prelude.Text
  -> ValueList Prelude.Text
     -> Value Prelude.Text
        -> Value Prelude.Text
           -> Value Prelude.Text
              -> [SubscriptionTargetFormProperty]
                 -> Value Prelude.Text -> SubscriptionTarget
mkSubscriptionTarget
  applicableAssetTypes
  authorizedPrincipals
  domainIdentifier
  environmentIdentifier
  name
  subscriptionTargetConfig
  type'
  = SubscriptionTarget
      {haddock_workaround_ = (),
       applicableAssetTypes = applicableAssetTypes,
       authorizedPrincipals = authorizedPrincipals,
       domainIdentifier = domainIdentifier,
       environmentIdentifier = environmentIdentifier, name = name,
       subscriptionTargetConfig = subscriptionTargetConfig, type' = type',
       manageAccessRole = Prelude.Nothing, provider = Prelude.Nothing}
instance ToResourceProperties SubscriptionTarget where
  toResourceProperties SubscriptionTarget {..}
    = ResourceProperties
        {awsType = "AWS::DataZone::SubscriptionTarget",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["ApplicableAssetTypes" JSON..= applicableAssetTypes,
                            "AuthorizedPrincipals" JSON..= authorizedPrincipals,
                            "DomainIdentifier" JSON..= domainIdentifier,
                            "EnvironmentIdentifier" JSON..= environmentIdentifier,
                            "Name" JSON..= name,
                            "SubscriptionTargetConfig" JSON..= subscriptionTargetConfig,
                            "Type" JSON..= type']
                           (Prelude.catMaybes
                              [(JSON..=) "ManageAccessRole" Prelude.<$> manageAccessRole,
                               (JSON..=) "Provider" Prelude.<$> provider]))}
instance JSON.ToJSON SubscriptionTarget where
  toJSON SubscriptionTarget {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["ApplicableAssetTypes" JSON..= applicableAssetTypes,
               "AuthorizedPrincipals" JSON..= authorizedPrincipals,
               "DomainIdentifier" JSON..= domainIdentifier,
               "EnvironmentIdentifier" JSON..= environmentIdentifier,
               "Name" JSON..= name,
               "SubscriptionTargetConfig" JSON..= subscriptionTargetConfig,
               "Type" JSON..= type']
              (Prelude.catMaybes
                 [(JSON..=) "ManageAccessRole" Prelude.<$> manageAccessRole,
                  (JSON..=) "Provider" Prelude.<$> provider])))
instance Property "ApplicableAssetTypes" SubscriptionTarget where
  type PropertyType "ApplicableAssetTypes" SubscriptionTarget = ValueList Prelude.Text
  set newValue SubscriptionTarget {..}
    = SubscriptionTarget {applicableAssetTypes = newValue, ..}
instance Property "AuthorizedPrincipals" SubscriptionTarget where
  type PropertyType "AuthorizedPrincipals" SubscriptionTarget = ValueList Prelude.Text
  set newValue SubscriptionTarget {..}
    = SubscriptionTarget {authorizedPrincipals = newValue, ..}
instance Property "DomainIdentifier" SubscriptionTarget where
  type PropertyType "DomainIdentifier" SubscriptionTarget = Value Prelude.Text
  set newValue SubscriptionTarget {..}
    = SubscriptionTarget {domainIdentifier = newValue, ..}
instance Property "EnvironmentIdentifier" SubscriptionTarget where
  type PropertyType "EnvironmentIdentifier" SubscriptionTarget = Value Prelude.Text
  set newValue SubscriptionTarget {..}
    = SubscriptionTarget {environmentIdentifier = newValue, ..}
instance Property "ManageAccessRole" SubscriptionTarget where
  type PropertyType "ManageAccessRole" SubscriptionTarget = Value Prelude.Text
  set newValue SubscriptionTarget {..}
    = SubscriptionTarget {manageAccessRole = Prelude.pure newValue, ..}
instance Property "Name" SubscriptionTarget where
  type PropertyType "Name" SubscriptionTarget = Value Prelude.Text
  set newValue SubscriptionTarget {..}
    = SubscriptionTarget {name = newValue, ..}
instance Property "Provider" SubscriptionTarget where
  type PropertyType "Provider" SubscriptionTarget = Value Prelude.Text
  set newValue SubscriptionTarget {..}
    = SubscriptionTarget {provider = Prelude.pure newValue, ..}
instance Property "SubscriptionTargetConfig" SubscriptionTarget where
  type PropertyType "SubscriptionTargetConfig" SubscriptionTarget = [SubscriptionTargetFormProperty]
  set newValue SubscriptionTarget {..}
    = SubscriptionTarget {subscriptionTargetConfig = newValue, ..}
instance Property "Type" SubscriptionTarget where
  type PropertyType "Type" SubscriptionTarget = Value Prelude.Text
  set newValue SubscriptionTarget {..}
    = SubscriptionTarget {type' = newValue, ..}