{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.ChimeSdkVoice.CreateSipMediaApplicationCall
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- -- | Undocumented operation.
module Amazonka.ChimeSdkVoice.CreateSipMediaApplicationCall
  ( -- * Creating a Request
    CreateSipMediaApplicationCall (..),
    newCreateSipMediaApplicationCall,

    -- * Request Lenses
    createSipMediaApplicationCall_argumentsMap,
    createSipMediaApplicationCall_sipHeaders,
    createSipMediaApplicationCall_fromPhoneNumber,
    createSipMediaApplicationCall_toPhoneNumber,
    createSipMediaApplicationCall_sipMediaApplicationId,

    -- * Destructuring the Response
    CreateSipMediaApplicationCallResponse (..),
    newCreateSipMediaApplicationCallResponse,

    -- * Response Lenses
    createSipMediaApplicationCallResponse_sipMediaApplicationCall,
    createSipMediaApplicationCallResponse_httpStatus,
  )
where

import Amazonka.ChimeSdkVoice.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newCreateSipMediaApplicationCall' smart constructor.
data CreateSipMediaApplicationCall = CreateSipMediaApplicationCall'
  { CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
argumentsMap :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Data.Sensitive Prelude.Text)),
    CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
sipHeaders :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Data.Sensitive Prelude.Text)),
    CreateSipMediaApplicationCall -> Sensitive Text
fromPhoneNumber :: Data.Sensitive Prelude.Text,
    CreateSipMediaApplicationCall -> Sensitive Text
toPhoneNumber :: Data.Sensitive Prelude.Text,
    CreateSipMediaApplicationCall -> Text
sipMediaApplicationId :: Prelude.Text
  }
  deriving (CreateSipMediaApplicationCall
-> CreateSipMediaApplicationCall -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateSipMediaApplicationCall
-> CreateSipMediaApplicationCall -> Bool
$c/= :: CreateSipMediaApplicationCall
-> CreateSipMediaApplicationCall -> Bool
== :: CreateSipMediaApplicationCall
-> CreateSipMediaApplicationCall -> Bool
$c== :: CreateSipMediaApplicationCall
-> CreateSipMediaApplicationCall -> Bool
Prelude.Eq, Int -> CreateSipMediaApplicationCall -> ShowS
[CreateSipMediaApplicationCall] -> ShowS
CreateSipMediaApplicationCall -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateSipMediaApplicationCall] -> ShowS
$cshowList :: [CreateSipMediaApplicationCall] -> ShowS
show :: CreateSipMediaApplicationCall -> String
$cshow :: CreateSipMediaApplicationCall -> String
showsPrec :: Int -> CreateSipMediaApplicationCall -> ShowS
$cshowsPrec :: Int -> CreateSipMediaApplicationCall -> ShowS
Prelude.Show, forall x.
Rep CreateSipMediaApplicationCall x
-> CreateSipMediaApplicationCall
forall x.
CreateSipMediaApplicationCall
-> Rep CreateSipMediaApplicationCall x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateSipMediaApplicationCall x
-> CreateSipMediaApplicationCall
$cfrom :: forall x.
CreateSipMediaApplicationCall
-> Rep CreateSipMediaApplicationCall x
Prelude.Generic)

-- |
-- Create a value of 'CreateSipMediaApplicationCall' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'argumentsMap', 'createSipMediaApplicationCall_argumentsMap' - Undocumented member.
--
-- 'sipHeaders', 'createSipMediaApplicationCall_sipHeaders' - Undocumented member.
--
-- 'fromPhoneNumber', 'createSipMediaApplicationCall_fromPhoneNumber' - Undocumented member.
--
-- 'toPhoneNumber', 'createSipMediaApplicationCall_toPhoneNumber' - Undocumented member.
--
-- 'sipMediaApplicationId', 'createSipMediaApplicationCall_sipMediaApplicationId' - Undocumented member.
newCreateSipMediaApplicationCall ::
  -- | 'fromPhoneNumber'
  Prelude.Text ->
  -- | 'toPhoneNumber'
  Prelude.Text ->
  -- | 'sipMediaApplicationId'
  Prelude.Text ->
  CreateSipMediaApplicationCall
newCreateSipMediaApplicationCall :: Text -> Text -> Text -> CreateSipMediaApplicationCall
newCreateSipMediaApplicationCall
  Text
