{-# 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.ReleasePhoneNumber
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Releases an existing origination phone number in your account. Once
-- released, a phone number is no longer available for sending messages.
--
-- If the origination phone number has deletion protection enabled or is
-- associated with a pool, an Error is returned.
module Amazonka.PinpointSmsVoiceV2.ReleasePhoneNumber
  ( -- * Creating a Request
    ReleasePhoneNumber (..),
    newReleasePhoneNumber,

    -- * Request Lenses
    releasePhoneNumber_phoneNumberId,

    -- * Destructuring the Response
    ReleasePhoneNumberResponse (..),
    newReleasePhoneNumberResponse,

    -- * Response Lenses
    releasePhoneNumberResponse_createdTimestamp,
    releasePhoneNumberResponse_isoCountryCode,
    releasePhoneNumberResponse_messageType,
    releasePhoneNumberResponse_monthlyLeasingPrice,
    releasePhoneNumberResponse_numberCapabilities,
    releasePhoneNumberResponse_numberType,
    releasePhoneNumberResponse_optOutListName,
    releasePhoneNumberResponse_phoneNumber,
    releasePhoneNumberResponse_phoneNumberArn,
    releasePhoneNumberResponse_phoneNumberId,
    releasePhoneNumberResponse_selfManagedOptOutsEnabled,
    releasePhoneNumberResponse_status,
    releasePhoneNumberResponse_twoWayChannelArn,
    releasePhoneNumberResponse_twoWayEnabled,
    releasePhoneNumberResponse_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:/ 'newReleasePhoneNumber' smart constructor.
data ReleasePhoneNumber = ReleasePhoneNumber'
  { -- | The PhoneNumberId or PhoneNumberArn of the phone number to release. You
    -- can use DescribePhoneNumbers to get the values for PhoneNumberId and
    -- PhoneNumberArn.
    ReleasePhoneNumber -> Text
phoneNumberId :: Prelude.Text
  }
  deriving (ReleasePhoneNumber -> ReleasePhoneNumber -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReleasePhoneNumber -> ReleasePhoneNumber -> Bool
$c/= :: ReleasePhoneNumber -> ReleasePhoneNumber -> Bool
== :: ReleasePhoneNumber -> ReleasePhoneNumber -> Bool
$c== :: ReleasePhoneNumber -> ReleasePhoneNumber -> Bool
Prelude.Eq, ReadPrec [ReleasePhoneNumber]
ReadPrec ReleasePhoneNumber
Int -> ReadS ReleasePhoneNumber
ReadS [ReleasePhoneNumber]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReleasePhoneNumber]
$creadListPrec :: ReadPrec [ReleasePhoneNumber]
readPrec :: ReadPrec ReleasePhoneNumber
$creadPrec :: ReadPrec ReleasePhoneNumber
readList :: ReadS [ReleasePhoneNumber]
$creadList :: ReadS [ReleasePhoneNumber]
readsPrec :: Int -> ReadS ReleasePhoneNumber
$creadsPrec :: Int -> ReadS ReleasePhoneNumber
Prelude.Read, Int -> ReleasePhoneNumber -> ShowS
[ReleasePhoneNumber] -> ShowS
ReleasePhoneNumber -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReleasePhoneNumber] -> ShowS
$cshowList :: [ReleasePhoneNumber] -> ShowS
show :: ReleasePhoneNumber -> String
$cshow :: ReleasePhoneNumber -> String
showsPrec :: Int -> ReleasePhoneNumber -> ShowS
$cshowsPrec :: Int -> ReleasePhoneNumber -> ShowS
Prelude.Show, forall x. Rep ReleasePhoneNumber x -> ReleasePhoneNumber
forall x. ReleasePhoneNumber -> Rep ReleasePhoneNumber x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReleasePhoneNumber x -> ReleasePhoneNumber
$cfrom :: forall x. ReleasePhoneNumber -> Rep ReleasePhoneNumber x
Prelude.Generic)

-- |
-- Create a value of 'ReleasePhoneNumber' 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:
--
-- 'phoneNumberId', 'releasePhoneNumber_phoneNumberId' - The PhoneNumberId or PhoneNumberArn of the phone number to release. You
-- can use DescribePhoneNumbers to get the values for PhoneNumberId and
-- PhoneNumberArn.
newReleasePhoneNumber ::
  -- | 'phoneNumberId'
  Prelude.Text ->
  ReleasePhoneNumber
