{-# 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.DescribeAccountCustomization
-- 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 customizations associated with the provided Amazon Web
-- Services account and Amazon Amazon QuickSight namespace in an Amazon Web
-- Services Region. The Amazon QuickSight console evaluates which
-- customizations to apply by running this API operation with the
-- @Resolved@ flag included.
--
-- To determine what customizations display when you run this command, it
-- can help to visualize the relationship of the entities involved.
--
-- -   @Amazon Web Services account@ - The Amazon Web Services account
--     exists at the top of the hierarchy. It has the potential to use all
--     of the Amazon Web Services Regions and Amazon Web Services Services.
--     When you subscribe to Amazon QuickSight, you choose one Amazon Web
--     Services Region to use as your home Region. That\'s where your free
--     SPICE capacity is located. You can use Amazon QuickSight in any
--     supported Amazon Web Services Region.
--
-- -   @Amazon Web Services Region@ - In each Amazon Web Services Region
--     where you sign in to Amazon QuickSight at least once, Amazon
--     QuickSight acts as a separate instance of the same service. If you
--     have a user directory, it resides in us-east-1, which is the US East
--     (N. Virginia). Generally speaking, these users have access to Amazon
--     QuickSight in any Amazon Web Services Region, unless they are
--     constrained to a namespace.
--
--     To run the command in a different Amazon Web Services Region, you
--     change your Region settings. If you\'re using the CLI, you can use
--     one of the following options:
--
--     -   Use
--         <https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html command line options>.
--
--     -   Use
--         <https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html named profiles>.
--
--     -   Run @aws configure@ to change your default Amazon Web Services
--         Region. Use Enter to key the same settings for your keys. For
--         more information, see
--         <https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html Configuring the CLI>.
--
-- -   @Namespace@ - A QuickSight namespace is a partition that contains
--     users and assets (data sources, datasets, dashboards, and so on). To
--     access assets that are in a specific namespace, users and groups
--     must also be part of the same namespace. People who share a
--     namespace are completely isolated from users and assets in other
--     namespaces, even if they are in the same Amazon Web Services account
--     and Amazon Web Services Region.
--
-- -   @Applied customizations@ - Within an Amazon Web Services Region, a
--     set of Amazon QuickSight customizations can apply to an Amazon Web
--     Services account or to a namespace. Settings that you apply to a
--     namespace override settings that you apply to an Amazon Web Services
--     account. All settings are isolated to a single Amazon Web Services
--     Region. To apply them in other Amazon Web Services Regions, run the
--     @CreateAccountCustomization@ command in each Amazon Web Services
--     Region where you want to apply the same customizations.
module Amazonka.QuickSight.DescribeAccountCustomization
  ( -- * Creating a Request
    DescribeAccountCustomization (..),
    newDescribeAccountCustomization,

    -- * Request Lenses
    describeAccountCustomization_namespace,
    describeAccountCustomization_resolved,
    describeAccountCustomization_awsAccountId,

    -- * Destructuring the Response
    DescribeAccountCustomizationResponse (..),
    newDescribeAccountCustomizationResponse,

    -- * Response Lenses
    describeAccountCustomizationResponse_accountCustomization,
    describeAccountCustomizationResponse_arn,
    describeAccountCustomizationResponse_awsAccountId,
    describeAccountCustomizationResponse_namespace,
    describeAccountCustomizationResponse_requestId,
    describeAccountCustomizationResponse_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:/ 'newDescribeAccountCustomization' smart constructor.
data DescribeAccountCustomization = DescribeAccountCustomization'
  { -- | The Amazon QuickSight namespace that you want to describe Amazon
    -- QuickSight customizations for.
    DescribeAccountCustomization -> Maybe Text
namespace :: Prelude.Maybe Prelude.Text,
    -- | The @Resolved@ flag works with the other parameters to determine which
    -- view of Amazon QuickSight customizations is returned. You can add this
    -- flag to your command to use the same view that Amazon QuickSight uses to
    -- identify which customizations to apply to the console. Omit this flag,
    -- or set it to @no-resolved@, to reveal customizations that are configured
    -- at different levels.
    DescribeAccountCustomization -> Maybe Bool
resolved :: Prelude.Maybe Prelude.Bool,
    -- | The ID for the Amazon Web Services account that you want to describe
    -- Amazon QuickSight customizations for.
    DescribeAccountCustomization -> Text
awsAccountId :: Prelude.Text
  }
  deriving (DescribeAccountCustomization
-> DescribeAccountCustomization -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAccountCustomization
-> DescribeAccountCustomization -> Bool
$c/= :: DescribeAccountCustomization
-> DescribeAccountCustomization -> Bool
== :: DescribeAccountCustomization
-> DescribeAccountCustomization -> Bool
$c== :: DescribeAccountCustomization
-> DescribeAccountCustomization -> Bool
Prelude.Eq, ReadPrec [DescribeAccountCustomization]
ReadPrec DescribeAccountCustomization
Int -> ReadS DescribeAccountCustomization
ReadS [DescribeAccountCustomization]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAccountCustomization]
$creadListPrec :: ReadPrec [DescribeAccountCustomization]
readPrec :: ReadPrec DescribeAccountCustomization
$creadPrec :: ReadPrec DescribeAccountCustomization
readList :: ReadS [DescribeAccountCustomization]
$creadList :: ReadS [DescribeAccountCustomization]
readsPrec :: Int -> ReadS DescribeAccountCustomization
$creadsPrec :: Int -> ReadS DescribeAccountCustomization
Prelude.Read, Int -> DescribeAccountCustomization -> ShowS
[DescribeAccountCustomization] -> ShowS
DescribeAccountCustomization -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAccountCustomization] -> ShowS
$cshowList :: [DescribeAccountCustomization] -> ShowS
show :: DescribeAccountCustomization -> String
$cshow :: DescribeAccountCustomization -> String
showsPrec :: Int -> DescribeAccountCustomization -> ShowS
$cshowsPrec :: Int -> DescribeAccountCustomization -> ShowS
Prelude.Show, forall x.
Rep DescribeAccountCustomization x -> DescribeAccountCustomization
forall x.
DescribeAccountCustomization -> Rep DescribeAccountCustomization x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeAccountCustomization x -> DescribeAccountCustomization
$cfrom :: forall x.
DescribeAccountCustomization -> Rep DescribeAccountCustomization x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAccountCustomization' 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', 'describeAccountCustomization_namespace' - The Amazon QuickSight namespace that you want to describe Amazon
-- QuickSight customizations for.
--
-- 'resolved', 'describeAccountCustomization_resolved' - The @Resolved@ flag works with the other parameters to determine which
-- view of Amazon QuickSight customizations is returned. You can add this
-- flag to your command to use the same view that Amazon QuickSight uses to
-- identify which customizations to apply to the console. Omit this flag,
-- or set it to @no-resolved@, to reveal customizations that are configured
-- at different levels.
--
-- 'awsAccountId', 'describeAccountCustomization_awsAccountId' - The ID for the Amazon Web Services account that you want to describe
-- Amazon QuickSight customizations for.
newDescribeAccountCustomization ::
  -- | 'awsAccountId'
  Prelude.Text ->
  DescribeAccountCustomization
newDescribeAccountCustomization :: Text -> DescribeAccountCustomization
newDescribeAccountCustomization Text
pAwsAccountId_ =
  DescribeAccountCustomization'
    { $sel:namespace:DescribeAccountCustomization' :: Maybe Text
namespace =
        forall a. Maybe a
Prelude.Nothing,
      $sel:resolved:DescribeAccountCustomization' :: Maybe Bool
resolved = forall a. Maybe a
Prelude.Nothing,
      $sel:awsAccountId:DescribeAccountCustomization' :: Text
awsAccountId = Text
pAwsAccountId_
    }

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

-- | The @Resolved@ flag works with the other parameters to determine which
-- view of Amazon QuickSight customizations is returned. You can add this
-- flag to your command to use the same view that Amazon QuickSight uses to
-- identify which customizations to apply to the console. Omit this flag,
-- or set it to @no-resolved@, to reveal customizations that are configured
-- at different levels.
describeAccountCustomization_resolved :: Lens.Lens' DescribeAccountCustomization (Prelude.Maybe Prelude.Bool)
describeAccountCustomization_resolved :: Lens' DescribeAccountCustomization (Maybe Bool)
describeAccountCustomization_resolved = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAccountCustomization' {Maybe Bool
resolved :: Maybe Bool
$sel:resolved:DescribeAccountCustomization' :: DescribeAccountCustomization -> Maybe Bool
resolved} -> Maybe Bool
resolved) (\s :: DescribeAccountCustomization
s@DescribeAccountCustomization' {} Maybe Bool
a -> DescribeAccountCustomization
s {$sel:resolved:DescribeAccountCustomization' :: Maybe Bool
resolved = Maybe Bool
a} :: DescribeAccountCustomization)

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

