{-# 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.WorkSpaces.DescribeClientBranding
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes the specified client branding. Client branding allows you to
-- customize the log in page of various device types for your users. You
-- can add your company logo, the support email address, support link, link
-- to reset password, and a custom message for users trying to sign in.
--
-- Only device types that have branding information configured will be
-- shown in the response.
module Amazonka.WorkSpaces.DescribeClientBranding
  ( -- * Creating a Request
    DescribeClientBranding (..),
    newDescribeClientBranding,

    -- * Request Lenses
    describeClientBranding_resourceId,

    -- * Destructuring the Response
    DescribeClientBrandingResponse (..),
    newDescribeClientBrandingResponse,

    -- * Response Lenses
    describeClientBrandingResponse_deviceTypeAndroid,
    describeClientBrandingResponse_deviceTypeIos,
    describeClientBrandingResponse_deviceTypeLinux,
    describeClientBrandingResponse_deviceTypeOsx,
    describeClientBrandingResponse_deviceTypeWeb,
    describeClientBrandingResponse_deviceTypeWindows,
    describeClientBrandingResponse_httpStatus,
  )
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.WorkSpaces.Types

-- | /See:/ 'newDescribeClientBranding' smart constructor.
data DescribeClientBranding = DescribeClientBranding'
  { -- | The directory identifier of the WorkSpace for which you want to view
    -- client branding information.
    DescribeClientBranding -> Text
resourceId :: Prelude.Text
  }
  deriving (DescribeClientBranding -> DescribeClientBranding -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeClientBranding -> DescribeClientBranding -> Bool
$c/= :: DescribeClientBranding -> DescribeClientBranding -> Bool
== :: DescribeClientBranding -> DescribeClientBranding -> Bool
$c== :: DescribeClientBranding -> DescribeClientBranding -> Bool
Prelude.Eq, ReadPrec [DescribeClientBranding]
ReadPrec DescribeClientBranding
Int -> ReadS DescribeClientBranding
ReadS [DescribeClientBranding]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeClientBranding]
$creadListPrec :: ReadPrec [DescribeClientBranding]
readPrec :: ReadPrec DescribeClientBranding
$creadPrec :: ReadPrec DescribeClientBranding
readList :: ReadS [DescribeClientBranding]
$creadList :: ReadS [DescribeClientBranding]
readsPrec :: Int -> ReadS DescribeClientBranding
$creadsPrec :: Int -> ReadS DescribeClientBranding
Prelude.Read, Int -> DescribeClientBranding -> ShowS
[DescribeClientBranding] -> ShowS
DescribeClientBranding -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeClientBranding] -> ShowS
$cshowList :: [DescribeClientBranding] -> ShowS
show :: DescribeClientBranding -> String
$cshow :: DescribeClientBranding -> String
showsPrec :: Int -> DescribeClientBranding -> ShowS
$cshowsPrec :: Int -> DescribeClientBranding -> ShowS
Prelude.Show, forall x. Rep DescribeClientBranding x -> DescribeClientBranding
forall x. DescribeClientBranding -> Rep DescribeClientBranding x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeClientBranding x -> DescribeClientBranding
$cfrom :: forall x. DescribeClientBranding -> Rep DescribeClientBranding x
Prelude.Generic)

-- |
-- Create a value of 'DescribeClientBranding' 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:
--
-- 'resourceId', 'describeClientBranding_resourceId' - The directory identifier of the WorkSpace for which you want to view
-- client branding information.
newDescribeClientBranding ::
  -- | 'resourceId'
  Prelude.Text ->
  DescribeClientBranding
newDescribeClientBranding :: Text -> DescribeClientBranding
newDescribeClientBranding Text
pResourceId_ =
  DescribeClientBranding' {$sel:resourceId:DescribeClientBranding' :: Text
resourceId = Text
pResourceId_}

-- | The directory identifier of the WorkSpace for which you want to view
-- client branding information.
describeClientBranding_resourceId :: Lens.Lens' DescribeClientBranding Prelude.Text
describeClientBranding_resourceId :: Lens' DescribeClientBranding Text
describeClientBranding_resourceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClientBranding' {Text
resourceId :: Text
$sel:resourceId:DescribeClientBranding' :: DescribeClientBranding -> Text
resourceId} -> Text
resourceId) (\s :: DescribeClientBranding
s@DescribeClientBranding' {} Text
a -> DescribeClientBranding
s {$sel:resourceId:DescribeClientBranding' :: Text
resourceId = Text
a} :: DescribeClientBranding)

instance Core.AWSRequest DescribeClientBranding where
  type
    AWSResponse DescribeClientBranding =
      DescribeClientBrandingResponse
  request :: (Service -> Service)
