{-# 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.PinpointSmsVoiceV2.DisassociateOriginationIdentity
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Removes the specified origination identity from an existing pool.
--
-- If the origination identity isn\'t associated with the specified pool,
-- an Error is returned.
module Amazonka.PinpointSmsVoiceV2.DisassociateOriginationIdentity
  ( -- * Creating a Request
    DisassociateOriginationIdentity (..),
    newDisassociateOriginationIdentity,

    -- * Request Lenses
    disassociateOriginationIdentity_clientToken,
    disassociateOriginationIdentity_poolId,
    disassociateOriginationIdentity_originationIdentity,
    disassociateOriginationIdentity_isoCountryCode,

    -- * Destructuring the Response
    DisassociateOriginationIdentityResponse (..),
    newDisassociateOriginationIdentityResponse,

    -- * Response Lenses
    disassociateOriginationIdentityResponse_isoCountryCode,
    disassociateOriginationIdentityResponse_originationIdentity,
    disassociateOriginationIdentityResponse_originationIdentityArn,
    disassociateOriginationIdentityResponse_poolArn,
    disassociateOriginationIdentityResponse_poolId,
    disassociateOriginationIdentityResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDisassociateOriginationIdentity' smart constructor.
data DisassociateOriginationIdentity = DisassociateOriginationIdentity'
  { -- | Unique, case-sensitive identifier you provide to ensure the idempotency
    -- of the request. If you don\'t specify a client token, a randomly
    -- generated token is used for the request to ensure idempotency.
    DisassociateOriginationIdentity -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier for the pool to disassociate with the origination
    -- identity. This value can be either the PoolId or PoolArn.
    DisassociateOriginationIdentity -> Text
poolId :: Prelude.Text,
    -- | The origination identity to use such as a PhoneNumberId, PhoneNumberArn,
    -- SenderId or SenderIdArn. You can use DescribePhoneNumbers find the
    -- values for PhoneNumberId and PhoneNumberArn, or use DescribeSenderIds to
    -- get the values for SenderId and SenderIdArn.
    DisassociateOriginationIdentity -> Text
originationIdentity :: Prelude.Text,
    -- | The two-character code, in ISO 3166-1 alpha-2 format, for the country or
    -- region.
    DisassociateOriginationIdentity -> Text
isoCountryCode :: Prelude.Text
  }
  deriving (DisassociateOriginationIdentity
-> DisassociateOriginationIdentity -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DisassociateOriginationIdentity
-> DisassociateOriginationIdentity -> Bool
$c/= :: DisassociateOriginationIdentity
-> DisassociateOriginationIdentity -> Bool
== :: DisassociateOriginationIdentity
-> DisassociateOriginationIdentity -> Bool
$c== :: DisassociateOriginationIdentity
-> DisassociateOriginationIdentity -> Bool
Prelude.Eq, ReadPrec [DisassociateOriginationIdentity]
ReadPrec DisassociateOriginationIdentity
Int -> ReadS DisassociateOriginationIdentity
ReadS [DisassociateOriginationIdentity]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DisassociateOriginationIdentity]
$creadListPrec :: ReadPrec [DisassociateOriginationIdentity]
readPrec :: ReadPrec DisassociateOriginationIdentity
$creadPrec :: ReadPrec DisassociateOriginationIdentity
readList :: ReadS [DisassociateOriginationIdentity]
$creadList :: ReadS [DisassociateOriginationIdentity]
readsPrec :: Int -> ReadS DisassociateOriginationIdentity
$creadsPrec :: Int -> ReadS DisassociateOriginationIdentity
Prelude.Read, Int -> DisassociateOriginationIdentity -> ShowS
[DisassociateOriginationIdentity] -> ShowS
DisassociateOriginationIdentity -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DisassociateOriginationIdentity] -> ShowS
$cshowList :: [DisassociateOriginationIdentity] -> ShowS
show :: DisassociateOriginationIdentity -> String
$cshow :: DisassociateOriginationIdentity -> String
showsPrec :: Int -> DisassociateOriginationIdentity -> ShowS
$cshowsPrec :: Int -> DisassociateOriginationIdentity -> ShowS
Prelude.Show, forall x.
Rep DisassociateOriginationIdentity x
-> DisassociateOriginationIdentity
forall x.
DisassociateOriginationIdentity
-> Rep DisassociateOriginationIdentity x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DisassociateOriginationIdentity x
-> DisassociateOriginationIdentity
$cfrom :: forall x.
DisassociateOriginationIdentity
-> Rep DisassociateOriginationIdentity x
Prelude.Generic)

-- |
-- Create a value of 'DisassociateOriginationIdentity' 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:
--
-- 'clientToken', 'disassociateOriginationIdentity_clientToken' - Unique, case-sensitive identifier you provide to ensure the idempotency
-- of the request. If you don\'t specify a client token, a randomly
-- generated token is used for the request to ensure idempotency.
--
-- 'poolId', 'disassociateOriginationIdentity_poolId' - The unique identifier for the pool to disassociate with the origination
-- identity. This value can be either the PoolId or PoolArn.
--
-- 'originationIdentity', 'disassociateOriginationIdentity_originationIdentity' - The origination identity to use such as a PhoneNumberId, PhoneNumberArn,
-- SenderId or SenderIdArn. You can use DescribePhoneNumbers find the
-- values for PhoneNumberId and PhoneNumberArn, or use DescribeSenderIds to
-- get the values for SenderId and SenderIdArn.
--
-- 'isoCountryCode', 'disassociateOriginationIdentity_isoCountryCode' - The two-character code, in ISO 3166-1 alpha-2 format, for the country or
-- region.
newDisassociateOriginationIdentity ::
  -- | 'poolId'
  Prelude.Text ->
  -- | 'originationIdentity'
  Prelude.Text ->
  -- | 'isoCountryCode'
  Prelude.Text ->
  DisassociateOriginationIdentity
newDisassociateOriginationIdentity :: Text -> Text -> Text -> DisassociateOriginationIdentity
newDisassociateOriginationIdentity
  Text
pPoolId_
  Text
pOriginationIdentity_
  Text
pIsoCountryCode_ =
    DisassociateOriginationIdentity'
      { $sel:clientToken:DisassociateOriginationIdentity' :: Maybe Text
clientToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:poolId:DisassociateOriginationIdentity' :: Text
poolId = Text
pPoolId_,
        $sel:originationIdentity:DisassociateOriginationIdentity' :: Text
originationIdentity =
          Text
pOriginationIdentity_,
        $sel:isoCountryCode:DisassociateOriginationIdentity' :: Text
isoCountryCode = Text
pIsoCountryCode_
      }

-- | Unique, case-sensitive identifier you provide to ensure the idempotency
-- of the request. If you don\'t specify a client token, a randomly
-- generated token is used for the request to ensure idempotency.
disassociateOriginationIdentity_clientToken :: Lens.Lens' DisassociateOriginationIdentity (Prelude.Maybe Prelude.Text)
disassociateOriginationIdentity_clientToken :: Lens' DisassociateOriginationIdentity (Maybe Text)
disassociateOriginationIdentity_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateOriginationIdentity' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: DisassociateOriginationIdentity
s@DisassociateOriginationIdentity' {} Maybe Text
a -> DisassociateOriginationIdentity
s {$sel:clientToken:DisassociateOriginationIdentity' :: Maybe Text
clientToken = Maybe Text
a} :: DisassociateOriginationIdentity)

-- | The unique identifier for the pool to disassociate with the origination
-- identity. This value can be either the PoolId or PoolArn.
disassociateOriginationIdentity_poolId :: Lens.Lens' DisassociateOriginationIdentity Prelude.Text
disassociateOriginationIdentity_poolId :: Lens' DisassociateOriginationIdentity Text
disassociateOriginationIdentity_poolId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateOriginationIdentity' {Text
poolId :: Text
$sel:poolId:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
poolId} -> Text
poolId) (\s :: DisassociateOriginationIdentity
s@DisassociateOriginationIdentity' {} Text
a -> DisassociateOriginationIdentity
s {$sel:poolId:DisassociateOriginationIdentity' :: Text
poolId = Text
a} :: DisassociateOriginationIdentity)

-- | The origination identity to use such as a PhoneNumberId, PhoneNumberArn,
-- SenderId or SenderIdArn. You can use DescribePhoneNumbers find the
-- values for PhoneNumberId and PhoneNumberArn, or use DescribeSenderIds to
-- get the values for SenderId and SenderIdArn.
disassociateOriginationIdentity_originationIdentity :: Lens.Lens' DisassociateOriginationIdentity Prelude.Text
disassociateOriginationIdentity_originationIdentity :: Lens' DisassociateOriginationIdentity Text
disassociateOriginationIdentity_originationIdentity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateOriginationIdentity' {Text
originationIdentity :: Text
$sel:originationIdentity:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
originationIdentity} -> Text
originationIdentity) (\s :: DisassociateOriginationIdentity
s@DisassociateOriginationIdentity' {} Text
a -> DisassociateOriginationIdentity
s {$sel:originationIdentity:DisassociateOriginationIdentity' :: Text
originationIdentity = Text
a} :: DisassociateOriginationIdentity)

-- | The two-character code, in ISO 3166-1 alpha-2 format, for the country or
-- region.
disassociateOriginationIdentity_isoCountryCode :: Lens.Lens' DisassociateOriginationIdentity Prelude.Text
disassociateOriginationIdentity_isoCountryCode :: Lens' DisassociateOriginationIdentity Text
disassociateOriginationIdentity_isoCountryCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateOriginationIdentity' {Text
isoCountryCode :: Text
$sel:isoCountryCode:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
isoCountryCode} -> Text
isoCountryCode) (\s :: DisassociateOriginationIdentity
s@DisassociateOriginationIdentity' {} Text
a -> DisassociateOriginationIdentity
s {$sel:isoCountryCode:DisassociateOriginationIdentity' :: Text
isoCountryCode = Text
a} :: DisassociateOriginationIdentity)

instance
  Core.AWSRequest
    DisassociateOriginationIdentity
  where
  type
    AWSResponse DisassociateOriginationIdentity =
      DisassociateOriginationIdentityResponse
  request :: (Service -> Service)
-> DisassociateOriginationIdentity
-> Request DisassociateOriginationIdentity
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 DisassociateOriginationIdentity
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DisassociateOriginationIdentity)))
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 Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DisassociateOriginationIdentityResponse
DisassociateOriginationIdentityResponse'
            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
"IsoCountryCode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"OriginationIdentity")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"OriginationIdentityArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"PoolArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"PoolId")
            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
    DisassociateOriginationIdentity
  where
  hashWithSalt :: Int -> DisassociateOriginationIdentity -> Int
hashWithSalt
    Int
_salt
    DisassociateOriginationIdentity' {Maybe Text
Text
isoCountryCode :: Text
originationIdentity :: Text
poolId :: Text
clientToken :: Maybe Text
$sel:isoCountryCode:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
$sel:originationIdentity:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
$sel:poolId:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
$sel:clientToken:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
poolId
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
originationIdentity
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
isoCountryCode

instance
  Prelude.NFData
    DisassociateOriginationIdentity
  where
  rnf :: DisassociateOriginationIdentity -> ()
rnf DisassociateOriginationIdentity' {Maybe Text
Text
isoCountryCode :: Text
originationIdentity :: Text
poolId :: Text
clientToken :: Maybe Text
$sel:isoCountryCode:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
$sel:originationIdentity:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
$sel:poolId:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
$sel:clientToken:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
poolId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
originationIdentity
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
isoCountryCode

instance
  Data.ToHeaders
    DisassociateOriginationIdentity
  where
  toHeaders :: DisassociateOriginationIdentity -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"PinpointSMSVoiceV2.DisassociateOriginationIdentity" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DisassociateOriginationIdentity where
  toJSON :: DisassociateOriginationIdentity -> Value