instance Core.AWSRequest DescribeAccountCustomization where
  type
    AWSResponse DescribeAccountCustomization =
      DescribeAccountCustomizationResponse
  request :: (Service -> Service)
-> DescribeAccountCustomization
-> Request DescribeAccountCustomization
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeAccountCustomization
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeAccountCustomization)))
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
-> DescribeAccountCustomizationResponse
DescribeAccountCustomizationResponse'
            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
    DescribeAccountCustomization
  where
  hashWithSalt :: Int -> DescribeAccountCustomization -> Int
hashWithSalt Int
_salt DescribeAccountCustomization' {Maybe Bool
Maybe Text
Text
awsAccountId :: Text
resolved :: Maybe Bool
namespace :: Maybe Text
$sel:awsAccountId:DescribeAccountCustomization' :: DescribeAccountCustomization -> Text
$sel:resolved:DescribeAccountCustomization' :: DescribeAccountCustomization -> Maybe Bool
$sel:namespace:DescribeAccountCustomization' :: DescribeAccountCustomization -> 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` Maybe Bool
resolved
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
awsAccountId

instance Prelude.NFData DescribeAccountCustomization where
  rnf :: DescribeAccountCustomization -> ()
rnf DescribeAccountCustomization' {Maybe Bool
Maybe Text
Text
awsAccountId :: Text
resolved :: Maybe Bool
namespace :: Maybe Text
$sel:awsAccountId:DescribeAccountCustomization' :: DescribeAccountCustomization -> Text
$sel:resolved:DescribeAccountCustomization' :: DescribeAccountCustomization -> Maybe Bool
$sel:namespace:DescribeAccountCustomization' :: DescribeAccountCustomization -> 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 Maybe Bool
resolved
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
awsAccountId

