module Stratosphere.Cassandra.Type.FieldProperty (
        FieldProperty(..), mkFieldProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data FieldProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-type-field.html>
    FieldProperty {FieldProperty -> ()
haddock_workaround_ :: (),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-type-field.html#cfn-cassandra-type-field-fieldname>
                   FieldProperty -> Value Text
fieldName :: (Value Prelude.Text),
                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cassandra-type-field.html#cfn-cassandra-type-field-fieldtype>
                   FieldProperty -> Value Text
fieldType :: (Value Prelude.Text)}
  deriving stock (FieldProperty -> FieldProperty -> Bool
(FieldProperty -> FieldProperty -> Bool)
-> (FieldProperty -> FieldProperty -> Bool) -> Eq FieldProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FieldProperty -> FieldProperty -> Bool
== :: FieldProperty -> FieldProperty -> Bool
$c/= :: FieldProperty -> FieldProperty -> Bool
/= :: FieldProperty -> FieldProperty -> Bool
Prelude.Eq, Int -> FieldProperty -> ShowS
[FieldProperty] -> ShowS
FieldProperty -> String
(Int -> FieldProperty -> ShowS)
-> (FieldProperty -> String)
-> ([FieldProperty] -> ShowS)
-> Show FieldProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FieldProperty -> ShowS
showsPrec :: Int -> FieldProperty -> ShowS
$cshow :: FieldProperty -> String
show :: FieldProperty -> String
$cshowList :: [FieldProperty] -> ShowS
showList :: [FieldProperty] -> ShowS
Prelude.Show)
mkFieldProperty ::
  Value Prelude.Text -> Value Prelude.Text -> FieldProperty
mkFieldProperty :: Value Text -> Value Text -> FieldProperty
mkFieldProperty Value Text
fieldName Value Text
fieldType
  = FieldProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), fieldName :: Value Text
fieldName = Value Text
fieldName,
       fieldType :: Value Text
fieldType = Value Text
fieldType}
instance ToResourceProperties FieldProperty where
  toResourceProperties :: FieldProperty -> ResourceProperties
toResourceProperties FieldProperty {()
Value Text
haddock_workaround_ :: FieldProperty -> ()
fieldName :: FieldProperty -> Value Text
fieldType :: FieldProperty -> Value Text
haddock_workaround_ :: ()
fieldName :: Value Text
fieldType :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Cassandra::Type.Field",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"FieldName" 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
fieldName,
                       Key
"FieldType" 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
fieldType]}
instance JSON.ToJSON FieldProperty where
  toJSON :: FieldProperty -> Value
toJSON FieldProperty {()
Value Text
haddock_workaround_ :: FieldProperty -> ()
fieldName :: FieldProperty -> Value Text
fieldType :: FieldProperty -> Value Text
haddock_workaround_ :: ()
fieldName :: Value Text
fieldType :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"FieldName" 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
fieldName, Key
"FieldType" 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
fieldType]
instance Property "FieldName" FieldProperty where
  type PropertyType "FieldName" FieldProperty = Value Prelude.Text
  set :: PropertyType "FieldName" FieldProperty
-> FieldProperty -> FieldProperty
set PropertyType "FieldName" FieldProperty
newValue FieldProperty {()
Value Text
haddock_workaround_ :: FieldProperty -> ()
fieldName :: FieldProperty -> Value Text
fieldType :: FieldProperty -> Value Text
haddock_workaround_ :: ()
fieldName :: Value Text
fieldType :: Value Text
..}
    = FieldProperty {fieldName :: Value Text
fieldName = PropertyType "FieldName" FieldProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
fieldType :: Value Text
haddock_workaround_ :: ()
fieldType :: Value Text
..}
instance Property "FieldType" FieldProperty where
  type PropertyType "FieldType" FieldProperty = Value Prelude.Text
  set :: PropertyType "FieldType" FieldProperty
-> FieldProperty -> FieldProperty
set PropertyType "FieldType" FieldProperty
newValue FieldProperty {()
Value Text
haddock_workaround_ :: FieldProperty -> ()
fieldName :: FieldProperty -> Value Text
fieldType :: FieldProperty -> Value Text
haddock_workaround_ :: ()
fieldName :: Value Text
fieldType :: Value Text
..}
    = FieldProperty {fieldType :: Value Text
fieldType = PropertyType "FieldType" FieldProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
fieldName :: Value Text
haddock_workaround_ :: ()
fieldName :: Value Text
..}