{-# 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.QuickSight.UpdateAccountCustomization
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates Amazon QuickSight customizations for the current Amazon Web
-- Services Region. Currently, the only customization that you can use is a
-- theme.
--
-- You can use customizations for your Amazon Web Services account or, if
-- you specify a namespace, for a Amazon QuickSight namespace instead.
-- Customizations that apply to a namespace override customizations that
-- apply to an Amazon Web Services account. To find out which
-- customizations apply, use the @DescribeAccountCustomization@ API
-- operation.
module Amazonka.QuickSight.UpdateAccountCustomization
  ( -- * Creating a Request
    UpdateAccountCustomization (..),
    newUpdateAccountCustomization,

    -- * Request Lenses
    updateAccountCustomization_namespace,
    updateAccountCustomization_awsAccountId,
    updateAccountCustomization_accountCustomization,

    -- * Destructuring the Response
    UpdateAccountCustomizationResponse (..),
    newUpdateAccountCustomizationResponse,

    -- * Response Lenses
    updateAccountCustomizationResponse_accountCustomization,
    updateAccountCustomizationResponse_arn,
    updateAccountCustomizationResponse_awsAccountId,
    updateAccountCustomizationResponse_namespace,
    updateAccountCustomizationResponse_requestId,
    updateAccountCustomizationResponse_status,
  )
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 Amazonka.QuickSight.Types
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newUpdateAccountCustomization' smart constructor.
data UpdateAccountCustomization = UpdateAccountCustomization'
  { -- | The namespace that you want to update Amazon QuickSight customizations
    -- for.
    UpdateAccountCustomization -> Maybe Text
namespace :: Prelude.Maybe Prelude.Text,
    -- | The ID for the Amazon Web Services account that you want to update
    -- Amazon QuickSight customizations for.
    UpdateAccountCustomization -> Text
awsAccountId :: Prelude.Text,
    -- | The Amazon QuickSight customizations you\'re updating in the current
    -- Amazon Web Services Region.
    UpdateAccountCustomization -> AccountCustomization
accountCustomization :: AccountCustomization
  }
  deriving (UpdateAccountCustomization -> UpdateAccountCustomization -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAccountCustomization -> UpdateAccountCustomization -> Bool
$c/= :: UpdateAccountCustomization -> UpdateAccountCustomization -> Bool
== :: UpdateAccountCustomization -> UpdateAccountCustomization -> Bool
$c== :: UpdateAccountCustomization -> UpdateAccountCustomization -> Bool
Prelude.Eq, ReadPrec [UpdateAccountCustomization]
ReadPrec UpdateAccountCustomization
Int -> ReadS UpdateAccountCustomization
ReadS [UpdateAccountCustomization]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAccountCustomization]
$creadListPrec :: ReadPrec [UpdateAccountCustomization]
readPrec :: ReadPrec UpdateAccountCustomization
$creadPrec :: ReadPrec UpdateAccountCustomization
readList :: ReadS [UpdateAccountCustomization]
$creadList :: ReadS [UpdateAccountCustomization]
readsPrec :: Int -> ReadS UpdateAccountCustomization
$creadsPrec :: Int -> ReadS UpdateAccountCustomization
Prelude.Read, Int -> UpdateAccountCustomization -> ShowS
[UpdateAccountCustomization] -> ShowS
UpdateAccountCustomization -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAccountCustomization] -> ShowS
$cshowList :: [UpdateAccountCustomization] -> ShowS
show :: UpdateAccountCustomization -> String
$cshow :: UpdateAccountCustomization -> String
showsPrec :: Int -> UpdateAccountCustomization -> ShowS
$cshowsPrec :: Int -> UpdateAccountCustomization -> ShowS
Prelude.Show, forall x.
Rep UpdateAccountCustomization x -> UpdateAccountCustomization
forall x.
UpdateAccountCustomization -> Rep UpdateAccountCustomization x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateAccountCustomization x -> UpdateAccountCustomization
$cfrom :: forall x.
UpdateAccountCustomization -> Rep UpdateAccountCustomization x
Prelude.Generic)

-- |
-- Create a value of 'UpdateAccountCustomization' 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:
--
-- 'namespace', 'updateAccountCustomization_namespace' - The namespace that you want to update Amazon QuickSight customizations
-- for.
--
-- 'awsAccountId', 'updateAccountCustomization_awsAccountId' - The ID for the Amazon Web Services account that you want to update
-- Amazon QuickSight customizations for.
--
-- 'accountCustomization', 'updateAccountCustomization_accountCustomization' - The Amazon QuickSight customizations you\'re updating in the current
-- Amazon Web Services Region.
newUpdateAccountCustomization ::
  -- | 'awsAccountId'
  Prelude.Text ->
  -- | 'accountCustomization'
  AccountCustomization ->
  UpdateAccountCustomization
newUpdateAccountCustomization :: Text -> AccountCustomization -> UpdateAccountCustomization
newUpdateAccountCustomization
  Text
pAwsAccountId_
  AccountCustomization
pAccountCustomization_ =
    UpdateAccountCustomization'
      { $sel:namespace:UpdateAccountCustomization' :: Maybe Text
namespace =
          forall a. Maybe a
Prelude.Nothing,
        $sel:awsAccountId:UpdateAccountCustomization' :: Text
awsAccountId = Text
pAwsAccountId_,
        $sel:accountCustomization:UpdateAccountCustomization' :: AccountCustomization
accountCustomization = AccountCustomization
pAccountCustomization_
      }

-- | The namespace that you want to update Amazon QuickSight customizations
-- for.
updateAccountCustomization_namespace :: Lens.Lens' UpdateAccountCustomization (Prelude.Maybe Prelude.Text)
updateAccountCustomization_namespace :: Lens' UpdateAccountCustomization (Maybe Text)
updateAccountCustomization_namespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccountCustomization' {Maybe Text
namespace :: Maybe Text
$sel:namespace:UpdateAccountCustomization' :: UpdateAccountCustomization -> Maybe Text
namespace} -> Maybe Text
namespace) (\s :: UpdateAccountCustomization
s@UpdateAccountCustomization' {} Maybe Text
a -> UpdateAccountCustomization
s {$sel:namespace:UpdateAccountCustomization' :: Maybe Text
namespace = Maybe Text
a} :: UpdateAccountCustomization)

-- | The ID for the Amazon Web Services account that you want to update
-- Amazon QuickSight customizations for.
updateAccountCustomization_awsAccountId :: Lens.Lens' UpdateAccountCustomization Prelude.Text
updateAccountCustomization_awsAccountId :: Lens' UpdateAccountCustomization Text
updateAccountCustomization_awsAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccountCustomization' {Text
awsAccountId :: Text
$sel:awsAccountId:UpdateAccountCustomization' :: UpdateAccountCustomization -> Text
awsAccountId} -> Text
awsAccountId) (\s :: UpdateAccountCustomization
s@UpdateAccountCustomization' {} Text
a -> UpdateAccountCustomization
s {$sel:awsAccountId:UpdateAccountCustomization' :: Text
awsAccountId = Text
a} :: UpdateAccountCustomization)

-- | The Amazon QuickSight customizations you\'re updating in the current
-- Amazon Web Services Region.
updateAccountCustomization_accountCustomization :: Lens.Lens' UpdateAccountCustomization AccountCustomization
updateAccountCustomization_accountCustomization :: Lens' UpdateAccountCustomization AccountCustomization
updateAccountCustomization_accountCustomization = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccountCustomization' {AccountCustomization
accountCustomization :: AccountCustomization
$sel:accountCustomization:UpdateAccountCustomization' :: UpdateAccountCustomization -> AccountCustomization
accountCustomization} -> AccountCustomization
accountCustomization) (\s :: UpdateAccountCustomization
s@UpdateAccountCustomization' {} AccountCustomization
a -> UpdateAccountCustomization
s {$sel:accountCustomization:UpdateAccountCustomization' :: AccountCustomization
accountCustomization = AccountCustomization
a} :: UpdateAccountCustomization)

instance Core.AWSRequest UpdateAccountCustomization where
  type
    AWSResponse UpdateAccountCustomization =
      UpdateAccountCustomizationResponse
  request :: (Service -> Service)
-> UpdateAccountCustomization -> Request UpdateAccountCustomization
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateAccountCustomization
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateAccountCustomization)))
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 AccountCustomization
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> UpdateAccountCustomizationResponse
UpdateAccountCustomizationResponse'
            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
"AccountCustomization")
            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
"Arn")
            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
"AwsAccountId")
            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
"Namespace")
            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
"RequestId")
            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 UpdateAccountCustomization where
  hashWithSalt :: Int -> UpdateAccountCustomization -> Int
hashWithSalt Int
_salt UpdateAccountCustomization' {Maybe Text
Text
AccountCustomization
accountCustomization :: AccountCustomization
awsAccountId :: Text
namespace :: Maybe Text
$sel:accountCustomization:UpdateAccountCustomization' :: UpdateAccountCustomization -> AccountCustomization
$sel:awsAccountId:UpdateAccountCustomization' :: UpdateAccountCustomization -> Text
$sel:namespace:UpdateAccountCustomization' :: UpdateAccountCustomization -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
namespace
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
awsAccountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` AccountCustomization
accountCustomization

instance Prelude.NFData UpdateAccountCustomization where
  rnf :: UpdateAccountCustomization -> ()
rnf UpdateAccountCustomization' {Maybe Text
Text
AccountCustomization
accountCustomization :: AccountCustomization
awsAccountId :: Text
namespace :: Maybe Text
$sel:accountCustomization:UpdateAccountCustomization' :: UpdateAccountCustomization -> AccountCustomization
$sel:awsAccountId:UpdateAccountCustomization' :: UpdateAccountCustomization -> Text
$sel:namespace:UpdateAccountCustomization' :: UpdateAccountCustomization -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
namespace
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
awsAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf AccountCustomization
accountCustomization

instance Data.ToHeaders UpdateAccountCustomization where
  toHeaders :: UpdateAccountCustomization -> 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.0" ::
                          Prelude.ByteString
                      )
          ]
      )

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

instance Data.ToPath UpdateAccountCustomization where
  toPath :: UpdateAccountCustomization -> ByteString
toPath UpdateAccountCustomization' {Maybe Text
Text
AccountCustomization
accountCustomization :: AccountCustomization
awsAccountId :: Text
namespace :: Maybe Text
$sel:accountCustomization:UpdateAccountCustomization' :: UpdateAccountCustomization -> AccountCustomization
$sel:awsAccountId:UpdateAccountCustomization' :: UpdateAccountCustomization -> Text
$sel:namespace:UpdateAccountCustomization' :: UpdateAccountCustomization -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/accounts/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
awsAccountId,
        ByteString
"/customizations"
      ]

instance Data.ToQuery UpdateAccountCustomization where
  toQuery :: UpdateAccountCustomization -> QueryString
toQuery UpdateAccountCustomization' {Maybe Text
Text
AccountCustomization
accountCustomization :: AccountCustomization
awsAccountId :: Text
namespace :: Maybe Text
$sel:accountCustomization:UpdateAccountCustomization' :: UpdateAccountCustomization -> AccountCustomization
$sel:awsAccountId:UpdateAccountCustomization' :: UpdateAccountCustomization -> Text
$sel:namespace:UpdateAccountCustomization' :: UpdateAccountCustomization -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"namespace" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
namespace]

-- | /See:/ 'newUpdateAccountCustomizationResponse' smart constructor.
data UpdateAccountCustomizationResponse = UpdateAccountCustomizationResponse'
  { -- | The Amazon QuickSight customizations you\'re updating in the current
    -- Amazon Web Services Region.
    UpdateAccountCustomizationResponse -> Maybe AccountCustomization
accountCustomization :: Prelude.Maybe AccountCustomization,
    -- | The Amazon Resource Name (ARN) for the updated customization for this
    -- Amazon Web Services account.
    UpdateAccountCustomizationResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The ID for the Amazon Web Services account that you want to update
    -- Amazon QuickSight customizations for.
    UpdateAccountCustomizationResponse -> Maybe Text
awsAccountId :: Prelude.Maybe Prelude.Text,
    -- | The namespace associated with the customization that you\'re updating.
    UpdateAccountCustomizationResponse -> Maybe Text
namespace :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services request ID for this operation.
    UpdateAccountCustomizationResponse -> Maybe Text
requestId :: Prelude.Maybe Prelude.Text,
    -- | The HTTP status of the request.
    UpdateAccountCustomizationResponse -> Int
status :: Prelude.Int
  }
  deriving (UpdateAccountCustomizationResponse
-> UpdateAccountCustomizationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAccountCustomizationResponse
-> UpdateAccountCustomizationResponse -> Bool
$c/= :: UpdateAccountCustomizationResponse
-> UpdateAccountCustomizationResponse -> Bool
== :: UpdateAccountCustomizationResponse
-> UpdateAccountCustomizationResponse -> Bool
$c== :: UpdateAccountCustomizationResponse
-> UpdateAccountCustomizationResponse -> Bool
Prelude.Eq, ReadPrec [UpdateAccountCustomizationResponse]
ReadPrec UpdateAccountCustomizationResponse
Int -> ReadS UpdateAccountCustomizationResponse
ReadS [UpdateAccountCustomizationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAccountCustomizationResponse]
$creadListPrec :: ReadPrec [UpdateAccountCustomizationResponse]
readPrec :: ReadPrec UpdateAccountCustomizationResponse
$creadPrec :: ReadPrec UpdateAccountCustomizationResponse
readList :: ReadS [UpdateAccountCustomizationResponse]
$creadList :: ReadS [UpdateAccountCustomizationResponse]
readsPrec :: Int -> ReadS UpdateAccountCustomizationResponse
$creadsPrec :: Int -> ReadS UpdateAccountCustomizationResponse
Prelude.Read, Int -> UpdateAccountCustomizationResponse -> ShowS
[UpdateAccountCustomizationResponse] -> ShowS
UpdateAccountCustomizationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAccountCustomizationResponse] -> ShowS
$cshowList :: [UpdateAccountCustomizationResponse] -> ShowS
show :: UpdateAccountCustomizationResponse -> String
$cshow :: UpdateAccountCustomizationResponse -> String
showsPrec :: Int -> UpdateAccountCustomizationResponse -> ShowS
$cshowsPrec :: Int -> UpdateAccountCustomizationResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateAccountCustomizationResponse x
-> UpdateAccountCustomizationResponse
forall x.
UpdateAccountCustomizationResponse
-> Rep UpdateAccountCustomizationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateAccountCustomizationResponse x
-> UpdateAccountCustomizationResponse
$cfrom :: forall x.
UpdateAccountCustomizationResponse
-> Rep UpdateAccountCustomizationResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateAccountCustomizationResponse' 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:
--
-- 'accountCustomization', 'updateAccountCustomizationResponse_accountCustomization' - The Amazon QuickSight customizations you\'re updating in the current
-- Amazon Web Services Region.
--
-- 'arn', 'updateAccountCustomizationResponse_arn' - The Amazon Resource Name (ARN) for the updated customization for this
-- Amazon Web Services account.
--
-- 'awsAccountId', 'updateAccountCustomizationResponse_awsAccountId' - The ID for the Amazon Web Services account that you want to update
-- Amazon QuickSight customizations for.
--
-- 'namespace', 'updateAccountCustomizationResponse_namespace' - The namespace associated with the customization that you\'re updating.
--
-- 'requestId', 'updateAccountCustomizationResponse_requestId' - The Amazon Web Services request ID for this operation.
--
-- 'status', 'updateAccountCustomizationResponse_status' - The HTTP status of the request.
newUpdateAccountCustomizationResponse ::
  -- | 'status'
  Prelude.Int ->
  UpdateAccountCustomizationResponse
newUpdateAccountCustomizationResponse :: Int -> UpdateAccountCustomizationResponse
newUpdateAccountCustomizationResponse Int
pStatus_ =
  UpdateAccountCustomizationResponse'
    { $sel:accountCustomization:UpdateAccountCustomizationResponse' :: Maybe AccountCustomization
accountCustomization =
        forall a. Maybe a
Prelude.Nothing,
      $sel:arn:UpdateAccountCustomizationResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:awsAccountId:UpdateAccountCustomizationResponse' :: Maybe Text
awsAccountId = forall a. Maybe a
Prelude.Nothing,
      $sel:namespace:UpdateAccountCustomizationResponse' :: Maybe Text
namespace = forall a. Maybe a
Prelude.Nothing,
      $sel:requestId:UpdateAccountCustomizationResponse' :: Maybe Text
requestId = forall a. Maybe a
Prelude.Nothing,
      $sel:status:UpdateAccountCustomizationResponse' :: Int
status = Int
pStatus_
    }

-- | The Amazon QuickSight customizations you\'re updating in the current
-- Amazon Web Services Region.
updateAccountCustomizationResponse_accountCustomization :: Lens.Lens' UpdateAccountCustomizationResponse (Prelude.Maybe AccountCustomization)
updateAccountCustomizationResponse_accountCustomization :: Lens'
  UpdateAccountCustomizationResponse (Maybe AccountCustomization)
updateAccountCustomizationResponse_accountCustomization = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccountCustomizationResponse' {Maybe AccountCustomization
accountCustomization :: Maybe AccountCustomization
$sel:accountCustomization:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe AccountCustomization
accountCustomization} -> Maybe AccountCustomization
accountCustomization) (\s :: UpdateAccountCustomizationResponse
s@UpdateAccountCustomizationResponse' {} Maybe AccountCustomization
a -> UpdateAccountCustomizationResponse
s {$sel:accountCustomization:UpdateAccountCustomizationResponse' :: Maybe AccountCustomization
accountCustomization = Maybe AccountCustomization
a} :: UpdateAccountCustomizationResponse)

-- | The Amazon Resource Name (ARN) for the updated customization for this
-- Amazon Web Services account.
updateAccountCustomizationResponse_arn :: Lens.Lens' UpdateAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
updateAccountCustomizationResponse_arn :: Lens' UpdateAccountCustomizationResponse (Maybe Text)
updateAccountCustomizationResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccountCustomizationResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: UpdateAccountCustomizationResponse
s@UpdateAccountCustomizationResponse' {} Maybe Text
a -> UpdateAccountCustomizationResponse
s {$sel:arn:UpdateAccountCustomizationResponse' :: Maybe Text
arn = Maybe Text
a} :: UpdateAccountCustomizationResponse)

-- | The ID for the Amazon Web Services account that you want to update
-- Amazon QuickSight customizations for.
updateAccountCustomizationResponse_awsAccountId :: Lens.Lens' UpdateAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
updateAccountCustomizationResponse_awsAccountId :: Lens' UpdateAccountCustomizationResponse (Maybe Text)
updateAccountCustomizationResponse_awsAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccountCustomizationResponse' {Maybe Text
awsAccountId :: Maybe Text
$sel:awsAccountId:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe Text
awsAccountId} -> Maybe Text
awsAccountId) (\s :: UpdateAccountCustomizationResponse
s@UpdateAccountCustomizationResponse' {} Maybe Text
a -> UpdateAccountCustomizationResponse
s {$sel:awsAccountId:UpdateAccountCustomizationResponse' :: Maybe Text
awsAccountId = Maybe Text
a} :: UpdateAccountCustomizationResponse)

-- | The namespace associated with the customization that you\'re updating.
updateAccountCustomizationResponse_namespace :: Lens.Lens' UpdateAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
updateAccountCustomizationResponse_namespace :: Lens' UpdateAccountCustomizationResponse (Maybe Text)
updateAccountCustomizationResponse_namespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccountCustomizationResponse' {Maybe Text
namespace :: Maybe Text
$sel:namespace:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe Text
namespace} -> Maybe Text
namespace) (\s :: UpdateAccountCustomizationResponse
s@UpdateAccountCustomizationResponse' {} Maybe Text
a -> UpdateAccountCustomizationResponse
s {$sel:namespace:UpdateAccountCustomizationResponse' :: Maybe Text
namespace = Maybe Text
a} :: UpdateAccountCustomizationResponse)

-- | The Amazon Web Services request ID for this operation.
updateAccountCustomizationResponse_requestId :: Lens.Lens' UpdateAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
updateAccountCustomizationResponse_requestId :: Lens' UpdateAccountCustomizationResponse (Maybe Text)
updateAccountCustomizationResponse_requestId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccountCustomizationResponse' {Maybe Text
requestId :: Maybe Text
$sel:requestId:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe Text
requestId} -> Maybe Text
requestId) (\s :: UpdateAccountCustomizationResponse
s@UpdateAccountCustomizationResponse' {} Maybe Text
a -> UpdateAccountCustomizationResponse
s {$sel:requestId:UpdateAccountCustomizationResponse' :: Maybe Text
requestId = Maybe Text
a} :: UpdateAccountCustomizationResponse)

-- | The HTTP status of the request.
updateAccountCustomizationResponse_status :: Lens.Lens' UpdateAccountCustomizationResponse Prelude.Int
updateAccountCustomizationResponse_status :: Lens' UpdateAccountCustomizationResponse Int
updateAccountCustomizationResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAccountCustomizationResponse' {Int
status :: Int
$sel:status:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Int
status} -> Int
status) (\s :: UpdateAccountCustomizationResponse
s@UpdateAccountCustomizationResponse' {} Int
a -> UpdateAccountCustomizationResponse
s {$sel:status:UpdateAccountCustomizationResponse' :: Int
status = Int
a} :: UpdateAccountCustomizationResponse)

instance
  Prelude.NFData
    UpdateAccountCustomizationResponse
  where
  rnf :: UpdateAccountCustomizationResponse -> ()
rnf UpdateAccountCustomizationResponse' {Int
Maybe Text
Maybe AccountCustomization
status :: Int
requestId :: Maybe Text
namespace :: Maybe Text
awsAccountId :: Maybe Text
arn :: Maybe Text
accountCustomization :: Maybe AccountCustomization
$sel:status:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Int
$sel:requestId:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe Text
$sel:namespace:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe Text
$sel:awsAccountId:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe Text
$sel:arn:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe Text
$sel:accountCustomization:UpdateAccountCustomizationResponse' :: UpdateAccountCustomizationResponse -> Maybe AccountCustomization
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AccountCustomization
accountCustomization
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
awsAccountId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
namespace
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
requestId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
status