amazonka-quicksight-2.0: gen/Amazonka/QuickSight/Types/TemplateVersionDefinition.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.TemplateVersionDefinition
-- 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.TemplateVersionDefinition 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.DataSetConfiguration
import Amazonka.QuickSight.Types.FilterGroup
import Amazonka.QuickSight.Types.ParameterDeclaration
import Amazonka.QuickSight.Types.SheetDefinition
-- | The detailed definition of a template.
--
-- /See:/ 'newTemplateVersionDefinition' smart constructor.
data TemplateVersionDefinition = TemplateVersionDefinition'
{ analysisDefaults :: Prelude.Maybe AnalysisDefaults,
-- | An array of calculated field definitions for the template.
calculatedFields :: Prelude.Maybe [CalculatedField],
-- | An array of template-level column configurations. Column configurations
-- are used to set default formatting for a column that\'s used throughout
-- a template.
columnConfigurations :: Prelude.Maybe [ColumnConfiguration],
-- | Filter definitions for a template.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/filtering-visual-data.html Filtering Data>
-- in the /Amazon QuickSight User Guide/.
filterGroups :: Prelude.Maybe [FilterGroup],
-- | An array of parameter declarations for a template.
--
-- /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 template.
sheets :: Prelude.Maybe [SheetDefinition],
-- | An array of dataset configurations. These configurations define the
-- required columns for each dataset used within a template.
dataSetConfigurations :: [DataSetConfiguration]
}
deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'TemplateVersionDefinition' 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', 'templateVersionDefinition_analysisDefaults' - Undocumented member.
--
-- 'calculatedFields', 'templateVersionDefinition_calculatedFields' - An array of calculated field definitions for the template.
--
-- 'columnConfigurations', 'templateVersionDefinition_columnConfigurations' - An array of template-level column configurations. Column configurations
-- are used to set default formatting for a column that\'s used throughout
-- a template.
--
-- 'filterGroups', 'templateVersionDefinition_filterGroups' - Filter definitions for a template.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/filtering-visual-data.html Filtering Data>
-- in the /Amazon QuickSight User Guide/.
--
-- 'parameterDeclarations', 'templateVersionDefinition_parameterDeclarations' - An array of parameter declarations for a template.
--
-- /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', 'templateVersionDefinition_sheets' - An array of sheet definitions for a template.
--
-- 'dataSetConfigurations', 'templateVersionDefinition_dataSetConfigurations' - An array of dataset configurations. These configurations define the
-- required columns for each dataset used within a template.
newTemplateVersionDefinition ::
TemplateVersionDefinition
newTemplateVersionDefinition =
TemplateVersionDefinition'
{ analysisDefaults =
Prelude.Nothing,
calculatedFields = Prelude.Nothing,
columnConfigurations = Prelude.Nothing,
filterGroups = Prelude.Nothing,
parameterDeclarations = Prelude.Nothing,
sheets = Prelude.Nothing,
dataSetConfigurations = Prelude.mempty
}
-- | Undocumented member.
templateVersionDefinition_analysisDefaults :: Lens.Lens' TemplateVersionDefinition (Prelude.Maybe AnalysisDefaults)
templateVersionDefinition_analysisDefaults = Lens.lens (\TemplateVersionDefinition' {analysisDefaults} -> analysisDefaults) (\s@TemplateVersionDefinition' {} a -> s {analysisDefaults = a} :: TemplateVersionDefinition)
-- | An array of calculated field definitions for the template.
templateVersionDefinition_calculatedFields :: Lens.Lens' TemplateVersionDefinition (Prelude.Maybe [CalculatedField])
templateVersionDefinition_calculatedFields = Lens.lens (\TemplateVersionDefinition' {calculatedFields} -> calculatedFields) (\s@TemplateVersionDefinition' {} a -> s {calculatedFields = a} :: TemplateVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | An array of template-level column configurations. Column configurations
-- are used to set default formatting for a column that\'s used throughout
-- a template.
templateVersionDefinition_columnConfigurations :: Lens.Lens' TemplateVersionDefinition (Prelude.Maybe [ColumnConfiguration])
templateVersionDefinition_columnConfigurations = Lens.lens (\TemplateVersionDefinition' {columnConfigurations} -> columnConfigurations) (\s@TemplateVersionDefinition' {} a -> s {columnConfigurations = a} :: TemplateVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | Filter definitions for a template.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/filtering-visual-data.html Filtering Data>
-- in the /Amazon QuickSight User Guide/.
templateVersionDefinition_filterGroups :: Lens.Lens' TemplateVersionDefinition (Prelude.Maybe [FilterGroup])
templateVersionDefinition_filterGroups = Lens.lens (\TemplateVersionDefinition' {filterGroups} -> filterGroups) (\s@TemplateVersionDefinition' {} a -> s {filterGroups = a} :: TemplateVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | An array of parameter declarations for a template.
--
-- /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/.
templateVersionDefinition_parameterDeclarations :: Lens.Lens' TemplateVersionDefinition (Prelude.Maybe [ParameterDeclaration])
templateVersionDefinition_parameterDeclarations = Lens.lens (\TemplateVersionDefinition' {parameterDeclarations} -> parameterDeclarations) (\s@TemplateVersionDefinition' {} a -> s {parameterDeclarations = a} :: TemplateVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | An array of sheet definitions for a template.
templateVersionDefinition_sheets :: Lens.Lens' TemplateVersionDefinition (Prelude.Maybe [SheetDefinition])
templateVersionDefinition_sheets = Lens.lens (\TemplateVersionDefinition' {sheets} -> sheets) (\s@TemplateVersionDefinition' {} a -> s {sheets = a} :: TemplateVersionDefinition) Prelude.. Lens.mapping Lens.coerced
-- | An array of dataset configurations. These configurations define the
-- required columns for each dataset used within a template.
templateVersionDefinition_dataSetConfigurations :: Lens.Lens' TemplateVersionDefinition [DataSetConfiguration]
templateVersionDefinition_dataSetConfigurations = Lens.lens (\TemplateVersionDefinition' {dataSetConfigurations} -> dataSetConfigurations) (\s@TemplateVersionDefinition' {} a -> s {dataSetConfigurations = a} :: TemplateVersionDefinition) Prelude.. Lens.coerced
instance Data.FromJSON TemplateVersionDefinition where
parseJSON =
Data.withObject
"TemplateVersionDefinition"
( \x ->
TemplateVersionDefinition'
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..:? "DataSetConfigurations"
Data..!= Prelude.mempty
)
)
instance Prelude.Hashable TemplateVersionDefinition where
hashWithSalt _salt TemplateVersionDefinition' {..} =
_salt
`Prelude.hashWithSalt` analysisDefaults
`Prelude.hashWithSalt` calculatedFields
`Prelude.hashWithSalt` columnConfigurations
`Prelude.hashWithSalt` filterGroups
`Prelude.hashWithSalt` parameterDeclarations
`Prelude.hashWithSalt` sheets
`Prelude.hashWithSalt` dataSetConfigurations
instance Prelude.NFData TemplateVersionDefinition where
rnf TemplateVersionDefinition' {..} =
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 dataSetConfigurations
instance Data.ToJSON TemplateVersionDefinition where
toJSON TemplateVersionDefinition' {..} =
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
( "DataSetConfigurations"
Data..= dataSetConfigurations
)
]
)