toJSON DisassociateOriginationIdentity' {Maybe Text
Text
isoCountryCode :: Text
originationIdentity :: Text
poolId :: Text
clientToken :: Maybe Text
$sel:isoCountryCode:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
$sel:originationIdentity:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
$sel:poolId:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Text
$sel:clientToken:DisassociateOriginationIdentity' :: DisassociateOriginationIdentity -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ClientToken" 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 Text
clientToken,
            forall a. a -> Maybe a
Prelude.Just (Key
"PoolId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
poolId),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"OriginationIdentity" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
originationIdentity),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"IsoCountryCode" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
isoCountryCode)
          ]
      )

instance Data.ToPath DisassociateOriginationIdentity where
  toPath :: DisassociateOriginationIdentity -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | /See:/ 'newDisassociateOriginationIdentityResponse' smart constructor.
data DisassociateOriginationIdentityResponse = DisassociateOriginationIdentityResponse'
  { -- | The two-character code, in ISO 3166-1 alpha-2 format, for the country or
    -- region.
    DisassociateOriginationIdentityResponse -> Maybe Text
isoCountryCode :: Prelude.Maybe Prelude.Text,
    -- | The PhoneNumberId or SenderId of the origination identity.
    DisassociateOriginationIdentityResponse -> Maybe Text
originationIdentity :: Prelude.Maybe Prelude.Text,
    -- | The PhoneNumberArn or SenderIdArn of the origination identity.
    DisassociateOriginationIdentityResponse -> Maybe Text
originationIdentityArn :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the pool.
    DisassociateOriginationIdentityResponse -> Maybe Text
poolArn :: Prelude.Maybe Prelude.Text,
    -- | The PoolId of the pool no longer associated with the origination
    -- identity.
    DisassociateOriginationIdentityResponse -> Maybe Text
poolId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DisassociateOriginationIdentityResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DisassociateOriginationIdentityResponse
-> DisassociateOriginationIdentityResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DisassociateOriginationIdentityResponse
-> DisassociateOriginationIdentityResponse -> Bool
$c/= :: DisassociateOriginationIdentityResponse
-> DisassociateOriginationIdentityResponse -> Bool
== :: DisassociateOriginationIdentityResponse
-> DisassociateOriginationIdentityResponse -> Bool
$c== :: DisassociateOriginationIdentityResponse
-> DisassociateOriginationIdentityResponse -> Bool
Prelude.Eq, ReadPrec [DisassociateOriginationIdentityResponse]
ReadPrec DisassociateOriginationIdentityResponse
Int -> ReadS DisassociateOriginationIdentityResponse
ReadS [DisassociateOriginationIdentityResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DisassociateOriginationIdentityResponse]
$creadListPrec :: ReadPrec [DisassociateOriginationIdentityResponse]
readPrec :: ReadPrec DisassociateOriginationIdentityResponse
$creadPrec :: ReadPrec DisassociateOriginationIdentityResponse
readList :: ReadS [DisassociateOriginationIdentityResponse]
$creadList :: ReadS [DisassociateOriginationIdentityResponse]
readsPrec :: Int -> ReadS DisassociateOriginationIdentityResponse
$creadsPrec :: Int -> ReadS DisassociateOriginationIdentityResponse
Prelude.Read, Int -> DisassociateOriginationIdentityResponse -> ShowS
[DisassociateOriginationIdentityResponse] -> ShowS
DisassociateOriginationIdentityResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DisassociateOriginationIdentityResponse] -> ShowS
$cshowList :: [DisassociateOriginationIdentityResponse] -> ShowS
show :: DisassociateOriginationIdentityResponse -> String
$cshow :: DisassociateOriginationIdentityResponse -> String
showsPrec :: Int -> DisassociateOriginationIdentityResponse -> ShowS
$cshowsPrec :: Int -> DisassociateOriginationIdentityResponse -> ShowS
Prelude.Show, forall x.
Rep DisassociateOriginationIdentityResponse x
-> DisassociateOriginationIdentityResponse
forall x.
DisassociateOriginationIdentityResponse
-> Rep DisassociateOriginationIdentityResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DisassociateOriginationIdentityResponse x
-> DisassociateOriginationIdentityResponse
$cfrom :: forall x.
DisassociateOriginationIdentityResponse
-> Rep DisassociateOriginationIdentityResponse x
Prelude.Generic)

