amazonka-workspaces-web-2.0: gen/Amazonka/WorkSpacesWeb/CreateUserAccessLoggingSettings.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.WorkSpacesWeb.CreateUserAccessLoggingSettings
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a user access logging settings resource that can be associated
-- with a web portal.
module Amazonka.WorkSpacesWeb.CreateUserAccessLoggingSettings
( -- * Creating a Request
CreateUserAccessLoggingSettings (..),
newCreateUserAccessLoggingSettings,
-- * Request Lenses
createUserAccessLoggingSettings_clientToken,
createUserAccessLoggingSettings_tags,
createUserAccessLoggingSettings_kinesisStreamArn,
-- * Destructuring the Response
CreateUserAccessLoggingSettingsResponse (..),
newCreateUserAccessLoggingSettingsResponse,
-- * Response Lenses
createUserAccessLoggingSettingsResponse_httpStatus,
createUserAccessLoggingSettingsResponse_userAccessLoggingSettingsArn,
)
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.WorkSpacesWeb.Types
-- | /See:/ 'newCreateUserAccessLoggingSettings' smart constructor.
data CreateUserAccessLoggingSettings = CreateUserAccessLoggingSettings'
{ -- | A unique, case-sensitive identifier that you provide to ensure the
-- idempotency of the request. Idempotency ensures that an API request
-- completes only once. With an idempotent request, if the original request
-- completes successfully, subsequent retries with the same client token
-- returns the result from the original successful request.
--
-- If you do not specify a client token, one is automatically generated by
-- the AWS SDK.
clientToken :: Prelude.Maybe Prelude.Text,
-- | The tags to add to the user settings resource. A tag is a key-value
-- pair.
tags :: Prelude.Maybe [Data.Sensitive Tag],
-- | The ARN of the Kinesis stream.
kinesisStreamArn :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateUserAccessLoggingSettings' 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', 'createUserAccessLoggingSettings_clientToken' - A unique, case-sensitive identifier that you provide to ensure the
-- idempotency of the request. Idempotency ensures that an API request
-- completes only once. With an idempotent request, if the original request
-- completes successfully, subsequent retries with the same client token
-- returns the result from the original successful request.
--
-- If you do not specify a client token, one is automatically generated by
-- the AWS SDK.
--
-- 'tags', 'createUserAccessLoggingSettings_tags' - The tags to add to the user settings resource. A tag is a key-value
-- pair.
--
-- 'kinesisStreamArn', 'createUserAccessLoggingSettings_kinesisStreamArn' - The ARN of the Kinesis stream.
newCreateUserAccessLoggingSettings ::
-- | 'kinesisStreamArn'
Prelude.Text ->
CreateUserAccessLoggingSettings
newCreateUserAccessLoggingSettings pKinesisStreamArn_ =
CreateUserAccessLoggingSettings'
{ clientToken =
Prelude.Nothing,
tags = Prelude.Nothing,
kinesisStreamArn = pKinesisStreamArn_
}
-- | A unique, case-sensitive identifier that you provide to ensure the
-- idempotency of the request. Idempotency ensures that an API request
-- completes only once. With an idempotent request, if the original request
-- completes successfully, subsequent retries with the same client token
-- returns the result from the original successful request.
--
-- If you do not specify a client token, one is automatically generated by
-- the AWS SDK.
createUserAccessLoggingSettings_clientToken :: Lens.Lens' CreateUserAccessLoggingSettings (Prelude.Maybe Prelude.Text)
createUserAccessLoggingSettings_clientToken = Lens.lens (\CreateUserAccessLoggingSettings' {clientToken} -> clientToken) (\s@CreateUserAccessLoggingSettings' {} a -> s {clientToken = a} :: CreateUserAccessLoggingSettings)
-- | The tags to add to the user settings resource. A tag is a key-value
-- pair.
createUserAccessLoggingSettings_tags :: Lens.Lens' CreateUserAccessLoggingSettings (Prelude.Maybe [Tag])
createUserAccessLoggingSettings_tags = Lens.lens (\CreateUserAccessLoggingSettings' {tags} -> tags) (\s@CreateUserAccessLoggingSettings' {} a -> s {tags = a} :: CreateUserAccessLoggingSettings) Prelude.. Lens.mapping Lens.coerced
-- | The ARN of the Kinesis stream.
createUserAccessLoggingSettings_kinesisStreamArn :: Lens.Lens' CreateUserAccessLoggingSettings Prelude.Text
createUserAccessLoggingSettings_kinesisStreamArn = Lens.lens (\CreateUserAccessLoggingSettings' {kinesisStreamArn} -> kinesisStreamArn) (\s@CreateUserAccessLoggingSettings' {} a -> s {kinesisStreamArn = a} :: CreateUserAccessLoggingSettings)
instance
Core.AWSRequest
CreateUserAccessLoggingSettings
where
type
AWSResponse CreateUserAccessLoggingSettings =
CreateUserAccessLoggingSettingsResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
CreateUserAccessLoggingSettingsResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
Prelude.<*> (x Data..:> "userAccessLoggingSettingsArn")
)
instance
Prelude.Hashable
CreateUserAccessLoggingSettings
where
hashWithSalt
_salt
CreateUserAccessLoggingSettings' {..} =
_salt
`Prelude.hashWithSalt` clientToken
`Prelude.hashWithSalt` tags
`Prelude.hashWithSalt` kinesisStreamArn
instance
Prelude.NFData
CreateUserAccessLoggingSettings
where
rnf CreateUserAccessLoggingSettings' {..} =
Prelude.rnf clientToken
`Prelude.seq` Prelude.rnf tags
`Prelude.seq` Prelude.rnf kinesisStreamArn
instance
Data.ToHeaders
CreateUserAccessLoggingSettings
where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateUserAccessLoggingSettings where
toJSON CreateUserAccessLoggingSettings' {..} =
Data.object
( Prelude.catMaybes
[ ("clientToken" Data..=) Prelude.<$> clientToken,
("tags" Data..=) Prelude.<$> tags,
Prelude.Just
("kinesisStreamArn" Data..= kinesisStreamArn)
]
)
instance Data.ToPath CreateUserAccessLoggingSettings where
toPath = Prelude.const "/userAccessLoggingSettings"
instance Data.ToQuery CreateUserAccessLoggingSettings where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newCreateUserAccessLoggingSettingsResponse' smart constructor.
data CreateUserAccessLoggingSettingsResponse = CreateUserAccessLoggingSettingsResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int,
-- | The ARN of the user access logging settings.
userAccessLoggingSettingsArn :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateUserAccessLoggingSettingsResponse' 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', 'createUserAccessLoggingSettingsResponse_httpStatus' - The response's http status code.
--
-- 'userAccessLoggingSettingsArn', 'createUserAccessLoggingSettingsResponse_userAccessLoggingSettingsArn' - The ARN of the user access logging settings.
newCreateUserAccessLoggingSettingsResponse ::
-- | 'httpStatus'
Prelude.Int ->
-- | 'userAccessLoggingSettingsArn'
Prelude.Text ->
CreateUserAccessLoggingSettingsResponse
newCreateUserAccessLoggingSettingsResponse
pHttpStatus_
pUserAccessLoggingSettingsArn_ =
CreateUserAccessLoggingSettingsResponse'
{ httpStatus =
pHttpStatus_,
userAccessLoggingSettingsArn =
pUserAccessLoggingSettingsArn_
}
-- | The response's http status code.
createUserAccessLoggingSettingsResponse_httpStatus :: Lens.Lens' CreateUserAccessLoggingSettingsResponse Prelude.Int
createUserAccessLoggingSettingsResponse_httpStatus = Lens.lens (\CreateUserAccessLoggingSettingsResponse' {httpStatus} -> httpStatus) (\s@CreateUserAccessLoggingSettingsResponse' {} a -> s {httpStatus = a} :: CreateUserAccessLoggingSettingsResponse)
-- | The ARN of the user access logging settings.
createUserAccessLoggingSettingsResponse_userAccessLoggingSettingsArn :: Lens.Lens' CreateUserAccessLoggingSettingsResponse Prelude.Text
createUserAccessLoggingSettingsResponse_userAccessLoggingSettingsArn = Lens.lens (\CreateUserAccessLoggingSettingsResponse' {userAccessLoggingSettingsArn} -> userAccessLoggingSettingsArn) (\s@CreateUserAccessLoggingSettingsResponse' {} a -> s {userAccessLoggingSettingsArn = a} :: CreateUserAccessLoggingSettingsResponse)
instance
Prelude.NFData
CreateUserAccessLoggingSettingsResponse
where
rnf CreateUserAccessLoggingSettingsResponse' {..} =
Prelude.rnf httpStatus
`Prelude.seq` Prelude.rnf userAccessLoggingSettingsArn