{-# 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 #-}
module Amazonka.IoTWireless.Types.Gnss 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
data Gnss = Gnss'
{
Gnss -> Maybe Double
assistAltitude :: Prelude.Maybe Prelude.Double,
Gnss -> Maybe (NonEmpty Double)
assistPosition :: Prelude.Maybe (Prelude.NonEmpty Prelude.Double),
Gnss -> Maybe Double
captureTime :: Prelude.Maybe Prelude.Double,
Gnss -> Maybe Double
captureTimeAccuracy :: Prelude.Maybe Prelude.Double,
Gnss -> Maybe Bool
use2DSolver :: Prelude.Maybe Prelude.Bool,
Gnss -> Text
payload :: Prelude.Text
}
deriving (Gnss -> Gnss -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Gnss -> Gnss -> Bool
$c/= :: Gnss -> Gnss -> Bool
== :: Gnss -> Gnss -> Bool
$c== :: Gnss -> Gnss -> Bool
Prelude.Eq, ReadPrec [Gnss]
ReadPrec Gnss
Int -> ReadS Gnss
ReadS [Gnss]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Gnss]
$creadListPrec :: ReadPrec [Gnss]
readPrec :: ReadPrec Gnss
$creadPrec :: ReadPrec Gnss
readList :: ReadS [Gnss]
$creadList :: ReadS [Gnss]
readsPrec :: Int -> ReadS Gnss
$creadsPrec :: Int -> ReadS Gnss
Prelude.Read, Int -> Gnss -> ShowS
[Gnss] -> ShowS
Gnss -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Gnss] -> ShowS
$cshowList :: [Gnss] -> ShowS
show :: Gnss -> String
$cshow :: Gnss -> String
showsPrec :: Int -> Gnss -> ShowS
$cshowsPrec :: Int -> Gnss -> ShowS
Prelude.Show, forall x. Rep Gnss x -> Gnss
forall x. Gnss -> Rep Gnss x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Gnss x -> Gnss
$cfrom :: forall x. Gnss -> Rep Gnss x
Prelude.Generic)
newGnss ::
Prelude.Text ->
Gnss
newGnss :: Text -> Gnss
newGnss Text
pPayload_ =
Gnss'
{ $sel:assistAltitude:Gnss' :: Maybe Double
assistAltitude = forall a. Maybe a
Prelude.Nothing,
$sel:assistPosition:Gnss' :: Maybe (NonEmpty Double)
assistPosition = forall a. Maybe a
Prelude.Nothing,
$sel:captureTime:Gnss' :: Maybe Double
captureTime = forall a. Maybe a
Prelude.Nothing,
$sel:captureTimeAccuracy:Gnss' :: Maybe Double
captureTimeAccuracy = forall a. Maybe a
Prelude.Nothing,
$sel:use2DSolver:Gnss' :: Maybe Bool
use2DSolver = forall a. Maybe a
Prelude.Nothing,
$sel:payload:Gnss' :: Text
payload = Text
pPayload_
}
gnss_assistAltitude :: Lens.Lens' Gnss (Prelude.Maybe Prelude.Double)
gnss_assistAltitude :: Lens' Gnss (Maybe Double)
gnss_assistAltitude = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Gnss' {Maybe Double
assistAltitude :: Maybe Double
$sel:assistAltitude:Gnss' :: Gnss -> Maybe Double
assistAltitude} -> Maybe Double
assistAltitude) (\s :: Gnss
s@Gnss' {} Maybe Double
a -> Gnss
s {$sel:assistAltitude:Gnss' :: Maybe Double
assistAltitude = Maybe Double
a} :: Gnss)
gnss_assistPosition :: Lens.Lens' Gnss (Prelude.Maybe (Prelude.NonEmpty Prelude.Double))
gnss_assistPosition :: Lens' Gnss (Maybe (NonEmpty Double))
gnss_assistPosition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Gnss' {Maybe (NonEmpty Double)
assistPosition :: Maybe (NonEmpty Double)
$sel:assistPosition:Gnss' :: Gnss -> Maybe (NonEmpty Double)
assistPosition} -> Maybe (NonEmpty Double)
assistPosition) (\s :: Gnss
s@Gnss' {} Maybe (NonEmpty Double)
a -> Gnss
s {$sel:assistPosition:Gnss' :: Maybe (NonEmpty Double)
assistPosition = Maybe (NonEmpty Double)
a} :: Gnss) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
gnss_captureTime :: Lens.Lens' Gnss (Prelude.Maybe Prelude.Double)
gnss_captureTime :: Lens' Gnss (Maybe Double)
gnss_captureTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Gnss' {Maybe Double
captureTime :: Maybe Double
$sel:captureTime:Gnss' :: Gnss -> Maybe Double
captureTime} -> Maybe Double
captureTime) (\s :: Gnss
s@Gnss' {} Maybe Double
a -> Gnss
s {$sel:captureTime:Gnss' :: Maybe Double
captureTime = Maybe Double
a} :: Gnss)
gnss_captureTimeAccuracy :: Lens.Lens' Gnss (Prelude.Maybe Prelude.Double)
gnss_captureTimeAccuracy :: Lens' Gnss (Maybe Double)
gnss_captureTimeAccuracy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Gnss' {Maybe Double
captureTimeAccuracy :: Maybe Double
$sel:captureTimeAccuracy:Gnss' :: Gnss -> Maybe Double
captureTimeAccuracy} -> Maybe Double
captureTimeAccuracy) (\s :: Gnss
s@Gnss' {} Maybe Double
a -> Gnss
s {$sel:captureTimeAccuracy:Gnss' :: Maybe Double
captureTimeAccuracy = Maybe Double
a} :: Gnss)
gnss_use2DSolver :: Lens.Lens' Gnss (Prelude.Maybe Prelude.Bool)
gnss_use2DSolver :: Lens' Gnss (Maybe Bool)
gnss_use2DSolver = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Gnss' {Maybe Bool
use2DSolver :: Maybe Bool
$sel:use2DSolver:Gnss' :: Gnss -> Maybe Bool
use2DSolver} -> Maybe Bool
use2DSolver) (\s :: Gnss
s@Gnss' {} Maybe Bool
a -> Gnss
s {$sel:use2DSolver:Gnss' :: Maybe Bool
use2DSolver = Maybe Bool
a} :: Gnss)
gnss_payload :: Lens.Lens' Gnss Prelude.Text
gnss_payload :: Lens' Gnss Text
gnss_payload = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Gnss' {Text
payload :: Text
$sel:payload:Gnss' :: Gnss -> Text
payload} -> Text
payload) (\s :: Gnss
s@Gnss' {} Text
a -> Gnss
s {$sel:payload:Gnss' :: Text
payload = Text
a} :: Gnss)
instance Prelude.Hashable Gnss where
hashWithSalt :: Int -> Gnss -> Int
hashWithSalt Int
_salt Gnss' {Maybe Bool
Maybe Double
Maybe (NonEmpty Double)
Text
payload :: Text
use2DSolver :: Maybe Bool
captureTimeAccuracy :: Maybe Double
captureTime :: Maybe Double
assistPosition :: Maybe (NonEmpty Double)
assistAltitude :: Maybe Double
$sel:payload:Gnss' :: Gnss -> Text
$sel:use2DSolver:Gnss' :: Gnss -> Maybe Bool
$sel:captureTimeAccuracy:Gnss' :: Gnss -> Maybe Double
$sel:captureTime:Gnss' :: Gnss -> Maybe Double
$sel:assistPosition:Gnss' :: Gnss -> Maybe (NonEmpty Double)
$sel:assistAltitude:Gnss' :: Gnss -> Maybe Double
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
assistAltitude
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Double)
assistPosition
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
captureTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
captureTimeAccuracy
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
use2DSolver
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
payload
instance Prelude.NFData Gnss where
rnf :: Gnss -> ()
rnf Gnss' {Maybe Bool
Maybe Double
Maybe (NonEmpty Double)
Text
payload :: Text
use2DSolver :: Maybe Bool
captureTimeAccuracy :: Maybe Double
captureTime :: Maybe Double
assistPosition :: Maybe (NonEmpty Double)
assistAltitude :: Maybe Double
$sel:payload:Gnss' :: Gnss -> Text
$sel:use2DSolver:Gnss' :: Gnss -> Maybe Bool
$sel:captureTimeAccuracy:Gnss' :: Gnss -> Maybe Double
$sel:captureTime:Gnss' :: Gnss -> Maybe Double
$sel:assistPosition:Gnss' :: Gnss -> Maybe (NonEmpty Double)
$sel:assistAltitude:Gnss' :: Gnss -> Maybe Double
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
assistAltitude
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Double)
assistPosition
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
captureTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
captureTimeAccuracy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
use2DSolver
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
payload
instance Data.ToJSON Gnss where
toJSON :: Gnss -> Value
toJSON Gnss' {Maybe Bool
Maybe Double
Maybe (NonEmpty Double)
Text
payload :: Text
use2DSolver :: Maybe Bool
captureTimeAccuracy :: Maybe Double
captureTime :: Maybe Double
assistPosition :: Maybe (NonEmpty Double)
assistAltitude :: Maybe Double
$sel:payload:Gnss' :: Gnss -> Text
$sel:use2DSolver:Gnss' :: Gnss -> Maybe Bool
$sel:captureTimeAccuracy:Gnss' :: Gnss -> Maybe Double
$sel:captureTime:Gnss' :: Gnss -> Maybe Double
$sel:assistPosition:Gnss' :: Gnss -> Maybe (NonEmpty Double)
$sel:assistAltitude:Gnss' :: Gnss -> Maybe Double
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"AssistAltitude" 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 Double
assistAltitude,
(Key
"AssistPosition" 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 (NonEmpty Double)
assistPosition,
(Key
"CaptureTime" 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 Double
captureTime,
(Key
"CaptureTimeAccuracy" 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 Double
captureTimeAccuracy,
(Key
"Use2DSolver" 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 Bool
use2DSolver,
forall a. a -> Maybe a
Prelude.Just (Key
"Payload" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
payload)
]
)