{-# 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.QuickSight.UpdateDataSetPermissions -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Updates the permissions on a dataset. -- -- The permissions resource is -- @arn:aws:quicksight:region:aws-account-id:dataset\/data-set-id@. module Amazonka.QuickSight.UpdateDataSetPermissions ( -- * Creating a Request UpdateDataSetPermissions (..), newUpdateDataSetPermissions, -- * Request Lenses updateDataSetPermissions_grantPermissions, updateDataSetPermissions_revokePermissions, updateDataSetPermissions_awsAccountId, updateDataSetPermissions_dataSetId, -- * Destructuring the Response UpdateDataSetPermissionsResponse (..), newUpdateDataSetPermissionsResponse, -- * Response Lenses updateDataSetPermissionsResponse_dataSetArn, updateDataSetPermissionsResponse_dataSetId, updateDataSetPermissionsResponse_requestId, updateDataSetPermissionsResponse_status, ) 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.QuickSight.Types import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newUpdateDataSetPermissions' smart constructor. data UpdateDataSetPermissions = UpdateDataSetPermissions' { -- | The resource permissions that you want to grant to the dataset. grantPermissions :: Prelude.Maybe (Prelude.NonEmpty ResourcePermission), -- | The resource permissions that you want to revoke from the dataset. revokePermissions :: Prelude.Maybe (Prelude.NonEmpty ResourcePermission), -- | The Amazon Web Services account ID. awsAccountId :: Prelude.Text, -- | The ID for the dataset whose permissions you want to update. This ID is -- unique per Amazon Web Services Region for each Amazon Web Services -- account. dataSetId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdateDataSetPermissions' 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: -- -- 'grantPermissions', 'updateDataSetPermissions_grantPermissions' - The resource permissions that you want to grant to the dataset. -- -- 'revokePermissions', 'updateDataSetPermissions_revokePermissions' - The resource permissions that you want to revoke from the dataset. -- -- 'awsAccountId', 'updateDataSetPermissions_awsAccountId' - The Amazon Web Services account ID. -- -- 'dataSetId', 'updateDataSetPermissions_dataSetId' - The ID for the dataset whose permissions you want to update. This ID is -- unique per Amazon Web Services Region for each Amazon Web Services -- account. newUpdateDataSetPermissions :: -- | 'awsAccountId' Prelude.Text -> -- | 'dataSetId' Prelude.Text -> UpdateDataSetPermissions newUpdateDataSetPermissions pAwsAccountId_ pDataSetId_ = UpdateDataSetPermissions' { grantPermissions = Prelude.Nothing, revokePermissions = Prelude.Nothing, awsAccountId = pAwsAccountId_, dataSetId = pDataSetId_ } -- | The resource permissions that you want to grant to the dataset. updateDataSetPermissions_grantPermissions :: Lens.Lens' UpdateDataSetPermissions (Prelude.Maybe (Prelude.NonEmpty ResourcePermission)) updateDataSetPermissions_grantPermissions = Lens.lens (\UpdateDataSetPermissions' {grantPermissions} -> grantPermissions) (\s@UpdateDataSetPermissions' {} a -> s {grantPermissions = a} :: UpdateDataSetPermissions) Prelude.. Lens.mapping Lens.coerced -- | The resource permissions that you want to revoke from the dataset. updateDataSetPermissions_revokePermissions :: Lens.Lens' UpdateDataSetPermissions (Prelude.Maybe (Prelude.NonEmpty ResourcePermission)) updateDataSetPermissions_revokePermissions = Lens.lens (\UpdateDataSetPermissions' {revokePermissions} -> revokePermissions) (\s@UpdateDataSetPermissions' {} a -> s {revokePermissions = a} :: UpdateDataSetPermissions) Prelude.. Lens.mapping Lens.coerced -- | The Amazon Web Services account ID. updateDataSetPermissions_awsAccountId :: Lens.Lens' UpdateDataSetPermissions Prelude.Text updateDataSetPermissions_awsAccountId = Lens.lens (\UpdateDataSetPermissions' {awsAccountId} -> awsAccountId) (\s@UpdateDataSetPermissions' {} a -> s {awsAccountId = a} :: UpdateDataSetPermissions) -- | The ID for the dataset whose permissions you want to update. This ID is -- unique per Amazon Web Services Region for each Amazon Web Services -- account. updateDataSetPermissions_dataSetId :: Lens.Lens' UpdateDataSetPermissions Prelude.Text updateDataSetPermissions_dataSetId = Lens.lens (\UpdateDataSetPermissions' {dataSetId} -> dataSetId) (\s@UpdateDataSetPermissions' {} a -> s {dataSetId = a} :: UpdateDataSetPermissions) instance Core.AWSRequest UpdateDataSetPermissions where type AWSResponse UpdateDataSetPermissions = UpdateDataSetPermissionsResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> UpdateDataSetPermissionsResponse' Prelude.<$> (x Data..?> "DataSetArn") Prelude.<*> (x Data..?> "DataSetId") Prelude.<*> (x Data..?> "RequestId") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable UpdateDataSetPermissions where hashWithSalt _salt UpdateDataSetPermissions' {..} = _salt `Prelude.hashWithSalt` grantPermissions `Prelude.hashWithSalt` revokePermissions `Prelude.hashWithSalt` awsAccountId `Prelude.hashWithSalt` dataSetId instance Prelude.NFData UpdateDataSetPermissions where rnf UpdateDataSetPermissions' {..} = Prelude.rnf grantPermissions `Prelude.seq` Prelude.rnf revokePermissions `Prelude.seq` Prelude.rnf awsAccountId `Prelude.seq` Prelude.rnf dataSetId instance Data.ToHeaders UpdateDataSetPermissions where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.0" :: Prelude.ByteString ) ] ) instance Data.ToJSON UpdateDataSetPermissions where toJSON UpdateDataSetPermissions' {..} = Data.object ( Prelude.catMaybes [ ("GrantPermissions" Data..=) Prelude.<$> grantPermissions, ("RevokePermissions" Data..=) Prelude.<$> revokePermissions ] ) instance Data.ToPath UpdateDataSetPermissions where toPath UpdateDataSetPermissions' {..} = Prelude.mconcat [ "/accounts/", Data.toBS awsAccountId, "/data-sets/", Data.toBS dataSetId, "/permissions" ] instance Data.ToQuery UpdateDataSetPermissions where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newUpdateDataSetPermissionsResponse' smart constructor. data UpdateDataSetPermissionsResponse = UpdateDataSetPermissionsResponse' { -- | The Amazon Resource Name (ARN) of the dataset. dataSetArn :: Prelude.Maybe Prelude.Text, -- | The ID for the dataset whose permissions you want to update. This ID is -- unique per Amazon Web Services Region for each Amazon Web Services -- account. dataSetId :: Prelude.Maybe Prelude.Text, -- | The Amazon Web Services request ID for this operation. requestId :: Prelude.Maybe Prelude.Text, -- | The HTTP status of the request. status :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'UpdateDataSetPermissionsResponse' 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: -- -- 'dataSetArn', 'updateDataSetPermissionsResponse_dataSetArn' - The Amazon Resource Name (ARN) of the dataset. -- -- 'dataSetId', 'updateDataSetPermissionsResponse_dataSetId' - The ID for the dataset whose permissions you want to update. This ID is -- unique per Amazon Web Services Region for each Amazon Web Services -- account. -- -- 'requestId', 'updateDataSetPermissionsResponse_requestId' - The Amazon Web Services request ID for this operation. -- -- 'status', 'updateDataSetPermissionsResponse_status' - The HTTP status of the request. newUpdateDataSetPermissionsResponse :: -- | 'status' Prelude.Int -> UpdateDataSetPermissionsResponse newUpdateDataSetPermissionsResponse pStatus_ = UpdateDataSetPermissionsResponse' { dataSetArn = Prelude.Nothing, dataSetId = Prelude.Nothing, requestId = Prelude.Nothing, status = pStatus_ } -- | The Amazon Resource Name (ARN) of the dataset. updateDataSetPermissionsResponse_dataSetArn :: Lens.Lens' UpdateDataSetPermissionsResponse (Prelude.Maybe Prelude.Text) updateDataSetPermissionsResponse_dataSetArn = Lens.lens (\UpdateDataSetPermissionsResponse' {dataSetArn} -> dataSetArn) (\s@UpdateDataSetPermissionsResponse' {} a -> s {dataSetArn = a} :: UpdateDataSetPermissionsResponse) -- | The ID for the dataset whose permissions you want to update. This ID is -- unique per Amazon Web Services Region for each Amazon Web Services -- account. updateDataSetPermissionsResponse_dataSetId :: Lens.Lens' UpdateDataSetPermissionsResponse (Prelude.Maybe Prelude.Text) updateDataSetPermissionsResponse_dataSetId = Lens.lens (\UpdateDataSetPermissionsResponse' {dataSetId} -> dataSetId) (\s@UpdateDataSetPermissionsResponse' {} a -> s {dataSetId = a} :: UpdateDataSetPermissionsResponse) -- | The Amazon Web Services request ID for this operation. updateDataSetPermissionsResponse_requestId :: Lens.Lens' UpdateDataSetPermissionsResponse (Prelude.Maybe Prelude.Text) updateDataSetPermissionsResponse_requestId = Lens.lens (\UpdateDataSetPermissionsResponse' {requestId} -> requestId) (\s@UpdateDataSetPermissionsResponse' {} a -> s {requestId = a} :: UpdateDataSetPermissionsResponse) -- | The HTTP status of the request. updateDataSetPermissionsResponse_status :: Lens.Lens' UpdateDataSetPermissionsResponse Prelude.Int updateDataSetPermissionsResponse_status = Lens.lens (\UpdateDataSetPermissionsResponse' {status} -> status) (\s@UpdateDataSetPermissionsResponse' {} a -> s {status = a} :: UpdateDataSetPermissionsResponse) instance Prelude.NFData UpdateDataSetPermissionsResponse where rnf UpdateDataSetPermissionsResponse' {..} = Prelude.rnf dataSetArn `Prelude.seq` Prelude.rnf dataSetId `Prelude.seq` Prelude.rnf requestId `Prelude.seq` Prelude.rnf status