packages feed

amazonka-cloudtrail-2.0: gen/Amazonka/CloudTrail/DeleteEventDataStore.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.CloudTrail.DeleteEventDataStore
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Disables the event data store specified by @EventDataStore@, which
-- accepts an event data store ARN. After you run @DeleteEventDataStore@,
-- the event data store enters a @PENDING_DELETION@ state, and is
-- automatically deleted after a wait period of seven days.
-- @TerminationProtectionEnabled@ must be set to @False@ on the event data
-- store; this operation cannot work if @TerminationProtectionEnabled@ is
-- @True@.
--
-- After you run @DeleteEventDataStore@ on an event data store, you cannot
-- run @ListQueries@, @DescribeQuery@, or @GetQueryResults@ on queries that
-- are using an event data store in a @PENDING_DELETION@ state. An event
-- data store in the @PENDING_DELETION@ state does not incur costs.
module Amazonka.CloudTrail.DeleteEventDataStore
  ( -- * Creating a Request
    DeleteEventDataStore (..),
    newDeleteEventDataStore,

    -- * Request Lenses
    deleteEventDataStore_eventDataStore,

    -- * Destructuring the Response
    DeleteEventDataStoreResponse (..),
    newDeleteEventDataStoreResponse,

    -- * Response Lenses
    deleteEventDataStoreResponse_httpStatus,
  )
where

import Amazonka.CloudTrail.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:/ 'newDeleteEventDataStore' smart constructor.
data DeleteEventDataStore = DeleteEventDataStore'
  { -- | The ARN (or the ID suffix of the ARN) of the event data store to delete.
    eventDataStore :: Prelude.Text
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DeleteEventDataStore' 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:
--
-- 'eventDataStore', 'deleteEventDataStore_eventDataStore' - The ARN (or the ID suffix of the ARN) of the event data store to delete.
newDeleteEventDataStore ::
  -- | 'eventDataStore'
  Prelude.Text ->
  DeleteEventDataStore
newDeleteEventDataStore pEventDataStore_ =
  DeleteEventDataStore'
    { eventDataStore =
        pEventDataStore_
    }

-- | The ARN (or the ID suffix of the ARN) of the event data store to delete.
deleteEventDataStore_eventDataStore :: Lens.Lens' DeleteEventDataStore Prelude.Text
deleteEventDataStore_eventDataStore = Lens.lens (\DeleteEventDataStore' {eventDataStore} -> eventDataStore) (\s@DeleteEventDataStore' {} a -> s {eventDataStore = a} :: DeleteEventDataStore)

instance Core.AWSRequest DeleteEventDataStore where
  type
    AWSResponse DeleteEventDataStore =
      DeleteEventDataStoreResponse
  request overrides =
    Request.postJSON (overrides defaultService)
  response =
    Response.receiveEmpty
      ( \s h x ->
          DeleteEventDataStoreResponse'
            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
      )

instance Prelude.Hashable DeleteEventDataStore where
  hashWithSalt _salt DeleteEventDataStore' {..} =
    _salt `Prelude.hashWithSalt` eventDataStore

instance Prelude.NFData DeleteEventDataStore where
  rnf DeleteEventDataStore' {..} =
    Prelude.rnf eventDataStore

instance Data.ToHeaders DeleteEventDataStore where
  toHeaders =
    Prelude.const
      ( Prelude.mconcat
          [ "X-Amz-Target"
              Data.=# ( "com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.DeleteEventDataStore" ::
                          Prelude.ByteString
                      ),
            "Content-Type"
              Data.=# ( "application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DeleteEventDataStore where
  toJSON DeleteEventDataStore' {..} =
    Data.object
      ( Prelude.catMaybes
          [ Prelude.Just
              ("EventDataStore" Data..= eventDataStore)
          ]
      )

instance Data.ToPath DeleteEventDataStore where
  toPath = Prelude.const "/"

instance Data.ToQuery DeleteEventDataStore where
  toQuery = Prelude.const Prelude.mempty

-- | /See:/ 'newDeleteEventDataStoreResponse' smart constructor.
data DeleteEventDataStoreResponse = DeleteEventDataStoreResponse'
  { -- | The response's http status code.
    httpStatus :: Prelude.Int
  }
  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)

-- |
-- Create a value of 'DeleteEventDataStoreResponse' 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:
--
-- 'httpStatus', 'deleteEventDataStoreResponse_httpStatus' - The response's http status code.
newDeleteEventDataStoreResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DeleteEventDataStoreResponse
newDeleteEventDataStoreResponse pHttpStatus_ =
  DeleteEventDataStoreResponse'
    { httpStatus =
        pHttpStatus_
    }

-- | The response's http status code.
deleteEventDataStoreResponse_httpStatus :: Lens.Lens' DeleteEventDataStoreResponse Prelude.Int
deleteEventDataStoreResponse_httpStatus = Lens.lens (\DeleteEventDataStoreResponse' {httpStatus} -> httpStatus) (\s@DeleteEventDataStoreResponse' {} a -> s {httpStatus = a} :: DeleteEventDataStoreResponse)

instance Prelude.NFData DeleteEventDataStoreResponse where
  rnf DeleteEventDataStoreResponse' {..} =
    Prelude.rnf httpStatus