-> DescribeClientBranding -> Request DescribeClientBranding
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 DescribeClientBranding
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeClientBranding)))
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 ->
          Maybe DefaultClientBrandingAttributes
-> Maybe IosClientBrandingAttributes
-> Maybe DefaultClientBrandingAttributes
-> Maybe DefaultClientBrandingAttributes
-> Maybe DefaultClientBrandingAttributes
-> Maybe DefaultClientBrandingAttributes
-> Int
-> DescribeClientBrandingResponse
DescribeClientBrandingResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DeviceTypeAndroid")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DeviceTypeIos")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DeviceTypeLinux")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DeviceTypeOsx")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DeviceTypeWeb")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"DeviceTypeWindows")
            forall (f :: * -> *) a b. Applicative f => 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))
      )

instance Prelude.Hashable DescribeClientBranding where
  hashWithSalt :: Int -> DescribeClientBranding -> Int
hashWithSalt Int
_salt DescribeClientBranding' {Text
resourceId :: Text
$sel:resourceId:DescribeClientBranding' :: DescribeClientBranding -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
resourceId

instance Prelude.NFData DescribeClientBranding where
  rnf :: DescribeClientBranding -> ()
rnf DescribeClientBranding' {Text
resourceId :: Text
$sel:resourceId:DescribeClientBranding' :: DescribeClientBranding -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
resourceId

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

instance Data.ToJSON DescribeClientBranding where
  toJSON :: DescribeClientBranding -> Value
toJSON DescribeClientBranding' {Text
resourceId :: Text
$sel:resourceId:DescribeClientBranding' :: DescribeClientBranding -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [forall a. a -> Maybe a
Prelude.Just (Key
"ResourceId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
resourceId)]
      )

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

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

