amazonka-rds-2.0: gen/Amazonka/RDS/ModifyActivityStream.hs
{-# 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.RDS.ModifyActivityStream
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Changes the audit policy state of a database activity stream to either
-- locked (default) or unlocked. A locked policy is read-only, whereas an
-- unlocked policy is read\/write. If your activity stream is started and
-- locked, you can unlock it, customize your audit policy, and then lock
-- your activity stream. Restarting the activity stream isn\'t required.
-- For more information, see
-- <https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.Modifying.html Modifying a database activity stream>
-- in the /Amazon RDS User Guide/.
--
-- This operation is supported for RDS for Oracle only.
module Amazonka.RDS.ModifyActivityStream
( -- * Creating a Request
ModifyActivityStream (..),
newModifyActivityStream,
-- * Request Lenses
modifyActivityStream_auditPolicyState,
modifyActivityStream_resourceArn,
-- * Destructuring the Response
ModifyActivityStreamResponse (..),
newModifyActivityStreamResponse,
-- * Response Lenses
modifyActivityStreamResponse_engineNativeAuditFieldsIncluded,
modifyActivityStreamResponse_kinesisStreamName,
modifyActivityStreamResponse_kmsKeyId,
modifyActivityStreamResponse_mode,
modifyActivityStreamResponse_policyStatus,
modifyActivityStreamResponse_status,
modifyActivityStreamResponse_httpStatus,
)
where
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 Amazonka.RDS.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newModifyActivityStream' smart constructor.
data ModifyActivityStream = ModifyActivityStream'
{ -- | The audit policy state. When a policy is unlocked, it is read\/write.
-- When it is locked, it is read-only. You can edit your audit policy only
-- when the activity stream is unlocked or stopped.
auditPolicyState :: Prelude.Maybe AuditPolicyState,
-- | The Amazon Resource Name (ARN) of the RDS for Oracle DB instance, for
-- example, @arn:aws:rds:us-east-1:12345667890:instance:my-orcl-db@.
resourceArn :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ModifyActivityStream' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'auditPolicyState', 'modifyActivityStream_auditPolicyState' - The audit policy state. When a policy is unlocked, it is read\/write.
-- When it is locked, it is read-only. You can edit your audit policy only
-- when the activity stream is unlocked or stopped.
--
-- 'resourceArn', 'modifyActivityStream_resourceArn' - The Amazon Resource Name (ARN) of the RDS for Oracle DB instance, for
-- example, @arn:aws:rds:us-east-1:12345667890:instance:my-orcl-db@.
newModifyActivityStream ::
ModifyActivityStream
newModifyActivityStream =
ModifyActivityStream'
{ auditPolicyState =
Prelude.Nothing,
resourceArn = Prelude.Nothing
}
-- | The audit policy state. When a policy is unlocked, it is read\/write.
-- When it is locked, it is read-only. You can edit your audit policy only
-- when the activity stream is unlocked or stopped.
modifyActivityStream_auditPolicyState :: Lens.Lens' ModifyActivityStream (Prelude.Maybe AuditPolicyState)
modifyActivityStream_auditPolicyState = Lens.lens (\ModifyActivityStream' {auditPolicyState} -> auditPolicyState) (\s@ModifyActivityStream' {} a -> s {auditPolicyState = a} :: ModifyActivityStream)
-- | The Amazon Resource Name (ARN) of the RDS for Oracle DB instance, for
-- example, @arn:aws:rds:us-east-1:12345667890:instance:my-orcl-db@.
modifyActivityStream_resourceArn :: Lens.Lens' ModifyActivityStream (Prelude.Maybe Prelude.Text)
modifyActivityStream_resourceArn = Lens.lens (\ModifyActivityStream' {resourceArn} -> resourceArn) (\s@ModifyActivityStream' {} a -> s {resourceArn = a} :: ModifyActivityStream)
instance Core.AWSRequest ModifyActivityStream where
type
AWSResponse ModifyActivityStream =
ModifyActivityStreamResponse
request overrides =
Request.postQuery (overrides defaultService)
response =
Response.receiveXMLWrapper
"ModifyActivityStreamResult"
( \s h x ->
ModifyActivityStreamResponse'
Prelude.<$> (x Data..@? "EngineNativeAuditFieldsIncluded")
Prelude.<*> (x Data..@? "KinesisStreamName")
Prelude.<*> (x Data..@? "KmsKeyId")
Prelude.<*> (x Data..@? "Mode")
Prelude.<*> (x Data..@? "PolicyStatus")
Prelude.<*> (x Data..@? "Status")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
)
instance Prelude.Hashable ModifyActivityStream where
hashWithSalt _salt ModifyActivityStream' {..} =
_salt
`Prelude.hashWithSalt` auditPolicyState
`Prelude.hashWithSalt` resourceArn
instance Prelude.NFData ModifyActivityStream where
rnf ModifyActivityStream' {..} =
Prelude.rnf auditPolicyState
`Prelude.seq` Prelude.rnf resourceArn
instance Data.ToHeaders ModifyActivityStream where
toHeaders = Prelude.const Prelude.mempty
instance Data.ToPath ModifyActivityStream where
toPath = Prelude.const "/"
instance Data.ToQuery ModifyActivityStream where
toQuery ModifyActivityStream' {..} =
Prelude.mconcat
[ "Action"
Data.=: ("ModifyActivityStream" :: Prelude.ByteString),
"Version"
Data.=: ("2014-10-31" :: Prelude.ByteString),
"AuditPolicyState" Data.=: auditPolicyState,
"ResourceArn" Data.=: resourceArn
]
-- | /See:/ 'newModifyActivityStreamResponse' smart constructor.
data ModifyActivityStreamResponse = ModifyActivityStreamResponse'
{ -- | Indicates whether engine-native audit fields are included in the
-- database activity stream.
engineNativeAuditFieldsIncluded :: Prelude.Maybe Prelude.Bool,
-- | The name of the Amazon Kinesis data stream to be used for the database
-- activity stream.
kinesisStreamName :: Prelude.Maybe Prelude.Text,
-- | The Amazon Web Services KMS key identifier for encryption of messages in
-- the database activity stream.
kmsKeyId :: Prelude.Maybe Prelude.Text,
-- | The mode of the database activity stream.
mode :: Prelude.Maybe ActivityStreamMode,
-- | The status of the modification to the policy state of the database
-- activity stream.
policyStatus :: Prelude.Maybe ActivityStreamPolicyStatus,
-- | The status of the modification to the database activity stream.
status :: Prelude.Maybe ActivityStreamStatus,
-- | The response's http status code.
httpStatus :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'ModifyActivityStreamResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'engineNativeAuditFieldsIncluded', 'modifyActivityStreamResponse_engineNativeAuditFieldsIncluded' - Indicates whether engine-native audit fields are included in the
-- database activity stream.
--
-- 'kinesisStreamName', 'modifyActivityStreamResponse_kinesisStreamName' - The name of the Amazon Kinesis data stream to be used for the database
-- activity stream.
--
-- 'kmsKeyId', 'modifyActivityStreamResponse_kmsKeyId' - The Amazon Web Services KMS key identifier for encryption of messages in
-- the database activity stream.
--
-- 'mode', 'modifyActivityStreamResponse_mode' - The mode of the database activity stream.
--
-- 'policyStatus', 'modifyActivityStreamResponse_policyStatus' - The status of the modification to the policy state of the database
-- activity stream.
--
-- 'status', 'modifyActivityStreamResponse_status' - The status of the modification to the database activity stream.
--
-- 'httpStatus', 'modifyActivityStreamResponse_httpStatus' - The response's http status code.
newModifyActivityStreamResponse ::
-- | 'httpStatus'
Prelude.Int ->
ModifyActivityStreamResponse
newModifyActivityStreamResponse pHttpStatus_ =
ModifyActivityStreamResponse'
{ engineNativeAuditFieldsIncluded =
Prelude.Nothing,
kinesisStreamName = Prelude.Nothing,
kmsKeyId = Prelude.Nothing,
mode = Prelude.Nothing,
policyStatus = Prelude.Nothing,
status = Prelude.Nothing,
httpStatus = pHttpStatus_
}
-- | Indicates whether engine-native audit fields are included in the
-- database activity stream.
modifyActivityStreamResponse_engineNativeAuditFieldsIncluded :: Lens.Lens' ModifyActivityStreamResponse (Prelude.Maybe Prelude.Bool)
modifyActivityStreamResponse_engineNativeAuditFieldsIncluded = Lens.lens (\ModifyActivityStreamResponse' {engineNativeAuditFieldsIncluded} -> engineNativeAuditFieldsIncluded) (\s@ModifyActivityStreamResponse' {} a -> s {engineNativeAuditFieldsIncluded = a} :: ModifyActivityStreamResponse)
-- | The name of the Amazon Kinesis data stream to be used for the database
-- activity stream.
modifyActivityStreamResponse_kinesisStreamName :: Lens.Lens' ModifyActivityStreamResponse (Prelude.Maybe Prelude.Text)
modifyActivityStreamResponse_kinesisStreamName = Lens.lens (\ModifyActivityStreamResponse' {kinesisStreamName} -> kinesisStreamName) (\s@ModifyActivityStreamResponse' {} a -> s {kinesisStreamName = a} :: ModifyActivityStreamResponse)
-- | The Amazon Web Services KMS key identifier for encryption of messages in
-- the database activity stream.
modifyActivityStreamResponse_kmsKeyId :: Lens.Lens' ModifyActivityStreamResponse (Prelude.Maybe Prelude.Text)
modifyActivityStreamResponse_kmsKeyId = Lens.lens (\ModifyActivityStreamResponse' {kmsKeyId} -> kmsKeyId) (\s@ModifyActivityStreamResponse' {} a -> s {kmsKeyId = a} :: ModifyActivityStreamResponse)
-- | The mode of the database activity stream.
modifyActivityStreamResponse_mode :: Lens.Lens' ModifyActivityStreamResponse (Prelude.Maybe ActivityStreamMode)
modifyActivityStreamResponse_mode = Lens.lens (\ModifyActivityStreamResponse' {mode} -> mode) (\s@ModifyActivityStreamResponse' {} a -> s {mode = a} :: ModifyActivityStreamResponse)
-- | The status of the modification to the policy state of the database
-- activity stream.
modifyActivityStreamResponse_policyStatus :: Lens.Lens' ModifyActivityStreamResponse (Prelude.Maybe ActivityStreamPolicyStatus)
modifyActivityStreamResponse_policyStatus = Lens.lens (\ModifyActivityStreamResponse' {policyStatus} -> policyStatus) (\s@ModifyActivityStreamResponse' {} a -> s {policyStatus = a} :: ModifyActivityStreamResponse)
-- | The status of the modification to the database activity stream.
modifyActivityStreamResponse_status :: Lens.Lens' ModifyActivityStreamResponse (Prelude.Maybe ActivityStreamStatus)
modifyActivityStreamResponse_status = Lens.lens (\ModifyActivityStreamResponse' {status} -> status) (\s@ModifyActivityStreamResponse' {} a -> s {status = a} :: ModifyActivityStreamResponse)
-- | The response's http status code.
modifyActivityStreamResponse_httpStatus :: Lens.Lens' ModifyActivityStreamResponse Prelude.Int
modifyActivityStreamResponse_httpStatus = Lens.lens (\ModifyActivityStreamResponse' {httpStatus} -> httpStatus) (\s@ModifyActivityStreamResponse' {} a -> s {httpStatus = a} :: ModifyActivityStreamResponse)
instance Prelude.NFData ModifyActivityStreamResponse where
rnf ModifyActivityStreamResponse' {..} =
Prelude.rnf engineNativeAuditFieldsIncluded
`Prelude.seq` Prelude.rnf kinesisStreamName
`Prelude.seq` Prelude.rnf kmsKeyId
`Prelude.seq` Prelude.rnf mode
`Prelude.seq` Prelude.rnf policyStatus
`Prelude.seq` Prelude.rnf status
`Prelude.seq` Prelude.rnf httpStatus