-- |
-- Create a value of 'DisassociateOriginationIdentityResponse' 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:
--
-- 'isoCountryCode', 'disassociateOriginationIdentityResponse_isoCountryCode' - The two-character code, in ISO 3166-1 alpha-2 format, for the country or
-- region.
--
-- 'originationIdentity', 'disassociateOriginationIdentityResponse_originationIdentity' - The PhoneNumberId or SenderId of the origination identity.
--
-- 'originationIdentityArn', 'disassociateOriginationIdentityResponse_originationIdentityArn' - The PhoneNumberArn or SenderIdArn of the origination identity.
--
-- 'poolArn', 'disassociateOriginationIdentityResponse_poolArn' - The Amazon Resource Name (ARN) of the pool.
--
-- 'poolId', 'disassociateOriginationIdentityResponse_poolId' - The PoolId of the pool no longer associated with the origination
-- identity.
--
-- 'httpStatus', 'disassociateOriginationIdentityResponse_httpStatus' - The response's http status code.
newDisassociateOriginationIdentityResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DisassociateOriginationIdentityResponse
newDisassociateOriginationIdentityResponse :: Int -> DisassociateOriginationIdentityResponse
newDisassociateOriginationIdentityResponse
  Int
pHttpStatus_ =
    DisassociateOriginationIdentityResponse'
      { $sel:isoCountryCode:DisassociateOriginationIdentityResponse' :: Maybe Text
isoCountryCode =
          forall a. Maybe a
Prelude.Nothing,
        $sel:originationIdentity:DisassociateOriginationIdentityResponse' :: Maybe Text
originationIdentity =
          forall a. Maybe a
Prelude.Nothing,
        $sel:originationIdentityArn:DisassociateOriginationIdentityResponse' :: Maybe Text
originationIdentityArn =
          forall a. Maybe a
Prelude.Nothing,
        $sel:poolArn:DisassociateOriginationIdentityResponse' :: Maybe Text
poolArn = forall a. Maybe a
Prelude.Nothing,
        $sel:poolId:DisassociateOriginationIdentityResponse' :: Maybe Text
poolId = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DisassociateOriginationIdentityResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The two-character code, in ISO 3166-1 alpha-2 format, for the country or
-- region.
disassociateOriginationIdentityResponse_isoCountryCode :: Lens.Lens' DisassociateOriginationIdentityResponse (Prelude.Maybe Prelude.Text)
disassociateOriginationIdentityResponse_isoCountryCode :: Lens' DisassociateOriginationIdentityResponse (Maybe Text)
disassociateOriginationIdentityResponse_isoCountryCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateOriginationIdentityResponse' {Maybe Text
isoCountryCode :: Maybe Text
$sel:isoCountryCode:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
isoCountryCode} -> Maybe Text
isoCountryCode) (\s :: DisassociateOriginationIdentityResponse
s@DisassociateOriginationIdentityResponse' {} Maybe Text
a -> DisassociateOriginationIdentityResponse
s {$sel:isoCountryCode:DisassociateOriginationIdentityResponse' :: Maybe Text
isoCountryCode = Maybe Text
a} :: DisassociateOriginationIdentityResponse)

-- | The PhoneNumberId or SenderId of the origination identity.
disassociateOriginationIdentityResponse_originationIdentity :: Lens.Lens' DisassociateOriginationIdentityResponse (Prelude.Maybe Prelude.Text)
disassociateOriginationIdentityResponse_originationIdentity :: Lens' DisassociateOriginationIdentityResponse (Maybe Text)
disassociateOriginationIdentityResponse_originationIdentity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateOriginationIdentityResponse' {Maybe Text
originationIdentity :: Maybe Text
$sel:originationIdentity:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
originationIdentity} -> Maybe Text
originationIdentity) (\s :: DisassociateOriginationIdentityResponse
s@DisassociateOriginationIdentityResponse' {} Maybe Text
a -> DisassociateOriginationIdentityResponse
s {$sel:originationIdentity:DisassociateOriginationIdentityResponse' :: Maybe Text
originationIdentity = Maybe Text
a} :: DisassociateOriginationIdentityResponse)

