{-# 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.DescribeAnalysisDefinition
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Provides a detailed description of the definition of an analysis.
--
-- If you do not need to know details about the content of an Analysis, for
-- instance if you are trying to check the status of a recently created or
-- updated Analysis, use the
-- <https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeAnalysis.html DescribeAnalysis>
-- instead.
module Amazonka.QuickSight.DescribeAnalysisDefinition
  ( -- * Creating a Request
    DescribeAnalysisDefinition (..),
    newDescribeAnalysisDefinition,

    -- * Request Lenses
    describeAnalysisDefinition_awsAccountId,
    describeAnalysisDefinition_analysisId,

    -- * Destructuring the Response
    DescribeAnalysisDefinitionResponse (..),
    newDescribeAnalysisDefinitionResponse,

    -- * Response Lenses
    describeAnalysisDefinitionResponse_analysisId,
    describeAnalysisDefinitionResponse_definition,
    describeAnalysisDefinitionResponse_errors,
    describeAnalysisDefinitionResponse_name,
    describeAnalysisDefinitionResponse_requestId,
    describeAnalysisDefinitionResponse_resourceStatus,
    describeAnalysisDefinitionResponse_themeArn,
    describeAnalysisDefinitionResponse_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:/ 'newDescribeAnalysisDefinition' smart constructor.
data DescribeAnalysisDefinition = DescribeAnalysisDefinition'
  { -- | The ID of the Amazon Web Services account that contains the analysis.
    -- You must be using the Amazon Web Services account that the analysis is
    -- in.
    DescribeAnalysisDefinition -> Text
awsAccountId :: Prelude.Text,
    -- | The ID of the analysis that you\'re describing. The ID is part of the
    -- URL of the analysis.
    DescribeAnalysisDefinition -> Text
analysisId :: Prelude.Text
  }
  deriving (DescribeAnalysisDefinition -> DescribeAnalysisDefinition -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAnalysisDefinition -> DescribeAnalysisDefinition -> Bool
$c/= :: DescribeAnalysisDefinition -> DescribeAnalysisDefinition -> Bool
== :: DescribeAnalysisDefinition -> DescribeAnalysisDefinition -> Bool
$c== :: DescribeAnalysisDefinition -> DescribeAnalysisDefinition -> Bool
Prelude.Eq, ReadPrec [DescribeAnalysisDefinition]
ReadPrec DescribeAnalysisDefinition
Int -> ReadS DescribeAnalysisDefinition
ReadS [DescribeAnalysisDefinition]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeAnalysisDefinition]
$creadListPrec :: ReadPrec [DescribeAnalysisDefinition]
readPrec :: ReadPrec DescribeAnalysisDefinition
$creadPrec :: ReadPrec DescribeAnalysisDefinition
readList :: ReadS [DescribeAnalysisDefinition]
$creadList :: ReadS [DescribeAnalysisDefinition]
readsPrec :: Int -> ReadS DescribeAnalysisDefinition
$creadsPrec :: Int -> ReadS DescribeAnalysisDefinition
Prelude.Read, Int -> DescribeAnalysisDefinition -> ShowS
[DescribeAnalysisDefinition] -> ShowS
DescribeAnalysisDefinition -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAnalysisDefinition] -> ShowS
$cshowList :: [DescribeAnalysisDefinition] -> ShowS
show :: DescribeAnalysisDefinition -> String
$cshow :: DescribeAnalysisDefinition -> String
showsPrec :: Int -> DescribeAnalysisDefinition -> ShowS
$cshowsPrec :: Int -> DescribeAnalysisDefinition -> ShowS
Prelude.Show, forall x.
Rep DescribeAnalysisDefinition x -> DescribeAnalysisDefinition
forall x.
DescribeAnalysisDefinition -> Rep DescribeAnalysisDefinition x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeAnalysisDefinition x -> DescribeAnalysisDefinition
$cfrom :: forall x.
DescribeAnalysisDefinition -> Rep DescribeAnalysisDefinition x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAnalysisDefinition' 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:
--
-- 'awsAccountId', 'describeAnalysisDefinition_awsAccountId' - The ID of the Amazon Web Services account that contains the analysis.
-- You must be using the Amazon Web Services account that the analysis is
-- in.
--
-- 'analysisId', 'describeAnalysisDefinition_analysisId' - The ID of the analysis that you\'re describing. The ID is part of the
-- URL of the analysis.
newDescribeAnalysisDefinition ::
  -- | 'awsAccountId'
  Prelude.Text ->
  -- | 'analysisId'
  Prelude.Text ->
  DescribeAnalysisDefinition
newDescribeAnalysisDefinition :: Text -> Text -> DescribeAnalysisDefinition
newDescribeAnalysisDefinition
  Text
pAwsAccountId_
  Text
pAnalysisId_ =
    DescribeAnalysisDefinition'
      { $sel:awsAccountId:DescribeAnalysisDefinition' :: Text
awsAccountId =
          Text
pAwsAccountId_,
        $sel:analysisId:DescribeAnalysisDefinition' :: Text
analysisId = Text
pAnalysisId_
      }

-- | The ID of the Amazon Web Services account that contains the analysis.
-- You must be using the Amazon Web Services account that the analysis is
-- in.
describeAnalysisDefinition_awsAccountId :: Lens.Lens' DescribeAnalysisDefinition Prelude.Text
describeAnalysisDefinition_awsAccountId :: Lens' DescribeAnalysisDefinition Text
describeAnalysisDefinition_awsAccountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAnalysisDefinition' {Text
awsAccountId :: Text
$sel:awsAccountId:DescribeAnalysisDefinition' :: DescribeAnalysisDefinition -> Text
awsAccountId} -> Text
awsAccountId) (\s :: DescribeAnalysisDefinition
s@DescribeAnalysisDefinition' {} Text
a -> DescribeAnalysisDefinition
s {$sel:awsAccountId:DescribeAnalysisDefinition' :: Text
awsAccountId = Text
a} :: DescribeAnalysisDefinition)

