{-# 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 or 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 or 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