{-# 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.Visual
-- 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.Visual 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.BarChartVisual
import Amazonka.QuickSight.Types.BoxPlotVisual
import Amazonka.QuickSight.Types.ComboChartVisual
import Amazonka.QuickSight.Types.CustomContentVisual
import Amazonka.QuickSight.Types.EmptyVisual
import Amazonka.QuickSight.Types.FilledMapVisual
import Amazonka.QuickSight.Types.FunnelChartVisual
import Amazonka.QuickSight.Types.GaugeChartVisual
import Amazonka.QuickSight.Types.GeospatialMapVisual
import Amazonka.QuickSight.Types.HeatMapVisual
import Amazonka.QuickSight.Types.HistogramVisual
import Amazonka.QuickSight.Types.InsightVisual
import Amazonka.QuickSight.Types.KPIVisual
import Amazonka.QuickSight.Types.LineChartVisual
import Amazonka.QuickSight.Types.PieChartVisual
import Amazonka.QuickSight.Types.PivotTableVisual
import Amazonka.QuickSight.Types.SankeyDiagramVisual
import Amazonka.QuickSight.Types.ScatterPlotVisual
import Amazonka.QuickSight.Types.TableVisual
import Amazonka.QuickSight.Types.TreeMapVisual
import Amazonka.QuickSight.Types.WaterfallVisual
import Amazonka.QuickSight.Types.WordCloudVisual

-- | A visual displayed on a sheet in an analysis, dashboard, or template.
--
-- This is a union type structure. For this structure to be valid, only one
-- of the attributes can be defined.
--
-- /See:/ 'newVisual' smart constructor.
data Visual = Visual'
  { -- | A bar chart.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/bar-charts.html Using bar charts>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe BarChartVisual
barChartVisual :: Prelude.Maybe BarChartVisual,
    -- | A box plot.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/box-plots.html Using box plots>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe BoxPlotVisual
boxPlotVisual :: Prelude.Maybe BoxPlotVisual,
    -- | A combo chart.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/combo-charts.html Using combo charts>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe ComboChartVisual
comboChartVisual :: Prelude.Maybe ComboChartVisual,
    -- | A visual that contains custom content.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/custom-visual-content.html Using custom visual content>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe CustomContentVisual
customContentVisual :: Prelude.Maybe CustomContentVisual,
    -- | An empty visual.
    Visual -> Maybe EmptyVisual
emptyVisual :: Prelude.Maybe EmptyVisual,
    -- | A filled map.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/filled-maps.html Creating filled maps>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe FilledMapVisual
filledMapVisual :: Prelude.Maybe FilledMapVisual,
    -- | A funnel chart.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/funnel-visual-content.html Using funnel charts>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe FunnelChartVisual
funnelChartVisual :: Prelude.Maybe FunnelChartVisual,
    -- | A gauge chart.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/gauge-chart.html Using gauge charts>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe GaugeChartVisual
gaugeChartVisual :: Prelude.Maybe GaugeChartVisual,
    -- | A geospatial map or a points on map visual.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/point-maps.html Creating point maps>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe GeospatialMapVisual
geospatialMapVisual :: Prelude.Maybe GeospatialMapVisual,
    -- | A heat map.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/heat-map.html Using heat maps>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe HeatMapVisual
heatMapVisual :: Prelude.Maybe HeatMapVisual,
    -- | A histogram.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/histogram-charts.html Using histograms>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe HistogramVisual
histogramVisual :: Prelude.Maybe HistogramVisual,
    -- | An insight visual.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/computational-insights.html Working with insights>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe InsightVisual
insightVisual :: Prelude.Maybe InsightVisual,
    -- | A key performance indicator (KPI).
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/kpi.html Using KPIs>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe KPIVisual
kPIVisual :: Prelude.Maybe KPIVisual,
    -- | A line chart.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/line-charts.html Using line charts>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe LineChartVisual
lineChartVisual :: Prelude.Maybe LineChartVisual,
    -- | A pie or donut chart.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/pie-chart.html Using pie charts>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe PieChartVisual
pieChartVisual :: Prelude.Maybe PieChartVisual,
    -- | A pivot table.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/pivot-table.html Using pivot tables>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe PivotTableVisual
pivotTableVisual :: Prelude.Maybe PivotTableVisual,
    -- | A sankey diagram.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/sankey-diagram.html Using Sankey diagrams>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe SankeyDiagramVisual
sankeyDiagramVisual :: Prelude.Maybe SankeyDiagramVisual,
    -- | A scatter plot.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/scatter-plot.html Using scatter plots>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe ScatterPlotVisual
scatterPlotVisual :: Prelude.Maybe ScatterPlotVisual,
    -- | A table visual.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/tabular.html Using tables as visuals>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe TableVisual
tableVisual :: Prelude.Maybe TableVisual,
    -- | A tree map.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/tree-map.html Using tree maps>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe TreeMapVisual
treeMapVisual :: Prelude.Maybe TreeMapVisual,
    -- | A waterfall chart.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/waterfall-chart.html Using waterfall charts>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe WaterfallVisual
waterfallVisual :: Prelude.Maybe WaterfallVisual,
    -- | A word cloud.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/quicksight/latest/user/word-cloud.html Using word clouds>
    -- in the /Amazon QuickSight User Guide/.
    Visual -> Maybe WordCloudVisual
wordCloudVisual :: Prelude.Maybe WordCloudVisual
  }
  deriving (Visual -> Visual -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Visual -> Visual -> Bool
$c/= :: Visual -> Visual -> Bool
== :: Visual -> Visual -> Bool
$c== :: Visual -> Visual -> Bool
Prelude.Eq, Int -> Visual -> ShowS
[Visual] -> ShowS
Visual -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Visual] -> ShowS
$cshowList :: [Visual] -> ShowS
show :: Visual -> String
$cshow :: Visual -> String
showsPrec :: Int -> Visual -> ShowS
$cshowsPrec :: Int -> Visual -> ShowS
Prelude.Show, forall x. Rep Visual x -> Visual
forall x. Visual -> Rep Visual x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Visual x -> Visual
$cfrom :: forall x. Visual -> Rep Visual x
Prelude.Generic)

