{-# 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.PutOptedOutNumber -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates an opted out destination phone number in the opt-out list. -- -- If the destination phone number isn\'t valid or if the specified opt-out -- list doesn\'t exist, an Error is returned. module Amazonka.PinpointSmsVoiceV2.PutOptedOutNumber ( -- * Creating a Request PutOptedOutNumber (..), newPutOptedOutNumber, -- * Request Lenses putOptedOutNumber_optOutListName, putOptedOutNumber_optedOutNumber, -- * Destructuring the Response PutOptedOutNumberResponse (..), newPutOptedOutNumberResponse, -- * Response Lenses putOptedOutNumberResponse_endUserOptedOut, putOptedOutNumberResponse_optOutListArn, putOptedOutNumberResponse_optOutListName, putOptedOutNumberResponse_optedOutNumber, putOptedOutNumberResponse_optedOutTimestamp, putOptedOutNumberResponse_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:/ 'newPutOptedOutNumber' smart constructor. data PutOptedOutNumber = PutOptedOutNumber' { -- | The OptOutListName or OptOutListArn to add the phone number to. optOutListName :: Prelude.Text, -- | The phone number to add to the OptOutList in E.164 format. optedOutNumber :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'PutOptedOutNumber' 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: -- -- 'optOutListName', 'putOptedOutNumber_optOutListName' - The OptOutListName or OptOutListArn to add the phone number to. -- -- 'optedOutNumber', 'putOptedOutNumber_optedOutNumber' - The phone number to add to the OptOutList in E.164 format. newPutOptedOutNumber :: -- | 'optOutListName' Prelude.Text -> -- | 'optedOutNumber' Prelude.Text -> PutOptedOutNumber newPutOptedOutNumber pOptOutListName_ pOptedOutNumber_ = PutOptedOutNumber' { optOutListName = pOptOutListName_, optedOutNumber = pOptedOutNumber_ } -- | The OptOutListName or OptOutListArn to add the phone number to. putOptedOutNumber_optOutListName :: Lens.Lens' PutOptedOutNumber Prelude.Text putOptedOutNumber_optOutListName = Lens.lens (\PutOptedOutNumber' {optOutListName} -> optOutListName) (\s@PutOptedOutNumber' {} a -> s {optOutListName = a} :: PutOptedOutNumber) -- | The phone number to add to the OptOutList in E.164 format. putOptedOutNumber_optedOutNumber :: Lens.Lens' PutOptedOutNumber Prelude.Text putOptedOutNumber_optedOutNumber = Lens.lens (\PutOptedOutNumber' {optedOutNumber} -> optedOutNumber) (\s@PutOptedOutNumber' {} a -> s {optedOutNumber = a} :: PutOptedOutNumber) instance Core.AWSRequest PutOptedOutNumber where type AWSResponse PutOptedOutNumber = PutOptedOutNumberResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> PutOptedOutNumberResponse' Prelude.<$> (x Data..?> "EndUserOptedOut") Prelude.<*> (x Data..?> "OptOutListArn") Prelude.<*> (x Data..?> "OptOutListName") Prelude.<*> (x Data..?> "OptedOutNumber") Prelude.<*> (x Data..?> "OptedOutTimestamp") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable PutOptedOutNumber where hashWithSalt _salt PutOptedOutNumber' {..} = _salt `Prelude.hashWithSalt` optOutListName `Prelude.hashWithSalt` optedOutNumber instance Prelude.NFData PutOptedOutNumber where rnf PutOptedOutNumber' {..} = Prelude.rnf optOutListName `Prelude.seq` Prelude.rnf optedOutNumber instance Data.ToHeaders PutOptedOutNumber where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "PinpointSMSVoiceV2.PutOptedOutNumber" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.0" :: Prelude.ByteString ) ] ) instance Data.ToJSON PutOptedOutNumber where toJSON PutOptedOutNumber' {..} = Data.object ( Prelude.catMaybes [ Prelude.Just ("OptOutListName" Data..= optOutListName), Prelude.Just ("OptedOutNumber" Data..= optedOutNumber) ] ) instance Data.ToPath PutOptedOutNumber where toPath = Prelude.const "/" instance Data.ToQuery PutOptedOutNumber where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newPutOptedOutNumberResponse' smart constructor. data PutOptedOutNumberResponse = PutOptedOutNumberResponse' { -- | This is true if it was the end user who requested their phone number be -- removed. endUserOptedOut :: Prelude.Maybe Prelude.Bool, -- | The OptOutListArn that the phone number was removed from. optOutListArn :: Prelude.Maybe Prelude.Text, -- | The OptOutListName that the phone number was removed from. optOutListName :: Prelude.Maybe Prelude.Text, -- | The phone number that was added to the OptOutList. optedOutNumber :: Prelude.Maybe Prelude.Text, -- | The time that the phone number was added to the OptOutList, in -- format. optedOutTimestamp :: Prelude.Maybe Data.POSIX, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'PutOptedOutNumberResponse' 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: -- -- 'endUserOptedOut', 'putOptedOutNumberResponse_endUserOptedOut' - This is true if it was the end user who requested their phone number be -- removed. -- -- 'optOutListArn', 'putOptedOutNumberResponse_optOutListArn' - The OptOutListArn that the phone number was removed from. -- -- 'optOutListName', 'putOptedOutNumberResponse_optOutListName' - The OptOutListName that the phone number was removed from. -- -- 'optedOutNumber', 'putOptedOutNumberResponse_optedOutNumber' - The phone number that was added to the OptOutList. -- -- 'optedOutTimestamp', 'putOptedOutNumberResponse_optedOutTimestamp' - The time that the phone number was added to the OptOutList, in -- format. -- -- 'httpStatus', 'putOptedOutNumberResponse_httpStatus' - The response's http status code. newPutOptedOutNumberResponse :: -- | 'httpStatus' Prelude.Int -> PutOptedOutNumberResponse newPutOptedOutNumberResponse pHttpStatus_ = PutOptedOutNumberResponse' { endUserOptedOut = Prelude.Nothing, optOutListArn = Prelude.Nothing, optOutListName = Prelude.Nothing, optedOutNumber = Prelude.Nothing, optedOutTimestamp = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | This is true if it was the end user who requested their phone number be -- removed. putOptedOutNumberResponse_endUserOptedOut :: Lens.Lens' PutOptedOutNumberResponse (Prelude.Maybe Prelude.Bool) putOptedOutNumberResponse_endUserOptedOut = Lens.lens (\PutOptedOutNumberResponse' {endUserOptedOut} -> endUserOptedOut) (\s@PutOptedOutNumberResponse' {} a -> s {endUserOptedOut = a} :: PutOptedOutNumberResponse) -- | The OptOutListArn that the phone number was removed from. putOptedOutNumberResponse_optOutListArn :: Lens.Lens' PutOptedOutNumberResponse (Prelude.Maybe Prelude.Text) putOptedOutNumberResponse_optOutListArn = Lens.lens (\PutOptedOutNumberResponse' {optOutListArn} -> optOutListArn) (\s@PutOptedOutNumberResponse' {} a -> s {optOutListArn = a} :: PutOptedOutNumberResponse) -- | The OptOutListName that the phone number was removed from. putOptedOutNumberResponse_optOutListName :: Lens.Lens' PutOptedOutNumberResponse (Prelude.Maybe Prelude.Text) putOptedOutNumberResponse_optOutListName = Lens.lens (\PutOptedOutNumberResponse' {optOutListName} -> optOutListName) (\s@PutOptedOutNumberResponse' {} a -> s {optOutListName = a} :: PutOptedOutNumberResponse) -- | The phone number that was added to the OptOutList. putOptedOutNumberResponse_optedOutNumber :: Lens.Lens' PutOptedOutNumberResponse (Prelude.Maybe Prelude.Text) putOptedOutNumberResponse_optedOutNumber = Lens.lens (\PutOptedOutNumberResponse' {optedOutNumber} -> optedOutNumber) (\s@PutOptedOutNumberResponse' {} a -> s {optedOutNumber = a} :: PutOptedOutNumberResponse) -- | The time that the phone number was added to the OptOutList, in -- format. putOptedOutNumberResponse_optedOutTimestamp :: Lens.Lens' PutOptedOutNumberResponse (Prelude.Maybe Prelude.UTCTime) putOptedOutNumberResponse_optedOutTimestamp = Lens.lens (\PutOptedOutNumberResponse' {optedOutTimestamp} -> optedOutTimestamp) (\s@PutOptedOutNumberResponse' {} a -> s {optedOutTimestamp = a} :: PutOptedOutNumberResponse) Prelude.. Lens.mapping Data._Time -- | The response's http status code. putOptedOutNumberResponse_httpStatus :: Lens.Lens' PutOptedOutNumberResponse Prelude.Int putOptedOutNumberResponse_httpStatus = Lens.lens (\PutOptedOutNumberResponse' {httpStatus} -> httpStatus) (\s@PutOptedOutNumberResponse' {} a -> s {httpStatus = a} :: PutOptedOutNumberResponse) instance Prelude.NFData PutOptedOutNumberResponse where rnf PutOptedOutNumberResponse' {..} = Prelude.rnf endUserOptedOut `Prelude.seq` Prelude.rnf optOutListArn `Prelude.seq` Prelude.rnf optOutListName `Prelude.seq` Prelude.rnf optedOutNumber `Prelude.seq` Prelude.rnf optedOutTimestamp `Prelude.seq` Prelude.rnf httpStatus