{-# 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.CloudWatchLogs.DisassociateKmsKey -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Disassociates the associated KMS key from the specified log group. -- -- After the KMS key is disassociated from the log group, CloudWatch Logs -- stops encrypting newly ingested data for the log group. All previously -- ingested data remains encrypted, and CloudWatch Logs requires -- permissions for the KMS key whenever the encrypted data is requested. -- -- Note that it can take up to 5 minutes for this operation to take effect. module Amazonka.CloudWatchLogs.DisassociateKmsKey ( -- * Creating a Request DisassociateKmsKey (..), newDisassociateKmsKey, -- * Request Lenses disassociateKmsKey_logGroupName, -- * Destructuring the Response DisassociateKmsKeyResponse (..), newDisassociateKmsKeyResponse, ) where import Amazonka.CloudWatchLogs.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:/ 'newDisassociateKmsKey' smart constructor. data DisassociateKmsKey = DisassociateKmsKey' { -- | The name of the log group. logGroupName :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DisassociateKmsKey' 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: -- -- 'logGroupName', 'disassociateKmsKey_logGroupName' - The name of the log group. newDisassociateKmsKey :: -- | 'logGroupName' Prelude.Text -> DisassociateKmsKey newDisassociateKmsKey pLogGroupName_ = DisassociateKmsKey' {logGroupName = pLogGroupName_} -- | The name of the log group. disassociateKmsKey_logGroupName :: Lens.Lens' DisassociateKmsKey Prelude.Text disassociateKmsKey_logGroupName = Lens.lens (\DisassociateKmsKey' {logGroupName} -> logGroupName) (\s@DisassociateKmsKey' {} a -> s {logGroupName = a} :: DisassociateKmsKey) instance Core.AWSRequest DisassociateKmsKey where type AWSResponse DisassociateKmsKey = DisassociateKmsKeyResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveNull DisassociateKmsKeyResponse' instance Prelude.Hashable DisassociateKmsKey where hashWithSalt _salt DisassociateKmsKey' {..} = _salt `Prelude.hashWithSalt` logGroupName instance Prelude.NFData DisassociateKmsKey where rnf DisassociateKmsKey' {..} = Prelude.rnf logGroupName instance Data.ToHeaders DisassociateKmsKey where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "Logs_20140328.DisassociateKmsKey" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DisassociateKmsKey where toJSON DisassociateKmsKey' {..} = Data.object ( Prelude.catMaybes [Prelude.Just ("logGroupName" Data..= logGroupName)] ) instance Data.ToPath DisassociateKmsKey where toPath = Prelude.const "/" instance Data.ToQuery DisassociateKmsKey where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDisassociateKmsKeyResponse' smart constructor. data DisassociateKmsKeyResponse = DisassociateKmsKeyResponse' { } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DisassociateKmsKeyResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. newDisassociateKmsKeyResponse :: DisassociateKmsKeyResponse newDisassociateKmsKeyResponse = DisassociateKmsKeyResponse' instance Prelude.NFData DisassociateKmsKeyResponse where rnf _ = ()