-- |
-- Create a value of 'Visual' 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:
--
-- 'barChartVisual', 'visual_barChartVisual' - A bar chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/bar-charts.html Using bar charts>
-- in the /Amazon QuickSight User Guide/.
--
-- 'boxPlotVisual', 'visual_boxPlotVisual' - A box plot.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/box-plots.html Using box plots>
-- in the /Amazon QuickSight User Guide/.
--
-- 'comboChartVisual', 'visual_comboChartVisual' - A combo chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/combo-charts.html Using combo charts>
-- in the /Amazon QuickSight User Guide/.
--
-- 'customContentVisual', 'visual_customContentVisual' - A visual that contains custom content.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/custom-visual-content.html Using custom visual content>
-- in the /Amazon QuickSight User Guide/.
--
-- 'emptyVisual', 'visual_emptyVisual' - An empty visual.
--
-- 'filledMapVisual', 'visual_filledMapVisual' - A filled map.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/filled-maps.html Creating filled maps>
-- in the /Amazon QuickSight User Guide/.
--
-- 'funnelChartVisual', 'visual_funnelChartVisual' - A funnel chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/funnel-visual-content.html Using funnel charts>
-- in the /Amazon QuickSight User Guide/.
--
-- 'gaugeChartVisual', 'visual_gaugeChartVisual' - A gauge chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/gauge-chart.html Using gauge charts>
-- in the /Amazon QuickSight User Guide/.
--
-- 'geospatialMapVisual', 'visual_geospatialMapVisual' - A geospatial map or a points on map visual.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/point-maps.html Creating point maps>
-- in the /Amazon QuickSight User Guide/.
--
-- 'heatMapVisual', 'visual_heatMapVisual' - A heat map.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/heat-map.html Using heat maps>
-- in the /Amazon QuickSight User Guide/.
--
-- 'histogramVisual', 'visual_histogramVisual' - A histogram.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/histogram-charts.html Using histograms>
-- in the /Amazon QuickSight User Guide/.
--
-- 'insightVisual', 'visual_insightVisual' - An insight visual.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/computational-insights.html Working with insights>
-- in the /Amazon QuickSight User Guide/.
--
-- 'kPIVisual', 'visual_kPIVisual' - A key performance indicator (KPI).
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/kpi.html Using KPIs>
-- in the /Amazon QuickSight User Guide/.
--
-- 'lineChartVisual', 'visual_lineChartVisual' - A line chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/line-charts.html Using line charts>
-- in the /Amazon QuickSight User Guide/.
--
-- 'pieChartVisual', 'visual_pieChartVisual' - A pie or donut chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/pie-chart.html Using pie charts>
-- in the /Amazon QuickSight User Guide/.
--
-- 'pivotTableVisual', 'visual_pivotTableVisual' - A pivot table.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/pivot-table.html Using pivot tables>
-- in the /Amazon QuickSight User Guide/.
--
-- 'sankeyDiagramVisual', 'visual_sankeyDiagramVisual' - A sankey diagram.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/sankey-diagram.html Using Sankey diagrams>
-- in the /Amazon QuickSight User Guide/.
--
-- 'scatterPlotVisual', 'visual_scatterPlotVisual' - A scatter plot.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/scatter-plot.html Using scatter plots>
-- in the /Amazon QuickSight User Guide/.
--
-- 'tableVisual', 'visual_tableVisual' - A table visual.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/tabular.html Using tables as visuals>
-- in the /Amazon QuickSight User Guide/.
--
-- 'treeMapVisual', 'visual_treeMapVisual' - A tree map.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/tree-map.html Using tree maps>
-- in the /Amazon QuickSight User Guide/.
--
-- 'waterfallVisual', 'visual_waterfallVisual' - A waterfall chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/waterfall-chart.html Using waterfall charts>
-- in the /Amazon QuickSight User Guide/.
--
-- 'wordCloudVisual', 'visual_wordCloudVisual' - A word cloud.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/word-cloud.html Using word clouds>
-- in the /Amazon QuickSight User Guide/.
newVisual ::
  Visual
newVisual :: Visual
newVisual =
  Visual'
    { $sel:barChartVisual:Visual' :: Maybe BarChartVisual
barChartVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:boxPlotVisual:Visual' :: Maybe BoxPlotVisual
boxPlotVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:comboChartVisual:Visual' :: Maybe ComboChartVisual
comboChartVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:customContentVisual:Visual' :: Maybe CustomContentVisual
customContentVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:emptyVisual:Visual' :: Maybe EmptyVisual
emptyVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:filledMapVisual:Visual' :: Maybe FilledMapVisual
filledMapVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:funnelChartVisual:Visual' :: Maybe FunnelChartVisual
funnelChartVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:gaugeChartVisual:Visual' :: Maybe GaugeChartVisual
gaugeChartVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:geospatialMapVisual:Visual' :: Maybe GeospatialMapVisual
geospatialMapVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:heatMapVisual:Visual' :: Maybe HeatMapVisual
heatMapVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:histogramVisual:Visual' :: Maybe HistogramVisual
histogramVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:insightVisual:Visual' :: Maybe InsightVisual
insightVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:kPIVisual:Visual' :: Maybe KPIVisual
kPIVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:lineChartVisual:Visual' :: Maybe LineChartVisual
lineChartVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:pieChartVisual:Visual' :: Maybe PieChartVisual
pieChartVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:pivotTableVisual:Visual' :: Maybe PivotTableVisual
pivotTableVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:sankeyDiagramVisual:Visual' :: Maybe SankeyDiagramVisual
sankeyDiagramVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:scatterPlotVisual:Visual' :: Maybe ScatterPlotVisual
scatterPlotVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:tableVisual:Visual' :: Maybe TableVisual
tableVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:treeMapVisual:Visual' :: Maybe TreeMapVisual
treeMapVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:waterfallVisual:Visual' :: Maybe WaterfallVisual
waterfallVisual = forall a. Maybe a
Prelude.Nothing,
      $sel:wordCloudVisual:Visual' :: Maybe WordCloudVisual
wordCloudVisual = forall a. Maybe a
Prelude.Nothing
    }