newReleasePhoneNumber :: Text -> ReleasePhoneNumber
newReleasePhoneNumber Text
pPhoneNumberId_ =
  ReleasePhoneNumber'
    { $sel:phoneNumberId:ReleasePhoneNumber' :: Text
phoneNumberId =
        Text
pPhoneNumberId_
    }

-- | The PhoneNumberId or PhoneNumberArn of the phone number to release. You
-- can use DescribePhoneNumbers to get the values for PhoneNumberId and
-- PhoneNumberArn.
releasePhoneNumber_phoneNumberId :: Lens.Lens' ReleasePhoneNumber Prelude.Text
releasePhoneNumber_phoneNumberId :: Lens' ReleasePhoneNumber Text
releasePhoneNumber_phoneNumberId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumber' {Text
phoneNumberId :: Text
$sel:phoneNumberId:ReleasePhoneNumber' :: ReleasePhoneNumber -> Text
phoneNumberId} -> Text
phoneNumberId) (\s :: ReleasePhoneNumber
s@ReleasePhoneNumber' {} Text
a -> ReleasePhoneNumber
s {$sel:phoneNumberId:ReleasePhoneNumber' :: Text
phoneNumberId = Text
a} :: ReleasePhoneNumber)

instance Core.AWSRequest ReleasePhoneNumber where
  type
    AWSResponse ReleasePhoneNumber =
      ReleasePhoneNumberResponse
  request :: (Service -> Service)
-> ReleasePhoneNumber -> Request ReleasePhoneNumber
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 ReleasePhoneNumber
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ReleasePhoneNumber)))
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 POSIX
-> Maybe Text
-> Maybe MessageType
-> Maybe Text
-> Maybe (NonEmpty NumberCapability)
-> Maybe NumberType
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe NumberStatus
-> Maybe Text
-> Maybe Bool
-> Int
-> ReleasePhoneNumberResponse
ReleasePhoneNumberResponse'
            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
"CreatedTimestamp")
            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
"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
"MessageType")
            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
"MonthlyLeasingPrice")
            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
"NumberCapabilities")
            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
"NumberType")
            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
"OptOutListName")
            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
"PhoneNumber")
            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
"PhoneNumberArn")
            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
"PhoneNumberId")
            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
"SelfManagedOptOutsEnabled")
            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
"Status")
            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
"TwoWayChannelArn")
            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
"TwoWayEnabled")
            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 ReleasePhoneNumber where
  hashWithSalt :: Int -> ReleasePhoneNumber -> Int
hashWithSalt Int
_salt ReleasePhoneNumber' {Text
phoneNumberId :: Text
$sel:phoneNumberId:ReleasePhoneNumber' :: ReleasePhoneNumber -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
phoneNumberId

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

instance Data.ToHeaders ReleasePhoneNumber where
  toHeaders :: ReleasePhoneNumber -> 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.ReleasePhoneNumber" ::
                          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 ReleasePhoneNumber where
  toJSON :: ReleasePhoneNumber -> Value
toJSON ReleasePhoneNumber' {Text
phoneNumberId :: Text
$sel:phoneNumberId:ReleasePhoneNumber' :: ReleasePhoneNumber -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              (Key
"PhoneNumberId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
phoneNumberId)
          ]
      )

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

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

