{-# 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.FinSpaceData.AssociateUserToPermissionGroup -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Adds a user account to a permission group to grant permissions for -- actions a user can perform in FinSpace. module Amazonka.FinSpaceData.AssociateUserToPermissionGroup ( -- * Creating a Request AssociateUserToPermissionGroup (..), newAssociateUserToPermissionGroup, -- * Request Lenses associateUserToPermissionGroup_clientToken, associateUserToPermissionGroup_permissionGroupId, associateUserToPermissionGroup_userId, -- * Destructuring the Response AssociateUserToPermissionGroupResponse (..), newAssociateUserToPermissionGroupResponse, -- * Response Lenses associateUserToPermissionGroupResponse_statusCode, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.FinSpaceData.Types import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newAssociateUserToPermissionGroup' smart constructor. data AssociateUserToPermissionGroup = AssociateUserToPermissionGroup' { -- | A token that ensures idempotency. This token expires in 10 minutes. clientToken :: Prelude.Maybe Prelude.Text, -- | The unique identifier for the permission group. permissionGroupId :: Prelude.Text, -- | The unique identifier for the user. userId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'AssociateUserToPermissionGroup' 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: -- -- 'clientToken', 'associateUserToPermissionGroup_clientToken' - A token that ensures idempotency. This token expires in 10 minutes. -- -- 'permissionGroupId', 'associateUserToPermissionGroup_permissionGroupId' - The unique identifier for the permission group. -- -- 'userId', 'associateUserToPermissionGroup_userId' - The unique identifier for the user. newAssociateUserToPermissionGroup :: -- | 'permissionGroupId' Prelude.Text -> -- | 'userId' Prelude.Text -> AssociateUserToPermissionGroup newAssociateUserToPermissionGroup pPermissionGroupId_ pUserId_ = AssociateUserToPermissionGroup' { clientToken = Prelude.Nothing, permissionGroupId = pPermissionGroupId_, userId = pUserId_ } -- | A token that ensures idempotency. This token expires in 10 minutes. associateUserToPermissionGroup_clientToken :: Lens.Lens' AssociateUserToPermissionGroup (Prelude.Maybe Prelude.Text) associateUserToPermissionGroup_clientToken = Lens.lens (\AssociateUserToPermissionGroup' {clientToken} -> clientToken) (\s@AssociateUserToPermissionGroup' {} a -> s {clientToken = a} :: AssociateUserToPermissionGroup) -- | The unique identifier for the permission group. associateUserToPermissionGroup_permissionGroupId :: Lens.Lens' AssociateUserToPermissionGroup Prelude.Text associateUserToPermissionGroup_permissionGroupId = Lens.lens (\AssociateUserToPermissionGroup' {permissionGroupId} -> permissionGroupId) (\s@AssociateUserToPermissionGroup' {} a -> s {permissionGroupId = a} :: AssociateUserToPermissionGroup) -- | The unique identifier for the user. associateUserToPermissionGroup_userId :: Lens.Lens' AssociateUserToPermissionGroup Prelude.Text associateUserToPermissionGroup_userId = Lens.lens (\AssociateUserToPermissionGroup' {userId} -> userId) (\s@AssociateUserToPermissionGroup' {} a -> s {userId = a} :: AssociateUserToPermissionGroup) instance Core.AWSRequest AssociateUserToPermissionGroup where type AWSResponse AssociateUserToPermissionGroup = AssociateUserToPermissionGroupResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveEmpty ( \s h x -> AssociateUserToPermissionGroupResponse' Prelude.<$> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable AssociateUserToPermissionGroup where hashWithSalt _salt AssociateUserToPermissionGroup' {..} = _salt `Prelude.hashWithSalt` clientToken `Prelude.hashWithSalt` permissionGroupId `Prelude.hashWithSalt` userId instance Prelude.NFData AssociateUserToPermissionGroup where rnf AssociateUserToPermissionGroup' {..} = Prelude.rnf clientToken `Prelude.seq` Prelude.rnf permissionGroupId `Prelude.seq` Prelude.rnf userId instance Data.ToHeaders AssociateUserToPermissionGroup where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON AssociateUserToPermissionGroup where toJSON AssociateUserToPermissionGroup' {..} = Data.object ( Prelude.catMaybes [("clientToken" Data..=) Prelude.<$> clientToken] ) instance Data.ToPath AssociateUserToPermissionGroup where toPath AssociateUserToPermissionGroup' {..} = Prelude.mconcat [ "/permission-group/", Data.toBS permissionGroupId, "/users/", Data.toBS userId ] instance Data.ToQuery AssociateUserToPermissionGroup where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newAssociateUserToPermissionGroupResponse' smart constructor. data AssociateUserToPermissionGroupResponse = AssociateUserToPermissionGroupResponse' { -- | The returned status code of the response. statusCode :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'AssociateUserToPermissionGroupResponse' 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: -- -- 'statusCode', 'associateUserToPermissionGroupResponse_statusCode' - The returned status code of the response. newAssociateUserToPermissionGroupResponse :: -- | 'statusCode' Prelude.Int -> AssociateUserToPermissionGroupResponse newAssociateUserToPermissionGroupResponse pStatusCode_ = AssociateUserToPermissionGroupResponse' { statusCode = pStatusCode_ } -- | The returned status code of the response. associateUserToPermissionGroupResponse_statusCode :: Lens.Lens' AssociateUserToPermissionGroupResponse Prelude.Int associateUserToPermissionGroupResponse_statusCode = Lens.lens (\AssociateUserToPermissionGroupResponse' {statusCode} -> statusCode) (\s@AssociateUserToPermissionGroupResponse' {} a -> s {statusCode = a} :: AssociateUserToPermissionGroupResponse) instance Prelude.NFData AssociateUserToPermissionGroupResponse where rnf AssociateUserToPermissionGroupResponse' {..} = Prelude.rnf statusCode