-- | A bar chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/bar-charts.html Using bar charts>
-- in the /Amazon QuickSight User Guide/.
visual_barChartVisual :: Lens.Lens' Visual (Prelude.Maybe BarChartVisual)
visual_barChartVisual :: Lens' Visual (Maybe BarChartVisual)
visual_barChartVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe BarChartVisual
barChartVisual :: Maybe BarChartVisual
$sel:barChartVisual:Visual' :: Visual -> Maybe BarChartVisual
barChartVisual} -> Maybe BarChartVisual
barChartVisual) (\s :: Visual
s@Visual' {} Maybe BarChartVisual
a -> Visual
s {$sel:barChartVisual:Visual' :: Maybe BarChartVisual
barChartVisual = Maybe BarChartVisual
a} :: Visual)

-- | A box plot.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/box-plots.html Using box plots>
-- in the /Amazon QuickSight User Guide/.
visual_boxPlotVisual :: Lens.Lens' Visual (Prelude.Maybe BoxPlotVisual)
visual_boxPlotVisual :: Lens' Visual (Maybe BoxPlotVisual)
visual_boxPlotVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe BoxPlotVisual
boxPlotVisual :: Maybe BoxPlotVisual
$sel:boxPlotVisual:Visual' :: Visual -> Maybe BoxPlotVisual
boxPlotVisual} -> Maybe BoxPlotVisual
boxPlotVisual) (\s :: Visual
s@Visual' {} Maybe BoxPlotVisual
a -> Visual
s {$sel:boxPlotVisual:Visual' :: Maybe BoxPlotVisual
boxPlotVisual = Maybe BoxPlotVisual
a} :: Visual)

-- | A combo chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/combo-charts.html Using combo charts>
-- in the /Amazon QuickSight User Guide/.
visual_comboChartVisual :: Lens.Lens' Visual (Prelude.Maybe ComboChartVisual)
visual_comboChartVisual :: Lens' Visual (Maybe ComboChartVisual)
visual_comboChartVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe ComboChartVisual
comboChartVisual :: Maybe ComboChartVisual
$sel:comboChartVisual:Visual' :: Visual -> Maybe ComboChartVisual
comboChartVisual} -> Maybe ComboChartVisual
comboChartVisual) (\s :: Visual
s@Visual' {} Maybe ComboChartVisual
a -> Visual
s {$sel:comboChartVisual:Visual' :: Maybe ComboChartVisual
comboChartVisual = Maybe ComboChartVisual
a} :: Visual)

-- | A visual that contains custom content.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/custom-visual-content.html Using custom visual content>
-- in the /Amazon QuickSight User Guide/.
visual_customContentVisual :: Lens.Lens' Visual (Prelude.Maybe CustomContentVisual)
visual_customContentVisual :: Lens' Visual (Maybe CustomContentVisual)
visual_customContentVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe CustomContentVisual
customContentVisual :: Maybe CustomContentVisual
$sel:customContentVisual:Visual' :: Visual -> Maybe CustomContentVisual
customContentVisual} -> Maybe CustomContentVisual
customContentVisual) (\s :: Visual
s@Visual' {} Maybe CustomContentVisual
a -> Visual
s {$sel:customContentVisual:Visual' :: Maybe CustomContentVisual
customContentVisual = Maybe CustomContentVisual
a} :: Visual)

-- | An empty visual.
visual_emptyVisual :: Lens.Lens' Visual (Prelude.Maybe EmptyVisual)
visual_emptyVisual :: Lens' Visual (Maybe EmptyVisual)
visual_emptyVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe EmptyVisual
emptyVisual :: Maybe EmptyVisual
$sel:emptyVisual:Visual' :: Visual -> Maybe EmptyVisual
emptyVisual} -> Maybe EmptyVisual
emptyVisual) (\s :: Visual
s@Visual' {} Maybe EmptyVisual
a -> Visual
s {$sel:emptyVisual:Visual' :: Maybe EmptyVisual
emptyVisual = Maybe EmptyVisual
a} :: Visual)

-- | A filled map.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/filled-maps.html Creating filled maps>
-- in the /Amazon QuickSight User Guide/.
visual_filledMapVisual :: Lens.Lens' Visual (Prelude.Maybe FilledMapVisual)
visual_filledMapVisual :: Lens' Visual (Maybe FilledMapVisual)
visual_filledMapVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe FilledMapVisual
filledMapVisual :: Maybe FilledMapVisual
$sel:filledMapVisual:Visual' :: Visual -> Maybe FilledMapVisual
filledMapVisual} -> Maybe FilledMapVisual
filledMapVisual) (\s :: Visual
s@Visual' {} Maybe FilledMapVisual
a -> Visual
s {$sel:filledMapVisual:Visual' :: Maybe FilledMapVisual
filledMapVisual = Maybe FilledMapVisual
a} :: Visual)

-- | A funnel chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/funnel-visual-content.html Using funnel charts>
-- in the /Amazon QuickSight User Guide/.
visual_funnelChartVisual :: Lens.Lens' Visual (Prelude.Maybe FunnelChartVisual)
visual_funnelChartVisual :: Lens' Visual (Maybe FunnelChartVisual)
visual_funnelChartVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe FunnelChartVisual
funnelChartVisual :: Maybe FunnelChartVisual
$sel:funnelChartVisual:Visual' :: Visual -> Maybe FunnelChartVisual
funnelChartVisual} -> Maybe FunnelChartVisual
funnelChartVisual) (\s :: Visual
s@Visual' {} Maybe FunnelChartVisual
a -> Visual
s {$sel:funnelChartVisual:Visual' :: Maybe FunnelChartVisual
funnelChartVisual = Maybe FunnelChartVisual
a} :: Visual)