-- | The ID of the analysis that you\'re describing. The ID is part of the
-- URL of the analysis.
describeAnalysisDefinition_analysisId :: Lens.Lens' DescribeAnalysisDefinition Prelude.Text
describeAnalysisDefinition_analysisId :: Lens' DescribeAnalysisDefinition Text
describeAnalysisDefinition_analysisId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAnalysisDefinition' {Text
analysisId :: Text
$sel:analysisId:DescribeAnalysisDefinition' :: DescribeAnalysisDefinition -> Text
analysisId} -> Text
analysisId) (\s :: DescribeAnalysisDefinition
s@DescribeAnalysisDefinition' {} Text
a -> DescribeAnalysisDefinition
s {$sel:analysisId:DescribeAnalysisDefinition' :: Text
analysisId = Text
a} :: DescribeAnalysisDefinition)

instance Core.AWSRequest DescribeAnalysisDefinition where
  type
    AWSResponse DescribeAnalysisDefinition =
      DescribeAnalysisDefinitionResponse
  request :: (Service -> Service)
-> DescribeAnalysisDefinition -> Request DescribeAnalysisDefinition
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 DescribeAnalysisDefinition
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeAnalysisDefinition)))
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 Text
-> Maybe AnalysisDefinition
-> Maybe (NonEmpty AnalysisError)
-> Maybe Text
-> Maybe Text
-> Maybe ResourceStatus
-> Maybe Text
-> Int
-> DescribeAnalysisDefinitionResponse
DescribeAnalysisDefinitionResponse'
            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
"AnalysisId")
            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
"Definition")
            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
"Errors")
            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
"Name")
            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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ResourceStatus")
            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
"ThemeArn")
            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 DescribeAnalysisDefinition where
  hashWithSalt :: Int -> DescribeAnalysisDefinition -> Int
hashWithSalt Int
_salt DescribeAnalysisDefinition' {Text
analysisId :: Text
awsAccountId :: Text
$sel:analysisId:DescribeAnalysisDefinition' :: DescribeAnalysisDefinition -> Text
$sel:awsAccountId:DescribeAnalysisDefinition' :: DescribeAnalysisDefinition -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
awsAccountId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
analysisId

instance Prelude.NFData DescribeAnalysisDefinition where
  rnf :: DescribeAnalysisDefinition -> ()
rnf DescribeAnalysisDefinition' {Text
analysisId :: Text
awsAccountId :: Text
$sel:analysisId:DescribeAnalysisDefinition' :: DescribeAnalysisDefinition -> Text
$sel:awsAccountId:DescribeAnalysisDefinition' :: DescribeAnalysisDefinition -> Text
..} =
    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 Text
analysisId

instance Data.ToHeaders DescribeAnalysisDefinition where
  toHeaders :: DescribeAnalysisDefinition -> 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 DescribeAnalysisDefinition where
  toPath :: DescribeAnalysisDefinition -> ByteString
toPath DescribeAnalysisDefinition' {Text
analysisId :: Text
awsAccountId :: Text
$sel:analysisId:DescribeAnalysisDefinition' :: DescribeAnalysisDefinition -> Text
$sel:awsAccountId:DescribeAnalysisDefinition' :: DescribeAnalysisDefinition -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/accounts/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
awsAccountId,
        ByteString
"/analyses/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
analysisId,
        ByteString
"/definition"
      ]

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

