{-# 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.AuditManager.DeregisterOrganizationAdminAccount -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Removes the specified Amazon Web Services account as a delegated -- administrator for Audit Manager. -- -- When you remove a delegated administrator from your Audit Manager -- settings, you continue to have access to the evidence that you -- previously collected under that account. This is also the case when you -- deregister a delegated administrator from Organizations. However, Audit -- Manager stops collecting and attaching evidence to that delegated -- administrator account moving forward. -- -- Keep in mind the following cleanup task if you use evidence finder: -- -- Before you use your management account to remove a delegated -- administrator, make sure that the current delegated administrator -- account signs in to Audit Manager and disables evidence finder first. -- Disabling evidence finder automatically deletes the event data store -- that was created in their account when they enabled evidence finder. If -- this task isn’t completed, the event data store remains in their -- account. In this case, we recommend that the original delegated -- administrator goes to CloudTrail Lake and manually -- . -- -- This cleanup task is necessary to ensure that you don\'t end up with -- multiple event data stores. Audit Manager ignores an unused event data -- store after you remove or change a delegated administrator account. -- However, the unused event data store continues to incur storage costs -- from CloudTrail Lake if you don\'t delete it. -- -- When you deregister a delegated administrator account for Audit Manager, -- the data for that account isn’t deleted. If you want to delete resource -- data for a delegated administrator account, you must perform that task -- separately before you deregister the account. Either, you can do this in -- the Audit Manager console. Or, you can use one of the delete API -- operations that are provided by Audit Manager. -- -- To delete your Audit Manager resource data, see the following -- instructions: -- -- - -- (see also: -- -- in the /Audit Manager User Guide/) -- -- - -- (see also: -- -- in the /Audit Manager User Guide/) -- -- - -- (see also: -- -- in the /Audit Manager User Guide/) -- -- - -- (see also: -- -- in the /Audit Manager User Guide/) -- -- - -- (see also: -- -- in the /Audit Manager User Guide/) -- -- At this time, Audit Manager doesn\'t provide an option to delete -- evidence for a specific delegated administrator. Instead, when your -- management account deregisters Audit Manager, we perform a cleanup for -- the current delegated administrator account at the time of -- deregistration. module Amazonka.AuditManager.DeregisterOrganizationAdminAccount ( -- * Creating a Request DeregisterOrganizationAdminAccount (..), newDeregisterOrganizationAdminAccount, -- * Request Lenses deregisterOrganizationAdminAccount_adminAccountId, -- * Destructuring the Response DeregisterOrganizationAdminAccountResponse (..), newDeregisterOrganizationAdminAccountResponse, -- * Response Lenses deregisterOrganizationAdminAccountResponse_httpStatus, ) where import Amazonka.AuditManager.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:/ 'newDeregisterOrganizationAdminAccount' smart constructor. data DeregisterOrganizationAdminAccount = DeregisterOrganizationAdminAccount' { -- | The identifier for the administrator account. adminAccountId :: Prelude.Maybe Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeregisterOrganizationAdminAccount' 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: -- -- 'adminAccountId', 'deregisterOrganizationAdminAccount_adminAccountId' - The identifier for the administrator account. newDeregisterOrganizationAdminAccount :: DeregisterOrganizationAdminAccount newDeregisterOrganizationAdminAccount = DeregisterOrganizationAdminAccount' { adminAccountId = Prelude.Nothing } -- | The identifier for the administrator account. deregisterOrganizationAdminAccount_adminAccountId :: Lens.Lens' DeregisterOrganizationAdminAccount (Prelude.Maybe Prelude.Text) deregisterOrganizationAdminAccount_adminAccountId = Lens.lens (\DeregisterOrganizationAdminAccount' {adminAccountId} -> adminAccountId) (\s@DeregisterOrganizationAdminAccount' {} a -> s {adminAccountId = a} :: DeregisterOrganizationAdminAccount) instance Core.AWSRequest DeregisterOrganizationAdminAccount where type AWSResponse DeregisterOrganizationAdminAccount = DeregisterOrganizationAdminAccountResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveEmpty ( \s h x -> DeregisterOrganizationAdminAccountResponse' Prelude.<$> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DeregisterOrganizationAdminAccount where hashWithSalt _salt DeregisterOrganizationAdminAccount' {..} = _salt `Prelude.hashWithSalt` adminAccountId instance Prelude.NFData DeregisterOrganizationAdminAccount where rnf DeregisterOrganizationAdminAccount' {..} = Prelude.rnf adminAccountId instance Data.ToHeaders DeregisterOrganizationAdminAccount where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DeregisterOrganizationAdminAccount where toJSON DeregisterOrganizationAdminAccount' {..} = Data.object ( Prelude.catMaybes [ ("adminAccountId" Data..=) Prelude.<$> adminAccountId ] ) instance Data.ToPath DeregisterOrganizationAdminAccount where toPath = Prelude.const "/account/deregisterOrganizationAdminAccount" instance Data.ToQuery DeregisterOrganizationAdminAccount where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDeregisterOrganizationAdminAccountResponse' smart constructor. data DeregisterOrganizationAdminAccountResponse = DeregisterOrganizationAdminAccountResponse' { -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeregisterOrganizationAdminAccountResponse' 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', 'deregisterOrganizationAdminAccountResponse_httpStatus' - The response's http status code. newDeregisterOrganizationAdminAccountResponse :: -- | 'httpStatus' Prelude.Int -> DeregisterOrganizationAdminAccountResponse newDeregisterOrganizationAdminAccountResponse pHttpStatus_ = DeregisterOrganizationAdminAccountResponse' { httpStatus = pHttpStatus_ } -- | The response's http status code. deregisterOrganizationAdminAccountResponse_httpStatus :: Lens.Lens' DeregisterOrganizationAdminAccountResponse Prelude.Int deregisterOrganizationAdminAccountResponse_httpStatus = Lens.lens (\DeregisterOrganizationAdminAccountResponse' {httpStatus} -> httpStatus) (\s@DeregisterOrganizationAdminAccountResponse' {} a -> s {httpStatus = a} :: DeregisterOrganizationAdminAccountResponse) instance Prelude.NFData DeregisterOrganizationAdminAccountResponse where rnf DeregisterOrganizationAdminAccountResponse' {..} = Prelude.rnf httpStatus