{-# 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.
    CreateBrowserSettings -> Maybe (HashMap Text Text)
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.
    CreateBrowserSettings -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
    -- | The custom managed key of the browser settings.
    CreateBrowserSettings -> Maybe Text
customerManagedKey :: Prelude.Maybe Prelude.Text,
    -- | The tags to add to the browser settings resource. A tag is a key-value
    -- pair.
    CreateBrowserSettings -> Maybe [Sensitive Tag]
tags :: Prelude.Maybe [Data.Sensitive Tag],
    -- | A JSON string containing Chrome Enterprise policies that will be applied
    -- to all streaming sessions.
    CreateBrowserSettings -> Sensitive Text
browserPolicy :: Data.Sensitive Prelude.Text
  }
  deriving (CreateBrowserSettings -> CreateBrowserSettings -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateBrowserSettings -> CreateBrowserSettings -> Bool
$c/= :: CreateBrowserSettings -> CreateBrowserSettings -> Bool
== :: CreateBrowserSettings -> CreateBrowserSettings -> Bool
$c== :: CreateBrowserSettings -> CreateBrowserSettings -> Bool
Prelude.Eq, Int -> CreateBrowserSettings -> ShowS
[CreateBrowserSettings] -> ShowS
CreateBrowserSettings -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateBrowserSettings] -> ShowS
$cshowList :: [CreateBrowserSettings] -> ShowS
show :: CreateBrowserSettings -> String
$cshow :: CreateBrowserSettings -> String
showsPrec :: Int -> CreateBrowserSettings -> ShowS
$cshowsPrec :: Int -> CreateBrowserSettings -> ShowS
Prelude.Show, forall x. Rep CreateBrowserSettings x -> CreateBrowserSettings
forall x. CreateBrowserSettings -> Rep CreateBrowserSettings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateBrowserSettings x -> CreateBrowserSettings
$cfrom :: forall x. CreateBrowserSettings -> Rep CreateBrowserSettings x
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 :: Text -> CreateBrowserSettings
newCreateBrowserSettings Text
pBrowserPolicy_ =
  CreateBrowserSettings'
    { $sel:additionalEncryptionContext:CreateBrowserSettings' :: Maybe (HashMap Text Text)
additionalEncryptionContext =
        forall a. Maybe a
Prelude.Nothing,
      $sel:clientToken:CreateBrowserSettings' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
      $sel:customerManagedKey:CreateBrowserSettings' :: Maybe Text
customerManagedKey = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:CreateBrowserSettings' :: Maybe [Sensitive Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:browserPolicy:CreateBrowserSettings' :: Sensitive Text
browserPolicy =
        forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pBrowserPolicy_
    }

-- | Additional encryption context of the browser settings.
createBrowserSettings_additionalEncryptionContext :: Lens.Lens' CreateBrowserSettings (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createBrowserSettings_additionalEncryptionContext :: Lens' CreateBrowserSettings (Maybe (HashMap Text Text))
createBrowserSettings_additionalEncryptionContext = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBrowserSettings' {Maybe (HashMap Text Text)
additionalEncryptionContext :: Maybe (HashMap Text Text)
$sel:additionalEncryptionContext:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe (HashMap Text Text)
additionalEncryptionContext} -> Maybe (HashMap Text Text)
additionalEncryptionContext) (\s :: CreateBrowserSettings
s@CreateBrowserSettings' {} Maybe (HashMap Text Text)
a -> CreateBrowserSettings
s {$sel:additionalEncryptionContext:CreateBrowserSettings' :: Maybe (HashMap Text Text)
additionalEncryptionContext = Maybe (HashMap Text Text)
a} :: CreateBrowserSettings) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
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' CreateBrowserSettings (Maybe Text)
createBrowserSettings_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBrowserSettings' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateBrowserSettings
s@CreateBrowserSettings' {} Maybe Text
a -> CreateBrowserSettings
s {$sel:clientToken:CreateBrowserSettings' :: Maybe Text
clientToken = Maybe Text
a} :: CreateBrowserSettings)

