amazonka-workspaces-web-2.0: gen/Amazonka/WorkSpacesWeb/CreateBrowserSettings.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.CreateBrowserSettings
-- 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 browser settings resource that can be associated with a web
-- portal. Once associated with a web portal, browser settings control how
-- the browser will behave once a user starts a streaming session for the
-- web portal.
module Amazonka.WorkSpacesWeb.CreateBrowserSettings
( -- * Creating a Request
CreateBrowserSettings (..),
newCreateBrowserSettings,
-- * Request Lenses
createBrowserSettings_additionalEncryptionContext,
createBrowserSettings_clientToken,
createBrowserSettings_customerManagedKey,
createBrowserSettings_tags,
createBrowserSettings_browserPolicy,
-- * Destructuring the Response
CreateBrowserSettingsResponse (..),
newCreateBrowserSettingsResponse,
-- * Response Lenses
createBrowserSettingsResponse_httpStatus,
createBrowserSettingsResponse_browserSettingsArn,
)
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:/ 'newCreateBrowserSettings' smart constructor.
data CreateBrowserSettings = CreateBrowserSettings'
{ -- | Additional encryption context of the browser settings.
additionalEncryptionContext :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
-- | 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 custom managed key of the browser settings.
customerManagedKey :: Prelude.Maybe Prelude.Text,
-- | The tags to add to the browser settings resource. A tag is a key-value
-- pair.
tags :: Prelude.Maybe [Data.Sensitive Tag],
-- | A JSON string containing Chrome Enterprise policies that will be applied
-- to all streaming sessions.
browserPolicy :: Data.Sensitive Prelude.Text
}
deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateBrowserSettings' 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:
--
-- 'additionalEncryptionContext', 'createBrowserSettings_additionalEncryptionContext' - Additional encryption context of the browser settings.
--
-- 'clientToken', 'createBrowserSettings_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.
--
-- 'customerManagedKey', 'createBrowserSettings_customerManagedKey' - The custom managed key of the browser settings.
--
-- 'tags', 'createBrowserSettings_tags' - The tags to add to the browser settings resource. A tag is a key-value
-- pair.
--
-- 'browserPolicy', 'createBrowserSettings_browserPolicy' - A JSON string containing Chrome Enterprise policies that will be applied
-- to all streaming sessions.
newCreateBrowserSettings ::
-- | 'browserPolicy'
Prelude.Text ->
CreateBrowserSettings
newCreateBrowserSettings pBrowserPolicy_ =
CreateBrowserSettings'
{ additionalEncryptionContext =
Prelude.Nothing,
clientToken = Prelude.Nothing,
customerManagedKey = Prelude.Nothing,
tags = Prelude.Nothing,
browserPolicy =
Data._Sensitive Lens.# pBrowserPolicy_
}
-- | Additional encryption context of the browser settings.
createBrowserSettings_additionalEncryptionContext :: Lens.Lens' CreateBrowserSettings (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createBrowserSettings_additionalEncryptionContext = Lens.lens (\CreateBrowserSettings' {additionalEncryptionContext} -> additionalEncryptionContext) (\s@CreateBrowserSettings' {} a -> s {additionalEncryptionContext = a} :: CreateBrowserSettings) Prelude.. Lens.mapping Lens.coerced
-- | 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.
createBrowserSettings_clientToken :: Lens.Lens' CreateBrowserSettings (Prelude.Maybe Prelude.Text)
createBrowserSettings_clientToken = Lens.lens (\CreateBrowserSettings' {clientToken} -> clientToken) (\s@CreateBrowserSettings' {} a -> s {clientToken = a} :: CreateBrowserSettings)
-- | The custom managed key of the browser settings.
createBrowserSettings_customerManagedKey :: Lens.Lens' CreateBrowserSettings (Prelude.Maybe Prelude.Text)
createBrowserSettings_customerManagedKey = Lens.lens (\CreateBrowserSettings' {customerManagedKey} -> customerManagedKey) (\s@CreateBrowserSettings' {} a -> s {customerManagedKey = a} :: CreateBrowserSettings)
-- | The tags to add to the browser settings resource. A tag is a key-value
-- pair.
createBrowserSettings_tags :: Lens.Lens' CreateBrowserSettings (Prelude.Maybe [Tag])
createBrowserSettings_tags = Lens.lens (\CreateBrowserSettings' {tags} -> tags) (\s@CreateBrowserSettings' {} a -> s {tags = a} :: CreateBrowserSettings) Prelude.. Lens.mapping Lens.coerced
-- | A JSON string containing Chrome Enterprise policies that will be applied
-- to all streaming sessions.
createBrowserSettings_browserPolicy :: Lens.Lens' CreateBrowserSettings Prelude.Text
createBrowserSettings_browserPolicy = Lens.lens (\CreateBrowserSettings' {browserPolicy} -> browserPolicy) (\s@CreateBrowserSettings' {} a -> s {browserPolicy = a} :: CreateBrowserSettings) Prelude.. Data._Sensitive
instance Core.AWSRequest CreateBrowserSettings where
type
AWSResponse CreateBrowserSettings =
CreateBrowserSettingsResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
CreateBrowserSettingsResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
Prelude.<*> (x Data..:> "browserSettingsArn")
)
instance Prelude.Hashable CreateBrowserSettings where
hashWithSalt _salt CreateBrowserSettings' {..} =
_salt
`Prelude.hashWithSalt` additionalEncryptionContext
`Prelude.hashWithSalt` clientToken
`Prelude.hashWithSalt` customerManagedKey
`Prelude.hashWithSalt` tags
`Prelude.hashWithSalt` browserPolicy
instance Prelude.NFData CreateBrowserSettings where
rnf CreateBrowserSettings' {..} =
Prelude.rnf additionalEncryptionContext
`Prelude.seq` Prelude.rnf clientToken
`Prelude.seq` Prelude.rnf customerManagedKey
`Prelude.seq` Prelude.rnf tags
`Prelude.seq` Prelude.rnf browserPolicy
instance Data.ToHeaders CreateBrowserSettings where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateBrowserSettings where
toJSON CreateBrowserSettings' {..} =
Data.object
( Prelude.catMaybes
[ ("additionalEncryptionContext" Data..=)
Prelude.<$> additionalEncryptionContext,
("clientToken" Data..=) Prelude.<$> clientToken,
("customerManagedKey" Data..=)
Prelude.<$> customerManagedKey,
("tags" Data..=) Prelude.<$> tags,
Prelude.Just
("browserPolicy" Data..= browserPolicy)
]
)
instance Data.ToPath CreateBrowserSettings where
toPath = Prelude.const "/browserSettings"
instance Data.ToQuery CreateBrowserSettings where
toQuery = Prelude.const Prelude.mempty
-- | /See:/ 'newCreateBrowserSettingsResponse' smart constructor.
data CreateBrowserSettingsResponse = CreateBrowserSettingsResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int,
-- | The ARN of the browser settings.
browserSettingsArn :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'CreateBrowserSettingsResponse' 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', 'createBrowserSettingsResponse_httpStatus' - The response's http status code.
--
-- 'browserSettingsArn', 'createBrowserSettingsResponse_browserSettingsArn' - The ARN of the browser settings.
newCreateBrowserSettingsResponse ::
-- | 'httpStatus'
Prelude.Int ->
-- | 'browserSettingsArn'
Prelude.Text ->
CreateBrowserSettingsResponse
newCreateBrowserSettingsResponse
pHttpStatus_
pBrowserSettingsArn_ =
CreateBrowserSettingsResponse'
{ httpStatus =
pHttpStatus_,
browserSettingsArn = pBrowserSettingsArn_
}
-- | The response's http status code.
createBrowserSettingsResponse_httpStatus :: Lens.Lens' CreateBrowserSettingsResponse Prelude.Int
createBrowserSettingsResponse_httpStatus = Lens.lens (\CreateBrowserSettingsResponse' {httpStatus} -> httpStatus) (\s@CreateBrowserSettingsResponse' {} a -> s {httpStatus = a} :: CreateBrowserSettingsResponse)
-- | The ARN of the browser settings.
createBrowserSettingsResponse_browserSettingsArn :: Lens.Lens' CreateBrowserSettingsResponse Prelude.Text
createBrowserSettingsResponse_browserSettingsArn = Lens.lens (\CreateBrowserSettingsResponse' {browserSettingsArn} -> browserSettingsArn) (\s@CreateBrowserSettingsResponse' {} a -> s {browserSettingsArn = a} :: CreateBrowserSettingsResponse)
instance Prelude.NFData CreateBrowserSettingsResponse where
rnf CreateBrowserSettingsResponse' {..} =
Prelude.rnf httpStatus
`Prelude.seq` Prelude.rnf browserSettingsArn