-- | A gauge chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/gauge-chart.html Using gauge charts>
-- in the /Amazon QuickSight User Guide/.
visual_gaugeChartVisual :: Lens.Lens' Visual (Prelude.Maybe GaugeChartVisual)
visual_gaugeChartVisual :: Lens' Visual (Maybe GaugeChartVisual)
visual_gaugeChartVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe GaugeChartVisual
gaugeChartVisual :: Maybe GaugeChartVisual
$sel:gaugeChartVisual:Visual' :: Visual -> Maybe GaugeChartVisual
gaugeChartVisual} -> Maybe GaugeChartVisual
gaugeChartVisual) (\s :: Visual
s@Visual' {} Maybe GaugeChartVisual
a -> Visual
s {$sel:gaugeChartVisual:Visual' :: Maybe GaugeChartVisual
gaugeChartVisual = Maybe GaugeChartVisual
a} :: Visual)

-- | A geospatial map or a points on map visual.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/point-maps.html Creating point maps>
-- in the /Amazon QuickSight User Guide/.
visual_geospatialMapVisual :: Lens.Lens' Visual (Prelude.Maybe GeospatialMapVisual)
visual_geospatialMapVisual :: Lens' Visual (Maybe GeospatialMapVisual)
visual_geospatialMapVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe GeospatialMapVisual
geospatialMapVisual :: Maybe GeospatialMapVisual
$sel:geospatialMapVisual:Visual' :: Visual -> Maybe GeospatialMapVisual
geospatialMapVisual} -> Maybe GeospatialMapVisual
geospatialMapVisual) (\s :: Visual
s@Visual' {} Maybe GeospatialMapVisual
a -> Visual
s {$sel:geospatialMapVisual:Visual' :: Maybe GeospatialMapVisual
geospatialMapVisual = Maybe GeospatialMapVisual
a} :: Visual)

-- | A heat map.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/heat-map.html Using heat maps>
-- in the /Amazon QuickSight User Guide/.
visual_heatMapVisual :: Lens.Lens' Visual (Prelude.Maybe HeatMapVisual)
visual_heatMapVisual :: Lens' Visual (Maybe HeatMapVisual)
visual_heatMapVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe HeatMapVisual
heatMapVisual :: Maybe HeatMapVisual
$sel:heatMapVisual:Visual' :: Visual -> Maybe HeatMapVisual
heatMapVisual} -> Maybe HeatMapVisual
heatMapVisual) (\s :: Visual
s@Visual' {} Maybe HeatMapVisual
a -> Visual
s {$sel:heatMapVisual:Visual' :: Maybe HeatMapVisual
heatMapVisual = Maybe HeatMapVisual
a} :: Visual)

-- | A histogram.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/histogram-charts.html Using histograms>
-- in the /Amazon QuickSight User Guide/.
visual_histogramVisual :: Lens.Lens' Visual (Prelude.Maybe HistogramVisual)
visual_histogramVisual :: Lens' Visual (Maybe HistogramVisual)
visual_histogramVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe HistogramVisual
histogramVisual :: Maybe HistogramVisual
$sel:histogramVisual:Visual' :: Visual -> Maybe HistogramVisual
histogramVisual} -> Maybe HistogramVisual
histogramVisual) (\s :: Visual
s@Visual' {} Maybe HistogramVisual
a -> Visual
s {$sel:histogramVisual:Visual' :: Maybe HistogramVisual
histogramVisual = Maybe HistogramVisual
a} :: Visual)

-- | An insight visual.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/computational-insights.html Working with insights>
-- in the /Amazon QuickSight User Guide/.
visual_insightVisual :: Lens.Lens' Visual (Prelude.Maybe InsightVisual)
visual_insightVisual :: Lens' Visual (Maybe InsightVisual)
visual_insightVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe InsightVisual
insightVisual :: Maybe InsightVisual
$sel:insightVisual:Visual' :: Visual -> Maybe InsightVisual
insightVisual} -> Maybe InsightVisual
insightVisual) (\s :: Visual
s@Visual' {} Maybe InsightVisual
a -> Visual
s {$sel:insightVisual:Visual' :: Maybe InsightVisual
insightVisual = Maybe InsightVisual
a} :: Visual)

-- | A key performance indicator (KPI).
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/kpi.html Using KPIs>
-- in the /Amazon QuickSight User Guide/.
visual_kPIVisual :: Lens.Lens' Visual (Prelude.Maybe KPIVisual)
visual_kPIVisual :: Lens' Visual (Maybe KPIVisual)
visual_kPIVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe KPIVisual
kPIVisual :: Maybe KPIVisual
$sel:kPIVisual:Visual' :: Visual -> Maybe KPIVisual
kPIVisual} -> Maybe KPIVisual
kPIVisual) (\s :: Visual
s@Visual' {} Maybe KPIVisual
a -> Visual
s {$sel:kPIVisual:Visual' :: Maybe KPIVisual
kPIVisual = Maybe KPIVisual
a} :: Visual)

-- | A line chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/line-charts.html Using line charts>
-- in the /Amazon QuickSight User Guide/.
visual_lineChartVisual :: Lens.Lens' Visual (Prelude.Maybe LineChartVisual)
visual_lineChartVisual :: Lens' Visual (Maybe LineChartVisual)
visual_lineChartVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe LineChartVisual
lineChartVisual :: Maybe LineChartVisual
$sel:lineChartVisual:Visual' :: Visual -> Maybe LineChartVisual
lineChartVisual} -> Maybe LineChartVisual
lineChartVisual) (\s :: Visual
s@Visual' {} Maybe LineChartVisual
a -> Visual
s {$sel:lineChartVisual:Visual' :: Maybe LineChartVisual
lineChartVisual = Maybe LineChartVisual
a} :: Visual)