-- | /See:/ 'newDescribeAnalysisDefinitionResponse' smart constructor.
data DescribeAnalysisDefinitionResponse = DescribeAnalysisDefinitionResponse'
  { -- | The ID of the analysis described.
    DescribeAnalysisDefinitionResponse -> Maybe Text
analysisId :: Prelude.Maybe Prelude.Text,
    -- | The definition of an analysis.
    --
    -- A definition is the data model of all features in a Dashboard, Template,
    -- or Analysis.
    DescribeAnalysisDefinitionResponse -> Maybe AnalysisDefinition
definition :: Prelude.Maybe AnalysisDefinition,
    -- | Errors associated with the analysis.
    DescribeAnalysisDefinitionResponse
-> Maybe (NonEmpty AnalysisError)
errors :: Prelude.Maybe (Prelude.NonEmpty AnalysisError),
    -- | The descriptive name of the analysis.
    DescribeAnalysisDefinitionResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Web Services request ID for this operation.
    DescribeAnalysisDefinitionResponse -> Maybe Text
requestId :: Prelude.Maybe Prelude.Text,
    -- | Status associated with the analysis.
    --
    -- -   @CREATION_IN_PROGRESS@
    --
    -- -   @CREATION_SUCCESSFUL@
    --
    -- -   @CREATION_FAILED@
    --
    -- -   @UPDATE_IN_PROGRESS@
    --
    -- -   @UPDATE_SUCCESSFUL@
    --
    -- -   @UPDATE_FAILED@
    --
    -- -   @DELETED@
    DescribeAnalysisDefinitionResponse -> Maybe ResourceStatus
resourceStatus :: Prelude.Maybe ResourceStatus,
    -- | The ARN of the theme of the analysis.
    DescribeAnalysisDefinitionResponse -> Maybe Text
themeArn :: Prelude.Maybe Prelude.Text,
    -- | The HTTP status of the request.
    DescribeAnalysisDefinitionResponse -> Int
status :: Prelude.Int
  }
  deriving (DescribeAnalysisDefinitionResponse
-> DescribeAnalysisDefinitionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeAnalysisDefinitionResponse
-> DescribeAnalysisDefinitionResponse -> Bool
$c/= :: DescribeAnalysisDefinitionResponse
-> DescribeAnalysisDefinitionResponse -> Bool
== :: DescribeAnalysisDefinitionResponse
-> DescribeAnalysisDefinitionResponse -> Bool
$c== :: DescribeAnalysisDefinitionResponse
-> DescribeAnalysisDefinitionResponse -> Bool
Prelude.Eq, Int -> DescribeAnalysisDefinitionResponse -> ShowS
[DescribeAnalysisDefinitionResponse] -> ShowS
DescribeAnalysisDefinitionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeAnalysisDefinitionResponse] -> ShowS
$cshowList :: [DescribeAnalysisDefinitionResponse] -> ShowS
show :: DescribeAnalysisDefinitionResponse -> String
$cshow :: DescribeAnalysisDefinitionResponse -> String
showsPrec :: Int -> DescribeAnalysisDefinitionResponse -> ShowS
$cshowsPrec :: Int -> DescribeAnalysisDefinitionResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeAnalysisDefinitionResponse x
-> DescribeAnalysisDefinitionResponse
forall x.
DescribeAnalysisDefinitionResponse
-> Rep DescribeAnalysisDefinitionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeAnalysisDefinitionResponse x
-> DescribeAnalysisDefinitionResponse
$cfrom :: forall x.
DescribeAnalysisDefinitionResponse
-> Rep DescribeAnalysisDefinitionResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeAnalysisDefinitionResponse' 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:
--
-- 'analysisId', 'describeAnalysisDefinitionResponse_analysisId' - The ID of the analysis described.
--
-- 'definition', 'describeAnalysisDefinitionResponse_definition' - The definition of an analysis.
--
-- A definition is the data model of all features in a Dashboard, Template,
-- or Analysis.
--
-- 'errors', 'describeAnalysisDefinitionResponse_errors' - Errors associated with the analysis.
--
-- 'name', 'describeAnalysisDefinitionResponse_name' - The descriptive name of the analysis.
--
-- 'requestId', 'describeAnalysisDefinitionResponse_requestId' - The Amazon Web Services request ID for this operation.
--
-- 'resourceStatus', 'describeAnalysisDefinitionResponse_resourceStatus' - Status associated with the analysis.
--
-- -   @CREATION_IN_PROGRESS@
--
-- -   @CREATION_SUCCESSFUL@
--
-- -   @CREATION_FAILED@
--
-- -   @UPDATE_IN_PROGRESS@
--
-- -   @UPDATE_SUCCESSFUL@
--
-- -   @UPDATE_FAILED@
--
-- -   @DELETED@
--
-- 'themeArn', 'describeAnalysisDefinitionResponse_themeArn' - The ARN of the theme of the analysis.
--
-- 'status', 'describeAnalysisDefinitionResponse_status' - The HTTP status of the request.
newDescribeAnalysisDefinitionResponse ::
  -- | 'status'
  Prelude.Int ->
  DescribeAnalysisDefinitionResponse
newDescribeAnalysisDefinitionResponse :: Int -> DescribeAnalysisDefinitionResponse
newDescribeAnalysisDefinitionResponse Int
pStatus_ =
  DescribeAnalysisDefinitionResponse'
    { $sel:analysisId:DescribeAnalysisDefinitionResponse' :: Maybe Text
analysisId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:definition:DescribeAnalysisDefinitionResponse' :: Maybe AnalysisDefinition
definition = forall a. Maybe a
Prelude.Nothing,
      $sel:errors:DescribeAnalysisDefinitionResponse' :: Maybe (NonEmpty AnalysisError)
errors = forall a. Maybe a
Prelude.Nothing,
      $sel:name:DescribeAnalysisDefinitionResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:requestId:DescribeAnalysisDefinitionResponse' :: Maybe Text
requestId = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceStatus:DescribeAnalysisDefinitionResponse' :: Maybe ResourceStatus
resourceStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:themeArn:DescribeAnalysisDefinitionResponse' :: Maybe Text
themeArn = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeAnalysisDefinitionResponse' :: Int
status = Int
pStatus_
    }

-- | The ID of the analysis described.
describeAnalysisDefinitionResponse_analysisId :: Lens.Lens' DescribeAnalysisDefinitionResponse (Prelude.Maybe Prelude.Text)
describeAnalysisDefinitionResponse_analysisId :: Lens' DescribeAnalysisDefinitionResponse (Maybe Text)
describeAnalysisDefinitionResponse_analysisId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAnalysisDefinitionResponse' {Maybe Text
analysisId :: Maybe Text
$sel:analysisId:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe Text
analysisId} -> Maybe Text
analysisId) (\s :: DescribeAnalysisDefinitionResponse
s@DescribeAnalysisDefinitionResponse' {} Maybe Text
a -> DescribeAnalysisDefinitionResponse
s {$sel:analysisId:DescribeAnalysisDefinitionResponse' :: Maybe Text
analysisId = Maybe Text
a} :: DescribeAnalysisDefinitionResponse)

-- | The definition of an analysis.
--
-- A definition is the data model of all features in a Dashboard, Template,
-- or Analysis.
describeAnalysisDefinitionResponse_definition :: Lens.Lens' DescribeAnalysisDefinitionResponse (Prelude.Maybe AnalysisDefinition)
describeAnalysisDefinitionResponse_definition :: Lens' DescribeAnalysisDefinitionResponse (Maybe AnalysisDefinition)
describeAnalysisDefinitionResponse_definition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAnalysisDefinitionResponse' {Maybe AnalysisDefinition
definition :: Maybe AnalysisDefinition
$sel:definition:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe AnalysisDefinition
definition} -> Maybe AnalysisDefinition
definition) (\s :: DescribeAnalysisDefinitionResponse
s@DescribeAnalysisDefinitionResponse' {} Maybe AnalysisDefinition
a -> DescribeAnalysisDefinitionResponse
s {$sel:definition:DescribeAnalysisDefinitionResponse' :: Maybe AnalysisDefinition
definition = Maybe AnalysisDefinition
a} :: DescribeAnalysisDefinitionResponse)

-- | Errors associated with the analysis.
describeAnalysisDefinitionResponse_errors :: Lens.Lens' DescribeAnalysisDefinitionResponse (Prelude.Maybe (Prelude.NonEmpty AnalysisError))
describeAnalysisDefinitionResponse_errors :: Lens'
  DescribeAnalysisDefinitionResponse (Maybe (NonEmpty AnalysisError))
describeAnalysisDefinitionResponse_errors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAnalysisDefinitionResponse' {Maybe (NonEmpty AnalysisError)
errors :: Maybe (NonEmpty AnalysisError)
$sel:errors:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse
-> Maybe (NonEmpty AnalysisError)
errors} -> Maybe (NonEmpty AnalysisError)
errors) (\s :: DescribeAnalysisDefinitionResponse
s@DescribeAnalysisDefinitionResponse' {} Maybe (NonEmpty AnalysisError)
a -> DescribeAnalysisDefinitionResponse
s {$sel:errors:DescribeAnalysisDefinitionResponse' :: Maybe (NonEmpty AnalysisError)
errors = Maybe (NonEmpty AnalysisError)
a} :: DescribeAnalysisDefinitionResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The descriptive name of the analysis.
describeAnalysisDefinitionResponse_name :: Lens.Lens' DescribeAnalysisDefinitionResponse (Prelude.Maybe Prelude.Text)
describeAnalysisDefinitionResponse_name :: Lens' DescribeAnalysisDefinitionResponse (Maybe Text)
describeAnalysisDefinitionResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAnalysisDefinitionResponse' {Maybe Text
name :: Maybe Text
$sel:name:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: DescribeAnalysisDefinitionResponse
s@DescribeAnalysisDefinitionResponse' {} Maybe Text
a -> DescribeAnalysisDefinitionResponse
s {$sel:name:DescribeAnalysisDefinitionResponse' :: Maybe Text
name = Maybe Text
a} :: DescribeAnalysisDefinitionResponse)

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

