module Stratosphere.Pinpoint.Segment.CoordinatesProperty (
        CoordinatesProperty(..), mkCoordinatesProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data CoordinatesProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location-gpspoint-coordinates.html>
    CoordinatesProperty {CoordinatesProperty -> ()
haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location-gpspoint-coordinates.html#cfn-pinpoint-segment-segmentdimensions-location-gpspoint-coordinates-latitude>
                         CoordinatesProperty -> Value Double
latitude :: (Value Prelude.Double),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions-location-gpspoint-coordinates.html#cfn-pinpoint-segment-segmentdimensions-location-gpspoint-coordinates-longitude>
                         CoordinatesProperty -> Value Double
longitude :: (Value Prelude.Double)}
  deriving stock (CoordinatesProperty -> CoordinatesProperty -> Bool
(CoordinatesProperty -> CoordinatesProperty -> Bool)
-> (CoordinatesProperty -> CoordinatesProperty -> Bool)
-> Eq CoordinatesProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CoordinatesProperty -> CoordinatesProperty -> Bool
== :: CoordinatesProperty -> CoordinatesProperty -> Bool
$c/= :: CoordinatesProperty -> CoordinatesProperty -> Bool
/= :: CoordinatesProperty -> CoordinatesProperty -> Bool
Prelude.Eq, Int -> CoordinatesProperty -> ShowS
[CoordinatesProperty] -> ShowS
CoordinatesProperty -> String
(Int -> CoordinatesProperty -> ShowS)
-> (CoordinatesProperty -> String)
-> ([CoordinatesProperty] -> ShowS)
-> Show CoordinatesProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CoordinatesProperty -> ShowS
showsPrec :: Int -> CoordinatesProperty -> ShowS
$cshow :: CoordinatesProperty -> String
show :: CoordinatesProperty -> String
$cshowList :: [CoordinatesProperty] -> ShowS
showList :: [CoordinatesProperty] -> ShowS
Prelude.Show)
mkCoordinatesProperty ::
  Value Prelude.Double -> Value Prelude.Double -> CoordinatesProperty
mkCoordinatesProperty :: Value Double -> Value Double -> CoordinatesProperty
mkCoordinatesProperty Value Double
latitude Value Double
longitude
  = CoordinatesProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), latitude :: Value Double
latitude = Value Double
latitude,
       longitude :: Value Double
longitude = Value Double
longitude}
instance ToResourceProperties CoordinatesProperty where
  toResourceProperties :: CoordinatesProperty -> ResourceProperties
toResourceProperties CoordinatesProperty {()
Value Double
haddock_workaround_ :: CoordinatesProperty -> ()
latitude :: CoordinatesProperty -> Value Double
longitude :: CoordinatesProperty -> Value Double
haddock_workaround_ :: ()
latitude :: Value Double
longitude :: Value Double
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Pinpoint::Segment.Coordinates",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Latitude" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
latitude,
                       Key
"Longitude" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
longitude]}
instance JSON.ToJSON CoordinatesProperty where
  toJSON :: CoordinatesProperty -> Value
toJSON CoordinatesProperty {()
Value Double
haddock_workaround_ :: CoordinatesProperty -> ()
latitude :: CoordinatesProperty -> Value Double
longitude :: CoordinatesProperty -> Value Double
haddock_workaround_ :: ()
latitude :: Value Double
longitude :: Value Double
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Latitude" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
latitude, Key
"Longitude" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
longitude]
instance Property "Latitude" CoordinatesProperty where
  type PropertyType "Latitude" CoordinatesProperty = Value Prelude.Double
  set :: PropertyType "Latitude" CoordinatesProperty
-> CoordinatesProperty -> CoordinatesProperty
set PropertyType "Latitude" CoordinatesProperty
newValue CoordinatesProperty {()
Value Double
haddock_workaround_ :: CoordinatesProperty -> ()
latitude :: CoordinatesProperty -> Value Double
longitude :: CoordinatesProperty -> Value Double
haddock_workaround_ :: ()
latitude :: Value Double
longitude :: Value Double
..}
    = CoordinatesProperty {latitude :: Value Double
latitude = PropertyType "Latitude" CoordinatesProperty
Value Double
newValue, ()
Value Double
haddock_workaround_ :: ()
longitude :: Value Double
haddock_workaround_ :: ()
longitude :: Value Double
..}
instance Property "Longitude" CoordinatesProperty where
  type PropertyType "Longitude" CoordinatesProperty = Value Prelude.Double
  set :: PropertyType "Longitude" CoordinatesProperty
-> CoordinatesProperty -> CoordinatesProperty
set PropertyType "Longitude" CoordinatesProperty
newValue CoordinatesProperty {()
Value Double
haddock_workaround_ :: CoordinatesProperty -> ()
latitude :: CoordinatesProperty -> Value Double
longitude :: CoordinatesProperty -> Value Double
haddock_workaround_ :: ()
latitude :: Value Double
longitude :: Value Double
..}
    = CoordinatesProperty {longitude :: Value Double
longitude = PropertyType "Longitude" CoordinatesProperty
Value Double
newValue, ()
Value Double
haddock_workaround_ :: ()
latitude :: Value Double
haddock_workaround_ :: ()
latitude :: Value Double
..}