pFromPhoneNumber_
  Text
pToPhoneNumber_
  Text
pSipMediaApplicationId_ =
    CreateSipMediaApplicationCall'
      { $sel:argumentsMap:CreateSipMediaApplicationCall' :: Maybe (HashMap Text (Sensitive Text))
argumentsMap =
          forall a. Maybe a
Prelude.Nothing,
        $sel:sipHeaders:CreateSipMediaApplicationCall' :: Maybe (HashMap Text (Sensitive Text))
sipHeaders = forall a. Maybe a
Prelude.Nothing,
        $sel:fromPhoneNumber:CreateSipMediaApplicationCall' :: Sensitive Text
fromPhoneNumber =
          forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pFromPhoneNumber_,
        $sel:toPhoneNumber:CreateSipMediaApplicationCall' :: Sensitive Text
toPhoneNumber =
          forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pToPhoneNumber_,
        $sel:sipMediaApplicationId:CreateSipMediaApplicationCall' :: Text
sipMediaApplicationId =
          Text
pSipMediaApplicationId_
      }

-- | Undocumented member.
createSipMediaApplicationCall_argumentsMap :: Lens.Lens' CreateSipMediaApplicationCall (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createSipMediaApplicationCall_argumentsMap :: Lens' CreateSipMediaApplicationCall (Maybe (HashMap Text Text))
createSipMediaApplicationCall_argumentsMap = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateSipMediaApplicationCall' {Maybe (HashMap Text (Sensitive Text))
argumentsMap :: Maybe (HashMap Text (Sensitive Text))
$sel:argumentsMap:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
argumentsMap} -> Maybe (HashMap Text (Sensitive Text))
argumentsMap) (\s :: CreateSipMediaApplicationCall
s@CreateSipMediaApplicationCall' {} Maybe (HashMap Text (Sensitive Text))
a -> CreateSipMediaApplicationCall
s {$sel:argumentsMap:CreateSipMediaApplicationCall' :: Maybe (HashMap Text (Sensitive Text))
argumentsMap = Maybe (HashMap Text (Sensitive Text))
a} :: CreateSipMediaApplicationCall) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Undocumented member.
createSipMediaApplicationCall_sipHeaders :: Lens.Lens' CreateSipMediaApplicationCall (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createSipMediaApplicationCall_sipHeaders :: Lens' CreateSipMediaApplicationCall (Maybe (HashMap Text Text))
createSipMediaApplicationCall_sipHeaders = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateSipMediaApplicationCall' {Maybe (HashMap Text (Sensitive Text))
sipHeaders :: Maybe (HashMap Text (Sensitive Text))
$sel:sipHeaders:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
sipHeaders} -> Maybe (HashMap Text (Sensitive Text))
sipHeaders) (\s :: CreateSipMediaApplicationCall
s@CreateSipMediaApplicationCall' {} Maybe (HashMap Text (Sensitive Text))
a -> CreateSipMediaApplicationCall
s {$sel:sipHeaders:CreateSipMediaApplicationCall' :: Maybe (HashMap Text (Sensitive Text))
sipHeaders = Maybe (HashMap Text (Sensitive Text))
a} :: CreateSipMediaApplicationCall) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Undocumented member.
createSipMediaApplicationCall_fromPhoneNumber :: Lens.Lens' CreateSipMediaApplicationCall Prelude.Text
createSipMediaApplicationCall_fromPhoneNumber :: Lens' CreateSipMediaApplicationCall Text
createSipMediaApplicationCall_fromPhoneNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateSipMediaApplicationCall' {Sensitive Text
fromPhoneNumber :: Sensitive Text
$sel:fromPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
fromPhoneNumber} -> Sensitive Text
fromPhoneNumber) (\s :: CreateSipMediaApplicationCall
s@CreateSipMediaApplicationCall' {} Sensitive Text
a -> CreateSipMediaApplicationCall
s {$sel:fromPhoneNumber:CreateSipMediaApplicationCall' :: Sensitive Text
fromPhoneNumber = Sensitive Text
a} :: CreateSipMediaApplicationCall) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | Undocumented member.
createSipMediaApplicationCall_toPhoneNumber :: Lens.Lens' CreateSipMediaApplicationCall Prelude.Text
createSipMediaApplicationCall_toPhoneNumber :: Lens' CreateSipMediaApplicationCall Text
createSipMediaApplicationCall_toPhoneNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateSipMediaApplicationCall' {Sensitive Text
toPhoneNumber :: Sensitive Text
$sel:toPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
toPhoneNumber} -> Sensitive Text
toPhoneNumber) (\s :: CreateSipMediaApplicationCall
s@CreateSipMediaApplicationCall' {} Sensitive Text
a -> CreateSipMediaApplicationCall
s {$sel:toPhoneNumber:CreateSipMediaApplicationCall' :: Sensitive Text
toPhoneNumber = Sensitive Text
a} :: CreateSipMediaApplicationCall) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive

-- | Undocumented member.
createSipMediaApplicationCall_sipMediaApplicationId :: Lens.Lens' CreateSipMediaApplicationCall Prelude.Text
createSipMediaApplicationCall_sipMediaApplicationId :: Lens' CreateSipMediaApplicationCall Text
createSipMediaApplicationCall_sipMediaApplicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateSipMediaApplicationCall' {Text
sipMediaApplicationId :: Text
$sel:sipMediaApplicationId:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Text
sipMediaApplicationId} -> Text
sipMediaApplicationId) (\s :: CreateSipMediaApplicationCall
s@CreateSipMediaApplicationCall' {} Text
a -> CreateSipMediaApplicationCall
s {$sel:sipMediaApplicationId:CreateSipMediaApplicationCall' :: Text
sipMediaApplicationId = Text
a} :: CreateSipMediaApplicationCall)

instance
  Core.AWSRequest
    CreateSipMediaApplicationCall
  where
  type
    AWSResponse CreateSipMediaApplicationCall =
      CreateSipMediaApplicationCallResponse
  request :: (Service -> Service)
-> CreateSipMediaApplicationCall
-> Request CreateSipMediaApplicationCall
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateSipMediaApplicationCall
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateSipMediaApplicationCall)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe SipMediaApplicationCall
-> Int -> CreateSipMediaApplicationCallResponse
CreateSipMediaApplicationCallResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"SipMediaApplicationCall")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    CreateSipMediaApplicationCall
  where
  hashWithSalt :: Int -> CreateSipMediaApplicationCall -> Int
hashWithSalt Int
_salt CreateSipMediaApplicationCall' {Maybe (HashMap Text (Sensitive Text))
Text
Sensitive Text
sipMediaApplicationId :: Text
toPhoneNumber :: Sensitive Text
fromPhoneNumber :: Sensitive Text
sipHeaders :: Maybe (HashMap Text (Sensitive Text))
argumentsMap :: Maybe (HashMap Text (Sensitive Text))
$sel:sipMediaApplicationId:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Text
$sel:toPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
$sel:fromPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
$sel:sipHeaders:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
$sel:argumentsMap:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text (Sensitive Text))
argumentsMap
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text (Sensitive Text))
sipHeaders
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
fromPhoneNumber
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
toPhoneNumber
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
sipMediaApplicationId

instance Prelude.NFData CreateSipMediaApplicationCall where
  rnf :: CreateSipMediaApplicationCall -> ()
rnf CreateSipMediaApplicationCall' {Maybe (HashMap Text (Sensitive Text))
Text
Sensitive Text
sipMediaApplicationId :: Text
toPhoneNumber :: Sensitive Text
fromPhoneNumber :: Sensitive Text
sipHeaders :: Maybe (HashMap Text (Sensitive Text))
argumentsMap :: Maybe (HashMap Text (Sensitive Text))
$sel:sipMediaApplicationId:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Text
$sel:toPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
$sel:fromPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
$sel:sipHeaders:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
$sel:argumentsMap:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text (Sensitive Text))
argumentsMap
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text (Sensitive Text))
sipHeaders
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
fromPhoneNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
toPhoneNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
sipMediaApplicationId

instance Data.ToHeaders CreateSipMediaApplicationCall where
  toHeaders :: CreateSipMediaApplicationCall -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToJSON CreateSipMediaApplicationCall where
  toJSON :: CreateSipMediaApplicationCall -> Value
toJSON CreateSipMediaApplicationCall' {Maybe (HashMap Text (Sensitive Text))
Text
Sensitive Text
sipMediaApplicationId :: Text
toPhoneNumber :: Sensitive Text
fromPhoneNumber :: Sensitive Text
sipHeaders :: Maybe (HashMap Text (Sensitive Text))
argumentsMap :: Maybe (HashMap Text (Sensitive Text))
$sel:sipMediaApplicationId:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Text
$sel:toPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
$sel:fromPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
$sel:sipHeaders:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
$sel:argumentsMap:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ArgumentsMap" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text (Sensitive Text))
argumentsMap,
            (Key
"SipHeaders" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text (Sensitive Text))
sipHeaders,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"FromPhoneNumber" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
fromPhoneNumber),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"ToPhoneNumber" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
toPhoneNumber)
          ]
      )

instance Data.ToPath CreateSipMediaApplicationCall where
  toPath :: CreateSipMediaApplicationCall -> ByteString
toPath CreateSipMediaApplicationCall' {Maybe (HashMap Text (Sensitive Text))
Text
Sensitive Text
sipMediaApplicationId :: Text
toPhoneNumber :: Sensitive Text
fromPhoneNumber :: Sensitive Text
sipHeaders :: Maybe (HashMap Text (Sensitive Text))
argumentsMap :: Maybe (HashMap Text (Sensitive Text))
$sel:sipMediaApplicationId:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Text
$sel:toPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
$sel:fromPhoneNumber:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall -> Sensitive Text
$sel:sipHeaders:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
$sel:argumentsMap:CreateSipMediaApplicationCall' :: CreateSipMediaApplicationCall
-> Maybe (HashMap Text (Sensitive Text))
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/sip-media-applications/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
sipMediaApplicationId,
        ByteString
"/calls"
      ]

instance Data.ToQuery CreateSipMediaApplicationCall where
  toQuery :: CreateSipMediaApplicationCall -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newCreateSipMediaApplicationCallResponse' smart constructor.
