amazonka-finspace-data-2.0: gen/Amazonka/FinSpaceData/DisassociateUserFromPermissionGroup.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.FinSpaceData.DisassociateUserFromPermissionGroup
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Removes a user account from a permission group.
module Amazonka.FinSpaceData.DisassociateUserFromPermissionGroup
( -- * Creating a Request
DisassociateUserFromPermissionGroup (..),
newDisassociateUserFromPermissionGroup,
-- * Request Lenses
disassociateUserFromPermissionGroup_clientToken,
disassociateUserFromPermissionGroup_permissionGroupId,
disassociateUserFromPermissionGroup_userId,
-- * Destructuring the Response
DisassociateUserFromPermissionGroupResponse (..),
newDisassociateUserFromPermissionGroupResponse,
-- * Response Lenses
disassociateUserFromPermissionGroupResponse_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:/ 'newDisassociateUserFromPermissionGroup' smart constructor.
data DisassociateUserFromPermissionGroup = DisassociateUserFromPermissionGroup'
{ -- | 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 'DisassociateUserFromPermissionGroup' 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:
--
-- 'clientToken', 'disassociateUserFromPermissionGroup_clientToken' - A token that ensures idempotency. This token expires in 10 minutes.
--
-- 'permissionGroupId', 'disassociateUserFromPermissionGroup_permissionGroupId' - The unique identifier for the permission group.
--
-- 'userId', 'disassociateUserFromPermissionGroup_userId' - The unique identifier for the user.
newDisassociateUserFromPermissionGroup ::
-- | 'permissionGroupId'
Prelude.Text ->
-- | 'userId'
Prelude.Text ->
DisassociateUserFromPermissionGroup
newDisassociateUserFromPermissionGroup
pPermissionGroupId_
pUserId_ =
DisassociateUserFromPermissionGroup'
{ clientToken =
Prelude.Nothing,
permissionGroupId =
pPermissionGroupId_,
userId = pUserId_
}
-- | A token that ensures idempotency. This token expires in 10 minutes.
disassociateUserFromPermissionGroup_clientToken :: Lens.Lens' DisassociateUserFromPermissionGroup (Prelude.Maybe Prelude.Text)
disassociateUserFromPermissionGroup_clientToken = Lens.lens (\DisassociateUserFromPermissionGroup' {clientToken} -> clientToken) (\s@DisassociateUserFromPermissionGroup' {} a -> s {clientToken = a} :: DisassociateUserFromPermissionGroup)
-- | The unique identifier for the permission group.
disassociateUserFromPermissionGroup_permissionGroupId :: Lens.Lens' DisassociateUserFromPermissionGroup Prelude.Text
disassociateUserFromPermissionGroup_permissionGroupId = Lens.lens (\DisassociateUserFromPermissionGroup' {permissionGroupId} -> permissionGroupId) (\s@DisassociateUserFromPermissionGroup' {} a -> s {permissionGroupId = a} :: DisassociateUserFromPermissionGroup)
-- | The unique identifier for the user.
disassociateUserFromPermissionGroup_userId :: Lens.Lens' DisassociateUserFromPermissionGroup Prelude.Text
disassociateUserFromPermissionGroup_userId = Lens.lens (\DisassociateUserFromPermissionGroup' {userId} -> userId) (\s@DisassociateUserFromPermissionGroup' {} a -> s {userId = a} :: DisassociateUserFromPermissionGroup)
instance
Core.AWSRequest
DisassociateUserFromPermissionGroup
where
type
AWSResponse DisassociateUserFromPermissionGroup =
DisassociateUserFromPermissionGroupResponse
request overrides =
Request.delete (overrides defaultService)
response =
Response.receiveEmpty
( \s h x ->
DisassociateUserFromPermissionGroupResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
)
instance
Prelude.Hashable
DisassociateUserFromPermissionGroup
where
hashWithSalt
_salt
DisassociateUserFromPermissionGroup' {..} =
_salt
`Prelude.hashWithSalt` clientToken
`Prelude.hashWithSalt` permissionGroupId
`Prelude.hashWithSalt` userId
instance
Prelude.NFData
DisassociateUserFromPermissionGroup
where
rnf DisassociateUserFromPermissionGroup' {..} =
Prelude.rnf clientToken
`Prelude.seq` Prelude.rnf permissionGroupId
`Prelude.seq` Prelude.rnf userId
instance
Data.ToHeaders
DisassociateUserFromPermissionGroup
where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance
Data.ToPath
DisassociateUserFromPermissionGroup
where
toPath DisassociateUserFromPermissionGroup' {..} =
Prelude.mconcat
[ "/permission-group/",
Data.toBS permissionGroupId,
"/users/",
Data.toBS userId
]
instance
Data.ToQuery
DisassociateUserFromPermissionGroup
where
toQuery DisassociateUserFromPermissionGroup' {..} =
Prelude.mconcat ["clientToken" Data.=: clientToken]
-- | /See:/ 'newDisassociateUserFromPermissionGroupResponse' smart constructor.
data DisassociateUserFromPermissionGroupResponse = DisassociateUserFromPermissionGroupResponse'
{ -- | The returned status code of the response.
statusCode :: Prelude.Int
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DisassociateUserFromPermissionGroupResponse' 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:
--
-- 'statusCode', 'disassociateUserFromPermissionGroupResponse_statusCode' - The returned status code of the response.
newDisassociateUserFromPermissionGroupResponse ::
-- | 'statusCode'
Prelude.Int ->
DisassociateUserFromPermissionGroupResponse
newDisassociateUserFromPermissionGroupResponse
pStatusCode_ =
DisassociateUserFromPermissionGroupResponse'
{ statusCode =
pStatusCode_
}
-- | The returned status code of the response.
disassociateUserFromPermissionGroupResponse_statusCode :: Lens.Lens' DisassociateUserFromPermissionGroupResponse Prelude.Int
disassociateUserFromPermissionGroupResponse_statusCode = Lens.lens (\DisassociateUserFromPermissionGroupResponse' {statusCode} -> statusCode) (\s@DisassociateUserFromPermissionGroupResponse' {} a -> s {statusCode = a} :: DisassociateUserFromPermissionGroupResponse)
instance
Prelude.NFData
DisassociateUserFromPermissionGroupResponse
where
rnf DisassociateUserFromPermissionGroupResponse' {..} =
Prelude.rnf statusCode