module Stratosphere.QuickSight.Analysis.GeospatialLayerDefinitionProperty (
        module Exports, GeospatialLayerDefinitionProperty(..),
        mkGeospatialLayerDefinitionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.QuickSight.Analysis.GeospatialLineLayerProperty as Exports
import {-# SOURCE #-} Stratosphere.QuickSight.Analysis.GeospatialPointLayerProperty as Exports
import {-# SOURCE #-} Stratosphere.QuickSight.Analysis.GeospatialPolygonLayerProperty as Exports
import Stratosphere.ResourceProperties
data GeospatialLayerDefinitionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-geospatiallayerdefinition.html>
    GeospatialLayerDefinitionProperty {GeospatialLayerDefinitionProperty -> ()
haddock_workaround_ :: (),
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-geospatiallayerdefinition.html#cfn-quicksight-analysis-geospatiallayerdefinition-linelayer>
                                       GeospatialLayerDefinitionProperty
-> Maybe GeospatialLineLayerProperty
lineLayer :: (Prelude.Maybe GeospatialLineLayerProperty),
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-geospatiallayerdefinition.html#cfn-quicksight-analysis-geospatiallayerdefinition-pointlayer>
                                       GeospatialLayerDefinitionProperty
-> Maybe GeospatialPointLayerProperty
pointLayer :: (Prelude.Maybe GeospatialPointLayerProperty),
                                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-analysis-geospatiallayerdefinition.html#cfn-quicksight-analysis-geospatiallayerdefinition-polygonlayer>
                                       GeospatialLayerDefinitionProperty
-> Maybe GeospatialPolygonLayerProperty
polygonLayer :: (Prelude.Maybe GeospatialPolygonLayerProperty)}
  deriving stock (GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty -> Bool
(GeospatialLayerDefinitionProperty
 -> GeospatialLayerDefinitionProperty -> Bool)
-> (GeospatialLayerDefinitionProperty
    -> GeospatialLayerDefinitionProperty -> Bool)
-> Eq GeospatialLayerDefinitionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty -> Bool
== :: GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty -> Bool
$c/= :: GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty -> Bool
/= :: GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty -> Bool
Prelude.Eq, Int -> GeospatialLayerDefinitionProperty -> ShowS
[GeospatialLayerDefinitionProperty] -> ShowS
GeospatialLayerDefinitionProperty -> String
(Int -> GeospatialLayerDefinitionProperty -> ShowS)
-> (GeospatialLayerDefinitionProperty -> String)
-> ([GeospatialLayerDefinitionProperty] -> ShowS)
-> Show GeospatialLayerDefinitionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GeospatialLayerDefinitionProperty -> ShowS
showsPrec :: Int -> GeospatialLayerDefinitionProperty -> ShowS
$cshow :: GeospatialLayerDefinitionProperty -> String
show :: GeospatialLayerDefinitionProperty -> String
$cshowList :: [GeospatialLayerDefinitionProperty] -> ShowS
showList :: [GeospatialLayerDefinitionProperty] -> ShowS
Prelude.Show)
mkGeospatialLayerDefinitionProperty ::
  GeospatialLayerDefinitionProperty
mkGeospatialLayerDefinitionProperty :: GeospatialLayerDefinitionProperty
mkGeospatialLayerDefinitionProperty
  = GeospatialLayerDefinitionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), lineLayer :: Maybe GeospatialLineLayerProperty
lineLayer = Maybe GeospatialLineLayerProperty
forall a. Maybe a
Prelude.Nothing,
       pointLayer :: Maybe GeospatialPointLayerProperty
pointLayer = Maybe GeospatialPointLayerProperty
forall a. Maybe a
Prelude.Nothing, polygonLayer :: Maybe GeospatialPolygonLayerProperty
polygonLayer = Maybe GeospatialPolygonLayerProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties GeospatialLayerDefinitionProperty where
  toResourceProperties :: GeospatialLayerDefinitionProperty -> ResourceProperties
toResourceProperties GeospatialLayerDefinitionProperty {Maybe GeospatialPolygonLayerProperty
Maybe GeospatialLineLayerProperty
Maybe GeospatialPointLayerProperty
()
haddock_workaround_ :: GeospatialLayerDefinitionProperty -> ()
lineLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialLineLayerProperty
pointLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPointLayerProperty
polygonLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPolygonLayerProperty
haddock_workaround_ :: ()
lineLayer :: Maybe GeospatialLineLayerProperty
pointLayer :: Maybe GeospatialPointLayerProperty
polygonLayer :: Maybe GeospatialPolygonLayerProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::QuickSight::Analysis.GeospatialLayerDefinition",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> GeospatialLineLayerProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"LineLayer" (GeospatialLineLayerProperty -> (Key, Value))
-> Maybe GeospatialLineLayerProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GeospatialLineLayerProperty
lineLayer,
                            Key -> GeospatialPointLayerProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"PointLayer" (GeospatialPointLayerProperty -> (Key, Value))
-> Maybe GeospatialPointLayerProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GeospatialPointLayerProperty
pointLayer,
                            Key -> GeospatialPolygonLayerProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"PolygonLayer" (GeospatialPolygonLayerProperty -> (Key, Value))
-> Maybe GeospatialPolygonLayerProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GeospatialPolygonLayerProperty
polygonLayer])}
instance JSON.ToJSON GeospatialLayerDefinitionProperty where
  toJSON :: GeospatialLayerDefinitionProperty -> Value