instance Data.ToHeaders DescribeAccountCustomization where
  toHeaders :: DescribeAccountCustomization -> 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.ToPath DescribeAccountCustomization where
  toPath :: DescribeAccountCustomization -> ByteString
toPath DescribeAccountCustomization' {Maybe Bool
Maybe Text
Text
awsAccountId :: Text
resolved :: Maybe Bool
namespace :: Maybe Text
$sel:awsAccountId:DescribeAccountCustomization' :: DescribeAccountCustomization -> Text
$sel:resolved:DescribeAccountCustomization' :: DescribeAccountCustomization -> Maybe Bool
$sel:namespace:DescribeAccountCustomization' :: DescribeAccountCustomization -> 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 DescribeAccountCustomization where
  toQuery :: DescribeAccountCustomization -> QueryString
toQuery DescribeAccountCustomization' {Maybe Bool
Maybe Text
Text
awsAccountId :: Text
resolved :: Maybe Bool
namespace :: Maybe Text
$sel:awsAccountId:DescribeAccountCustomization' :: DescribeAccountCustomization -> Text
$sel:resolved:DescribeAccountCustomization' :: DescribeAccountCustomization -> Maybe Bool
$sel:namespace:DescribeAccountCustomization' :: DescribeAccountCustomization -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"namespace" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
namespace,
        ByteString
"resolved" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
resolved
      ]

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

-- |
-- Create a value of 'DescribeAccountCustomizationResponse' 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', 'describeAccountCustomizationResponse_accountCustomization' - The Amazon QuickSight customizations that exist in the current Amazon
-- Web Services Region.
--
-- 'arn', 'describeAccountCustomizationResponse_arn' - The Amazon Resource Name (ARN) of the customization that\'s associated
-- with this Amazon Web Services account.
--
-- 'awsAccountId', 'describeAccountCustomizationResponse_awsAccountId' - The ID for the Amazon Web Services account that you\'re describing.
--
-- 'namespace', 'describeAccountCustomizationResponse_namespace' - The Amazon QuickSight namespace that you\'re describing.
--
-- 'requestId', 'describeAccountCustomizationResponse_requestId' - The Amazon Web Services request ID for this operation.
--
-- 'status', 'describeAccountCustomizationResponse_status' - The HTTP status of the request.
newDescribeAccountCustomizationResponse ::
  -- | 'status'
  Prelude.Int ->
  DescribeAccountCustomizationResponse