-- | /See:/ 'newDescribeClientBrandingResponse' smart constructor.
data DescribeClientBrandingResponse = DescribeClientBrandingResponse'
  { -- | The branding information for Android devices.
    DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeAndroid :: Prelude.Maybe DefaultClientBrandingAttributes,
    -- | The branding information for iOS devices.
    DescribeClientBrandingResponse -> Maybe IosClientBrandingAttributes
deviceTypeIos :: Prelude.Maybe IosClientBrandingAttributes,
    -- | The branding information for Linux devices.
    DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeLinux :: Prelude.Maybe DefaultClientBrandingAttributes,
    -- | The branding information for macOS devices.
    DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeOsx :: Prelude.Maybe DefaultClientBrandingAttributes,
    -- | The branding information for Web access.
    DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeWeb :: Prelude.Maybe DefaultClientBrandingAttributes,
    -- | The branding information for Windows devices.
    DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeWindows :: Prelude.Maybe DefaultClientBrandingAttributes,
    -- | The response's http status code.
    DescribeClientBrandingResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeClientBrandingResponse
-> DescribeClientBrandingResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeClientBrandingResponse
-> DescribeClientBrandingResponse -> Bool
$c/= :: DescribeClientBrandingResponse
-> DescribeClientBrandingResponse -> Bool
== :: DescribeClientBrandingResponse
-> DescribeClientBrandingResponse -> Bool
$c== :: DescribeClientBrandingResponse
-> DescribeClientBrandingResponse -> Bool
Prelude.Eq, ReadPrec [DescribeClientBrandingResponse]
ReadPrec DescribeClientBrandingResponse
Int -> ReadS DescribeClientBrandingResponse
ReadS [DescribeClientBrandingResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeClientBrandingResponse]
$creadListPrec :: ReadPrec [DescribeClientBrandingResponse]
readPrec :: ReadPrec DescribeClientBrandingResponse
$creadPrec :: ReadPrec DescribeClientBrandingResponse
readList :: ReadS [DescribeClientBrandingResponse]
$creadList :: ReadS [DescribeClientBrandingResponse]
readsPrec :: Int -> ReadS DescribeClientBrandingResponse
$creadsPrec :: Int -> ReadS DescribeClientBrandingResponse
Prelude.Read, Int -> DescribeClientBrandingResponse -> ShowS
[DescribeClientBrandingResponse] -> ShowS
DescribeClientBrandingResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeClientBrandingResponse] -> ShowS
$cshowList :: [DescribeClientBrandingResponse] -> ShowS
show :: DescribeClientBrandingResponse -> String
$cshow :: DescribeClientBrandingResponse -> String
showsPrec :: Int -> DescribeClientBrandingResponse -> ShowS
$cshowsPrec :: Int -> DescribeClientBrandingResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeClientBrandingResponse x
-> DescribeClientBrandingResponse
forall x.
DescribeClientBrandingResponse
-> Rep DescribeClientBrandingResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeClientBrandingResponse x
-> DescribeClientBrandingResponse
$cfrom :: forall x.
DescribeClientBrandingResponse
-> Rep DescribeClientBrandingResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeClientBrandingResponse' 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:
--
-- 'deviceTypeAndroid', 'describeClientBrandingResponse_deviceTypeAndroid' - The branding information for Android devices.
--
-- 'deviceTypeIos', 'describeClientBrandingResponse_deviceTypeIos' - The branding information for iOS devices.
--
-- 'deviceTypeLinux', 'describeClientBrandingResponse_deviceTypeLinux' - The branding information for Linux devices.
--
-- 'deviceTypeOsx', 'describeClientBrandingResponse_deviceTypeOsx' - The branding information for macOS devices.
--
-- 'deviceTypeWeb', 'describeClientBrandingResponse_deviceTypeWeb' - The branding information for Web access.
--
-- 'deviceTypeWindows', 'describeClientBrandingResponse_deviceTypeWindows' - The branding information for Windows devices.
--
-- 'httpStatus', 'describeClientBrandingResponse_httpStatus' - The response's http status code.
newDescribeClientBrandingResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeClientBrandingResponse
newDescribeClientBrandingResponse :: Int -> DescribeClientBrandingResponse
newDescribeClientBrandingResponse Int
pHttpStatus_ =
  DescribeClientBrandingResponse'
    { $sel:deviceTypeAndroid:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeAndroid =
        forall a. Maybe a
Prelude.Nothing,
      $sel:deviceTypeIos:DescribeClientBrandingResponse' :: Maybe IosClientBrandingAttributes
deviceTypeIos = forall a. Maybe a
Prelude.Nothing,
      $sel:deviceTypeLinux:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeLinux = forall a. Maybe a
Prelude.Nothing,
      $sel:deviceTypeOsx:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeOsx = forall a. Maybe a
Prelude.Nothing,
      $sel:deviceTypeWeb:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeWeb = forall a. Maybe a
Prelude.Nothing,
      $sel:deviceTypeWindows:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeWindows = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeClientBrandingResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The branding information for Android devices.
describeClientBrandingResponse_deviceTypeAndroid :: Lens.Lens' DescribeClientBrandingResponse (Prelude.Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeAndroid :: Lens'
  DescribeClientBrandingResponse
  (Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeAndroid = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClientBrandingResponse' {Maybe DefaultClientBrandingAttributes
deviceTypeAndroid :: Maybe DefaultClientBrandingAttributes
$sel:deviceTypeAndroid:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeAndroid} -> Maybe DefaultClientBrandingAttributes
deviceTypeAndroid) (\s :: DescribeClientBrandingResponse
s@DescribeClientBrandingResponse' {} Maybe DefaultClientBrandingAttributes
a -> DescribeClientBrandingResponse
s {$sel:deviceTypeAndroid:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeAndroid = Maybe DefaultClientBrandingAttributes
a} :: DescribeClientBrandingResponse)

-- | The branding information for iOS devices.
describeClientBrandingResponse_deviceTypeIos :: Lens.Lens' DescribeClientBrandingResponse (Prelude.Maybe IosClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeIos :: Lens'
  DescribeClientBrandingResponse (Maybe IosClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeIos = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClientBrandingResponse' {Maybe IosClientBrandingAttributes
deviceTypeIos :: Maybe IosClientBrandingAttributes
$sel:deviceTypeIos:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse -> Maybe IosClientBrandingAttributes
deviceTypeIos} -> Maybe IosClientBrandingAttributes
deviceTypeIos) (\s :: DescribeClientBrandingResponse
s@DescribeClientBrandingResponse' {} Maybe IosClientBrandingAttributes
a -> DescribeClientBrandingResponse
s {$sel:deviceTypeIos:DescribeClientBrandingResponse' :: Maybe IosClientBrandingAttributes
deviceTypeIos = Maybe IosClientBrandingAttributes
a} :: DescribeClientBrandingResponse)

-- | The branding information for Linux devices.
describeClientBrandingResponse_deviceTypeLinux :: Lens.Lens' DescribeClientBrandingResponse (Prelude.Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeLinux :: Lens'
  DescribeClientBrandingResponse
  (Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeLinux = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClientBrandingResponse' {Maybe DefaultClientBrandingAttributes
deviceTypeLinux :: Maybe DefaultClientBrandingAttributes
$sel:deviceTypeLinux:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeLinux} -> Maybe DefaultClientBrandingAttributes
deviceTypeLinux) (\s :: DescribeClientBrandingResponse
s@DescribeClientBrandingResponse' {} Maybe DefaultClientBrandingAttributes
a -> DescribeClientBrandingResponse
s {$sel:deviceTypeLinux:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeLinux = Maybe DefaultClientBrandingAttributes
a} :: DescribeClientBrandingResponse)

-- | The branding information for macOS devices.
describeClientBrandingResponse_deviceTypeOsx :: Lens.Lens' DescribeClientBrandingResponse (Prelude.Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeOsx :: Lens'
  DescribeClientBrandingResponse
  (Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeOsx = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClientBrandingResponse' {Maybe DefaultClientBrandingAttributes
deviceTypeOsx :: Maybe DefaultClientBrandingAttributes
$sel:deviceTypeOsx:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeOsx} -> Maybe DefaultClientBrandingAttributes
deviceTypeOsx) (\s :: DescribeClientBrandingResponse
s@DescribeClientBrandingResponse' {} Maybe DefaultClientBrandingAttributes
a -> DescribeClientBrandingResponse
s {$sel:deviceTypeOsx:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeOsx = Maybe DefaultClientBrandingAttributes
a} :: DescribeClientBrandingResponse)

-- | The branding information for Web access.
describeClientBrandingResponse_deviceTypeWeb :: Lens.Lens' DescribeClientBrandingResponse (Prelude.Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeWeb :: Lens'
  DescribeClientBrandingResponse
  (Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeWeb = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClientBrandingResponse' {Maybe DefaultClientBrandingAttributes
deviceTypeWeb :: Maybe DefaultClientBrandingAttributes
$sel:deviceTypeWeb:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeWeb} -> Maybe DefaultClientBrandingAttributes
deviceTypeWeb) (\s :: DescribeClientBrandingResponse
s@DescribeClientBrandingResponse' {} Maybe DefaultClientBrandingAttributes
a -> DescribeClientBrandingResponse
s {$sel:deviceTypeWeb:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeWeb = Maybe DefaultClientBrandingAttributes
a} :: DescribeClientBrandingResponse)

-- | The branding information for Windows devices.
describeClientBrandingResponse_deviceTypeWindows :: Lens.Lens' DescribeClientBrandingResponse (Prelude.Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeWindows :: Lens'
  DescribeClientBrandingResponse
  (Maybe DefaultClientBrandingAttributes)
describeClientBrandingResponse_deviceTypeWindows = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeClientBrandingResponse' {Maybe DefaultClientBrandingAttributes
deviceTypeWindows :: Maybe DefaultClientBrandingAttributes
$sel:deviceTypeWindows:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
deviceTypeWindows} -> Maybe DefaultClientBrandingAttributes
deviceTypeWindows) (\s :: DescribeClientBrandingResponse
s@DescribeClientBrandingResponse' {} Maybe DefaultClientBrandingAttributes
a -> DescribeClientBrandingResponse
s {$sel:deviceTypeWindows:DescribeClientBrandingResponse' :: Maybe DefaultClientBrandingAttributes
deviceTypeWindows = Maybe DefaultClientBrandingAttributes
a} :: DescribeClientBrandingResponse)

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

instance
  Prelude.NFData
    DescribeClientBrandingResponse
  where
  rnf :: DescribeClientBrandingResponse -> ()
rnf DescribeClientBrandingResponse' {Int
Maybe DefaultClientBrandingAttributes
Maybe IosClientBrandingAttributes
httpStatus :: Int
deviceTypeWindows :: Maybe DefaultClientBrandingAttributes
deviceTypeWeb :: Maybe DefaultClientBrandingAttributes
deviceTypeOsx :: Maybe DefaultClientBrandingAttributes
deviceTypeLinux :: Maybe DefaultClientBrandingAttributes
deviceTypeIos :: Maybe IosClientBrandingAttributes
deviceTypeAndroid :: Maybe DefaultClientBrandingAttributes
$sel:httpStatus:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse -> Int
$sel:deviceTypeWindows:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
$sel:deviceTypeWeb:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
$sel:deviceTypeOsx:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
$sel:deviceTypeLinux:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
$sel:deviceTypeIos:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse -> Maybe IosClientBrandingAttributes
$sel:deviceTypeAndroid:DescribeClientBrandingResponse' :: DescribeClientBrandingResponse
-> Maybe DefaultClientBrandingAttributes
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DefaultClientBrandingAttributes
deviceTypeAndroid
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe IosClientBrandingAttributes
deviceTypeIos
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DefaultClientBrandingAttributes
deviceTypeLinux
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DefaultClientBrandingAttributes
deviceTypeOsx
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DefaultClientBrandingAttributes
deviceTypeWeb
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DefaultClientBrandingAttributes
deviceTypeWindows
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus