{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- 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 AWS 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 AWS 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 AWS CLI>.
--
-- -   @Namespace@ - A Amazon 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_resolved,
    describeAccountCustomization_namespace,
    describeAccountCustomization_awsAccountId,

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

    -- * Response Lenses
    describeAccountCustomizationResponse_requestId,
    describeAccountCustomizationResponse_accountCustomization,
    describeAccountCustomizationResponse_arn,
    describeAccountCustomizationResponse_namespace,
    describeAccountCustomizationResponse_awsAccountId,
    describeAccountCustomizationResponse_status,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
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 @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 Amazon QuickSight namespace that you want to describe Amazon
    -- QuickSight customizations for.
    DescribeAccountCustomization -> Maybe Text
namespace :: Prelude.Maybe Prelude.Text,
    -- | 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
(DescribeAccountCustomization
 -> DescribeAccountCustomization -> Bool)
-> (DescribeAccountCustomization
    -> DescribeAccountCustomization -> Bool)
-> Eq DescribeAccountCustomization
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]
(Int -> ReadS DescribeAccountCustomization)
-> ReadS [DescribeAccountCustomization]
-> ReadPrec DescribeAccountCustomization
-> ReadPrec [DescribeAccountCustomization]
-> Read 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
(Int -> DescribeAccountCustomization -> ShowS)
-> (DescribeAccountCustomization -> String)
-> ([DescribeAccountCustomization] -> ShowS)
-> Show DescribeAccountCustomization
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.
 DescribeAccountCustomization -> Rep DescribeAccountCustomization x)
-> (forall x.
    Rep DescribeAccountCustomization x -> DescribeAccountCustomization)
-> Generic DescribeAccountCustomization
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:
--
-- '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.
--
-- 'namespace', 'describeAccountCustomization_namespace' - The Amazon QuickSight namespace that you want to describe Amazon
-- QuickSight customizations for.
--
-- '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' :: Maybe Bool -> Maybe Text -> Text -> DescribeAccountCustomization
DescribeAccountCustomization'
    { $sel:resolved:DescribeAccountCustomization' :: Maybe Bool
resolved =
        Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:namespace:DescribeAccountCustomization' :: Maybe Text
namespace = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:awsAccountId:DescribeAccountCustomization' :: Text
awsAccountId = Text
pAwsAccountId_
    }

-- | 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 :: (Maybe Bool -> f (Maybe Bool))
-> DescribeAccountCustomization -> f DescribeAccountCustomization
describeAccountCustomization_resolved = (DescribeAccountCustomization -> Maybe Bool)
-> (DescribeAccountCustomization
    -> Maybe Bool -> DescribeAccountCustomization)
-> Lens
     DescribeAccountCustomization
     DescribeAccountCustomization
     (Maybe Bool)
     (Maybe Bool)
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 Amazon QuickSight namespace that you want to describe Amazon
-- QuickSight customizations for.
describeAccountCustomization_namespace :: Lens.Lens' DescribeAccountCustomization (Prelude.Maybe Prelude.Text)
describeAccountCustomization_namespace :: (Maybe Text -> f (Maybe Text))
-> DescribeAccountCustomization -> f DescribeAccountCustomization
describeAccountCustomization_namespace = (DescribeAccountCustomization -> Maybe Text)
-> (DescribeAccountCustomization
    -> Maybe Text -> DescribeAccountCustomization)
-> Lens
     DescribeAccountCustomization
     DescribeAccountCustomization
     (Maybe Text)
     (Maybe Text)
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 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 :: (Text -> f Text)
-> DescribeAccountCustomization -> f DescribeAccountCustomization
describeAccountCustomization_awsAccountId = (DescribeAccountCustomization -> Text)
-> (DescribeAccountCustomization
    -> Text -> DescribeAccountCustomization)
-> Lens
     DescribeAccountCustomization DescribeAccountCustomization Text Text
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 :: DescribeAccountCustomization
-> Request DescribeAccountCustomization
request = Service
-> DescribeAccountCustomization
-> Request DescribeAccountCustomization
forall a. ToRequest a => Service -> a -> Request a
Request.get Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeAccountCustomization
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeAccountCustomization)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeAccountCustomization))
-> Logger
-> Service
-> Proxy DescribeAccountCustomization
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeAccountCustomization)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe AccountCustomization
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeAccountCustomizationResponse
DescribeAccountCustomizationResponse'
            (Maybe Text
 -> Maybe AccountCustomization
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Int
 -> DescribeAccountCustomizationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe AccountCustomization
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeAccountCustomizationResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"RequestId")
            Either
  String
  (Maybe AccountCustomization
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeAccountCustomizationResponse)
-> Either String (Maybe AccountCustomization)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Int
      -> DescribeAccountCustomizationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe AccountCustomization)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"AccountCustomization")
            Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Int
   -> DescribeAccountCustomizationResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe Text -> Int -> DescribeAccountCustomizationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Arn")
            Either
  String
  (Maybe Text
   -> Maybe Text -> Int -> DescribeAccountCustomizationResponse)
