{-# 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.WaterfallChartConfiguration
-- 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.WaterfallChartConfiguration 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.AxisDisplayOptions
import Amazonka.QuickSight.Types.ChartAxisLabelOptions
import Amazonka.QuickSight.Types.DataLabelOptions
import Amazonka.QuickSight.Types.LegendOptions
import Amazonka.QuickSight.Types.VisualPalette
import Amazonka.QuickSight.Types.WaterfallChartFieldWells
import Amazonka.QuickSight.Types.WaterfallChartOptions
import Amazonka.QuickSight.Types.WaterfallChartSortConfiguration

-- | The configuration for a waterfall visual.
--
-- /See:/ 'newWaterfallChartConfiguration' smart constructor.
data WaterfallChartConfiguration = WaterfallChartConfiguration'
  { -- | The options that determine the presentation of the category axis.
    WaterfallChartConfiguration -> Maybe AxisDisplayOptions
categoryAxisDisplayOptions :: Prelude.Maybe AxisDisplayOptions,
    -- | The options that determine the presentation of the category axis label.
    WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
categoryAxisLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The data label configuration of a waterfall visual.
    WaterfallChartConfiguration -> Maybe DataLabelOptions
dataLabels :: Prelude.Maybe DataLabelOptions,
    -- | The field well configuration of a waterfall visual.
    WaterfallChartConfiguration -> Maybe WaterfallChartFieldWells
fieldWells :: Prelude.Maybe WaterfallChartFieldWells,
    -- | The legend configuration of a waterfall visual.
    WaterfallChartConfiguration -> Maybe LegendOptions
legend :: Prelude.Maybe LegendOptions,
    -- | The options that determine the presentation of the y-axis.
    WaterfallChartConfiguration -> Maybe AxisDisplayOptions
primaryYAxisDisplayOptions :: Prelude.Maybe AxisDisplayOptions,
    -- | The options that determine the presentation of the y-axis label.
    WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions :: Prelude.Maybe ChartAxisLabelOptions,
    -- | The sort configuration of a waterfall visual.
    WaterfallChartConfiguration
-> Maybe WaterfallChartSortConfiguration
sortConfiguration :: Prelude.Maybe WaterfallChartSortConfiguration,
    -- | The visual palette configuration of a waterfall visual.
    WaterfallChartConfiguration -> Maybe VisualPalette
visualPalette :: Prelude.Maybe VisualPalette,
    -- | The options that determine the presentation of a waterfall visual.
    WaterfallChartConfiguration -> Maybe WaterfallChartOptions
waterfallChartOptions :: Prelude.Maybe WaterfallChartOptions
  }
  deriving (WaterfallChartConfiguration -> WaterfallChartConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WaterfallChartConfiguration -> WaterfallChartConfiguration -> Bool
$c/= :: WaterfallChartConfiguration -> WaterfallChartConfiguration -> Bool
== :: WaterfallChartConfiguration -> WaterfallChartConfiguration -> Bool
$c== :: WaterfallChartConfiguration -> WaterfallChartConfiguration -> Bool
Prelude.Eq, Int -> WaterfallChartConfiguration -> ShowS
[WaterfallChartConfiguration] -> ShowS
WaterfallChartConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WaterfallChartConfiguration] -> ShowS
$cshowList :: [WaterfallChartConfiguration] -> ShowS
show :: WaterfallChartConfiguration -> String
$cshow :: WaterfallChartConfiguration -> String
showsPrec :: Int -> WaterfallChartConfiguration -> ShowS
$cshowsPrec :: Int -> WaterfallChartConfiguration -> ShowS
Prelude.Show, forall x.
Rep WaterfallChartConfiguration x -> WaterfallChartConfiguration
forall x.
WaterfallChartConfiguration -> Rep WaterfallChartConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep WaterfallChartConfiguration x -> WaterfallChartConfiguration
$cfrom :: forall x.
WaterfallChartConfiguration -> Rep WaterfallChartConfiguration x
Prelude.Generic)

