{-# 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.GetVoiceConnectorOrigination
-- 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.GetVoiceConnectorOrigination
  ( -- * Creating a Request
    GetVoiceConnectorOrigination (..),
    newGetVoiceConnectorOrigination,

    -- * Request Lenses
    getVoiceConnectorOrigination_voiceConnectorId,

    -- * Destructuring the Response
    GetVoiceConnectorOriginationResponse (..),
    newGetVoiceConnectorOriginationResponse,

    -- * Response Lenses
    getVoiceConnectorOriginationResponse_origination,
    getVoiceConnectorOriginationResponse_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:/ 'newGetVoiceConnectorOrigination' smart constructor.
data GetVoiceConnectorOrigination = GetVoiceConnectorOrigination'
  { GetVoiceConnectorOrigination -> Text
voiceConnectorId :: Prelude.Text
  }
  deriving (GetVoiceConnectorOrigination
-> GetVoiceConnectorOrigination -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetVoiceConnectorOrigination
-> GetVoiceConnectorOrigination -> Bool
$c/= :: GetVoiceConnectorOrigination
-> GetVoiceConnectorOrigination -> Bool
== :: GetVoiceConnectorOrigination
-> GetVoiceConnectorOrigination -> Bool
$c== :: GetVoiceConnectorOrigination
-> GetVoiceConnectorOrigination -> Bool
Prelude.Eq, ReadPrec [GetVoiceConnectorOrigination]
ReadPrec GetVoiceConnectorOrigination
Int -> ReadS GetVoiceConnectorOrigination
ReadS [GetVoiceConnectorOrigination]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetVoiceConnectorOrigination]
$creadListPrec :: ReadPrec [GetVoiceConnectorOrigination]
readPrec :: ReadPrec GetVoiceConnectorOrigination
$creadPrec :: ReadPrec GetVoiceConnectorOrigination
readList :: ReadS [GetVoiceConnectorOrigination]
$creadList :: ReadS [GetVoiceConnectorOrigination]
readsPrec :: Int -> ReadS GetVoiceConnectorOrigination
$creadsPrec :: Int -> ReadS GetVoiceConnectorOrigination
Prelude.Read, Int -> GetVoiceConnectorOrigination -> ShowS
[GetVoiceConnectorOrigination] -> ShowS
GetVoiceConnectorOrigination -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetVoiceConnectorOrigination] -> ShowS
$cshowList :: [GetVoiceConnectorOrigination] -> ShowS
show :: GetVoiceConnectorOrigination -> String
$cshow :: GetVoiceConnectorOrigination -> String
showsPrec :: Int -> GetVoiceConnectorOrigination -> ShowS
$cshowsPrec :: Int -> GetVoiceConnectorOrigination -> ShowS
Prelude.Show, forall x.
Rep GetVoiceConnectorOrigination x -> GetVoiceConnectorOrigination
forall x.
GetVoiceConnectorOrigination -> Rep GetVoiceConnectorOrigination x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetVoiceConnectorOrigination x -> GetVoiceConnectorOrigination
$cfrom :: forall x.
GetVoiceConnectorOrigination -> Rep GetVoiceConnectorOrigination x
Prelude.Generic)

-- |
-- Create a value of 'GetVoiceConnectorOrigination' 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:
--
-- 'voiceConnectorId', 'getVoiceConnectorOrigination_voiceConnectorId' - Undocumented member.
newGetVoiceConnectorOrigination ::
  -- | 'voiceConnectorId'
  Prelude.Text ->
  GetVoiceConnectorOrigination
newGetVoiceConnectorOrigination :: Text -> GetVoiceConnectorOrigination
newGetVoiceConnectorOrigination Text
pVoiceConnectorId_ =
  GetVoiceConnectorOrigination'
    { $sel:voiceConnectorId:GetVoiceConnectorOrigination' :: Text
voiceConnectorId =
        Text
pVoiceConnectorId_
    }

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

instance Core.AWSRequest GetVoiceConnectorOrigination where
  type
    AWSResponse GetVoiceConnectorOrigination =
      GetVoiceConnectorOriginationResponse
  request :: (Service -> Service)
-> GetVoiceConnectorOrigination
-> Request GetVoiceConnectorOrigination
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetVoiceConnectorOrigination
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetVoiceConnectorOrigination)))
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 Origination -> Int -> GetVoiceConnectorOriginationResponse
GetVoiceConnectorOriginationResponse'
            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
"Origination")
            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
    GetVoiceConnectorOrigination
  where
  hashWithSalt :: Int -> GetVoiceConnectorOrigination -> Int
hashWithSalt Int
_salt GetVoiceConnectorOrigination' {Text
voiceConnectorId :: Text
$sel:voiceConnectorId:GetVoiceConnectorOrigination' :: GetVoiceConnectorOrigination -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
voiceConnectorId

instance Prelude.NFData GetVoiceConnectorOrigination where
  rnf :: GetVoiceConnectorOrigination -> ()
rnf GetVoiceConnectorOrigination' {Text
voiceConnectorId :: Text
$sel:voiceConnectorId:GetVoiceConnectorOrigination' :: GetVoiceConnectorOrigination -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
voiceConnectorId

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

instance Data.ToPath GetVoiceConnectorOrigination where
  toPath :: GetVoiceConnectorOrigination -> ByteString
toPath GetVoiceConnectorOrigination' {Text
voiceConnectorId :: Text
$sel:voiceConnectorId:GetVoiceConnectorOrigination' :: GetVoiceConnectorOrigination -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/voice-connectors/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
voiceConnectorId,
        ByteString
"/origination"
      ]

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

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

-- |
-- Create a value of 'GetVoiceConnectorOriginationResponse' 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:
--
-- 'origination', 'getVoiceConnectorOriginationResponse_origination' - Undocumented member.
--
-- 'httpStatus', 'getVoiceConnectorOriginationResponse_httpStatus' - The response's http status code.
newGetVoiceConnectorOriginationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetVoiceConnectorOriginationResponse
newGetVoiceConnectorOriginationResponse :: Int -> GetVoiceConnectorOriginationResponse
newGetVoiceConnectorOriginationResponse Int
pHttpStatus_ =
  GetVoiceConnectorOriginationResponse'
    { $sel:origination:GetVoiceConnectorOriginationResponse' :: Maybe Origination
origination =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetVoiceConnectorOriginationResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Undocumented member.
getVoiceConnectorOriginationResponse_origination :: Lens.Lens' GetVoiceConnectorOriginationResponse (Prelude.Maybe Origination)
getVoiceConnectorOriginationResponse_origination :: Lens' GetVoiceConnectorOriginationResponse (Maybe Origination)
getVoiceConnectorOriginationResponse_origination = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetVoiceConnectorOriginationResponse' {Maybe Origination
origination :: Maybe Origination
$sel:origination:GetVoiceConnectorOriginationResponse' :: GetVoiceConnectorOriginationResponse -> Maybe Origination
origination} -> Maybe Origination
origination) (\s :: GetVoiceConnectorOriginationResponse
s@GetVoiceConnectorOriginationResponse' {} Maybe Origination
a -> GetVoiceConnectorOriginationResponse
s {$sel:origination:GetVoiceConnectorOriginationResponse' :: Maybe Origination
origination = Maybe Origination
a} :: GetVoiceConnectorOriginationResponse)

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

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