-> Either String (Maybe Text)
-> Either
     String (Maybe Text -> Int -> DescribeAccountCustomizationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Namespace")
            Either
  String (Maybe Text -> Int -> DescribeAccountCustomizationResponse)
-> Either String (Maybe Text)
-> Either String (Int -> DescribeAccountCustomizationResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"AwsAccountId")
            Either String (Int -> DescribeAccountCustomizationResponse)
-> Either String Int
-> Either String DescribeAccountCustomizationResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance
  Prelude.Hashable
    DescribeAccountCustomization

instance Prelude.NFData DescribeAccountCustomization

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

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

instance Core.ToQuery DescribeAccountCustomization where
  toQuery :: DescribeAccountCustomization -> QueryString
toQuery DescribeAccountCustomization' {Maybe Bool
Maybe Text
Text
awsAccountId :: Text
namespace :: Maybe Text
resolved :: Maybe Bool
$sel:awsAccountId:DescribeAccountCustomization' :: DescribeAccountCustomization -> Text
$sel:namespace:DescribeAccountCustomization' :: DescribeAccountCustomization -> Maybe Text
$sel:resolved:DescribeAccountCustomization' :: DescribeAccountCustomization -> Maybe Bool
..} =
    [QueryString] -> QueryString
forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"resolved" ByteString -> Maybe Bool -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe Bool
resolved,
        ByteString
"namespace" ByteString -> Maybe Text -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe Text
namespace
      ]

-- | /See:/ 'newDescribeAccountCustomizationResponse' smart constructor.
data DescribeAccountCustomizationResponse = DescribeAccountCustomizationResponse'
  { -- | The Amazon Web Services request ID for this operation.
    DescribeAccountCustomizationResponse -> Maybe Text
requestId :: Prelude.Maybe Prelude.Text,
    -- | 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 Amazon QuickSight namespace that you\'re describing.
    DescribeAccountCustomizationResponse -> Maybe Text
namespace :: 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 HTTP status of the request.
    DescribeAccountCustomizationResponse -> Int
status :: Prelude.Int
  }
  deriving (DescribeAccountCustomizationResponse
-> DescribeAccountCustomizationResponse -> Bool
(DescribeAccountCustomizationResponse
 -> DescribeAccountCustomizationResponse -> Bool)
-> (DescribeAccountCustomizationResponse
    -> DescribeAccountCustomizationResponse -> Bool)
-> Eq DescribeAccountCustomizationResponse
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]
(Int -> ReadS DescribeAccountCustomizationResponse)
-> ReadS [DescribeAccountCustomizationResponse]
-> ReadPrec DescribeAccountCustomizationResponse
-> ReadPrec [DescribeAccountCustomizationResponse]
-> Read 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
(Int -> DescribeAccountCustomizationResponse -> ShowS)
-> (DescribeAccountCustomizationResponse -> String)
-> ([DescribeAccountCustomizationResponse] -> ShowS)
-> Show DescribeAccountCustomizationResponse
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.
 DescribeAccountCustomizationResponse
 -> Rep DescribeAccountCustomizationResponse x)
-> (forall x.
    Rep DescribeAccountCustomizationResponse x
    -> DescribeAccountCustomizationResponse)
-> Generic DescribeAccountCustomizationResponse
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:
--
-- 'requestId', 'describeAccountCustomizationResponse_requestId' - The Amazon Web Services request ID for this operation.
--
-- '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.
--
-- 'namespace', 'describeAccountCustomizationResponse_namespace' - The Amazon QuickSight namespace that you\'re describing.
--
-- 'awsAccountId', 'describeAccountCustomizationResponse_awsAccountId' - The ID for the Amazon Web Services account that you\'re describing.
--
-- 'status', 'describeAccountCustomizationResponse_status' - The HTTP status of the request.
newDescribeAccountCustomizationResponse ::
  -- | 'status'
  Prelude.Int ->
  DescribeAccountCustomizationResponse
newDescribeAccountCustomizationResponse :: Int -> DescribeAccountCustomizationResponse
newDescribeAccountCustomizationResponse Int
pStatus_ =
  DescribeAccountCustomizationResponse' :: Maybe Text
