{-# 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.CodeStarNotifications.DeleteTarget -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Deletes a specified target for notifications. module Amazonka.CodeStarNotifications.DeleteTarget ( -- * Creating a Request DeleteTarget (..), newDeleteTarget, -- * Request Lenses deleteTarget_forceUnsubscribeAll, deleteTarget_targetAddress, -- * Destructuring the Response DeleteTargetResponse (..), newDeleteTargetResponse, -- * Response Lenses deleteTargetResponse_httpStatus, ) where import Amazonka.CodeStarNotifications.Types 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 -- | /See:/ 'newDeleteTarget' smart constructor. data DeleteTarget = DeleteTarget' { -- | A Boolean value that can be used to delete all associations with this -- Chatbot topic. The default value is FALSE. If set to TRUE, all -- associations between that target and every notification rule in your -- Amazon Web Services account are deleted. forceUnsubscribeAll :: Prelude.Maybe Prelude.Bool, -- | The Amazon Resource Name (ARN) of the Chatbot topic or Chatbot client to -- delete. targetAddress :: Data.Sensitive Prelude.Text } deriving (Prelude.Eq, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteTarget' 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: -- -- 'forceUnsubscribeAll', 'deleteTarget_forceUnsubscribeAll' - A Boolean value that can be used to delete all associations with this -- Chatbot topic. The default value is FALSE. If set to TRUE, all -- associations between that target and every notification rule in your -- Amazon Web Services account are deleted. -- -- 'targetAddress', 'deleteTarget_targetAddress' - The Amazon Resource Name (ARN) of the Chatbot topic or Chatbot client to -- delete. newDeleteTarget :: -- | 'targetAddress' Prelude.Text -> DeleteTarget newDeleteTarget pTargetAddress_ = DeleteTarget' { forceUnsubscribeAll = Prelude.Nothing, targetAddress = Data._Sensitive Lens.# pTargetAddress_ } -- | A Boolean value that can be used to delete all associations with this -- Chatbot topic. The default value is FALSE. If set to TRUE, all -- associations between that target and every notification rule in your -- Amazon Web Services account are deleted. deleteTarget_forceUnsubscribeAll :: Lens.Lens' DeleteTarget (Prelude.Maybe Prelude.Bool) deleteTarget_forceUnsubscribeAll = Lens.lens (\DeleteTarget' {forceUnsubscribeAll} -> forceUnsubscribeAll) (\s@DeleteTarget' {} a -> s {forceUnsubscribeAll = a} :: DeleteTarget) -- | The Amazon Resource Name (ARN) of the Chatbot topic or Chatbot client to -- delete. deleteTarget_targetAddress :: Lens.Lens' DeleteTarget Prelude.Text deleteTarget_targetAddress = Lens.lens (\DeleteTarget' {targetAddress} -> targetAddress) (\s@DeleteTarget' {} a -> s {targetAddress = a} :: DeleteTarget) Prelude.. Data._Sensitive instance Core.AWSRequest DeleteTarget where type AWSResponse DeleteTarget = DeleteTargetResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveEmpty ( \s h x -> DeleteTargetResponse' Prelude.<$> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DeleteTarget where hashWithSalt _salt DeleteTarget' {..} = _salt `Prelude.hashWithSalt` forceUnsubscribeAll `Prelude.hashWithSalt` targetAddress instance Prelude.NFData DeleteTarget where rnf DeleteTarget' {..} = Prelude.rnf forceUnsubscribeAll `Prelude.seq` Prelude.rnf targetAddress instance Data.ToHeaders DeleteTarget where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DeleteTarget where toJSON DeleteTarget' {..} = Data.object ( Prelude.catMaybes [ ("ForceUnsubscribeAll" Data..=) Prelude.<$> forceUnsubscribeAll, Prelude.Just ("TargetAddress" Data..= targetAddress) ] ) instance Data.ToPath DeleteTarget where toPath = Prelude.const "/deleteTarget" instance Data.ToQuery DeleteTarget where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDeleteTargetResponse' smart constructor. data DeleteTargetResponse = DeleteTargetResponse' { -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteTargetResponse' 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', 'deleteTargetResponse_httpStatus' - The response's http status code. newDeleteTargetResponse :: -- | 'httpStatus' Prelude.Int -> DeleteTargetResponse newDeleteTargetResponse pHttpStatus_ = DeleteTargetResponse' {httpStatus = pHttpStatus_} -- | The response's http status code. deleteTargetResponse_httpStatus :: Lens.Lens' DeleteTargetResponse Prelude.Int deleteTargetResponse_httpStatus = Lens.lens (\DeleteTargetResponse' {httpStatus} -> httpStatus) (\s@DeleteTargetResponse' {} a -> s {httpStatus = a} :: DeleteTargetResponse) instance Prelude.NFData DeleteTargetResponse where rnf DeleteTargetResponse' {..} = Prelude.rnf httpStatus