-- | /See:/ 'newReleasePhoneNumberResponse' smart constructor.
data ReleasePhoneNumberResponse = ReleasePhoneNumberResponse'
  { -- | The time when the phone number was created, in
    -- <https://www.epochconverter.com/ UNIX epoch time> format.
    ReleasePhoneNumberResponse -> Maybe POSIX
createdTimestamp :: Prelude.Maybe Data.POSIX,
    -- | The two-character code, in ISO 3166-1 alpha-2 format, for the country or
    -- region.
    ReleasePhoneNumberResponse -> Maybe Text
isoCountryCode :: Prelude.Maybe Prelude.Text,
    -- | The message type that was associated with the phone number.
    ReleasePhoneNumberResponse -> Maybe MessageType
messageType :: Prelude.Maybe MessageType,
    -- | The monthly price of the phone number, in US dollars.
    ReleasePhoneNumberResponse -> Maybe Text
monthlyLeasingPrice :: Prelude.Maybe Prelude.Text,
    -- | Specifies if the number could be used for text messages, voice, or both.
    ReleasePhoneNumberResponse -> Maybe (NonEmpty NumberCapability)
numberCapabilities :: Prelude.Maybe (Prelude.NonEmpty NumberCapability),
    -- | The type of number that was released.
    ReleasePhoneNumberResponse -> Maybe NumberType
numberType :: Prelude.Maybe NumberType,
    -- | The name of the OptOutList that was associated with the phone number.
    ReleasePhoneNumberResponse -> Maybe Text
optOutListName :: Prelude.Maybe Prelude.Text,
    -- | The phone number that was released.
    ReleasePhoneNumberResponse -> Maybe Text
phoneNumber :: Prelude.Maybe Prelude.Text,
    -- | The PhoneNumberArn of the phone number that was released.
    ReleasePhoneNumberResponse -> Maybe Text
phoneNumberArn :: Prelude.Maybe Prelude.Text,
    -- | The PhoneNumberId of the phone number that was released.
    ReleasePhoneNumberResponse -> Maybe Text
phoneNumberId :: Prelude.Maybe Prelude.Text,
    -- | By default this is set to false. When an end recipient sends a message
    -- that begins with HELP or STOP to one of your dedicated numbers, Amazon
    -- Pinpoint automatically replies with a customizable message and adds the
    -- end recipient to the OptOutList. When set to true you\'re responsible
    -- for responding to HELP and STOP requests. You\'re also responsible for
    -- tracking and honoring opt-out requests.
    ReleasePhoneNumberResponse -> Maybe Bool
selfManagedOptOutsEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The current status of the request.
    ReleasePhoneNumberResponse -> Maybe NumberStatus
status :: Prelude.Maybe NumberStatus,
    -- | The Amazon Resource Name (ARN) of the TwoWayChannel.
    ReleasePhoneNumberResponse -> Maybe Text
twoWayChannelArn :: Prelude.Maybe Prelude.Text,
    -- | By default this is set to false. When set to true you can receive
    -- incoming text messages from your end recipients.
    ReleasePhoneNumberResponse -> Maybe Bool
twoWayEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The response's http status code.
    ReleasePhoneNumberResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ReleasePhoneNumberResponse -> ReleasePhoneNumberResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReleasePhoneNumberResponse -> ReleasePhoneNumberResponse -> Bool
$c/= :: ReleasePhoneNumberResponse -> ReleasePhoneNumberResponse -> Bool
== :: ReleasePhoneNumberResponse -> ReleasePhoneNumberResponse -> Bool
$c== :: ReleasePhoneNumberResponse -> ReleasePhoneNumberResponse -> Bool
Prelude.Eq, ReadPrec [ReleasePhoneNumberResponse]
ReadPrec ReleasePhoneNumberResponse
Int -> ReadS ReleasePhoneNumberResponse
ReadS [ReleasePhoneNumberResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReleasePhoneNumberResponse]
$creadListPrec :: ReadPrec [ReleasePhoneNumberResponse]
readPrec :: ReadPrec ReleasePhoneNumberResponse
$creadPrec :: ReadPrec ReleasePhoneNumberResponse
readList :: ReadS [ReleasePhoneNumberResponse]
$creadList :: ReadS [ReleasePhoneNumberResponse]
readsPrec :: Int -> ReadS ReleasePhoneNumberResponse
$creadsPrec :: Int -> ReadS ReleasePhoneNumberResponse
Prelude.Read, Int -> ReleasePhoneNumberResponse -> ShowS
[ReleasePhoneNumberResponse] -> ShowS
ReleasePhoneNumberResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReleasePhoneNumberResponse] -> ShowS
$cshowList :: [ReleasePhoneNumberResponse] -> ShowS
show :: ReleasePhoneNumberResponse -> String
$cshow :: ReleasePhoneNumberResponse -> String
showsPrec :: Int -> ReleasePhoneNumberResponse -> ShowS
$cshowsPrec :: Int -> ReleasePhoneNumberResponse -> ShowS
Prelude.Show, forall x.
Rep ReleasePhoneNumberResponse x -> ReleasePhoneNumberResponse
forall x.
ReleasePhoneNumberResponse -> Rep ReleasePhoneNumberResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ReleasePhoneNumberResponse x -> ReleasePhoneNumberResponse
$cfrom :: forall x.
ReleasePhoneNumberResponse -> Rep ReleasePhoneNumberResponse x
Prelude.Generic)

-- |
-- Create a value of 'ReleasePhoneNumberResponse' 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:
--
-- 'createdTimestamp', 'releasePhoneNumberResponse_createdTimestamp' - The time when the phone number was created, in
-- <https://www.epochconverter.com/ UNIX epoch time> format.
--
-- 'isoCountryCode', 'releasePhoneNumberResponse_isoCountryCode' - The two-character code, in ISO 3166-1 alpha-2 format, for the country or
-- region.
--
-- 'messageType', 'releasePhoneNumberResponse_messageType' - The message type that was associated with the phone number.
--
-- 'monthlyLeasingPrice', 'releasePhoneNumberResponse_monthlyLeasingPrice' - The monthly price of the phone number, in US dollars.
--
-- 'numberCapabilities', 'releasePhoneNumberResponse_numberCapabilities' - Specifies if the number could be used for text messages, voice, or both.
--
-- 'numberType', 'releasePhoneNumberResponse_numberType' - The type of number that was released.
--
-- 'optOutListName', 'releasePhoneNumberResponse_optOutListName' - The name of the OptOutList that was associated with the phone number.
--
-- 'phoneNumber', 'releasePhoneNumberResponse_phoneNumber' - The phone number that was released.
--
-- 'phoneNumberArn', 'releasePhoneNumberResponse_phoneNumberArn' - The PhoneNumberArn of the phone number that was released.
--
-- 'phoneNumberId', 'releasePhoneNumberResponse_phoneNumberId' - The PhoneNumberId of the phone number that was released.
--
-- 'selfManagedOptOutsEnabled', 'releasePhoneNumberResponse_selfManagedOptOutsEnabled' - By default this is set to false. When an end recipient sends a message
-- that begins with HELP or STOP to one of your dedicated numbers, Amazon
-- Pinpoint automatically replies with a customizable message and adds the
-- end recipient to the OptOutList. When set to true you\'re responsible
-- for responding to HELP and STOP requests. You\'re also responsible for
-- tracking and honoring opt-out requests.
--
-- 'status', 'releasePhoneNumberResponse_status' - The current status of the request.
--
-- 'twoWayChannelArn', 'releasePhoneNumberResponse_twoWayChannelArn' - The Amazon Resource Name (ARN) of the TwoWayChannel.
--
-- 'twoWayEnabled', 'releasePhoneNumberResponse_twoWayEnabled' - By default this is set to false. When set to true you can receive
-- incoming text messages from your end recipients.
--
-- 'httpStatus', 'releasePhoneNumberResponse_httpStatus' - The response's http status code.
newReleasePhoneNumberResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ReleasePhoneNumberResponse
newReleasePhoneNumberResponse :: Int -> ReleasePhoneNumberResponse
newReleasePhoneNumberResponse Int
pHttpStatus_ =
  ReleasePhoneNumberResponse'
    { $sel:createdTimestamp:ReleasePhoneNumberResponse' :: Maybe POSIX
createdTimestamp =
        forall a. Maybe a
Prelude.Nothing,
      $sel:isoCountryCode:ReleasePhoneNumberResponse' :: Maybe Text
isoCountryCode = forall a. Maybe a
Prelude.Nothing,
      $sel:messageType:ReleasePhoneNumberResponse' :: Maybe MessageType
messageType = forall a. Maybe a
Prelude.Nothing,
      $sel:monthlyLeasingPrice:ReleasePhoneNumberResponse' :: Maybe Text
monthlyLeasingPrice = forall a. Maybe a
Prelude.Nothing,
      $sel:numberCapabilities:ReleasePhoneNumberResponse' :: Maybe (NonEmpty NumberCapability)
numberCapabilities = forall a. Maybe a
Prelude.Nothing,
      $sel:numberType:ReleasePhoneNumberResponse' :: Maybe NumberType
numberType = forall a. Maybe a
Prelude.Nothing,
      $sel:optOutListName:ReleasePhoneNumberResponse' :: Maybe Text
optOutListName = forall a. Maybe a
Prelude.Nothing,
      $sel:phoneNumber:ReleasePhoneNumberResponse' :: Maybe Text
phoneNumber = forall a. Maybe a
Prelude.Nothing,
      $sel:phoneNumberArn:ReleasePhoneNumberResponse' :: Maybe Text
phoneNumberArn = forall a. Maybe a
Prelude.Nothing,
      $sel:phoneNumberId:ReleasePhoneNumberResponse' :: Maybe Text
phoneNumberId = forall a. Maybe a
Prelude.Nothing,
      $sel:selfManagedOptOutsEnabled:ReleasePhoneNumberResponse' :: Maybe Bool
selfManagedOptOutsEnabled = forall a. Maybe a
Prelude.Nothing,
      $sel:status:ReleasePhoneNumberResponse' :: Maybe NumberStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:twoWayChannelArn:ReleasePhoneNumberResponse' :: Maybe Text
twoWayChannelArn = forall a. Maybe a
Prelude.Nothing,
      $sel:twoWayEnabled:ReleasePhoneNumberResponse' :: Maybe Bool
twoWayEnabled = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ReleasePhoneNumberResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The time when the phone number was created, in
-- <https://www.epochconverter.com/ UNIX epoch time> format.
releasePhoneNumberResponse_createdTimestamp :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe Prelude.UTCTime)
releasePhoneNumberResponse_createdTimestamp :: Lens' ReleasePhoneNumberResponse (Maybe UTCTime)
releasePhoneNumberResponse_createdTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe POSIX
createdTimestamp :: Maybe POSIX
$sel:createdTimestamp:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe POSIX
createdTimestamp} -> Maybe POSIX
createdTimestamp) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe POSIX
a -> ReleasePhoneNumberResponse
s {$sel:createdTimestamp:ReleasePhoneNumberResponse' :: Maybe POSIX
createdTimestamp = Maybe POSIX
a} :: ReleasePhoneNumberResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

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

-- | The message type that was associated with the phone number.
releasePhoneNumberResponse_messageType :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe MessageType)
releasePhoneNumberResponse_messageType :: Lens' ReleasePhoneNumberResponse (Maybe MessageType)
releasePhoneNumberResponse_messageType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe MessageType
messageType :: Maybe MessageType
$sel:messageType:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe MessageType
messageType} -> Maybe MessageType
messageType) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe MessageType
a -> ReleasePhoneNumberResponse
s {$sel:messageType:ReleasePhoneNumberResponse' :: Maybe MessageType
messageType = Maybe MessageType
a} :: ReleasePhoneNumberResponse)

-- | The monthly price of the phone number, in US dollars.
releasePhoneNumberResponse_monthlyLeasingPrice :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe Prelude.Text)
releasePhoneNumberResponse_monthlyLeasingPrice :: Lens' ReleasePhoneNumberResponse (Maybe Text)
releasePhoneNumberResponse_monthlyLeasingPrice = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe Text
monthlyLeasingPrice :: Maybe Text
$sel:monthlyLeasingPrice:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
monthlyLeasingPrice} -> Maybe Text
monthlyLeasingPrice) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe Text
a -> ReleasePhoneNumberResponse
s {$sel:monthlyLeasingPrice:ReleasePhoneNumberResponse' :: Maybe Text
monthlyLeasingPrice = Maybe Text
a} :: ReleasePhoneNumberResponse)

-- | Specifies if the number could be used for text messages, voice, or both.
releasePhoneNumberResponse_numberCapabilities :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe (Prelude.NonEmpty NumberCapability))
releasePhoneNumberResponse_numberCapabilities :: Lens'
  ReleasePhoneNumberResponse (Maybe (NonEmpty NumberCapability))
releasePhoneNumberResponse_numberCapabilities = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe (NonEmpty NumberCapability)
numberCapabilities :: Maybe (NonEmpty NumberCapability)
$sel:numberCapabilities:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe (NonEmpty NumberCapability)
numberCapabilities} -> Maybe (NonEmpty NumberCapability)
numberCapabilities) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe (NonEmpty NumberCapability)
a -> ReleasePhoneNumberResponse
s {$sel:numberCapabilities:ReleasePhoneNumberResponse' :: Maybe (NonEmpty NumberCapability)
numberCapabilities = Maybe (NonEmpty NumberCapability)
a} :: ReleasePhoneNumberResponse) 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

-- | The type of number that was released.
releasePhoneNumberResponse_numberType :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe NumberType)
releasePhoneNumberResponse_numberType :: Lens' ReleasePhoneNumberResponse (Maybe NumberType)
releasePhoneNumberResponse_numberType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe NumberType
numberType :: Maybe NumberType
$sel:numberType:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe NumberType
numberType} -> Maybe NumberType
numberType) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe NumberType
a -> ReleasePhoneNumberResponse
s {$sel:numberType:ReleasePhoneNumberResponse' :: Maybe NumberType
numberType = Maybe NumberType
a} :: ReleasePhoneNumberResponse)

-- | The name of the OptOutList that was associated with the phone number.
releasePhoneNumberResponse_optOutListName :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe Prelude.Text)
releasePhoneNumberResponse_optOutListName :: Lens' ReleasePhoneNumberResponse (Maybe Text)
releasePhoneNumberResponse_optOutListName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe Text
optOutListName :: Maybe Text
$sel:optOutListName:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
optOutListName} -> Maybe Text
optOutListName) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe Text
a -> ReleasePhoneNumberResponse
s {$sel:optOutListName:ReleasePhoneNumberResponse' :: Maybe Text
optOutListName = Maybe Text
a} :: ReleasePhoneNumberResponse)

-- | The phone number that was released.
releasePhoneNumberResponse_phoneNumber :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe Prelude.Text)
releasePhoneNumberResponse_phoneNumber :: Lens' ReleasePhoneNumberResponse (Maybe Text)
releasePhoneNumberResponse_phoneNumber = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe Text
phoneNumber :: Maybe Text
$sel:phoneNumber:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
phoneNumber} -> Maybe Text
phoneNumber) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe Text
a -> ReleasePhoneNumberResponse
s {$sel:phoneNumber:ReleasePhoneNumberResponse' :: Maybe Text
phoneNumber = Maybe Text
a} :: ReleasePhoneNumberResponse)

-- | The PhoneNumberArn of the phone number that was released.
releasePhoneNumberResponse_phoneNumberArn :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe Prelude.Text)
releasePhoneNumberResponse_phoneNumberArn :: Lens' ReleasePhoneNumberResponse (Maybe Text)
releasePhoneNumberResponse_phoneNumberArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe Text
phoneNumberArn :: Maybe Text
$sel:phoneNumberArn:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
phoneNumberArn} -> Maybe Text
phoneNumberArn) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe Text
a -> ReleasePhoneNumberResponse
s {$sel:phoneNumberArn:ReleasePhoneNumberResponse' :: Maybe Text
phoneNumberArn = Maybe Text
a} :: ReleasePhoneNumberResponse)

-- | The PhoneNumberId of the phone number that was released.
releasePhoneNumberResponse_phoneNumberId :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe Prelude.Text)
releasePhoneNumberResponse_phoneNumberId :: Lens' ReleasePhoneNumberResponse (Maybe Text)
releasePhoneNumberResponse_phoneNumberId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe Text
phoneNumberId :: Maybe Text
$sel:phoneNumberId:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
phoneNumberId} -> Maybe Text
phoneNumberId) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe Text
a -> ReleasePhoneNumberResponse
s {$sel:phoneNumberId:ReleasePhoneNumberResponse' :: Maybe Text
phoneNumberId = Maybe Text
a} :: ReleasePhoneNumberResponse)

-- | By default this is set to false. When an end recipient sends a message
-- that begins with HELP or STOP to one of your dedicated numbers, Amazon
-- Pinpoint automatically replies with a customizable message and adds the
-- end recipient to the OptOutList. When set to true you\'re responsible
-- for responding to HELP and STOP requests. You\'re also responsible for
-- tracking and honoring opt-out requests.
releasePhoneNumberResponse_selfManagedOptOutsEnabled :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe Prelude.Bool)
releasePhoneNumberResponse_selfManagedOptOutsEnabled :: Lens' ReleasePhoneNumberResponse (Maybe Bool)
releasePhoneNumberResponse_selfManagedOptOutsEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe Bool
selfManagedOptOutsEnabled :: Maybe Bool
$sel:selfManagedOptOutsEnabled:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Bool
selfManagedOptOutsEnabled} -> Maybe Bool
selfManagedOptOutsEnabled) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe Bool
a -> ReleasePhoneNumberResponse
s {$sel:selfManagedOptOutsEnabled:ReleasePhoneNumberResponse' :: Maybe Bool
selfManagedOptOutsEnabled = Maybe Bool
a} :: ReleasePhoneNumberResponse)

-- | The current status of the request.
releasePhoneNumberResponse_status :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe NumberStatus)
releasePhoneNumberResponse_status :: Lens' ReleasePhoneNumberResponse (Maybe NumberStatus)
releasePhoneNumberResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe NumberStatus
status :: Maybe NumberStatus
$sel:status:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe NumberStatus
status} -> Maybe NumberStatus
status) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe NumberStatus
a -> ReleasePhoneNumberResponse
s {$sel:status:ReleasePhoneNumberResponse' :: Maybe NumberStatus
status = Maybe NumberStatus
a} :: ReleasePhoneNumberResponse)

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

-- | By default this is set to false. When set to true you can receive
-- incoming text messages from your end recipients.
releasePhoneNumberResponse_twoWayEnabled :: Lens.Lens' ReleasePhoneNumberResponse (Prelude.Maybe Prelude.Bool)
releasePhoneNumberResponse_twoWayEnabled :: Lens' ReleasePhoneNumberResponse (Maybe Bool)
releasePhoneNumberResponse_twoWayEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReleasePhoneNumberResponse' {Maybe Bool
twoWayEnabled :: Maybe Bool
$sel:twoWayEnabled:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Bool
twoWayEnabled} -> Maybe Bool
twoWayEnabled) (\s :: ReleasePhoneNumberResponse
s@ReleasePhoneNumberResponse' {} Maybe Bool
a -> ReleasePhoneNumberResponse
s {$sel:twoWayEnabled:ReleasePhoneNumberResponse' :: Maybe Bool
twoWayEnabled = Maybe Bool
a} :: ReleasePhoneNumberResponse)

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

instance Prelude.NFData ReleasePhoneNumberResponse where
  rnf :: ReleasePhoneNumberResponse -> ()
rnf ReleasePhoneNumberResponse' {Int
Maybe Bool
Maybe (NonEmpty NumberCapability)
Maybe Text
Maybe POSIX
Maybe MessageType
Maybe NumberStatus
Maybe NumberType
httpStatus :: Int
twoWayEnabled :: Maybe Bool
twoWayChannelArn :: Maybe Text
status :: Maybe NumberStatus
selfManagedOptOutsEnabled :: Maybe Bool
phoneNumberId :: Maybe Text
phoneNumberArn :: Maybe Text
phoneNumber :: Maybe Text
optOutListName :: Maybe Text
numberType :: Maybe NumberType
numberCapabilities :: Maybe (NonEmpty NumberCapability)
monthlyLeasingPrice :: Maybe Text
messageType :: Maybe MessageType
isoCountryCode :: Maybe Text
createdTimestamp :: Maybe POSIX
$sel:httpStatus:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Int
$sel:twoWayEnabled:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Bool
$sel:twoWayChannelArn:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
$sel:status:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe NumberStatus
$sel:selfManagedOptOutsEnabled:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Bool
$sel:phoneNumberId:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
$sel:phoneNumberArn:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
$sel:phoneNumber:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
$sel:optOutListName:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
$sel:numberType:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe NumberType
$sel:numberCapabilities:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe (NonEmpty NumberCapability)
$sel:monthlyLeasingPrice:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
$sel:messageType:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe MessageType
$sel:isoCountryCode:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe Text
$sel:createdTimestamp:ReleasePhoneNumberResponse' :: ReleasePhoneNumberResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdTimestamp
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 MessageType
messageType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
monthlyLeasingPrice
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty NumberCapability)
numberCapabilities
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NumberType
numberType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
optOutListName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
phoneNumber
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
phoneNumberArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
phoneNumberId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
selfManagedOptOutsEnabled
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NumberStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
twoWayChannelArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
twoWayEnabled
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus