module Stratosphere.EntityResolution.IdNamespace ( module Exports, IdNamespace(..), mkIdNamespace ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.EntityResolution.IdNamespace.IdNamespaceIdMappingWorkflowPropertiesProperty as Exports import {-# SOURCE #-} Stratosphere.EntityResolution.IdNamespace.IdNamespaceInputSourceProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data IdNamespace = -- | See: IdNamespace {haddock_workaround_ :: (), -- | See: description :: (Prelude.Maybe (Value Prelude.Text)), -- | See: idMappingWorkflowProperties :: (Prelude.Maybe [IdNamespaceIdMappingWorkflowPropertiesProperty]), -- | See: idNamespaceName :: (Value Prelude.Text), -- | See: inputSourceConfig :: (Prelude.Maybe [IdNamespaceInputSourceProperty]), -- | See: roleArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: type' :: (Value Prelude.Text)} deriving stock (Prelude.Eq, Prelude.Show) mkIdNamespace :: Value Prelude.Text -> Value Prelude.Text -> IdNamespace mkIdNamespace idNamespaceName type' = IdNamespace {haddock_workaround_ = (), idNamespaceName = idNamespaceName, type' = type', description = Prelude.Nothing, idMappingWorkflowProperties = Prelude.Nothing, inputSourceConfig = Prelude.Nothing, roleArn = Prelude.Nothing, tags = Prelude.Nothing} instance ToResourceProperties IdNamespace where toResourceProperties IdNamespace {..} = ResourceProperties {awsType = "AWS::EntityResolution::IdNamespace", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["IdNamespaceName" JSON..= idNamespaceName, "Type" JSON..= type'] (Prelude.catMaybes [(JSON..=) "Description" Prelude.<$> description, (JSON..=) "IdMappingWorkflowProperties" Prelude.<$> idMappingWorkflowProperties, (JSON..=) "InputSourceConfig" Prelude.<$> inputSourceConfig, (JSON..=) "RoleArn" Prelude.<$> roleArn, (JSON..=) "Tags" Prelude.<$> tags]))} instance JSON.ToJSON IdNamespace where toJSON IdNamespace {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["IdNamespaceName" JSON..= idNamespaceName, "Type" JSON..= type'] (Prelude.catMaybes [(JSON..=) "Description" Prelude.<$> description, (JSON..=) "IdMappingWorkflowProperties" Prelude.<$> idMappingWorkflowProperties, (JSON..=) "InputSourceConfig" Prelude.<$> inputSourceConfig, (JSON..=) "RoleArn" Prelude.<$> roleArn, (JSON..=) "Tags" Prelude.<$> tags]))) instance Property "Description" IdNamespace where type PropertyType "Description" IdNamespace = Value Prelude.Text set newValue IdNamespace {..} = IdNamespace {description = Prelude.pure newValue, ..} instance Property "IdMappingWorkflowProperties" IdNamespace where type PropertyType "IdMappingWorkflowProperties" IdNamespace = [IdNamespaceIdMappingWorkflowPropertiesProperty] set newValue IdNamespace {..} = IdNamespace {idMappingWorkflowProperties = Prelude.pure newValue, ..} instance Property "IdNamespaceName" IdNamespace where type PropertyType "IdNamespaceName" IdNamespace = Value Prelude.Text set newValue IdNamespace {..} = IdNamespace {idNamespaceName = newValue, ..} instance Property "InputSourceConfig" IdNamespace where type PropertyType "InputSourceConfig" IdNamespace = [IdNamespaceInputSourceProperty] set newValue IdNamespace {..} = IdNamespace {inputSourceConfig = Prelude.pure newValue, ..} instance Property "RoleArn" IdNamespace where type PropertyType "RoleArn" IdNamespace = Value Prelude.Text set newValue IdNamespace {..} = IdNamespace {roleArn = Prelude.pure newValue, ..} instance Property "Tags" IdNamespace where type PropertyType "Tags" IdNamespace = [Tag] set newValue IdNamespace {..} = IdNamespace {tags = Prelude.pure newValue, ..} instance Property "Type" IdNamespace where type PropertyType "Type" IdNamespace = Value Prelude.Text set newValue IdNamespace {..} = IdNamespace {type' = newValue, ..}