data CreateSipMediaApplicationCallResponse = CreateSipMediaApplicationCallResponse'
  { CreateSipMediaApplicationCallResponse
-> Maybe SipMediaApplicationCall
sipMediaApplicationCall :: Prelude.Maybe SipMediaApplicationCall,
    -- | The response's http status code.
    CreateSipMediaApplicationCallResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateSipMediaApplicationCallResponse
-> CreateSipMediaApplicationCallResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateSipMediaApplicationCallResponse
-> CreateSipMediaApplicationCallResponse -> Bool
$c/= :: CreateSipMediaApplicationCallResponse
-> CreateSipMediaApplicationCallResponse -> Bool
== :: CreateSipMediaApplicationCallResponse
-> CreateSipMediaApplicationCallResponse -> Bool
$c== :: CreateSipMediaApplicationCallResponse
-> CreateSipMediaApplicationCallResponse -> Bool
Prelude.Eq, ReadPrec [CreateSipMediaApplicationCallResponse]
ReadPrec CreateSipMediaApplicationCallResponse
Int -> ReadS CreateSipMediaApplicationCallResponse
ReadS [CreateSipMediaApplicationCallResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateSipMediaApplicationCallResponse]
$creadListPrec :: ReadPrec [CreateSipMediaApplicationCallResponse]
readPrec :: ReadPrec CreateSipMediaApplicationCallResponse
$creadPrec :: ReadPrec CreateSipMediaApplicationCallResponse
readList :: ReadS [CreateSipMediaApplicationCallResponse]
$creadList :: ReadS [CreateSipMediaApplicationCallResponse]
readsPrec :: Int -> ReadS CreateSipMediaApplicationCallResponse
$creadsPrec :: Int -> ReadS CreateSipMediaApplicationCallResponse
Prelude.Read, Int -> CreateSipMediaApplicationCallResponse -> ShowS
[CreateSipMediaApplicationCallResponse] -> ShowS
CreateSipMediaApplicationCallResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateSipMediaApplicationCallResponse] -> ShowS
$cshowList :: [CreateSipMediaApplicationCallResponse] -> ShowS
show :: CreateSipMediaApplicationCallResponse -> String
$cshow :: CreateSipMediaApplicationCallResponse -> String
showsPrec :: Int -> CreateSipMediaApplicationCallResponse -> ShowS
$cshowsPrec :: Int -> CreateSipMediaApplicationCallResponse -> ShowS
Prelude.Show, forall x.
Rep CreateSipMediaApplicationCallResponse x
-> CreateSipMediaApplicationCallResponse
forall x.
CreateSipMediaApplicationCallResponse
-> Rep CreateSipMediaApplicationCallResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateSipMediaApplicationCallResponse x
-> CreateSipMediaApplicationCallResponse
$cfrom :: forall x.
CreateSipMediaApplicationCallResponse
-> Rep CreateSipMediaApplicationCallResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateSipMediaApplicationCallResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'sipMediaApplicationCall', 'createSipMediaApplicationCallResponse_sipMediaApplicationCall' - Undocumented member.
--
-- 'httpStatus', 'createSipMediaApplicationCallResponse_httpStatus' - The response's http status code.
newCreateSipMediaApplicationCallResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateSipMediaApplicationCallResponse
newCreateSipMediaApplicationCallResponse :: Int -> CreateSipMediaApplicationCallResponse
newCreateSipMediaApplicationCallResponse Int
pHttpStatus_ =
  CreateSipMediaApplicationCallResponse'
    { $sel:sipMediaApplicationCall:CreateSipMediaApplicationCallResponse' :: Maybe SipMediaApplicationCall
sipMediaApplicationCall =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateSipMediaApplicationCallResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Undocumented member.
createSipMediaApplicationCallResponse_sipMediaApplicationCall :: Lens.Lens' CreateSipMediaApplicationCallResponse (Prelude.Maybe SipMediaApplicationCall)
createSipMediaApplicationCallResponse_sipMediaApplicationCall :: Lens'
  CreateSipMediaApplicationCallResponse
  (Maybe SipMediaApplicationCall)
createSipMediaApplicationCallResponse_sipMediaApplicationCall = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateSipMediaApplicationCallResponse' {Maybe SipMediaApplicationCall
sipMediaApplicationCall :: Maybe SipMediaApplicationCall
$sel:sipMediaApplicationCall:CreateSipMediaApplicationCallResponse' :: CreateSipMediaApplicationCallResponse
-> Maybe SipMediaApplicationCall
sipMediaApplicationCall} -> Maybe SipMediaApplicationCall
sipMediaApplicationCall) (\s :: CreateSipMediaApplicationCallResponse
s@CreateSipMediaApplicationCallResponse' {} Maybe SipMediaApplicationCall
a -> CreateSipMediaApplicationCallResponse
s {$sel:sipMediaApplicationCall:CreateSipMediaApplicationCallResponse' :: Maybe SipMediaApplicationCall
sipMediaApplicationCall = Maybe SipMediaApplicationCall
a} :: CreateSipMediaApplicationCallResponse)

-- | The response's http status code.
createSipMediaApplicationCallResponse_httpStatus :: Lens.Lens' CreateSipMediaApplicationCallResponse Prelude.Int
createSipMediaApplicationCallResponse_httpStatus :: Lens' CreateSipMediaApplicationCallResponse Int
createSipMediaApplicationCallResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateSipMediaApplicationCallResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateSipMediaApplicationCallResponse' :: CreateSipMediaApplicationCallResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateSipMediaApplicationCallResponse
s@CreateSipMediaApplicationCallResponse' {} Int
a -> CreateSipMediaApplicationCallResponse
s {$sel:httpStatus:CreateSipMediaApplicationCallResponse' :: Int
httpStatus = Int
a} :: CreateSipMediaApplicationCallResponse)

instance
  Prelude.NFData
    CreateSipMediaApplicationCallResponse
  where
  rnf :: CreateSipMediaApplicationCallResponse -> ()
rnf CreateSipMediaApplicationCallResponse' {Int
Maybe SipMediaApplicationCall
httpStatus :: Int
sipMediaApplicationCall :: Maybe SipMediaApplicationCall
$sel:httpStatus:CreateSipMediaApplicationCallResponse' :: CreateSipMediaApplicationCallResponse -> Int
$sel:sipMediaApplicationCall:CreateSipMediaApplicationCallResponse' :: CreateSipMediaApplicationCallResponse
-> Maybe SipMediaApplicationCall
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe SipMediaApplicationCall
sipMediaApplicationCall
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus