{-# 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.DescribeDashboardDefinition -- 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 a dashboard. -- -- If you do not need to know details about the content of a dashboard, for -- instance if you are trying to check the status of a recently created or -- updated dashboard, use the -- -- instead. module Amazonka.QuickSight.DescribeDashboardDefinition ( -- * Creating a Request DescribeDashboardDefinition (..), newDescribeDashboardDefinition, -- * Request Lenses describeDashboardDefinition_aliasName, describeDashboardDefinition_versionNumber, describeDashboardDefinition_awsAccountId, describeDashboardDefinition_dashboardId, -- * Destructuring the Response DescribeDashboardDefinitionResponse (..), newDescribeDashboardDefinitionResponse, -- * Response Lenses describeDashboardDefinitionResponse_dashboardId, describeDashboardDefinitionResponse_definition, describeDashboardDefinitionResponse_errors, describeDashboardDefinitionResponse_name, describeDashboardDefinitionResponse_requestId, describeDashboardDefinitionResponse_resourceStatus, describeDashboardDefinitionResponse_themeArn, describeDashboardDefinitionResponse_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:/ 'newDescribeDashboardDefinition' smart constructor. data DescribeDashboardDefinition = DescribeDashboardDefinition' { -- | The alias name. aliasName :: Prelude.Maybe Prelude.Text, -- | The version number for the dashboard. If a version number isn\'t passed, -- the latest published dashboard version is described. versionNumber :: Prelude.Maybe Prelude.Natural, -- | The ID of the Amazon Web Services account that contains the dashboard -- that you\'re describing. awsAccountId :: Prelude.Text, -- | The ID for the dashboard. dashboardId :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeDashboardDefinition' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'aliasName', 'describeDashboardDefinition_aliasName' - The alias name. -- -- 'versionNumber', 'describeDashboardDefinition_versionNumber' - The version number for the dashboard. If a version number isn\'t passed, -- the latest published dashboard version is described. -- -- 'awsAccountId', 'describeDashboardDefinition_awsAccountId' - The ID of the Amazon Web Services account that contains the dashboard -- that you\'re describing. -- -- 'dashboardId', 'describeDashboardDefinition_dashboardId' - The ID for the dashboard. newDescribeDashboardDefinition :: -- | 'awsAccountId' Prelude.Text -> -- | 'dashboardId' Prelude.Text -> DescribeDashboardDefinition newDescribeDashboardDefinition pAwsAccountId_ pDashboardId_ = DescribeDashboardDefinition' { aliasName = Prelude.Nothing, versionNumber = Prelude.Nothing, awsAccountId = pAwsAccountId_, dashboardId = pDashboardId_ } -- | The alias name. describeDashboardDefinition_aliasName :: Lens.Lens' DescribeDashboardDefinition (Prelude.Maybe Prelude.Text) describeDashboardDefinition_aliasName = Lens.lens (\DescribeDashboardDefinition' {aliasName} -> aliasName) (\s@DescribeDashboardDefinition' {} a -> s {aliasName = a} :: DescribeDashboardDefinition) -- | The version number for the dashboard. If a version number isn\'t passed, -- the latest published dashboard version is described. describeDashboardDefinition_versionNumber :: Lens.Lens' DescribeDashboardDefinition (Prelude.Maybe Prelude.Natural) describeDashboardDefinition_versionNumber = Lens.lens (\DescribeDashboardDefinition' {versionNumber} -> versionNumber) (\s@DescribeDashboardDefinition' {} a -> s {versionNumber = a} :: DescribeDashboardDefinition) -- | The ID of the Amazon Web Services account that contains the dashboard -- that you\'re describing. describeDashboardDefinition_awsAccountId :: Lens.Lens' DescribeDashboardDefinition Prelude.Text describeDashboardDefinition_awsAccountId = Lens.lens (\DescribeDashboardDefinition' {awsAccountId} -> awsAccountId) (\s@DescribeDashboardDefinition' {} a -> s {awsAccountId = a} :: DescribeDashboardDefinition) -- | The ID for the dashboard. describeDashboardDefinition_dashboardId :: Lens.Lens' DescribeDashboardDefinition Prelude.Text describeDashboardDefinition_dashboardId = Lens.lens (\DescribeDashboardDefinition' {dashboardId} -> dashboardId) (\s@DescribeDashboardDefinition' {} a -> s {dashboardId = a} :: DescribeDashboardDefinition) instance Core.AWSRequest DescribeDashboardDefinition where type AWSResponse DescribeDashboardDefinition = DescribeDashboardDefinitionResponse request overrides = Request.get (overrides defaultService) response = Response.receiveJSON ( \s h x -> DescribeDashboardDefinitionResponse' Prelude.<$> (x Data..?> "DashboardId") Prelude.<*> (x Data..?> "Definition") Prelude.<*> (x Data..?> "Errors") Prelude.<*> (x Data..?> "Name") Prelude.<*> (x Data..?> "RequestId") Prelude.<*> (x Data..?> "ResourceStatus") Prelude.<*> (x Data..?> "ThemeArn") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DescribeDashboardDefinition where hashWithSalt _salt DescribeDashboardDefinition' {..} = _salt `Prelude.hashWithSalt` aliasName `Prelude.hashWithSalt` versionNumber `Prelude.hashWithSalt` awsAccountId `Prelude.hashWithSalt` dashboardId instance Prelude.NFData DescribeDashboardDefinition where rnf DescribeDashboardDefinition' {..} = Prelude.rnf aliasName `Prelude.seq` Prelude.rnf versionNumber `Prelude.seq` Prelude.rnf awsAccountId `Prelude.seq` Prelude.rnf dashboardId instance Data.ToHeaders DescribeDashboardDefinition where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.0" :: Prelude.ByteString ) ] ) instance Data.ToPath DescribeDashboardDefinition where toPath DescribeDashboardDefinition' {..} = Prelude.mconcat [ "/accounts/", Data.toBS awsAccountId, "/dashboards/", Data.toBS dashboardId, "/definition" ] instance Data.ToQuery DescribeDashboardDefinition where toQuery DescribeDashboardDefinition' {..} = Prelude.mconcat [ "alias-name" Data.=: aliasName, "version-number" Data.=: versionNumber ] -- | /See:/ 'newDescribeDashboardDefinitionResponse' smart constructor. data DescribeDashboardDefinitionResponse = DescribeDashboardDefinitionResponse' { -- | The ID of the dashboard described. dashboardId :: Prelude.Maybe Prelude.Text, -- | The definition of a dashboard. -- -- A definition is the data model of all features in a Dashboard, Template, -- or Analysis. definition :: Prelude.Maybe DashboardVersionDefinition, -- | Errors associated with this dashboard version. errors :: Prelude.Maybe (Prelude.NonEmpty DashboardError), -- | The display name of the dashboard. name :: Prelude.Maybe Prelude.Text, -- | The Amazon Web Services request ID for this operation. requestId :: Prelude.Maybe Prelude.Text, -- | Status associated with the dashboard version. -- -- - @CREATION_IN_PROGRESS@ -- -- - @CREATION_SUCCESSFUL@ -- -- - @CREATION_FAILED@ -- -- - @UPDATE_IN_PROGRESS@ -- -- - @UPDATE_SUCCESSFUL@ -- -- - @UPDATE_FAILED@ -- -- - @DELETED@ resourceStatus :: Prelude.Maybe ResourceStatus, -- | The ARN of the theme of the dashboard. themeArn :: Prelude.Maybe Prelude.Text, -- | The HTTP status of the request. status :: Prelude.Int } deriving (Prelude.Eq, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeDashboardDefinitionResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'dashboardId', 'describeDashboardDefinitionResponse_dashboardId' - The ID of the dashboard described. -- -- 'definition', 'describeDashboardDefinitionResponse_definition' - The definition of a dashboard. -- -- A definition is the data model of all features in a Dashboard, Template, -- or Analysis. -- -- 'errors', 'describeDashboardDefinitionResponse_errors' - Errors associated with this dashboard version. -- -- 'name', 'describeDashboardDefinitionResponse_name' - The display name of the dashboard. -- -- 'requestId', 'describeDashboardDefinitionResponse_requestId' - The Amazon Web Services request ID for this operation. -- -- 'resourceStatus', 'describeDashboardDefinitionResponse_resourceStatus' - Status associated with the dashboard version. -- -- - @CREATION_IN_PROGRESS@ -- -- - @CREATION_SUCCESSFUL@ -- -- - @CREATION_FAILED@ -- -- - @UPDATE_IN_PROGRESS@ -- -- - @UPDATE_SUCCESSFUL@ -- -- - @UPDATE_FAILED@ -- -- - @DELETED@ -- -- 'themeArn', 'describeDashboardDefinitionResponse_themeArn' - The ARN of the theme of the dashboard. -- -- 'status', 'describeDashboardDefinitionResponse_status' - The HTTP status of the request. newDescribeDashboardDefinitionResponse :: -- | 'status' Prelude.Int -> DescribeDashboardDefinitionResponse newDescribeDashboardDefinitionResponse pStatus_ = DescribeDashboardDefinitionResponse' { dashboardId = Prelude.Nothing, definition = Prelude.Nothing, errors = Prelude.Nothing, name = Prelude.Nothing, requestId = Prelude.Nothing, resourceStatus = Prelude.Nothing, themeArn = Prelude.Nothing, status = pStatus_ } -- | The ID of the dashboard described. describeDashboardDefinitionResponse_dashboardId :: Lens.Lens' DescribeDashboardDefinitionResponse (Prelude.Maybe Prelude.Text) describeDashboardDefinitionResponse_dashboardId = Lens.lens (\DescribeDashboardDefinitionResponse' {dashboardId} -> dashboardId) (\s@DescribeDashboardDefinitionResponse' {} a -> s {dashboardId = a} :: DescribeDashboardDefinitionResponse) -- | The definition of a dashboard. -- -- A definition is the data model of all features in a Dashboard, Template, -- or Analysis. describeDashboardDefinitionResponse_definition :: Lens.Lens' DescribeDashboardDefinitionResponse (Prelude.Maybe DashboardVersionDefinition) describeDashboardDefinitionResponse_definition = Lens.lens (\DescribeDashboardDefinitionResponse' {definition} -> definition) (\s@DescribeDashboardDefinitionResponse' {} a -> s {definition = a} :: DescribeDashboardDefinitionResponse) -- | Errors associated with this dashboard version. describeDashboardDefinitionResponse_errors :: Lens.Lens' DescribeDashboardDefinitionResponse (Prelude.Maybe (Prelude.NonEmpty DashboardError)) describeDashboardDefinitionResponse_errors = Lens.lens (\DescribeDashboardDefinitionResponse' {errors} -> errors) (\s@DescribeDashboardDefinitionResponse' {} a -> s {errors = a} :: DescribeDashboardDefinitionResponse) Prelude.. Lens.mapping Lens.coerced -- | The display name of the dashboard. describeDashboardDefinitionResponse_name :: Lens.Lens' DescribeDashboardDefinitionResponse (Prelude.Maybe Prelude.Text) describeDashboardDefinitionResponse_name = Lens.lens (\DescribeDashboardDefinitionResponse' {name} -> name) (\s@DescribeDashboardDefinitionResponse' {} a -> s {name = a} :: DescribeDashboardDefinitionResponse) -- | The Amazon Web Services request ID for this operation. describeDashboardDefinitionResponse_requestId :: Lens.Lens' DescribeDashboardDefinitionResponse (Prelude.Maybe Prelude.Text) describeDashboardDefinitionResponse_requestId = Lens.lens (\DescribeDashboardDefinitionResponse' {requestId} -> requestId) (\s@DescribeDashboardDefinitionResponse' {} a -> s {requestId = a} :: DescribeDashboardDefinitionResponse) -- | Status associated with the dashboard version. -- -- - @CREATION_IN_PROGRESS@ -- -- - @CREATION_SUCCESSFUL@ -- -- - @CREATION_FAILED@ -- -- - @UPDATE_IN_PROGRESS@ -- -- - @UPDATE_SUCCESSFUL@ -- -- - @UPDATE_FAILED@ -- -- - @DELETED@ describeDashboardDefinitionResponse_resourceStatus :: Lens.Lens' DescribeDashboardDefinitionResponse (Prelude.Maybe ResourceStatus) describeDashboardDefinitionResponse_resourceStatus = Lens.lens (\DescribeDashboardDefinitionResponse' {resourceStatus} -> resourceStatus) (\s@DescribeDashboardDefinitionResponse' {} a -> s {resourceStatus = a} :: DescribeDashboardDefinitionResponse) -- | The ARN of the theme of the dashboard. describeDashboardDefinitionResponse_themeArn :: Lens.Lens' DescribeDashboardDefinitionResponse (Prelude.Maybe Prelude.Text) describeDashboardDefinitionResponse_themeArn = Lens.lens (\DescribeDashboardDefinitionResponse' {themeArn} -> themeArn) (\s@DescribeDashboardDefinitionResponse' {} a -> s {themeArn = a} :: DescribeDashboardDefinitionResponse) -- | The HTTP status of the request. describeDashboardDefinitionResponse_status :: Lens.Lens' DescribeDashboardDefinitionResponse Prelude.Int describeDashboardDefinitionResponse_status = Lens.lens (\DescribeDashboardDefinitionResponse' {status} -> status) (\s@DescribeDashboardDefinitionResponse' {} a -> s {status = a} :: DescribeDashboardDefinitionResponse) instance Prelude.NFData DescribeDashboardDefinitionResponse where rnf DescribeDashboardDefinitionResponse' {..} = Prelude.rnf dashboardId `Prelude.seq` Prelude.rnf definition `Prelude.seq` Prelude.rnf errors `Prelude.seq` Prelude.rnf name `Prelude.seq` Prelude.rnf requestId `Prelude.seq` Prelude.rnf resourceStatus `Prelude.seq` Prelude.rnf themeArn `Prelude.seq` Prelude.rnf status