-- | The PhoneNumberArn or SenderIdArn of the origination identity.
disassociateOriginationIdentityResponse_originationIdentityArn :: Lens.Lens' DisassociateOriginationIdentityResponse (Prelude.Maybe Prelude.Text)
disassociateOriginationIdentityResponse_originationIdentityArn :: Lens' DisassociateOriginationIdentityResponse (Maybe Text)
disassociateOriginationIdentityResponse_originationIdentityArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateOriginationIdentityResponse' {Maybe Text
originationIdentityArn :: Maybe Text
$sel:originationIdentityArn:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
originationIdentityArn} -> Maybe Text
originationIdentityArn) (\s :: DisassociateOriginationIdentityResponse
s@DisassociateOriginationIdentityResponse' {} Maybe Text
a -> DisassociateOriginationIdentityResponse
s {$sel:originationIdentityArn:DisassociateOriginationIdentityResponse' :: Maybe Text
originationIdentityArn = Maybe Text
a} :: DisassociateOriginationIdentityResponse)

-- | The Amazon Resource Name (ARN) of the pool.
disassociateOriginationIdentityResponse_poolArn :: Lens.Lens' DisassociateOriginationIdentityResponse (Prelude.Maybe Prelude.Text)
disassociateOriginationIdentityResponse_poolArn :: Lens' DisassociateOriginationIdentityResponse (Maybe Text)
disassociateOriginationIdentityResponse_poolArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateOriginationIdentityResponse' {Maybe Text
poolArn :: Maybe Text
$sel:poolArn:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
poolArn} -> Maybe Text
poolArn) (\s :: DisassociateOriginationIdentityResponse
s@DisassociateOriginationIdentityResponse' {} Maybe Text
a -> DisassociateOriginationIdentityResponse
s {$sel:poolArn:DisassociateOriginationIdentityResponse' :: Maybe Text
poolArn = Maybe Text
a} :: DisassociateOriginationIdentityResponse)

-- | The PoolId of the pool no longer associated with the origination
-- identity.
disassociateOriginationIdentityResponse_poolId :: Lens.Lens' DisassociateOriginationIdentityResponse (Prelude.Maybe Prelude.Text)
disassociateOriginationIdentityResponse_poolId :: Lens' DisassociateOriginationIdentityResponse (Maybe Text)
disassociateOriginationIdentityResponse_poolId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DisassociateOriginationIdentityResponse' {Maybe Text
poolId :: Maybe Text
$sel:poolId:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
poolId} -> Maybe Text
poolId) (\s :: DisassociateOriginationIdentityResponse
s@DisassociateOriginationIdentityResponse' {} Maybe Text
a -> DisassociateOriginationIdentityResponse
s {$sel:poolId:DisassociateOriginationIdentityResponse' :: Maybe Text
poolId = Maybe Text
a} :: DisassociateOriginationIdentityResponse)

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

instance
  Prelude.NFData
    DisassociateOriginationIdentityResponse
  where
  rnf :: DisassociateOriginationIdentityResponse -> ()
rnf DisassociateOriginationIdentityResponse' {Int
Maybe Text
httpStatus :: Int
poolId :: Maybe Text
poolArn :: Maybe Text
originationIdentityArn :: Maybe Text
originationIdentity :: Maybe Text
isoCountryCode :: Maybe Text
$sel:httpStatus:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Int
$sel:poolId:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
$sel:poolArn:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
$sel:originationIdentityArn:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
$sel:originationIdentity:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
$sel:isoCountryCode:DisassociateOriginationIdentityResponse' :: DisassociateOriginationIdentityResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
isoCountryCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
originationIdentity
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
originationIdentityArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
poolArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
poolId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus