{-# 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.Organizations.DeletePolicy -- 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 the specified policy from your organization. Before you perform -- this operation, you must first detach the policy from all organizational -- units (OUs), roots, and accounts. -- -- This operation can be called only from the organization\'s management -- account. module Amazonka.Organizations.DeletePolicy ( -- * Creating a Request DeletePolicy (..), newDeletePolicy, -- * Request Lenses deletePolicy_policyId, -- * Destructuring the Response DeletePolicyResponse (..), newDeletePolicyResponse, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.Organizations.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newDeletePolicy' smart constructor. data DeletePolicy = DeletePolicy' { -- | The unique identifier (ID) of the policy that you want to delete. You -- can get the ID from the ListPolicies or ListPoliciesForTarget -- operations. -- -- The for a policy ID -- string requires \"p-\" followed by from 8 to 128 lowercase or uppercase -- letters, digits, or the underscore character (_). policyId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeletePolicy' 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: -- -- 'policyId', 'deletePolicy_policyId' - The unique identifier (ID) of the policy that you want to delete. You -- can get the ID from the ListPolicies or ListPoliciesForTarget -- operations. -- -- The for a policy ID -- string requires \"p-\" followed by from 8 to 128 lowercase or uppercase -- letters, digits, or the underscore character (_). newDeletePolicy :: -- | 'policyId' Prelude.Text -> DeletePolicy newDeletePolicy pPolicyId_ = DeletePolicy' {policyId = pPolicyId_} -- | The unique identifier (ID) of the policy that you want to delete. You -- can get the ID from the ListPolicies or ListPoliciesForTarget -- operations. -- -- The for a policy ID -- string requires \"p-\" followed by from 8 to 128 lowercase or uppercase -- letters, digits, or the underscore character (_). deletePolicy_policyId :: Lens.Lens' DeletePolicy Prelude.Text deletePolicy_policyId = Lens.lens (\DeletePolicy' {policyId} -> policyId) (\s@DeletePolicy' {} a -> s {policyId = a} :: DeletePolicy) instance Core.AWSRequest DeletePolicy where type AWSResponse DeletePolicy = DeletePolicyResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveNull DeletePolicyResponse' instance Prelude.Hashable DeletePolicy where hashWithSalt _salt DeletePolicy' {..} = _salt `Prelude.hashWithSalt` policyId instance Prelude.NFData DeletePolicy where rnf DeletePolicy' {..} = Prelude.rnf policyId instance Data.ToHeaders DeletePolicy where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "AWSOrganizationsV20161128.DeletePolicy" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DeletePolicy where toJSON DeletePolicy' {..} = Data.object ( Prelude.catMaybes [Prelude.Just ("PolicyId" Data..= policyId)] ) instance Data.ToPath DeletePolicy where toPath = Prelude.const "/" instance Data.ToQuery DeletePolicy where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDeletePolicyResponse' smart constructor. data DeletePolicyResponse = DeletePolicyResponse' { } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeletePolicyResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. newDeletePolicyResponse :: DeletePolicyResponse newDeletePolicyResponse = DeletePolicyResponse' instance Prelude.NFData DeletePolicyResponse where rnf _ = ()