newDescribeAccountCustomizationResponse :: Int -> DescribeAccountCustomizationResponse
newDescribeAccountCustomizationResponse Int
pStatus_ =
  DescribeAccountCustomizationResponse'
    { $sel:accountCustomization:DescribeAccountCustomizationResponse' :: Maybe AccountCustomization
accountCustomization =
        forall a. Maybe a
Prelude.Nothing,
      $sel:arn:DescribeAccountCustomizationResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:awsAccountId:DescribeAccountCustomizationResponse' :: Maybe Text
awsAccountId = forall a. Maybe a
Prelude.Nothing,
      $sel:namespace:DescribeAccountCustomizationResponse' :: Maybe Text
namespace = forall a. Maybe a
Prelude.Nothing,
      $sel:requestId:DescribeAccountCustomizationResponse' :: Maybe Text
requestId = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeAccountCustomizationResponse' :: Int
status = Int
pStatus_
    }

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

-- | The Amazon Resource Name (ARN) of the customization that\'s associated
-- with this Amazon Web Services account.
describeAccountCustomizationResponse_arn :: Lens.Lens' DescribeAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
describeAccountCustomizationResponse_arn :: Lens' DescribeAccountCustomizationResponse (Maybe Text)
describeAccountCustomizationResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAccountCustomizationResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:DescribeAccountCustomizationResponse' :: DescribeAccountCustomizationResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: DescribeAccountCustomizationResponse
s@DescribeAccountCustomizationResponse' {} Maybe Text
a -> DescribeAccountCustomizationResponse
s {$sel:arn:DescribeAccountCustomizationResponse' :: Maybe Text
arn = Maybe Text
a} :: DescribeAccountCustomizationResponse)

-- | The ID for the Amazon Web Services account that you\'re describing.
describeAccountCustomizationResponse_awsAccountId :: Lens.Lens' DescribeAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
describeAccountCustomizationResponse_awsAccountId :: Lens' DescribeAccountCustomizationResponse (Maybe Text)
describeAccountCustomizationResponse_awsAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAccountCustomizationResponse' {Maybe Text
awsAccountId :: Maybe Text
$sel:awsAccountId:DescribeAccountCustomizationResponse' :: DescribeAccountCustomizationResponse -> Maybe Text
awsAccountId} -> Maybe Text
awsAccountId) (\s :: DescribeAccountCustomizationResponse
s@DescribeAccountCustomizationResponse' {} Maybe Text
a -> DescribeAccountCustomizationResponse
s {$sel:awsAccountId:DescribeAccountCustomizationResponse' :: Maybe Text
awsAccountId = Maybe Text
a} :: DescribeAccountCustomizationResponse)

-- | The Amazon QuickSight namespace that you\'re describing.
describeAccountCustomizationResponse_namespace :: Lens.Lens' DescribeAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
describeAccountCustomizationResponse_namespace :: Lens' DescribeAccountCustomizationResponse (Maybe Text)
describeAccountCustomizationResponse_namespace = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAccountCustomizationResponse' {Maybe Text
namespace :: Maybe Text
$sel:namespace:DescribeAccountCustomizationResponse' :: DescribeAccountCustomizationResponse -> Maybe Text
namespace} -> Maybe Text
namespace) (\s :: DescribeAccountCustomizationResponse
s@DescribeAccountCustomizationResponse' {} Maybe Text
a -> DescribeAccountCustomizationResponse
s {$sel:namespace:DescribeAccountCustomizationResponse' :: Maybe Text
namespace = Maybe Text
a} :: DescribeAccountCustomizationResponse)

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

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

instance
  Prelude.NFData
    DescribeAccountCustomizationResponse
  where
  rnf :: DescribeAccountCustomizationResponse -> ()
rnf DescribeAccountCustomizationResponse' {Int
Maybe Text
Maybe AccountCustomization
status :: Int
requestId :: Maybe Text
namespace :: Maybe Text
awsAccountId :: Maybe Text
arn :: Maybe Text
accountCustomization :: Maybe AccountCustomization
$sel:status:DescribeAccountCustomizationResponse' :: DescribeAccountCustomizationResponse -> Int
$sel:requestId:DescribeAccountCustomizationResponse' :: DescribeAccountCustomizationResponse -> Maybe Text
$sel:namespace:DescribeAccountCustomizationResponse' :: DescribeAccountCustomizationResponse -> Maybe Text
$sel:awsAccountId:DescribeAccountCustomizationResponse' :: DescribeAccountCustomizationResponse -> Maybe Text
$sel:arn:DescribeAccountCustomizationResponse' :: DescribeAccountCustomizationResponse -> Maybe Text
$sel:accountCustomization:DescribeAccountCustomizationResponse' :: DescribeAccountCustomizationResponse -> 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