amazonka-quicksight-2.0: gen/Amazonka/QuickSight/Types/DashboardVersionDefinition.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.Types.DashboardVersionDefinition
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.QuickSight.Types.DashboardVersionDefinition 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.AnalysisDefaults
import Amazonka.QuickSight.Types.CalculatedField
import Amazonka.QuickSight.Types.ColumnConfiguration
import Amazonka.QuickSight.Types.DataSetIdentifierDeclaration
import Amazonka.QuickSight.Types.FilterGroup
import Amazonka.QuickSight.Types.ParameterDeclaration
import Amazonka.QuickSight.Types.SheetDefinition
-- | The contents of a dashboard.
--
-- /See:/ 'newDashboardVersionDefinition' smart constructor.
data DashboardVersionDefinition = DashboardVersionDefinition'
{ analysisDefaults :: Prelude.Maybe AnalysisDefaults,
-- | An array of calculated field definitions for the dashboard.
calculatedFields :: Prelude.Maybe [CalculatedField],
-- | An array of dashboard-level column configurations. Column configurations
-- are used to set the default formatting for a column that is used
-- throughout a dashboard.
columnConfigurations :: Prelude.Maybe [ColumnConfiguration],
-- | The filter definitions for a dashboard.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/adding-a-filter.html Filtering Data in Amazon QuickSight>
-- in the /Amazon QuickSight User Guide/.
filterGroups :: Prelude.Maybe [FilterGroup],
-- | The parameter declarations for a dashboard. Parameters are named
-- variables that can transfer a value for use by an action or an object.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/parameters-in-quicksight.html Parameters in Amazon QuickSight>
-- in the /Amazon QuickSight User Guide/.
parameterDeclarations :: Prelude.Maybe [ParameterDeclaration],
-- | An array of sheet definitions for a dashboard.
sheets :: Prelude.Maybe [SheetDefinition],
-- | An array of dataset identifier declarations. With this mapping,you can
-- use dataset identifiers instead of dataset Amazon Resource Names (ARNs)
-- throughout the dashboard\'s sub-structures.
dataSetIdentifierDeclarations :: Prelude.NonEmpty DataSetIdentifierDeclaration
}
deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DashboardVersionDefinition' 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:
--
-- 'analysisDefaults', 'dashboardVersionDefinition_analysisDefaults' - Undocumented member.
--
-- 'calculatedFields', 'dashboardVersionDefinition_calculatedFields' - An array of calculated field definitions for the dashboard.
--
-- 'columnConfigurations', 'dashboardVersionDefinition_columnConfigurations' - An array of dashboard-level column configurations. Column configurations
-- are used to set the default formatting for a column that is used
-- throughout a dashboard.
--
-- 'filterGroups', 'dashboardVersionDefinition_filterGroups' - The filter definitions for a dashboard.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/adding-a-filter.html Filtering Data in Amazon QuickSight>
-- in the /Amazon QuickSight User Guide/.
--
-- 'parameterDeclarations', 'dashboardVersionDefinition_parameterDeclarations' - The parameter declarations for a dashboard. Parameters are named
-- variables that can transfer a value for use by an action or an object.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/parameters-in-quicksight.html Parameters in Amazon QuickSight>
-- in the /Amazon QuickSight User Guide/.
--
-- 'sheets', 'dashboardVersionDefinition_sheets' - An array of sheet definitions for a dashboard.
--
-- 'dataSetIdentifierDeclarations', 'dashboardVersionDefinition_dataSetIdentifierDeclarations' - An array of dataset identifier declarations. With this mapping,you can
-- use dataset identifiers instead of dataset Amazon Resource Names (ARNs)
-- throughout the dashboard\'s sub-structures.
newDashboardVersionDefinition ::
-- | 'dataSetIdentifierDeclarations'
Prelude.NonEmpty DataSetIdentifierDeclaration ->
DashboardVersionDefinition
newDashboardVersionDefinition
pDataSetIdentifierDeclarations_ =
DashboardVersionDefinition'
{ analysisDefaults =
Prelude.Nothing,
calculatedFields = Prelude.Nothing,
columnConfigurations = Prelude.Nothing,
filterGroups = Prelude.Nothing,
parameterDeclarations = Prelude.Nothing,
sheets = Prelude.Nothing,
dataSetIdentifierDeclarations =
Lens.coerced
Lens.# pDataSetIdentifierDeclarations_
}
-- | Undocumented member.
dashboardVersionDefinition_analysisDefaults :: Lens.Lens' DashboardVersionDefinition (Prelude.Maybe AnalysisDefaults)
dashboardVersionDefinition_analysisDefaults = Lens.lens (\DashboardVersionDefinition' {analysisDefaults} -> analysisDefaults) (\s@DashboardVersionDefinition' {} a -> s {analysisDefaults = a} :: DashboardVersionDefinition)
-- | An array of calculated field definitions for the dashboard.
dashboardVersionDefinition_calculatedFields :: Lens.Lens' DashboardVersionDefinition (Prelude.Maybe [CalculatedField])
dashboardVersionDefinition_calculatedFields = Lens.lens (\DashboardVersionDefinition' {calculatedFields} -> calculatedFields) (\s@DashboardVersionDefinition' {} a -> s {calculatedFields = a} :: DashboardVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | An array of dashboard-level column configurations. Column configurations
-- are used to set the default formatting for a column that is used
-- throughout a dashboard.
dashboardVersionDefinition_columnConfigurations :: Lens.Lens' DashboardVersionDefinition (Prelude.Maybe [ColumnConfiguration])
dashboardVersionDefinition_columnConfigurations = Lens.lens (\DashboardVersionDefinition' {columnConfigurations} -> columnConfigurations) (\s@DashboardVersionDefinition' {} a -> s {columnConfigurations = a} :: DashboardVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | The filter definitions for a dashboard.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/adding-a-filter.html Filtering Data in Amazon QuickSight>
-- in the /Amazon QuickSight User Guide/.
dashboardVersionDefinition_filterGroups :: Lens.Lens' DashboardVersionDefinition (Prelude.Maybe [FilterGroup])
dashboardVersionDefinition_filterGroups = Lens.lens (\DashboardVersionDefinition' {filterGroups} -> filterGroups) (\s@DashboardVersionDefinition' {} a -> s {filterGroups = a} :: DashboardVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | The parameter declarations for a dashboard. Parameters are named
-- variables that can transfer a value for use by an action or an object.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/parameters-in-quicksight.html Parameters in Amazon QuickSight>
-- in the /Amazon QuickSight User Guide/.
dashboardVersionDefinition_parameterDeclarations :: Lens.Lens' DashboardVersionDefinition (Prelude.Maybe [ParameterDeclaration])
dashboardVersionDefinition_parameterDeclarations = Lens.lens (\DashboardVersionDefinition' {parameterDeclarations} -> parameterDeclarations) (\s@DashboardVersionDefinition' {} a -> s {parameterDeclarations = a} :: DashboardVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | An array of sheet definitions for a dashboard.
dashboardVersionDefinition_sheets :: Lens.Lens' DashboardVersionDefinition (Prelude.Maybe [SheetDefinition])
dashboardVersionDefinition_sheets = Lens.lens (\DashboardVersionDefinition' {sheets} -> sheets) (\s@DashboardVersionDefinition' {} a -> s {sheets = a} :: DashboardVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | An array of dataset identifier declarations. With this mapping,you can
-- use dataset identifiers instead of dataset Amazon Resource Names (ARNs)
-- throughout the dashboard\'s sub-structures.
dashboardVersionDefinition_dataSetIdentifierDeclarations :: Lens.Lens' DashboardVersionDefinition (Prelude.NonEmpty DataSetIdentifierDeclaration)
dashboardVersionDefinition_dataSetIdentifierDeclarations = Lens.lens (\DashboardVersionDefinition' {dataSetIdentifierDeclarations} -> dataSetIdentifierDeclarations) (\s@DashboardVersionDefinition' {} a -> s {dataSetIdentifierDeclarations = a} :: DashboardVersionDefinition) Prelude.. Lens.coerced
instance Data.FromJSON DashboardVersionDefinition where
parseJSON =
Data.withObject
"DashboardVersionDefinition"
( \x ->
DashboardVersionDefinition'
Prelude.<$> (x Data..:? "AnalysisDefaults")
Prelude.<*> ( x
Data..:? "CalculatedFields"
Data..!= Prelude.mempty
)
Prelude.<*> ( x
Data..:? "ColumnConfigurations"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "FilterGroups" Data..!= Prelude.mempty)
Prelude.<*> ( x
Data..:? "ParameterDeclarations"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "Sheets" Data..!= Prelude.mempty)
Prelude.<*> (x Data..: "DataSetIdentifierDeclarations")
)
instance Prelude.Hashable DashboardVersionDefinition where
hashWithSalt _salt DashboardVersionDefinition' {..} =
_salt
`Prelude.hashWithSalt` analysisDefaults
`Prelude.hashWithSalt` calculatedFields
`Prelude.hashWithSalt` columnConfigurations
`Prelude.hashWithSalt` filterGroups
`Prelude.hashWithSalt` parameterDeclarations
`Prelude.hashWithSalt` sheets
`Prelude.hashWithSalt` dataSetIdentifierDeclarations
instance Prelude.NFData DashboardVersionDefinition where
rnf DashboardVersionDefinition' {..} =
Prelude.rnf analysisDefaults
`Prelude.seq` Prelude.rnf calculatedFields
`Prelude.seq` Prelude.rnf columnConfigurations
`Prelude.seq` Prelude.rnf filterGroups
`Prelude.seq` Prelude.rnf parameterDeclarations
`Prelude.seq` Prelude.rnf sheets
`Prelude.seq` Prelude.rnf dataSetIdentifierDeclarations
instance Data.ToJSON DashboardVersionDefinition where
toJSON DashboardVersionDefinition' {..} =
Data.object
( Prelude.catMaybes
[ ("AnalysisDefaults" Data..=)
Prelude.<$> analysisDefaults,
("CalculatedFields" Data..=)
Prelude.<$> calculatedFields,
("ColumnConfigurations" Data..=)
Prelude.<$> columnConfigurations,
("FilterGroups" Data..=) Prelude.<$> filterGroups,
("ParameterDeclarations" Data..=)
Prelude.<$> parameterDeclarations,
("Sheets" Data..=) Prelude.<$> sheets,
Prelude.Just
( "DataSetIdentifierDeclarations"
Data..= dataSetIdentifierDeclarations
)
]
)