-> Maybe AccountCustomization
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeAccountCustomizationResponse
DescribeAccountCustomizationResponse'
    { $sel:requestId:DescribeAccountCustomizationResponse' :: Maybe Text
requestId =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:accountCustomization:DescribeAccountCustomizationResponse' :: Maybe AccountCustomization
accountCustomization =
        Maybe AccountCustomization
forall a. Maybe a
Prelude.Nothing,
      $sel:arn:DescribeAccountCustomizationResponse' :: Maybe Text
arn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:namespace:DescribeAccountCustomizationResponse' :: Maybe Text
namespace = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:awsAccountId:DescribeAccountCustomizationResponse' :: Maybe Text
awsAccountId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeAccountCustomizationResponse' :: Int
status = Int
pStatus_
    }

-- | The Amazon Web Services request ID for this operation.
describeAccountCustomizationResponse_requestId :: Lens.Lens' DescribeAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
describeAccountCustomizationResponse_requestId :: (Maybe Text -> f (Maybe Text))
-> DescribeAccountCustomizationResponse
-> f DescribeAccountCustomizationResponse
describeAccountCustomizationResponse_requestId = (DescribeAccountCustomizationResponse -> Maybe Text)
-> (DescribeAccountCustomizationResponse
    -> Maybe Text -> DescribeAccountCustomizationResponse)
-> Lens
     DescribeAccountCustomizationResponse
     DescribeAccountCustomizationResponse
     (Maybe Text)
     (Maybe Text)
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 Amazon QuickSight customizations that exist in the current Amazon
-- Web Services Region.
describeAccountCustomizationResponse_accountCustomization :: Lens.Lens' DescribeAccountCustomizationResponse (Prelude.Maybe AccountCustomization)
describeAccountCustomizationResponse_accountCustomization :: (Maybe AccountCustomization -> f (Maybe AccountCustomization))
-> DescribeAccountCustomizationResponse
-> f DescribeAccountCustomizationResponse
describeAccountCustomizationResponse_accountCustomization = (DescribeAccountCustomizationResponse
 -> Maybe AccountCustomization)
-> (DescribeAccountCustomizationResponse
    -> Maybe AccountCustomization
    -> DescribeAccountCustomizationResponse)
-> Lens
     DescribeAccountCustomizationResponse
     DescribeAccountCustomizationResponse
     (Maybe AccountCustomization)
     (Maybe 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 :: (Maybe Text -> f (Maybe Text))
-> DescribeAccountCustomizationResponse
-> f DescribeAccountCustomizationResponse
describeAccountCustomizationResponse_arn = (DescribeAccountCustomizationResponse -> Maybe Text)
-> (DescribeAccountCustomizationResponse
    -> Maybe Text -> DescribeAccountCustomizationResponse)
-> Lens
     DescribeAccountCustomizationResponse
     DescribeAccountCustomizationResponse
     (Maybe Text)
     (Maybe Text)
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 Amazon QuickSight namespace that you\'re describing.
describeAccountCustomizationResponse_namespace :: Lens.Lens' DescribeAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
describeAccountCustomizationResponse_namespace :: (Maybe Text -> f (Maybe Text))
-> DescribeAccountCustomizationResponse
-> f DescribeAccountCustomizationResponse
describeAccountCustomizationResponse_namespace = (DescribeAccountCustomizationResponse -> Maybe Text)
-> (DescribeAccountCustomizationResponse
    -> Maybe Text -> DescribeAccountCustomizationResponse)
-> Lens
     DescribeAccountCustomizationResponse
     DescribeAccountCustomizationResponse
     (Maybe Text)
     (Maybe Text)
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 ID for the Amazon Web Services account that you\'re describing.
describeAccountCustomizationResponse_awsAccountId :: Lens.Lens' DescribeAccountCustomizationResponse (Prelude.Maybe Prelude.Text)
describeAccountCustomizationResponse_awsAccountId :: (Maybe Text -> f (Maybe Text))
-> DescribeAccountCustomizationResponse
-> f DescribeAccountCustomizationResponse
describeAccountCustomizationResponse_awsAccountId = (DescribeAccountCustomizationResponse -> Maybe Text)
-> (DescribeAccountCustomizationResponse
    -> Maybe Text -> DescribeAccountCustomizationResponse)
-> Lens
     DescribeAccountCustomizationResponse
     DescribeAccountCustomizationResponse
     (Maybe Text)
     (Maybe Text)
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 HTTP status of the request.
describeAccountCustomizationResponse_status :: Lens.Lens' DescribeAccountCustomizationResponse Prelude.Int
describeAccountCustomizationResponse_status :: (Int -> f Int)
-> DescribeAccountCustomizationResponse
-> f DescribeAccountCustomizationResponse
describeAccountCustomizationResponse_status = (DescribeAccountCustomizationResponse -> Int)
-> (DescribeAccountCustomizationResponse
    -> Int -> DescribeAccountCustomizationResponse)
-> Lens
     DescribeAccountCustomizationResponse
     DescribeAccountCustomizationResponse
     Int
     Int
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