-- | Status associated with the analysis.
--
-- -   @CREATION_IN_PROGRESS@
--
-- -   @CREATION_SUCCESSFUL@
--
-- -   @CREATION_FAILED@
--
-- -   @UPDATE_IN_PROGRESS@
--
-- -   @UPDATE_SUCCESSFUL@
--
-- -   @UPDATE_FAILED@
--
-- -   @DELETED@
describeAnalysisDefinitionResponse_resourceStatus :: Lens.Lens' DescribeAnalysisDefinitionResponse (Prelude.Maybe ResourceStatus)
describeAnalysisDefinitionResponse_resourceStatus :: Lens' DescribeAnalysisDefinitionResponse (Maybe ResourceStatus)
describeAnalysisDefinitionResponse_resourceStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAnalysisDefinitionResponse' {Maybe ResourceStatus
resourceStatus :: Maybe ResourceStatus
$sel:resourceStatus:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe ResourceStatus
resourceStatus} -> Maybe ResourceStatus
resourceStatus) (\s :: DescribeAnalysisDefinitionResponse
s@DescribeAnalysisDefinitionResponse' {} Maybe ResourceStatus
a -> DescribeAnalysisDefinitionResponse
s {$sel:resourceStatus:DescribeAnalysisDefinitionResponse' :: Maybe ResourceStatus
resourceStatus = Maybe ResourceStatus
a} :: DescribeAnalysisDefinitionResponse)

-- | The ARN of the theme of the analysis.
describeAnalysisDefinitionResponse_themeArn :: Lens.Lens' DescribeAnalysisDefinitionResponse (Prelude.Maybe Prelude.Text)
describeAnalysisDefinitionResponse_themeArn :: Lens' DescribeAnalysisDefinitionResponse (Maybe Text)
describeAnalysisDefinitionResponse_themeArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeAnalysisDefinitionResponse' {Maybe Text
themeArn :: Maybe Text
$sel:themeArn:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe Text
themeArn} -> Maybe Text
themeArn) (\s :: DescribeAnalysisDefinitionResponse
s@DescribeAnalysisDefinitionResponse' {} Maybe Text
a -> DescribeAnalysisDefinitionResponse
s {$sel:themeArn:DescribeAnalysisDefinitionResponse' :: Maybe Text
themeArn = Maybe Text
a} :: DescribeAnalysisDefinitionResponse)

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

instance
  Prelude.NFData
    DescribeAnalysisDefinitionResponse
  where
  rnf :: DescribeAnalysisDefinitionResponse -> ()
rnf DescribeAnalysisDefinitionResponse' {Int
Maybe (NonEmpty AnalysisError)
Maybe Text
Maybe ResourceStatus
Maybe AnalysisDefinition
status :: Int
themeArn :: Maybe Text
resourceStatus :: Maybe ResourceStatus
requestId :: Maybe Text
name :: Maybe Text
errors :: Maybe (NonEmpty AnalysisError)
definition :: Maybe AnalysisDefinition
analysisId :: Maybe Text
$sel:status:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Int
$sel:themeArn:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe Text
$sel:resourceStatus:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe ResourceStatus
$sel:requestId:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe Text
$sel:name:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe Text
$sel:errors:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse
-> Maybe (NonEmpty AnalysisError)
$sel:definition:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe AnalysisDefinition
$sel:analysisId:DescribeAnalysisDefinitionResponse' :: DescribeAnalysisDefinitionResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
analysisId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AnalysisDefinition
definition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty AnalysisError)
errors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      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 Maybe ResourceStatus
resourceStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
themeArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
status