packages feed

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

module Stratosphere.DataZone.DataSource (
        module Exports, DataSource(..), mkDataSource
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.DataZone.DataSource.DataSourceConfigurationInputProperty as Exports
import {-# SOURCE #-} Stratosphere.DataZone.DataSource.FormInputProperty as Exports
import {-# SOURCE #-} Stratosphere.DataZone.DataSource.RecommendationConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.DataZone.DataSource.ScheduleConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data DataSource
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html>
    DataSource {haddock_workaround_ :: (),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-assetformsinput>
                assetFormsInput :: (Prelude.Maybe [FormInputProperty]),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-configuration>
                configuration :: (Prelude.Maybe DataSourceConfigurationInputProperty),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-connectionidentifier>
                connectionIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-description>
                description :: (Prelude.Maybe (Value Prelude.Text)),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-domainidentifier>
                domainIdentifier :: (Value Prelude.Text),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-enablesetting>
                enableSetting :: (Prelude.Maybe (Value Prelude.Text)),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-environmentidentifier>
                environmentIdentifier :: (Prelude.Maybe (Value Prelude.Text)),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-name>
                name :: (Value Prelude.Text),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-projectidentifier>
                projectIdentifier :: (Value Prelude.Text),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-publishonimport>
                publishOnImport :: (Prelude.Maybe (Value Prelude.Bool)),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-recommendation>
                recommendation :: (Prelude.Maybe RecommendationConfigurationProperty),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-schedule>
                schedule :: (Prelude.Maybe ScheduleConfigurationProperty),
                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datazone-datasource.html#cfn-datazone-datasource-type>
                type' :: (Value Prelude.Text)}
  deriving stock (Prelude.Eq, Prelude.Show)
mkDataSource ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> Value Prelude.Text -> DataSource
mkDataSource domainIdentifier name projectIdentifier type'
  = DataSource
      {haddock_workaround_ = (), domainIdentifier = domainIdentifier,
       name = name, projectIdentifier = projectIdentifier, type' = type',
       assetFormsInput = Prelude.Nothing, configuration = Prelude.Nothing,
       connectionIdentifier = Prelude.Nothing,
       description = Prelude.Nothing, enableSetting = Prelude.Nothing,
       environmentIdentifier = Prelude.Nothing,
       publishOnImport = Prelude.Nothing,
       recommendation = Prelude.Nothing, schedule = Prelude.Nothing}
instance ToResourceProperties DataSource where
  toResourceProperties DataSource {..}
    = ResourceProperties
        {awsType = "AWS::DataZone::DataSource",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["DomainIdentifier" JSON..= domainIdentifier, "Name" JSON..= name,
                            "ProjectIdentifier" JSON..= projectIdentifier,
                            "Type" JSON..= type']
                           (Prelude.catMaybes
                              [(JSON..=) "AssetFormsInput" Prelude.<$> assetFormsInput,
                               (JSON..=) "Configuration" Prelude.<$> configuration,
                               (JSON..=) "ConnectionIdentifier" Prelude.<$> connectionIdentifier,
                               (JSON..=) "Description" Prelude.<$> description,
                               (JSON..=) "EnableSetting" Prelude.<$> enableSetting,
                               (JSON..=) "EnvironmentIdentifier"
                                 Prelude.<$> environmentIdentifier,
                               (JSON..=) "PublishOnImport" Prelude.<$> publishOnImport,
                               (JSON..=) "Recommendation" Prelude.<$> recommendation,
                               (JSON..=) "Schedule" Prelude.<$> schedule]))}
instance JSON.ToJSON DataSource where
  toJSON DataSource {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["DomainIdentifier" JSON..= domainIdentifier, "Name" JSON..= name,
               "ProjectIdentifier" JSON..= projectIdentifier,
               "Type" JSON..= type']
              (Prelude.catMaybes
                 [(JSON..=) "AssetFormsInput" Prelude.<$> assetFormsInput,
                  (JSON..=) "Configuration" Prelude.<$> configuration,
                  (JSON..=) "ConnectionIdentifier" Prelude.<$> connectionIdentifier,
                  (JSON..=) "Description" Prelude.<$> description,
                  (JSON..=) "EnableSetting" Prelude.<$> enableSetting,
                  (JSON..=) "EnvironmentIdentifier"
                    Prelude.<$> environmentIdentifier,
                  (JSON..=) "PublishOnImport" Prelude.<$> publishOnImport,
                  (JSON..=) "Recommendation" Prelude.<$> recommendation,
                  (JSON..=) "Schedule" Prelude.<$> schedule])))
instance Property "AssetFormsInput" DataSource where
  type PropertyType "AssetFormsInput" DataSource = [FormInputProperty]
  set newValue DataSource {..}
    = DataSource {assetFormsInput = Prelude.pure newValue, ..}
instance Property "Configuration" DataSource where
  type PropertyType "Configuration" DataSource = DataSourceConfigurationInputProperty
  set newValue DataSource {..}
    = DataSource {configuration = Prelude.pure newValue, ..}
instance Property "ConnectionIdentifier" DataSource where
  type PropertyType "ConnectionIdentifier" DataSource = Value Prelude.Text
  set newValue DataSource {..}
    = DataSource {connectionIdentifier = Prelude.pure newValue, ..}
instance Property "Description" DataSource where
  type PropertyType "Description" DataSource = Value Prelude.Text
  set newValue DataSource {..}
    = DataSource {description = Prelude.pure newValue, ..}
instance Property "DomainIdentifier" DataSource where
  type PropertyType "DomainIdentifier" DataSource = Value Prelude.Text
  set newValue DataSource {..}
    = DataSource {domainIdentifier = newValue, ..}
instance Property "EnableSetting" DataSource where
  type PropertyType "EnableSetting" DataSource = Value Prelude.Text
  set newValue DataSource {..}
    = DataSource {enableSetting = Prelude.pure newValue, ..}
instance Property "EnvironmentIdentifier" DataSource where
  type PropertyType "EnvironmentIdentifier" DataSource = Value Prelude.Text
  set newValue DataSource {..}
    = DataSource {environmentIdentifier = Prelude.pure newValue, ..}
instance Property "Name" DataSource where
  type PropertyType "Name" DataSource = Value Prelude.Text
  set newValue DataSource {..} = DataSource {name = newValue, ..}
instance Property "ProjectIdentifier" DataSource where
  type PropertyType "ProjectIdentifier" DataSource = Value Prelude.Text
  set newValue DataSource {..}
    = DataSource {projectIdentifier = newValue, ..}
instance Property "PublishOnImport" DataSource where
  type PropertyType "PublishOnImport" DataSource = Value Prelude.Bool
  set newValue DataSource {..}
    = DataSource {publishOnImport = Prelude.pure newValue, ..}
instance Property "Recommendation" DataSource where
  type PropertyType "Recommendation" DataSource = RecommendationConfigurationProperty
  set newValue DataSource {..}
    = DataSource {recommendation = Prelude.pure newValue, ..}
instance Property "Schedule" DataSource where
  type PropertyType "Schedule" DataSource = ScheduleConfigurationProperty
  set newValue DataSource {..}
    = DataSource {schedule = Prelude.pure newValue, ..}
instance Property "Type" DataSource where
  type PropertyType "Type" DataSource = Value Prelude.Text
  set newValue DataSource {..} = DataSource {type' = newValue, ..}