{-# 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.Lightsail.DeleteBucketAccessKey -- 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 an access key for the specified Amazon Lightsail bucket. -- -- We recommend that you delete an access key if the secret access key is -- compromised. -- -- For more information about access keys, see -- -- in the /Amazon Lightsail Developer Guide/. module Amazonka.Lightsail.DeleteBucketAccessKey ( -- * Creating a Request DeleteBucketAccessKey (..), newDeleteBucketAccessKey, -- * Request Lenses deleteBucketAccessKey_bucketName, deleteBucketAccessKey_accessKeyId, -- * Destructuring the Response DeleteBucketAccessKeyResponse (..), newDeleteBucketAccessKeyResponse, -- * Response Lenses deleteBucketAccessKeyResponse_operations, deleteBucketAccessKeyResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.Lightsail.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newDeleteBucketAccessKey' smart constructor. data DeleteBucketAccessKey = DeleteBucketAccessKey' { -- | The name of the bucket that the access key belongs to. bucketName :: Prelude.Text, -- | The ID of the access key to delete. -- -- Use the -- -- action to get a list of access key IDs that you can specify. accessKeyId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteBucketAccessKey' 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: -- -- 'bucketName', 'deleteBucketAccessKey_bucketName' - The name of the bucket that the access key belongs to. -- -- 'accessKeyId', 'deleteBucketAccessKey_accessKeyId' - The ID of the access key to delete. -- -- Use the -- -- action to get a list of access key IDs that you can specify. newDeleteBucketAccessKey :: -- | 'bucketName' Prelude.Text -> -- | 'accessKeyId' Prelude.Text -> DeleteBucketAccessKey newDeleteBucketAccessKey pBucketName_ pAccessKeyId_ = DeleteBucketAccessKey' { bucketName = pBucketName_, accessKeyId = pAccessKeyId_ } -- | The name of the bucket that the access key belongs to. deleteBucketAccessKey_bucketName :: Lens.Lens' DeleteBucketAccessKey Prelude.Text deleteBucketAccessKey_bucketName = Lens.lens (\DeleteBucketAccessKey' {bucketName} -> bucketName) (\s@DeleteBucketAccessKey' {} a -> s {bucketName = a} :: DeleteBucketAccessKey) -- | The ID of the access key to delete. -- -- Use the -- -- action to get a list of access key IDs that you can specify. deleteBucketAccessKey_accessKeyId :: Lens.Lens' DeleteBucketAccessKey Prelude.Text deleteBucketAccessKey_accessKeyId = Lens.lens (\DeleteBucketAccessKey' {accessKeyId} -> accessKeyId) (\s@DeleteBucketAccessKey' {} a -> s {accessKeyId = a} :: DeleteBucketAccessKey) instance Core.AWSRequest DeleteBucketAccessKey where type AWSResponse DeleteBucketAccessKey = DeleteBucketAccessKeyResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> DeleteBucketAccessKeyResponse' Prelude.<$> (x Data..?> "operations" Core..!@ Prelude.mempty) Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DeleteBucketAccessKey where hashWithSalt _salt DeleteBucketAccessKey' {..} = _salt `Prelude.hashWithSalt` bucketName `Prelude.hashWithSalt` accessKeyId instance Prelude.NFData DeleteBucketAccessKey where rnf DeleteBucketAccessKey' {..} = Prelude.rnf bucketName `Prelude.seq` Prelude.rnf accessKeyId instance Data.ToHeaders DeleteBucketAccessKey where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "Lightsail_20161128.DeleteBucketAccessKey" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DeleteBucketAccessKey where toJSON DeleteBucketAccessKey' {..} = Data.object ( Prelude.catMaybes [ Prelude.Just ("bucketName" Data..= bucketName), Prelude.Just ("accessKeyId" Data..= accessKeyId) ] ) instance Data.ToPath DeleteBucketAccessKey where toPath = Prelude.const "/" instance Data.ToQuery DeleteBucketAccessKey where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDeleteBucketAccessKeyResponse' smart constructor. data DeleteBucketAccessKeyResponse = DeleteBucketAccessKeyResponse' { -- | An array of objects that describe the result of the action, such as the -- status of the request, the timestamp of the request, and the resources -- affected by the request. operations :: Prelude.Maybe [Operation], -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DeleteBucketAccessKeyResponse' 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: -- -- 'operations', 'deleteBucketAccessKeyResponse_operations' - An array of objects that describe the result of the action, such as the -- status of the request, the timestamp of the request, and the resources -- affected by the request. -- -- 'httpStatus', 'deleteBucketAccessKeyResponse_httpStatus' - The response's http status code. newDeleteBucketAccessKeyResponse :: -- | 'httpStatus' Prelude.Int -> DeleteBucketAccessKeyResponse newDeleteBucketAccessKeyResponse pHttpStatus_ = DeleteBucketAccessKeyResponse' { operations = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | An array of objects that describe the result of the action, such as the -- status of the request, the timestamp of the request, and the resources -- affected by the request. deleteBucketAccessKeyResponse_operations :: Lens.Lens' DeleteBucketAccessKeyResponse (Prelude.Maybe [Operation]) deleteBucketAccessKeyResponse_operations = Lens.lens (\DeleteBucketAccessKeyResponse' {operations} -> operations) (\s@DeleteBucketAccessKeyResponse' {} a -> s {operations = a} :: DeleteBucketAccessKeyResponse) Prelude.. Lens.mapping Lens.coerced -- | The response's http status code. deleteBucketAccessKeyResponse_httpStatus :: Lens.Lens' DeleteBucketAccessKeyResponse Prelude.Int deleteBucketAccessKeyResponse_httpStatus = Lens.lens (\DeleteBucketAccessKeyResponse' {httpStatus} -> httpStatus) (\s@DeleteBucketAccessKeyResponse' {} a -> s {httpStatus = a} :: DeleteBucketAccessKeyResponse) instance Prelude.NFData DeleteBucketAccessKeyResponse where rnf DeleteBucketAccessKeyResponse' {..} = Prelude.rnf operations `Prelude.seq` Prelude.rnf httpStatus