-- | A pie or donut chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/pie-chart.html Using pie charts>
-- in the /Amazon QuickSight User Guide/.
visual_pieChartVisual :: Lens.Lens' Visual (Prelude.Maybe PieChartVisual)
visual_pieChartVisual :: Lens' Visual (Maybe PieChartVisual)
visual_pieChartVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe PieChartVisual
pieChartVisual :: Maybe PieChartVisual
$sel:pieChartVisual:Visual' :: Visual -> Maybe PieChartVisual
pieChartVisual} -> Maybe PieChartVisual
pieChartVisual) (\s :: Visual
s@Visual' {} Maybe PieChartVisual
a -> Visual
s {$sel:pieChartVisual:Visual' :: Maybe PieChartVisual
pieChartVisual = Maybe PieChartVisual
a} :: Visual)

-- | A pivot table.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/pivot-table.html Using pivot tables>
-- in the /Amazon QuickSight User Guide/.
visual_pivotTableVisual :: Lens.Lens' Visual (Prelude.Maybe PivotTableVisual)
visual_pivotTableVisual :: Lens' Visual (Maybe PivotTableVisual)
visual_pivotTableVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe PivotTableVisual
pivotTableVisual :: Maybe PivotTableVisual
$sel:pivotTableVisual:Visual' :: Visual -> Maybe PivotTableVisual
pivotTableVisual} -> Maybe PivotTableVisual
pivotTableVisual) (\s :: Visual
s@Visual' {} Maybe PivotTableVisual
a -> Visual
s {$sel:pivotTableVisual:Visual' :: Maybe PivotTableVisual
pivotTableVisual = Maybe PivotTableVisual
a} :: Visual)

-- | A sankey diagram.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/sankey-diagram.html Using Sankey diagrams>
-- in the /Amazon QuickSight User Guide/.
visual_sankeyDiagramVisual :: Lens.Lens' Visual (Prelude.Maybe SankeyDiagramVisual)
visual_sankeyDiagramVisual :: Lens' Visual (Maybe SankeyDiagramVisual)
visual_sankeyDiagramVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe SankeyDiagramVisual
sankeyDiagramVisual :: Maybe SankeyDiagramVisual
$sel:sankeyDiagramVisual:Visual' :: Visual -> Maybe SankeyDiagramVisual
sankeyDiagramVisual} -> Maybe SankeyDiagramVisual
sankeyDiagramVisual) (\s :: Visual
s@Visual' {} Maybe SankeyDiagramVisual
a -> Visual
s {$sel:sankeyDiagramVisual:Visual' :: Maybe SankeyDiagramVisual
sankeyDiagramVisual = Maybe SankeyDiagramVisual
a} :: Visual)

-- | A scatter plot.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/scatter-plot.html Using scatter plots>
-- in the /Amazon QuickSight User Guide/.
visual_scatterPlotVisual :: Lens.Lens' Visual (Prelude.Maybe ScatterPlotVisual)
visual_scatterPlotVisual :: Lens' Visual (Maybe ScatterPlotVisual)
visual_scatterPlotVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe ScatterPlotVisual
scatterPlotVisual :: Maybe ScatterPlotVisual
$sel:scatterPlotVisual:Visual' :: Visual -> Maybe ScatterPlotVisual
scatterPlotVisual} -> Maybe ScatterPlotVisual
scatterPlotVisual) (\s :: Visual
s@Visual' {} Maybe ScatterPlotVisual
a -> Visual
s {$sel:scatterPlotVisual:Visual' :: Maybe ScatterPlotVisual
scatterPlotVisual = Maybe ScatterPlotVisual
a} :: Visual)

-- | A table visual.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/tabular.html Using tables as visuals>
-- in the /Amazon QuickSight User Guide/.
visual_tableVisual :: Lens.Lens' Visual (Prelude.Maybe TableVisual)
visual_tableVisual :: Lens' Visual (Maybe TableVisual)
visual_tableVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe TableVisual
tableVisual :: Maybe TableVisual
$sel:tableVisual:Visual' :: Visual -> Maybe TableVisual
tableVisual} -> Maybe TableVisual
tableVisual) (\s :: Visual
s@Visual' {} Maybe TableVisual
a -> Visual
s {$sel:tableVisual:Visual' :: Maybe TableVisual
tableVisual = Maybe TableVisual
a} :: Visual)

-- | A tree map.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/tree-map.html Using tree maps>
-- in the /Amazon QuickSight User Guide/.
visual_treeMapVisual :: Lens.Lens' Visual (Prelude.Maybe TreeMapVisual)
visual_treeMapVisual :: Lens' Visual (Maybe TreeMapVisual)
visual_treeMapVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe TreeMapVisual
treeMapVisual :: Maybe TreeMapVisual
$sel:treeMapVisual:Visual' :: Visual -> Maybe TreeMapVisual
treeMapVisual} -> Maybe TreeMapVisual
treeMapVisual) (\s :: Visual
s@Visual' {} Maybe TreeMapVisual
a -> Visual
s {$sel:treeMapVisual:Visual' :: Maybe TreeMapVisual
treeMapVisual = Maybe TreeMapVisual
a} :: Visual)

-- | A waterfall chart.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/waterfall-chart.html Using waterfall charts>
-- in the /Amazon QuickSight User Guide/.
visual_waterfallVisual :: Lens.Lens' Visual (Prelude.Maybe WaterfallVisual)
visual_waterfallVisual :: Lens' Visual (Maybe WaterfallVisual)
visual_waterfallVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe WaterfallVisual
waterfallVisual :: Maybe WaterfallVisual
$sel:waterfallVisual:Visual' :: Visual -> Maybe WaterfallVisual
waterfallVisual} -> Maybe WaterfallVisual
waterfallVisual) (\s :: Visual
s@Visual' {} Maybe WaterfallVisual
a -> Visual
s {$sel:waterfallVisual:Visual' :: Maybe WaterfallVisual
waterfallVisual = Maybe WaterfallVisual
a} :: Visual)

-- | A word cloud.
--
-- For more information, see
-- <https://docs.aws.amazon.com/quicksight/latest/user/word-cloud.html Using word clouds>
-- in the /Amazon QuickSight User Guide/.
visual_wordCloudVisual :: Lens.Lens' Visual (Prelude.Maybe WordCloudVisual)
visual_wordCloudVisual :: Lens' Visual (Maybe WordCloudVisual)
visual_wordCloudVisual = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Visual' {Maybe WordCloudVisual
wordCloudVisual :: Maybe WordCloudVisual
$sel:wordCloudVisual:Visual' :: Visual -> Maybe WordCloudVisual
wordCloudVisual} -> Maybe WordCloudVisual
wordCloudVisual) (\s :: Visual
s@Visual' {} Maybe WordCloudVisual
a -> Visual
s {$sel:wordCloudVisual:Visual' :: Maybe WordCloudVisual
wordCloudVisual = Maybe WordCloudVisual
a} :: Visual)

instance Data.FromJSON Visual where
  parseJSON :: Value -> Parser Visual
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"Visual"
      ( \Object
x ->
          Maybe BarChartVisual
-> Maybe BoxPlotVisual
-> Maybe ComboChartVisual
-> Maybe CustomContentVisual
-> Maybe EmptyVisual
-> Maybe FilledMapVisual
-> Maybe FunnelChartVisual
-> Maybe GaugeChartVisual
-> Maybe GeospatialMapVisual
-> Maybe HeatMapVisual
-> Maybe HistogramVisual
-> Maybe InsightVisual
-> Maybe KPIVisual
-> Maybe LineChartVisual
-> Maybe PieChartVisual
-> Maybe PivotTableVisual
-> Maybe SankeyDiagramVisual
-> Maybe ScatterPlotVisual
-> Maybe TableVisual
-> Maybe TreeMapVisual
-> Maybe WaterfallVisual
-> Maybe WordCloudVisual
-> Visual
Visual'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"BarChartVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"BoxPlotVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ComboChartVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CustomContentVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"EmptyVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FilledMapVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FunnelChartVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"GaugeChartVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"GeospatialMapVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HeatMapVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"HistogramVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"InsightVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"KPIVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LineChartVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PieChartVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PivotTableVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SankeyDiagramVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ScatterPlotVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TableVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TreeMapVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"WaterfallVisual")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"WordCloudVisual")
      )

instance Prelude.Hashable Visual where
  hashWithSalt :: Int -> Visual -> Int
hashWithSalt Int
_salt Visual' {Maybe WaterfallVisual
Maybe TreeMapVisual
Maybe ScatterPlotVisual
Maybe SankeyDiagramVisual
Maybe PieChartVisual
Maybe KPIVisual
Maybe InsightVisual
Maybe HistogramVisual
Maybe HeatMapVisual
Maybe GeospatialMapVisual
Maybe GaugeChartVisual
Maybe FunnelChartVisual
Maybe FilledMapVisual
Maybe EmptyVisual
Maybe CustomContentVisual
Maybe TableVisual
Maybe PivotTableVisual
Maybe LineChartVisual
Maybe ComboChartVisual
Maybe BoxPlotVisual
Maybe BarChartVisual
Maybe WordCloudVisual
wordCloudVisual :: Maybe WordCloudVisual
waterfallVisual :: Maybe WaterfallVisual
treeMapVisual :: Maybe TreeMapVisual
tableVisual :: Maybe TableVisual
scatterPlotVisual :: Maybe ScatterPlotVisual
sankeyDiagramVisual :: Maybe SankeyDiagramVisual
pivotTableVisual :: Maybe PivotTableVisual
pieChartVisual :: Maybe PieChartVisual
lineChartVisual :: Maybe LineChartVisual
kPIVisual :: Maybe KPIVisual
insightVisual :: Maybe InsightVisual
histogramVisual :: Maybe HistogramVisual
heatMapVisual :: Maybe HeatMapVisual
geospatialMapVisual :: Maybe GeospatialMapVisual
gaugeChartVisual :: Maybe GaugeChartVisual
funnelChartVisual :: Maybe FunnelChartVisual
filledMapVisual :: Maybe FilledMapVisual
emptyVisual :: Maybe EmptyVisual
customContentVisual :: Maybe CustomContentVisual
comboChartVisual :: Maybe ComboChartVisual
boxPlotVisual :: Maybe BoxPlotVisual
barChartVisual :: Maybe BarChartVisual
$sel:wordCloudVisual:Visual' :: Visual -> Maybe WordCloudVisual
$sel:waterfallVisual:Visual' :: Visual -> Maybe WaterfallVisual
$sel:treeMapVisual:Visual' :: Visual -> Maybe TreeMapVisual
$sel:tableVisual:Visual' :: Visual -> Maybe TableVisual
$sel:scatterPlotVisual:Visual' :: Visual -> Maybe ScatterPlotVisual
$sel:sankeyDiagramVisual:Visual' :: Visual -> Maybe SankeyDiagramVisual
$sel:pivotTableVisual:Visual' :: Visual -> Maybe PivotTableVisual
$sel:pieChartVisual:Visual' :: Visual -> Maybe PieChartVisual
$sel:lineChartVisual:Visual' :: Visual -> Maybe LineChartVisual
$sel:kPIVisual:Visual' :: Visual -> Maybe KPIVisual
$sel:insightVisual:Visual' :: Visual -> Maybe InsightVisual
$sel:histogramVisual:Visual' :: Visual -> Maybe HistogramVisual
$sel:heatMapVisual:Visual' :: Visual -> Maybe HeatMapVisual
$sel:geospatialMapVisual:Visual' :: Visual -> Maybe GeospatialMapVisual
$sel:gaugeChartVisual:Visual' :: Visual -> Maybe GaugeChartVisual
$sel:funnelChartVisual:Visual' :: Visual -> Maybe FunnelChartVisual
$sel:filledMapVisual:Visual' :: Visual -> Maybe FilledMapVisual
$sel:emptyVisual:Visual' :: Visual -> Maybe EmptyVisual
$sel:customContentVisual:Visual' :: Visual -> Maybe CustomContentVisual
$sel:comboChartVisual:Visual' :: Visual -> Maybe ComboChartVisual
$sel:boxPlotVisual:Visual' :: Visual -> Maybe BoxPlotVisual
$sel:barChartVisual:Visual' :: Visual -> Maybe BarChartVisual
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BarChartVisual
barChartVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BoxPlotVisual
boxPlotVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ComboChartVisual
comboChartVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CustomContentVisual
customContentVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EmptyVisual
emptyVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FilledMapVisual
filledMapVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FunnelChartVisual
funnelChartVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe GaugeChartVisual
gaugeChartVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe GeospatialMapVisual
geospatialMapVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe HeatMapVisual
heatMapVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe HistogramVisual
histogramVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InsightVisual
insightVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe KPIVisual
kPIVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LineChartVisual
lineChartVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PieChartVisual
pieChartVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PivotTableVisual
pivotTableVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SankeyDiagramVisual
sankeyDiagramVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ScatterPlotVisual
scatterPlotVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TableVisual
tableVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TreeMapVisual
treeMapVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WaterfallVisual
waterfallVisual
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WordCloudVisual
wordCloudVisual

instance Prelude.NFData Visual where
  rnf :: Visual -> ()
rnf Visual' {Maybe WaterfallVisual
Maybe TreeMapVisual
Maybe ScatterPlotVisual
Maybe SankeyDiagramVisual
Maybe PieChartVisual
Maybe KPIVisual
Maybe InsightVisual
Maybe HistogramVisual
Maybe HeatMapVisual
Maybe GeospatialMapVisual
Maybe GaugeChartVisual
Maybe FunnelChartVisual
Maybe FilledMapVisual
Maybe EmptyVisual
Maybe CustomContentVisual
Maybe TableVisual
Maybe PivotTableVisual
Maybe LineChartVisual
Maybe ComboChartVisual
Maybe BoxPlotVisual
Maybe BarChartVisual
Maybe WordCloudVisual
wordCloudVisual :: Maybe WordCloudVisual
waterfallVisual :: Maybe WaterfallVisual
treeMapVisual :: Maybe TreeMapVisual
tableVisual :: Maybe TableVisual
scatterPlotVisual :: Maybe ScatterPlotVisual
sankeyDiagramVisual :: Maybe SankeyDiagramVisual
pivotTableVisual :: Maybe PivotTableVisual
pieChartVisual :: Maybe PieChartVisual
lineChartVisual :: Maybe LineChartVisual
kPIVisual :: Maybe KPIVisual
insightVisual :: Maybe InsightVisual
histogramVisual :: Maybe HistogramVisual
heatMapVisual :: Maybe HeatMapVisual
geospatialMapVisual :: Maybe GeospatialMapVisual
gaugeChartVisual :: Maybe GaugeChartVisual
funnelChartVisual :: Maybe FunnelChartVisual
filledMapVisual :: Maybe FilledMapVisual
emptyVisual :: Maybe EmptyVisual
customContentVisual :: Maybe CustomContentVisual
comboChartVisual :: Maybe ComboChartVisual
boxPlotVisual :: Maybe BoxPlotVisual
barChartVisual :: Maybe BarChartVisual
$sel:wordCloudVisual:Visual' :: Visual -> Maybe WordCloudVisual
$sel:waterfallVisual:Visual' :: Visual -> Maybe WaterfallVisual
$sel:treeMapVisual:Visual' :: Visual -> Maybe TreeMapVisual
$sel:tableVisual:Visual' :: Visual -> Maybe TableVisual
$sel:scatterPlotVisual:Visual' :: Visual -> Maybe ScatterPlotVisual
$sel:sankeyDiagramVisual:Visual' :: Visual -> Maybe SankeyDiagramVisual
$sel:pivotTableVisual:Visual' :: Visual -> Maybe PivotTableVisual
$sel:pieChartVisual:Visual' :: Visual -> Maybe PieChartVisual
$sel:lineChartVisual:Visual' :: Visual -> Maybe LineChartVisual
$sel:kPIVisual:Visual' :: Visual -> Maybe KPIVisual
$sel:insightVisual:Visual' :: Visual -> Maybe InsightVisual
$sel:histogramVisual:Visual' :: Visual -> Maybe HistogramVisual
$sel:heatMapVisual:Visual' :: Visual -> Maybe HeatMapVisual
$sel:geospatialMapVisual:Visual' :: Visual -> Maybe GeospatialMapVisual
$sel:gaugeChartVisual:Visual' :: Visual -> Maybe GaugeChartVisual
$sel:funnelChartVisual:Visual' :: Visual -> Maybe FunnelChartVisual
$sel:filledMapVisual:Visual' :: Visual -> Maybe FilledMapVisual
$sel:emptyVisual:Visual' :: Visual -> Maybe EmptyVisual
$sel:customContentVisual:Visual' :: Visual -> Maybe CustomContentVisual
$sel:comboChartVisual:Visual' :: Visual -> Maybe ComboChartVisual
$sel:boxPlotVisual:Visual' :: Visual -> Maybe BoxPlotVisual
$sel:barChartVisual:Visual' :: Visual -> Maybe BarChartVisual
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe BarChartVisual
barChartVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BoxPlotVisual
boxPlotVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ComboChartVisual
comboChartVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CustomContentVisual
customContentVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EmptyVisual
emptyVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FilledMapVisual
filledMapVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FunnelChartVisual
funnelChartVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe GaugeChartVisual
gaugeChartVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe GeospatialMapVisual
geospatialMapVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HeatMapVisual
heatMapVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HistogramVisual
histogramVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InsightVisual
insightVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe KPIVisual
kPIVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LineChartVisual
lineChartVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PieChartVisual
pieChartVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PivotTableVisual
pivotTableVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SankeyDiagramVisual
sankeyDiagramVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ScatterPlotVisual
scatterPlotVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TableVisual
tableVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TreeMapVisual
treeMapVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WaterfallVisual
waterfallVisual
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf
        Maybe WordCloudVisual
wordCloudVisual

instance Data.ToJSON Visual where
  toJSON :: Visual -> Value
toJSON Visual' {Maybe WaterfallVisual
Maybe TreeMapVisual
Maybe ScatterPlotVisual
Maybe SankeyDiagramVisual
Maybe PieChartVisual
Maybe KPIVisual
Maybe InsightVisual
Maybe HistogramVisual
Maybe HeatMapVisual
Maybe GeospatialMapVisual
Maybe GaugeChartVisual
Maybe FunnelChartVisual
Maybe FilledMapVisual
Maybe EmptyVisual
Maybe CustomContentVisual
Maybe TableVisual
Maybe PivotTableVisual
Maybe LineChartVisual
Maybe ComboChartVisual
Maybe BoxPlotVisual
Maybe BarChartVisual
Maybe WordCloudVisual
wordCloudVisual :: Maybe WordCloudVisual
waterfallVisual :: Maybe WaterfallVisual
treeMapVisual :: Maybe TreeMapVisual
tableVisual :: Maybe TableVisual
scatterPlotVisual :: Maybe ScatterPlotVisual
sankeyDiagramVisual :: Maybe SankeyDiagramVisual
pivotTableVisual :: Maybe PivotTableVisual
pieChartVisual :: Maybe PieChartVisual
lineChartVisual :: Maybe LineChartVisual
kPIVisual :: Maybe KPIVisual
insightVisual :: Maybe InsightVisual
histogramVisual :: Maybe HistogramVisual
heatMapVisual :: Maybe HeatMapVisual
geospatialMapVisual :: Maybe GeospatialMapVisual
gaugeChartVisual :: Maybe GaugeChartVisual
funnelChartVisual :: Maybe FunnelChartVisual
filledMapVisual :: Maybe FilledMapVisual
emptyVisual :: Maybe EmptyVisual
customContentVisual :: Maybe CustomContentVisual
comboChartVisual :: Maybe ComboChartVisual
boxPlotVisual :: Maybe BoxPlotVisual
barChartVisual :: Maybe BarChartVisual
$sel:wordCloudVisual:Visual' :: Visual -> Maybe WordCloudVisual
$sel:waterfallVisual:Visual' :: Visual -> Maybe WaterfallVisual
$sel:treeMapVisual:Visual' :: Visual -> Maybe TreeMapVisual
$sel:tableVisual:Visual' :: Visual -> Maybe TableVisual
$sel:scatterPlotVisual:Visual' :: Visual -> Maybe ScatterPlotVisual
$sel:sankeyDiagramVisual:Visual' :: Visual -> Maybe SankeyDiagramVisual
$sel:pivotTableVisual:Visual' :: Visual -> Maybe PivotTableVisual
$sel:pieChartVisual:Visual' :: Visual -> Maybe PieChartVisual
$sel:lineChartVisual:Visual' :: Visual -> Maybe LineChartVisual
$sel:kPIVisual:Visual' :: Visual -> Maybe KPIVisual
$sel:insightVisual:Visual' :: Visual -> Maybe InsightVisual
$sel:histogramVisual:Visual' :: Visual -> Maybe HistogramVisual
$sel:heatMapVisual:Visual' :: Visual -> Maybe HeatMapVisual
$sel:geospatialMapVisual:Visual' :: Visual -> Maybe GeospatialMapVisual
$sel:gaugeChartVisual:Visual' :: Visual -> Maybe GaugeChartVisual
$sel:funnelChartVisual:Visual' :: Visual -> Maybe FunnelChartVisual
$sel:filledMapVisual:Visual' :: Visual -> Maybe FilledMapVisual
$sel:emptyVisual:Visual' :: Visual -> Maybe EmptyVisual
$sel:customContentVisual:Visual' :: Visual -> Maybe CustomContentVisual
$sel:comboChartVisual:Visual' :: Visual -> Maybe ComboChartVisual
$sel:boxPlotVisual:Visual' :: Visual -> Maybe BoxPlotVisual
$sel:barChartVisual:Visual' :: Visual -> Maybe BarChartVisual
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"BarChartVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe BarChartVisual
barChartVisual,
            (Key
"BoxPlotVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe BoxPlotVisual
boxPlotVisual,
            (Key
"ComboChartVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ComboChartVisual
comboChartVisual,
            (Key
"CustomContentVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CustomContentVisual
customContentVisual,
            (Key
"EmptyVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EmptyVisual
emptyVisual,
            (Key
"FilledMapVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FilledMapVisual
filledMapVisual,
            (Key
"FunnelChartVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FunnelChartVisual
funnelChartVisual,
            (Key
"GaugeChartVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GaugeChartVisual
gaugeChartVisual,
            (Key
"GeospatialMapVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GeospatialMapVisual
geospatialMapVisual,
            (Key
"HeatMapVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HeatMapVisual
heatMapVisual,
            (Key
"HistogramVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HistogramVisual
histogramVisual,
            (Key
"InsightVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe InsightVisual
insightVisual,
            (Key
"KPIVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe KPIVisual
kPIVisual,
            (Key
"LineChartVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LineChartVisual
lineChartVisual,
            (Key
"PieChartVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PieChartVisual
pieChartVisual,
            (Key
"PivotTableVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe PivotTableVisual
pivotTableVisual,
            (Key
"SankeyDiagramVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SankeyDiagramVisual
sankeyDiagramVisual,
            (Key
"ScatterPlotVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ScatterPlotVisual
scatterPlotVisual,
            (Key
"TableVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TableVisual
tableVisual,
            (Key
"TreeMapVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TreeMapVisual
treeMapVisual,
            (Key
"WaterfallVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe WaterfallVisual
waterfallVisual,
            (Key
"WordCloudVisual" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe WordCloudVisual
wordCloudVisual
          ]
      )