-- | The custom managed key of the browser settings.
createBrowserSettings_customerManagedKey :: Lens.Lens' CreateBrowserSettings (Prelude.Maybe Prelude.Text)
createBrowserSettings_customerManagedKey :: Lens' CreateBrowserSettings (Maybe Text)
createBrowserSettings_customerManagedKey = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBrowserSettings' {Maybe Text
customerManagedKey :: Maybe Text
$sel:customerManagedKey:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe Text
customerManagedKey} -> Maybe Text
customerManagedKey) (\s :: CreateBrowserSettings
s@CreateBrowserSettings' {} Maybe Text
a -> CreateBrowserSettings
s {$sel:customerManagedKey:CreateBrowserSettings' :: Maybe Text
customerManagedKey = Maybe Text
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' CreateBrowserSettings (Maybe [Tag])
createBrowserSettings_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBrowserSettings' {Maybe [Sensitive Tag]
tags :: Maybe [Sensitive Tag]
$sel:tags:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe [Sensitive Tag]
tags} -> Maybe [Sensitive Tag]
tags) (\s :: CreateBrowserSettings
s@CreateBrowserSettings' {} Maybe [Sensitive Tag]
a -> CreateBrowserSettings
s {$sel:tags:CreateBrowserSettings' :: Maybe [Sensitive Tag]
tags = Maybe [Sensitive Tag]
a} :: CreateBrowserSettings) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
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' CreateBrowserSettings Text
createBrowserSettings_browserPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBrowserSettings' {Sensitive Text
browserPolicy :: Sensitive Text
$sel:browserPolicy:CreateBrowserSettings' :: CreateBrowserSettings -> Sensitive Text
browserPolicy} -> Sensitive Text
browserPolicy) (\s :: CreateBrowserSettings
s@CreateBrowserSettings' {} Sensitive Text
a -> CreateBrowserSettings
s {$sel:browserPolicy:CreateBrowserSettings' :: Sensitive Text
browserPolicy = Sensitive Text
a} :: CreateBrowserSettings) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive

instance Core.AWSRequest CreateBrowserSettings where
  type
    AWSResponse CreateBrowserSettings =
      CreateBrowserSettingsResponse
  request :: (Service -> Service)
-> CreateBrowserSettings -> Request CreateBrowserSettings
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateBrowserSettings
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateBrowserSettings)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Int -> Text -> CreateBrowserSettingsResponse
CreateBrowserSettingsResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"browserSettingsArn")
      )

instance Prelude.Hashable CreateBrowserSettings where
  hashWithSalt :: Int -> CreateBrowserSettings -> Int
hashWithSalt Int
_salt CreateBrowserSettings' {Maybe [Sensitive Tag]
Maybe Text
Maybe (HashMap Text Text)
Sensitive Text
browserPolicy :: Sensitive Text
tags :: Maybe [Sensitive Tag]
customerManagedKey :: Maybe Text
clientToken :: Maybe Text
additionalEncryptionContext :: Maybe (HashMap Text Text)
$sel:browserPolicy:CreateBrowserSettings' :: CreateBrowserSettings -> Sensitive Text
$sel:tags:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe [Sensitive Tag]
$sel:customerManagedKey:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe Text
$sel:clientToken:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe Text
$sel:additionalEncryptionContext:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe (HashMap Text Text)
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
additionalEncryptionContext
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
customerManagedKey
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Sensitive Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
browserPolicy

instance Prelude.NFData CreateBrowserSettings where
  rnf :: CreateBrowserSettings -> ()
rnf CreateBrowserSettings' {Maybe [Sensitive Tag]
Maybe Text
Maybe (HashMap Text Text)
Sensitive Text
browserPolicy :: Sensitive Text
tags :: Maybe [Sensitive Tag]
customerManagedKey :: Maybe Text
clientToken :: Maybe Text
additionalEncryptionContext :: Maybe (HashMap Text Text)
$sel:browserPolicy:CreateBrowserSettings' :: CreateBrowserSettings -> Sensitive Text
$sel:tags:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe [Sensitive Tag]
$sel:customerManagedKey:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe Text
$sel:clientToken:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe Text
$sel:additionalEncryptionContext:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe (HashMap Text Text)
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
additionalEncryptionContext
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
customerManagedKey
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Sensitive Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
browserPolicy

instance Data.ToHeaders CreateBrowserSettings where
  toHeaders :: CreateBrowserSettings -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON CreateBrowserSettings where
  toJSON :: CreateBrowserSettings -> Value
toJSON CreateBrowserSettings' {Maybe [Sensitive Tag]
Maybe Text
Maybe (HashMap Text Text)
Sensitive Text
browserPolicy :: Sensitive Text
tags :: Maybe [Sensitive Tag]
customerManagedKey :: Maybe Text
clientToken :: Maybe Text
additionalEncryptionContext :: Maybe (HashMap Text Text)
$sel:browserPolicy:CreateBrowserSettings' :: CreateBrowserSettings -> Sensitive Text
$sel:tags:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe [Sensitive Tag]
$sel:customerManagedKey:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe Text
$sel:clientToken:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe Text
$sel:additionalEncryptionContext:CreateBrowserSettings' :: CreateBrowserSettings -> Maybe (HashMap Text Text)
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"additionalEncryptionContext" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
additionalEncryptionContext,
            (Key
"clientToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
clientToken,
            (Key
"customerManagedKey" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
customerManagedKey,
            (Key
"tags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Sensitive Tag]
tags,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"browserPolicy" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
browserPolicy)
          ]
      )

instance Data.ToPath CreateBrowserSettings where
  toPath :: CreateBrowserSettings -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/browserSettings"

instance Data.ToQuery CreateBrowserSettings where
  toQuery :: CreateBrowserSettings -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newCreateBrowserSettingsResponse' smart constructor.
data CreateBrowserSettingsResponse = CreateBrowserSettingsResponse'
  { -- | The response's http status code.
    CreateBrowserSettingsResponse -> Int
httpStatus :: Prelude.Int,
    -- | The ARN of the browser settings.
    CreateBrowserSettingsResponse -> Text
browserSettingsArn :: Prelude.Text
  }
  deriving (CreateBrowserSettingsResponse
-> CreateBrowserSettingsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateBrowserSettingsResponse
-> CreateBrowserSettingsResponse -> Bool
$c/= :: CreateBrowserSettingsResponse
-> CreateBrowserSettingsResponse -> Bool
== :: CreateBrowserSettingsResponse
-> CreateBrowserSettingsResponse -> Bool
$c== :: CreateBrowserSettingsResponse
-> CreateBrowserSettingsResponse -> Bool
Prelude.Eq, ReadPrec [CreateBrowserSettingsResponse]
ReadPrec CreateBrowserSettingsResponse
Int -> ReadS CreateBrowserSettingsResponse
ReadS [CreateBrowserSettingsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateBrowserSettingsResponse]
$creadListPrec :: ReadPrec [CreateBrowserSettingsResponse]
readPrec :: ReadPrec CreateBrowserSettingsResponse
$creadPrec :: ReadPrec CreateBrowserSettingsResponse
readList :: ReadS [CreateBrowserSettingsResponse]
$creadList :: ReadS [CreateBrowserSettingsResponse]
readsPrec :: Int -> ReadS CreateBrowserSettingsResponse
$creadsPrec :: Int -> ReadS CreateBrowserSettingsResponse
Prelude.Read, Int -> CreateBrowserSettingsResponse -> ShowS
[CreateBrowserSettingsResponse] -> ShowS
CreateBrowserSettingsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateBrowserSettingsResponse] -> ShowS
$cshowList :: [CreateBrowserSettingsResponse] -> ShowS
show :: CreateBrowserSettingsResponse -> String
$cshow :: CreateBrowserSettingsResponse -> String
showsPrec :: Int -> CreateBrowserSettingsResponse -> ShowS
$cshowsPrec :: Int -> CreateBrowserSettingsResponse -> ShowS
Prelude.Show, forall x.
Rep CreateBrowserSettingsResponse x
-> CreateBrowserSettingsResponse
forall x.
CreateBrowserSettingsResponse
-> Rep CreateBrowserSettingsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateBrowserSettingsResponse x
-> CreateBrowserSettingsResponse
$cfrom :: forall x.
CreateBrowserSettingsResponse
-> Rep CreateBrowserSettingsResponse x
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 :: Int -> Text -> CreateBrowserSettingsResponse
newCreateBrowserSettingsResponse
  Int
pHttpStatus_
  Text
pBrowserSettingsArn_ =
    CreateBrowserSettingsResponse'
      { $sel:httpStatus:CreateBrowserSettingsResponse' :: Int
httpStatus =
          Int
pHttpStatus_,
        $sel:browserSettingsArn:CreateBrowserSettingsResponse' :: Text
browserSettingsArn = Text
pBrowserSettingsArn_
      }

-- | The response's http status code.
createBrowserSettingsResponse_httpStatus :: Lens.Lens' CreateBrowserSettingsResponse Prelude.Int
createBrowserSettingsResponse_httpStatus :: Lens' CreateBrowserSettingsResponse Int
createBrowserSettingsResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBrowserSettingsResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateBrowserSettingsResponse' :: CreateBrowserSettingsResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateBrowserSettingsResponse
s@CreateBrowserSettingsResponse' {} Int
a -> CreateBrowserSettingsResponse
s {$sel:httpStatus:CreateBrowserSettingsResponse' :: Int
httpStatus = Int
a} :: CreateBrowserSettingsResponse)

-- | The ARN of the browser settings.
createBrowserSettingsResponse_browserSettingsArn :: Lens.Lens' CreateBrowserSettingsResponse Prelude.Text
createBrowserSettingsResponse_browserSettingsArn :: Lens' CreateBrowserSettingsResponse Text
createBrowserSettingsResponse_browserSettingsArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateBrowserSettingsResponse' {Text
browserSettingsArn :: Text
$sel:browserSettingsArn:CreateBrowserSettingsResponse' :: CreateBrowserSettingsResponse -> Text
browserSettingsArn} -> Text
browserSettingsArn) (\s :: CreateBrowserSettingsResponse
s@CreateBrowserSettingsResponse' {} Text
a -> CreateBrowserSettingsResponse
s {$sel:browserSettingsArn:CreateBrowserSettingsResponse' :: Text
browserSettingsArn = Text
a} :: CreateBrowserSettingsResponse)

instance Prelude.NFData CreateBrowserSettingsResponse where
  rnf :: CreateBrowserSettingsResponse -> ()
rnf CreateBrowserSettingsResponse' {Int
Text
browserSettingsArn :: Text
httpStatus :: Int
$sel:browserSettingsArn:CreateBrowserSettingsResponse' :: CreateBrowserSettingsResponse -> Text
$sel:httpStatus:CreateBrowserSettingsResponse' :: CreateBrowserSettingsResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
browserSettingsArn