toJSON GeospatialLayerDefinitionProperty {Maybe GeospatialPolygonLayerProperty
Maybe GeospatialLineLayerProperty
Maybe GeospatialPointLayerProperty
()
haddock_workaround_ :: GeospatialLayerDefinitionProperty -> ()
lineLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialLineLayerProperty
pointLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPointLayerProperty
polygonLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPolygonLayerProperty
haddock_workaround_ :: ()
lineLayer :: Maybe GeospatialLineLayerProperty
pointLayer :: Maybe GeospatialPointLayerProperty
polygonLayer :: Maybe GeospatialPolygonLayerProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> GeospatialLineLayerProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"LineLayer" (GeospatialLineLayerProperty -> (Key, Value))
-> Maybe GeospatialLineLayerProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GeospatialLineLayerProperty
lineLayer,
               Key -> GeospatialPointLayerProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"PointLayer" (GeospatialPointLayerProperty -> (Key, Value))
-> Maybe GeospatialPointLayerProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GeospatialPointLayerProperty
pointLayer,
               Key -> GeospatialPolygonLayerProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"PolygonLayer" (GeospatialPolygonLayerProperty -> (Key, Value))
-> Maybe GeospatialPolygonLayerProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GeospatialPolygonLayerProperty
polygonLayer]))
instance Property "LineLayer" GeospatialLayerDefinitionProperty where
  type PropertyType "LineLayer" GeospatialLayerDefinitionProperty = GeospatialLineLayerProperty
  set :: PropertyType "LineLayer" GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty
set PropertyType "LineLayer" GeospatialLayerDefinitionProperty
newValue GeospatialLayerDefinitionProperty {Maybe GeospatialPolygonLayerProperty
Maybe GeospatialLineLayerProperty
Maybe GeospatialPointLayerProperty
()
haddock_workaround_ :: GeospatialLayerDefinitionProperty -> ()
lineLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialLineLayerProperty
pointLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPointLayerProperty
polygonLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPolygonLayerProperty
haddock_workaround_ :: ()
lineLayer :: Maybe GeospatialLineLayerProperty
pointLayer :: Maybe GeospatialPointLayerProperty
polygonLayer :: Maybe GeospatialPolygonLayerProperty
..}
    = GeospatialLayerDefinitionProperty
        {lineLayer :: Maybe GeospatialLineLayerProperty
lineLayer = GeospatialLineLayerProperty -> Maybe GeospatialLineLayerProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "LineLayer" GeospatialLayerDefinitionProperty
GeospatialLineLayerProperty
newValue, Maybe GeospatialPolygonLayerProperty
Maybe GeospatialPointLayerProperty
()
haddock_workaround_ :: ()
pointLayer :: Maybe GeospatialPointLayerProperty
polygonLayer :: Maybe GeospatialPolygonLayerProperty
haddock_workaround_ :: ()
pointLayer :: Maybe GeospatialPointLayerProperty
polygonLayer :: Maybe GeospatialPolygonLayerProperty
..}
instance Property "PointLayer" GeospatialLayerDefinitionProperty where
  type PropertyType "PointLayer" GeospatialLayerDefinitionProperty = GeospatialPointLayerProperty
  set :: PropertyType "PointLayer" GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty
set PropertyType "PointLayer" GeospatialLayerDefinitionProperty
newValue GeospatialLayerDefinitionProperty {Maybe GeospatialPolygonLayerProperty
Maybe GeospatialLineLayerProperty
Maybe GeospatialPointLayerProperty
()
haddock_workaround_ :: GeospatialLayerDefinitionProperty -> ()
lineLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialLineLayerProperty
pointLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPointLayerProperty
polygonLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPolygonLayerProperty
haddock_workaround_ :: ()
lineLayer :: Maybe GeospatialLineLayerProperty
pointLayer :: Maybe GeospatialPointLayerProperty
polygonLayer :: Maybe GeospatialPolygonLayerProperty
..}
    = GeospatialLayerDefinitionProperty
        {pointLayer :: Maybe GeospatialPointLayerProperty
pointLayer = GeospatialPointLayerProperty -> Maybe GeospatialPointLayerProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PointLayer" GeospatialLayerDefinitionProperty
GeospatialPointLayerProperty
newValue, Maybe GeospatialPolygonLayerProperty
Maybe GeospatialLineLayerProperty
()
haddock_workaround_ :: ()
lineLayer :: Maybe GeospatialLineLayerProperty
polygonLayer :: Maybe GeospatialPolygonLayerProperty
haddock_workaround_ :: ()
lineLayer :: Maybe GeospatialLineLayerProperty
polygonLayer :: Maybe GeospatialPolygonLayerProperty
..}
instance Property "PolygonLayer" GeospatialLayerDefinitionProperty where
  type PropertyType "PolygonLayer" GeospatialLayerDefinitionProperty = GeospatialPolygonLayerProperty
  set :: PropertyType "PolygonLayer" GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty
-> GeospatialLayerDefinitionProperty
set PropertyType "PolygonLayer" GeospatialLayerDefinitionProperty
newValue GeospatialLayerDefinitionProperty {Maybe GeospatialPolygonLayerProperty
Maybe GeospatialLineLayerProperty
Maybe GeospatialPointLayerProperty
()
haddock_workaround_ :: GeospatialLayerDefinitionProperty -> ()
lineLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialLineLayerProperty
pointLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPointLayerProperty
polygonLayer :: GeospatialLayerDefinitionProperty
-> Maybe GeospatialPolygonLayerProperty
haddock_workaround_ :: ()
lineLayer :: Maybe GeospatialLineLayerProperty
pointLayer :: Maybe GeospatialPointLayerProperty
polygonLayer :: Maybe GeospatialPolygonLayerProperty
..}
    = GeospatialLayerDefinitionProperty
        {polygonLayer :: Maybe GeospatialPolygonLayerProperty
polygonLayer = GeospatialPolygonLayerProperty
-> Maybe GeospatialPolygonLayerProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PolygonLayer" GeospatialLayerDefinitionProperty
GeospatialPolygonLayerProperty
newValue, Maybe GeospatialLineLayerProperty
Maybe GeospatialPointLayerProperty
()
haddock_workaround_ :: ()
lineLayer :: Maybe GeospatialLineLayerProperty
pointLayer :: Maybe GeospatialPointLayerProperty
haddock_workaround_ :: ()
lineLayer :: Maybe GeospatialLineLayerProperty
pointLayer :: Maybe GeospatialPointLayerProperty
..}