module Stratosphere.Cassandra.Type ( module Exports, Type(..), mkType ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.Cassandra.Type.FieldProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data Type = -- | See: Type {haddock_workaround_ :: (), -- | See: fields :: [FieldProperty], -- | See: keyspaceName :: (Value Prelude.Text), -- | See: typeName :: (Value Prelude.Text)} deriving stock (Prelude.Eq, Prelude.Show) mkType :: [FieldProperty] -> Value Prelude.Text -> Value Prelude.Text -> Type mkType fields keyspaceName typeName = Type {haddock_workaround_ = (), fields = fields, keyspaceName = keyspaceName, typeName = typeName} instance ToResourceProperties Type where toResourceProperties Type {..} = ResourceProperties {awsType = "AWS::Cassandra::Type", supportsTags = Prelude.False, properties = ["Fields" JSON..= fields, "KeyspaceName" JSON..= keyspaceName, "TypeName" JSON..= typeName]} instance JSON.ToJSON Type where toJSON Type {..} = JSON.object ["Fields" JSON..= fields, "KeyspaceName" JSON..= keyspaceName, "TypeName" JSON..= typeName] instance Property "Fields" Type where type PropertyType "Fields" Type = [FieldProperty] set newValue Type {..} = Type {fields = newValue, ..} instance Property "KeyspaceName" Type where type PropertyType "KeyspaceName" Type = Value Prelude.Text set newValue Type {..} = Type {keyspaceName = newValue, ..} instance Property "TypeName" Type where type PropertyType "TypeName" Type = Value Prelude.Text set newValue Type {..} = Type {typeName = newValue, ..}