amazonka-sns-2.0: gen/Amazonka/SNS/OptInPhoneNumber.hs
{-# 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.SNS.OptInPhoneNumber
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Use this request to opt in a phone number that is opted out, which
-- enables you to resume sending SMS messages to the number.
--
-- You can opt in a phone number only once every 30 days.
module Amazonka.SNS.OptInPhoneNumber
( -- * Creating a Request
OptInPhoneNumber (..),
newOptInPhoneNumber,
-- * Request Lenses
optInPhoneNumber_phoneNumber,
-- * Destructuring the Response
OptInPhoneNumberResponse (..),
newOptInPhoneNumberResponse,
-- * Response Lenses
optInPhoneNumberResponse_httpStatus,
)
where
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
import Amazonka.SNS.Types
-- | Input for the OptInPhoneNumber action.
--
-- /See:/ 'newOptInPhoneNumber' smart constructor.
data OptInPhoneNumber = OptInPhoneNumber'
{ -- | The phone number to opt in. Use E.164 format.
phoneNumber :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'OptInPhoneNumber' 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:
--
-- 'phoneNumber', 'optInPhoneNumber_phoneNumber' - The phone number to opt in. Use E.164 format.
newOptInPhoneNumber ::
-- | 'phoneNumber'
Prelude.Text ->
OptInPhoneNumber
newOptInPhoneNumber pPhoneNumber_ =
OptInPhoneNumber' {phoneNumber = pPhoneNumber_}
-- | The phone number to opt in. Use E.164 format.
optInPhoneNumber_phoneNumber :: Lens.Lens' OptInPhoneNumber Prelude.Text
optInPhoneNumber_phoneNumber = Lens.lens (\OptInPhoneNumber' {phoneNumber} -> phoneNumber) (\s@OptInPhoneNumber' {} a -> s {phoneNumber = a} :: OptInPhoneNumber)
instance Core.AWSRequest OptInPhoneNumber where
type
AWSResponse OptInPhoneNumber =
OptInPhoneNumberResponse
request overrides =
Request.postQuery (overrides defaultService)
response =
Response.receiveXMLWrapper
"OptInPhoneNumberResult"
( \s h x ->
OptInPhoneNumberResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable OptInPhoneNumber where
hashWithSalt _salt OptInPhoneNumber' {..} =
_salt `Prelude.hashWithSalt` phoneNumber
instance Prelude.NFData OptInPhoneNumber where
rnf OptInPhoneNumber' {..} = Prelude.rnf phoneNumber
instance Data.ToHeaders OptInPhoneNumber where
toHeaders = Prelude.const Prelude.mempty
instance Data.ToPath OptInPhoneNumber where
toPath = Prelude.const "/"
instance Data.ToQuery OptInPhoneNumber where
toQuery OptInPhoneNumber' {..} =
Prelude.mconcat
[ "Action"
Data.=: ("OptInPhoneNumber" :: Prelude.ByteString),
"Version"
Data.=: ("2010-03-31" :: Prelude.ByteString),
"phoneNumber" Data.=: phoneNumber
]
-- | The response for the OptInPhoneNumber action.
--
-- /See:/ 'newOptInPhoneNumberResponse' smart constructor.
data OptInPhoneNumberResponse = OptInPhoneNumberResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'OptInPhoneNumberResponse' 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:
--
-- 'httpStatus', 'optInPhoneNumberResponse_httpStatus' - The response's http status code.
newOptInPhoneNumberResponse ::
-- | 'httpStatus'
Prelude.Int ->
OptInPhoneNumberResponse
newOptInPhoneNumberResponse pHttpStatus_ =
OptInPhoneNumberResponse'
{ httpStatus =
pHttpStatus_
}
-- | The response's http status code.
optInPhoneNumberResponse_httpStatus :: Lens.Lens' OptInPhoneNumberResponse Prelude.Int
optInPhoneNumberResponse_httpStatus = Lens.lens (\OptInPhoneNumberResponse' {httpStatus} -> httpStatus) (\s@OptInPhoneNumberResponse' {} a -> s {httpStatus = a} :: OptInPhoneNumberResponse)
instance Prelude.NFData OptInPhoneNumberResponse where
rnf OptInPhoneNumberResponse' {..} =
Prelude.rnf httpStatus