{-# 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 or 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 or 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