module Stratosphere.Lex.Bot.AudioSpecificationProperty (
        AudioSpecificationProperty(..), mkAudioSpecificationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AudioSpecificationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-audiospecification.html>
    AudioSpecificationProperty {AudioSpecificationProperty -> ()
haddock_workaround_ :: (),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-audiospecification.html#cfn-lex-bot-audiospecification-endtimeoutms>
                                AudioSpecificationProperty -> Value Integer
endTimeoutMs :: (Value Prelude.Integer),
                                -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-audiospecification.html#cfn-lex-bot-audiospecification-maxlengthms>
                                AudioSpecificationProperty -> Value Integer
maxLengthMs :: (Value Prelude.Integer)}
  deriving stock (AudioSpecificationProperty -> AudioSpecificationProperty -> Bool
(AudioSpecificationProperty -> AudioSpecificationProperty -> Bool)
-> (AudioSpecificationProperty
    -> AudioSpecificationProperty -> Bool)
-> Eq AudioSpecificationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AudioSpecificationProperty -> AudioSpecificationProperty -> Bool
== :: AudioSpecificationProperty -> AudioSpecificationProperty -> Bool
$c/= :: AudioSpecificationProperty -> AudioSpecificationProperty -> Bool
/= :: AudioSpecificationProperty -> AudioSpecificationProperty -> Bool
Prelude.Eq, Int -> AudioSpecificationProperty -> ShowS
[AudioSpecificationProperty] -> ShowS
AudioSpecificationProperty -> String
(Int -> AudioSpecificationProperty -> ShowS)
-> (AudioSpecificationProperty -> String)
-> ([AudioSpecificationProperty] -> ShowS)
-> Show AudioSpecificationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AudioSpecificationProperty -> ShowS
showsPrec :: Int -> AudioSpecificationProperty -> ShowS
$cshow :: AudioSpecificationProperty -> String
show :: AudioSpecificationProperty -> String
$cshowList :: [AudioSpecificationProperty] -> ShowS
showList :: [AudioSpecificationProperty] -> ShowS
Prelude.Show)
mkAudioSpecificationProperty ::
  Value Prelude.Integer
  -> Value Prelude.Integer -> AudioSpecificationProperty
mkAudioSpecificationProperty :: Value Integer -> Value Integer -> AudioSpecificationProperty
mkAudioSpecificationProperty Value Integer
endTimeoutMs Value Integer
maxLengthMs
  = AudioSpecificationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), endTimeoutMs :: Value Integer
endTimeoutMs = Value Integer
endTimeoutMs,
       maxLengthMs :: Value Integer
maxLengthMs = Value Integer
maxLengthMs}
instance ToResourceProperties AudioSpecificationProperty where
  toResourceProperties :: AudioSpecificationProperty -> ResourceProperties
toResourceProperties AudioSpecificationProperty {()
Value Integer
haddock_workaround_ :: AudioSpecificationProperty -> ()
endTimeoutMs :: AudioSpecificationProperty -> Value Integer
maxLengthMs :: AudioSpecificationProperty -> Value Integer
haddock_workaround_ :: ()
endTimeoutMs :: Value Integer
maxLengthMs :: Value Integer
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Lex::Bot.AudioSpecification",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"EndTimeoutMs" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
endTimeoutMs,
                       Key
"MaxLengthMs" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
maxLengthMs]}
instance JSON.ToJSON AudioSpecificationProperty where
  toJSON :: AudioSpecificationProperty -> Value
toJSON AudioSpecificationProperty {()
Value Integer
haddock_workaround_ :: AudioSpecificationProperty -> ()
endTimeoutMs :: AudioSpecificationProperty -> Value Integer
maxLengthMs :: AudioSpecificationProperty -> Value Integer
haddock_workaround_ :: ()
endTimeoutMs :: Value Integer
maxLengthMs :: Value Integer
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"EndTimeoutMs" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
endTimeoutMs,
         Key
"MaxLengthMs" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
maxLengthMs]
instance Property "EndTimeoutMs" AudioSpecificationProperty where
  type PropertyType "EndTimeoutMs" AudioSpecificationProperty = Value Prelude.Integer
  set :: PropertyType "EndTimeoutMs" AudioSpecificationProperty
-> AudioSpecificationProperty -> AudioSpecificationProperty
set PropertyType "EndTimeoutMs" AudioSpecificationProperty
newValue AudioSpecificationProperty {()
Value Integer
haddock_workaround_ :: AudioSpecificationProperty -> ()
endTimeoutMs :: AudioSpecificationProperty -> Value Integer
maxLengthMs :: AudioSpecificationProperty -> Value Integer
haddock_workaround_ :: ()
endTimeoutMs :: Value Integer
maxLengthMs :: Value Integer
..}
    = AudioSpecificationProperty {endTimeoutMs :: Value Integer
endTimeoutMs = PropertyType "EndTimeoutMs" AudioSpecificationProperty
Value Integer
newValue, ()
Value Integer
haddock_workaround_ :: ()
maxLengthMs :: Value Integer
haddock_workaround_ :: ()
maxLengthMs :: Value Integer
..}
instance Property "MaxLengthMs" AudioSpecificationProperty where
  type PropertyType "MaxLengthMs" AudioSpecificationProperty = Value Prelude.Integer
  set :: PropertyType "MaxLengthMs" AudioSpecificationProperty
-> AudioSpecificationProperty -> AudioSpecificationProperty
set PropertyType "MaxLengthMs" AudioSpecificationProperty
newValue AudioSpecificationProperty {()
Value Integer
haddock_workaround_ :: AudioSpecificationProperty -> ()
endTimeoutMs :: AudioSpecificationProperty -> Value Integer
maxLengthMs :: AudioSpecificationProperty -> Value Integer
haddock_workaround_ :: ()
endTimeoutMs :: Value Integer
maxLengthMs :: Value Integer
..}
    = AudioSpecificationProperty {maxLengthMs :: Value Integer
maxLengthMs = PropertyType "MaxLengthMs" AudioSpecificationProperty
Value Integer
newValue, ()
Value Integer
haddock_workaround_ :: ()
endTimeoutMs :: Value Integer
haddock_workaround_ :: ()
endTimeoutMs :: Value Integer
..}