-- |
-- Create a value of 'WaterfallChartConfiguration' 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:
--
-- 'categoryAxisDisplayOptions', 'waterfallChartConfiguration_categoryAxisDisplayOptions' - The options that determine the presentation of the category axis.
--
-- 'categoryAxisLabelOptions', 'waterfallChartConfiguration_categoryAxisLabelOptions' - The options that determine the presentation of the category axis label.
--
-- 'dataLabels', 'waterfallChartConfiguration_dataLabels' - The data label configuration of a waterfall visual.
--
-- 'fieldWells', 'waterfallChartConfiguration_fieldWells' - The field well configuration of a waterfall visual.
--
-- 'legend', 'waterfallChartConfiguration_legend' - The legend configuration of a waterfall visual.
--
-- 'primaryYAxisDisplayOptions', 'waterfallChartConfiguration_primaryYAxisDisplayOptions' - The options that determine the presentation of the y-axis.
--
-- 'primaryYAxisLabelOptions', 'waterfallChartConfiguration_primaryYAxisLabelOptions' - The options that determine the presentation of the y-axis label.
--
-- 'sortConfiguration', 'waterfallChartConfiguration_sortConfiguration' - The sort configuration of a waterfall visual.
--
-- 'visualPalette', 'waterfallChartConfiguration_visualPalette' - The visual palette configuration of a waterfall visual.
--
-- 'waterfallChartOptions', 'waterfallChartConfiguration_waterfallChartOptions' - The options that determine the presentation of a waterfall visual.
newWaterfallChartConfiguration ::
  WaterfallChartConfiguration
newWaterfallChartConfiguration :: WaterfallChartConfiguration
newWaterfallChartConfiguration =
  WaterfallChartConfiguration'
    { $sel:categoryAxisDisplayOptions:WaterfallChartConfiguration' :: Maybe AxisDisplayOptions
categoryAxisDisplayOptions =
        forall a. Maybe a
Prelude.Nothing,
      $sel:categoryAxisLabelOptions:WaterfallChartConfiguration' :: Maybe ChartAxisLabelOptions
categoryAxisLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:dataLabels:WaterfallChartConfiguration' :: Maybe DataLabelOptions
dataLabels = forall a. Maybe a
Prelude.Nothing,
      $sel:fieldWells:WaterfallChartConfiguration' :: Maybe WaterfallChartFieldWells
fieldWells = forall a. Maybe a
Prelude.Nothing,
      $sel:legend:WaterfallChartConfiguration' :: Maybe LegendOptions
legend = forall a. Maybe a
Prelude.Nothing,
      $sel:primaryYAxisDisplayOptions:WaterfallChartConfiguration' :: Maybe AxisDisplayOptions
primaryYAxisDisplayOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:primaryYAxisLabelOptions:WaterfallChartConfiguration' :: Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:sortConfiguration:WaterfallChartConfiguration' :: Maybe WaterfallChartSortConfiguration
sortConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:visualPalette:WaterfallChartConfiguration' :: Maybe VisualPalette
visualPalette = forall a. Maybe a
Prelude.Nothing,
      $sel:waterfallChartOptions:WaterfallChartConfiguration' :: Maybe WaterfallChartOptions
waterfallChartOptions = forall a. Maybe a
Prelude.Nothing
    }

-- | The options that determine the presentation of the category axis.
waterfallChartConfiguration_categoryAxisDisplayOptions :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe AxisDisplayOptions)
waterfallChartConfiguration_categoryAxisDisplayOptions :: Lens' WaterfallChartConfiguration (Maybe AxisDisplayOptions)
waterfallChartConfiguration_categoryAxisDisplayOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe AxisDisplayOptions
categoryAxisDisplayOptions :: Maybe AxisDisplayOptions
$sel:categoryAxisDisplayOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe AxisDisplayOptions
categoryAxisDisplayOptions} -> Maybe AxisDisplayOptions
categoryAxisDisplayOptions) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe AxisDisplayOptions
a -> WaterfallChartConfiguration
s {$sel:categoryAxisDisplayOptions:WaterfallChartConfiguration' :: Maybe AxisDisplayOptions
categoryAxisDisplayOptions = Maybe AxisDisplayOptions
a} :: WaterfallChartConfiguration)

-- | The options that determine the presentation of the category axis label.
waterfallChartConfiguration_categoryAxisLabelOptions :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
waterfallChartConfiguration_categoryAxisLabelOptions :: Lens' WaterfallChartConfiguration (Maybe ChartAxisLabelOptions)
waterfallChartConfiguration_categoryAxisLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe ChartAxisLabelOptions
categoryAxisLabelOptions :: Maybe ChartAxisLabelOptions
$sel:categoryAxisLabelOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
categoryAxisLabelOptions} -> Maybe ChartAxisLabelOptions
categoryAxisLabelOptions) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> WaterfallChartConfiguration
s {$sel:categoryAxisLabelOptions:WaterfallChartConfiguration' :: Maybe ChartAxisLabelOptions
categoryAxisLabelOptions = Maybe ChartAxisLabelOptions
a} :: WaterfallChartConfiguration)

-- | The data label configuration of a waterfall visual.
waterfallChartConfiguration_dataLabels :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe DataLabelOptions)
waterfallChartConfiguration_dataLabels :: Lens' WaterfallChartConfiguration (Maybe DataLabelOptions)
waterfallChartConfiguration_dataLabels = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe DataLabelOptions
dataLabels :: Maybe DataLabelOptions
$sel:dataLabels:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe DataLabelOptions
dataLabels} -> Maybe DataLabelOptions
dataLabels) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe DataLabelOptions
a -> WaterfallChartConfiguration
s {$sel:dataLabels:WaterfallChartConfiguration' :: Maybe DataLabelOptions
dataLabels = Maybe DataLabelOptions
a} :: WaterfallChartConfiguration)

-- | The field well configuration of a waterfall visual.
waterfallChartConfiguration_fieldWells :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe WaterfallChartFieldWells)
waterfallChartConfiguration_fieldWells :: Lens' WaterfallChartConfiguration (Maybe WaterfallChartFieldWells)
waterfallChartConfiguration_fieldWells = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe WaterfallChartFieldWells
fieldWells :: Maybe WaterfallChartFieldWells
$sel:fieldWells:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe WaterfallChartFieldWells
fieldWells} -> Maybe WaterfallChartFieldWells
fieldWells) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe WaterfallChartFieldWells
a -> WaterfallChartConfiguration
s {$sel:fieldWells:WaterfallChartConfiguration' :: Maybe WaterfallChartFieldWells
fieldWells = Maybe WaterfallChartFieldWells
a} :: WaterfallChartConfiguration)

-- | The legend configuration of a waterfall visual.
waterfallChartConfiguration_legend :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe LegendOptions)
waterfallChartConfiguration_legend :: Lens' WaterfallChartConfiguration (Maybe LegendOptions)
waterfallChartConfiguration_legend = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe LegendOptions
legend :: Maybe LegendOptions
$sel:legend:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe LegendOptions
legend} -> Maybe LegendOptions
legend) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe LegendOptions
a -> WaterfallChartConfiguration
s {$sel:legend:WaterfallChartConfiguration' :: Maybe LegendOptions
legend = Maybe LegendOptions
a} :: WaterfallChartConfiguration)

-- | The options that determine the presentation of the y-axis.
waterfallChartConfiguration_primaryYAxisDisplayOptions :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe AxisDisplayOptions)
waterfallChartConfiguration_primaryYAxisDisplayOptions :: Lens' WaterfallChartConfiguration (Maybe AxisDisplayOptions)
waterfallChartConfiguration_primaryYAxisDisplayOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe AxisDisplayOptions
primaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
$sel:primaryYAxisDisplayOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe AxisDisplayOptions
primaryYAxisDisplayOptions} -> Maybe AxisDisplayOptions
primaryYAxisDisplayOptions) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe AxisDisplayOptions
a -> WaterfallChartConfiguration
s {$sel:primaryYAxisDisplayOptions:WaterfallChartConfiguration' :: Maybe AxisDisplayOptions
primaryYAxisDisplayOptions = Maybe AxisDisplayOptions
a} :: WaterfallChartConfiguration)

-- | The options that determine the presentation of the y-axis label.
waterfallChartConfiguration_primaryYAxisLabelOptions :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe ChartAxisLabelOptions)
waterfallChartConfiguration_primaryYAxisLabelOptions :: Lens' WaterfallChartConfiguration (Maybe ChartAxisLabelOptions)
waterfallChartConfiguration_primaryYAxisLabelOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
$sel:primaryYAxisLabelOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions} -> Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe ChartAxisLabelOptions
a -> WaterfallChartConfiguration
s {$sel:primaryYAxisLabelOptions:WaterfallChartConfiguration' :: Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions = Maybe ChartAxisLabelOptions
a} :: WaterfallChartConfiguration)

-- | The sort configuration of a waterfall visual.
waterfallChartConfiguration_sortConfiguration :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe WaterfallChartSortConfiguration)
waterfallChartConfiguration_sortConfiguration :: Lens'
  WaterfallChartConfiguration (Maybe WaterfallChartSortConfiguration)
waterfallChartConfiguration_sortConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe WaterfallChartSortConfiguration
sortConfiguration :: Maybe WaterfallChartSortConfiguration
$sel:sortConfiguration:WaterfallChartConfiguration' :: WaterfallChartConfiguration
-> Maybe WaterfallChartSortConfiguration
sortConfiguration} -> Maybe WaterfallChartSortConfiguration
sortConfiguration) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe WaterfallChartSortConfiguration
a -> WaterfallChartConfiguration
s {$sel:sortConfiguration:WaterfallChartConfiguration' :: Maybe WaterfallChartSortConfiguration
sortConfiguration = Maybe WaterfallChartSortConfiguration
a} :: WaterfallChartConfiguration)

-- | The visual palette configuration of a waterfall visual.
waterfallChartConfiguration_visualPalette :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe VisualPalette)
waterfallChartConfiguration_visualPalette :: Lens' WaterfallChartConfiguration (Maybe VisualPalette)
waterfallChartConfiguration_visualPalette = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe VisualPalette
visualPalette :: Maybe VisualPalette
$sel:visualPalette:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe VisualPalette
visualPalette} -> Maybe VisualPalette
visualPalette) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe VisualPalette
a -> WaterfallChartConfiguration
s {$sel:visualPalette:WaterfallChartConfiguration' :: Maybe VisualPalette
visualPalette = Maybe VisualPalette
a} :: WaterfallChartConfiguration)

-- | The options that determine the presentation of a waterfall visual.
waterfallChartConfiguration_waterfallChartOptions :: Lens.Lens' WaterfallChartConfiguration (Prelude.Maybe WaterfallChartOptions)
waterfallChartConfiguration_waterfallChartOptions :: Lens' WaterfallChartConfiguration (Maybe WaterfallChartOptions)
waterfallChartConfiguration_waterfallChartOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\WaterfallChartConfiguration' {Maybe WaterfallChartOptions
waterfallChartOptions :: Maybe WaterfallChartOptions
$sel:waterfallChartOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe WaterfallChartOptions
waterfallChartOptions} -> Maybe WaterfallChartOptions
waterfallChartOptions) (\s :: WaterfallChartConfiguration
s@WaterfallChartConfiguration' {} Maybe WaterfallChartOptions
a -> WaterfallChartConfiguration
s {$sel:waterfallChartOptions:WaterfallChartConfiguration' :: Maybe WaterfallChartOptions
waterfallChartOptions = Maybe WaterfallChartOptions
a} :: WaterfallChartConfiguration)

instance Data.FromJSON WaterfallChartConfiguration where
  parseJSON :: Value -> Parser WaterfallChartConfiguration
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"WaterfallChartConfiguration"
      ( \Object
x ->
          Maybe AxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> Maybe DataLabelOptions
-> Maybe WaterfallChartFieldWells
-> Maybe LegendOptions
-> Maybe AxisDisplayOptions
-> Maybe ChartAxisLabelOptions
-> Maybe WaterfallChartSortConfiguration
-> Maybe VisualPalette
-> Maybe WaterfallChartOptions
-> WaterfallChartConfiguration
WaterfallChartConfiguration'
            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
"CategoryAxisDisplayOptions")
            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
"CategoryAxisLabelOptions")
            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
"DataLabels")
            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
"FieldWells")
            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
"Legend")
            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
"PrimaryYAxisDisplayOptions")
            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
"PrimaryYAxisLabelOptions")
            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
"SortConfiguration")
            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
"VisualPalette")
            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
"WaterfallChartOptions")
      )

instance Prelude.Hashable WaterfallChartConfiguration where
  hashWithSalt :: Int -> WaterfallChartConfiguration -> Int
hashWithSalt Int
_salt WaterfallChartConfiguration' {Maybe LegendOptions
Maybe DataLabelOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe VisualPalette
Maybe WaterfallChartFieldWells
Maybe WaterfallChartOptions
Maybe WaterfallChartSortConfiguration
waterfallChartOptions :: Maybe WaterfallChartOptions
visualPalette :: Maybe VisualPalette
sortConfiguration :: Maybe WaterfallChartSortConfiguration
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
primaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
legend :: Maybe LegendOptions
fieldWells :: Maybe WaterfallChartFieldWells
dataLabels :: Maybe DataLabelOptions
categoryAxisLabelOptions :: Maybe ChartAxisLabelOptions
categoryAxisDisplayOptions :: Maybe AxisDisplayOptions
$sel:waterfallChartOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe WaterfallChartOptions
$sel:visualPalette:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe VisualPalette
$sel:sortConfiguration:WaterfallChartConfiguration' :: WaterfallChartConfiguration
-> Maybe WaterfallChartSortConfiguration
$sel:primaryYAxisLabelOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:primaryYAxisDisplayOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe AxisDisplayOptions
$sel:legend:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe WaterfallChartFieldWells
$sel:dataLabels:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe DataLabelOptions
$sel:categoryAxisLabelOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryAxisDisplayOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe AxisDisplayOptions
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AxisDisplayOptions
categoryAxisDisplayOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
categoryAxisLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataLabelOptions
dataLabels
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WaterfallChartFieldWells
fieldWells
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LegendOptions
legend
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AxisDisplayOptions
primaryYAxisDisplayOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WaterfallChartSortConfiguration
sortConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VisualPalette
visualPalette
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WaterfallChartOptions
waterfallChartOptions

instance Prelude.NFData WaterfallChartConfiguration where
  rnf :: WaterfallChartConfiguration -> ()
rnf WaterfallChartConfiguration' {Maybe LegendOptions
Maybe DataLabelOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe VisualPalette
Maybe WaterfallChartFieldWells
Maybe WaterfallChartOptions
Maybe WaterfallChartSortConfiguration
waterfallChartOptions :: Maybe WaterfallChartOptions
visualPalette :: Maybe VisualPalette
sortConfiguration :: Maybe WaterfallChartSortConfiguration
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
primaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
legend :: Maybe LegendOptions
fieldWells :: Maybe WaterfallChartFieldWells
dataLabels :: Maybe DataLabelOptions
categoryAxisLabelOptions :: Maybe ChartAxisLabelOptions
categoryAxisDisplayOptions :: Maybe AxisDisplayOptions
$sel:waterfallChartOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe WaterfallChartOptions
$sel:visualPalette:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe VisualPalette
$sel:sortConfiguration:WaterfallChartConfiguration' :: WaterfallChartConfiguration
-> Maybe WaterfallChartSortConfiguration
$sel:primaryYAxisLabelOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:primaryYAxisDisplayOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe AxisDisplayOptions
$sel:legend:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe WaterfallChartFieldWells
$sel:dataLabels:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe DataLabelOptions
$sel:categoryAxisLabelOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryAxisDisplayOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe AxisDisplayOptions
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AxisDisplayOptions
categoryAxisDisplayOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
categoryAxisLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataLabelOptions
dataLabels
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WaterfallChartFieldWells
fieldWells
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LegendOptions
legend
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe AxisDisplayOptions
primaryYAxisDisplayOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ChartAxisLabelOptions
primaryYAxisLabelOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WaterfallChartSortConfiguration
sortConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VisualPalette
visualPalette
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WaterfallChartOptions
waterfallChartOptions

instance Data.ToJSON WaterfallChartConfiguration where
  toJSON :: WaterfallChartConfiguration -> Value
toJSON WaterfallChartConfiguration' {Maybe LegendOptions
Maybe DataLabelOptions
Maybe ChartAxisLabelOptions
Maybe AxisDisplayOptions
Maybe VisualPalette
Maybe WaterfallChartFieldWells
Maybe WaterfallChartOptions
Maybe WaterfallChartSortConfiguration
waterfallChartOptions :: Maybe WaterfallChartOptions
visualPalette :: Maybe VisualPalette
sortConfiguration :: Maybe WaterfallChartSortConfiguration
primaryYAxisLabelOptions :: Maybe ChartAxisLabelOptions
primaryYAxisDisplayOptions :: Maybe AxisDisplayOptions
legend :: Maybe LegendOptions
fieldWells :: Maybe WaterfallChartFieldWells
dataLabels :: Maybe DataLabelOptions
categoryAxisLabelOptions :: Maybe ChartAxisLabelOptions
categoryAxisDisplayOptions :: Maybe AxisDisplayOptions
$sel:waterfallChartOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe WaterfallChartOptions
$sel:visualPalette:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe VisualPalette
$sel:sortConfiguration:WaterfallChartConfiguration' :: WaterfallChartConfiguration
-> Maybe WaterfallChartSortConfiguration
$sel:primaryYAxisLabelOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:primaryYAxisDisplayOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe AxisDisplayOptions
$sel:legend:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe LegendOptions
$sel:fieldWells:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe WaterfallChartFieldWells
$sel:dataLabels:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe DataLabelOptions
$sel:categoryAxisLabelOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe ChartAxisLabelOptions
$sel:categoryAxisDisplayOptions:WaterfallChartConfiguration' :: WaterfallChartConfiguration -> Maybe AxisDisplayOptions
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CategoryAxisDisplayOptions" 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 AxisDisplayOptions
categoryAxisDisplayOptions,
            (Key
"CategoryAxisLabelOptions" 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 ChartAxisLabelOptions
categoryAxisLabelOptions,
            (Key
"DataLabels" 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 DataLabelOptions
dataLabels,
            (Key
"FieldWells" 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 WaterfallChartFieldWells
fieldWells,
            (Key
"Legend" 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 LegendOptions
legend,
            (Key
"PrimaryYAxisDisplayOptions" 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 AxisDisplayOptions
primaryYAxisDisplayOptions,
            (Key
"PrimaryYAxisLabelOptions" 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 ChartAxisLabelOptions
primaryYAxisLabelOptions,
            (Key
"SortConfiguration" 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 WaterfallChartSortConfiguration
sortConfiguration,
            (Key
"VisualPalette" 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 VisualPalette
visualPalette,
            (Key
"WaterfallChartOptions" 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 WaterfallChartOptions
waterfallChartOptions
          ]
      )