{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.GroundStation.CreateEphemeris
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates an Ephemeris with the specified @EphemerisData@.
module Amazonka.GroundStation.CreateEphemeris
  ( -- * Creating a Request
    CreateEphemeris (..),
    newCreateEphemeris,

    -- * Request Lenses
    createEphemeris_enabled,
    createEphemeris_ephemeris,
    createEphemeris_expirationTime,
    createEphemeris_kmsKeyArn,
    createEphemeris_priority,
    createEphemeris_tags,
    createEphemeris_name,
    createEphemeris_satelliteId,

    -- * Destructuring the Response
    EphemerisIdResponse (..),
    newEphemerisIdResponse,

    -- * Response Lenses
    ephemerisIdResponse_ephemerisId,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GroundStation.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newCreateEphemeris' smart constructor.
data CreateEphemeris = CreateEphemeris'
  { -- | Whether to set the ephemeris status to @ENABLED@ after validation.
    --
    -- Setting this to false will set the ephemeris status to @DISABLED@ after
    -- validation.
    CreateEphemeris -> Maybe Bool
enabled :: Prelude.Maybe Prelude.Bool,
    -- | Ephemeris data.
    CreateEphemeris -> Maybe EphemerisData
ephemeris :: Prelude.Maybe EphemerisData,
    -- | An overall expiration time for the ephemeris in UTC, after which it will
    -- become @EXPIRED@.
    CreateEphemeris -> Maybe POSIX
expirationTime :: Prelude.Maybe Data.POSIX,
    -- | The ARN of a KMS key used to encrypt the ephemeris in Ground Station.
    CreateEphemeris -> Maybe Text
kmsKeyArn :: Prelude.Maybe Prelude.Text,
    -- | Customer-provided priority score to establish the order in which
    -- overlapping ephemerides should be used.
    --
    -- The default for customer-provided ephemeris priority is 1, and higher
    -- numbers take precedence.
    --
    -- Priority must be 1 or greater
    CreateEphemeris -> Maybe Natural
priority :: Prelude.Maybe Prelude.Natural,
    -- | Tags assigned to an ephemeris.
    CreateEphemeris -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | A name string associated with the ephemeris. Used as a human-readable
    -- identifier for the ephemeris.
    CreateEphemeris -> Text
name :: Prelude.Text,
    -- | AWS Ground Station satellite ID for this ephemeris.
    CreateEphemeris -> Text
satelliteId :: Prelude.Text
  }
  deriving (CreateEphemeris -> CreateEphemeris -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateEphemeris -> CreateEphemeris -> Bool
$c/= :: CreateEphemeris -> CreateEphemeris -> Bool
== :: CreateEphemeris -> CreateEphemeris -> Bool
$c== :: CreateEphemeris -> CreateEphemeris -> Bool
Prelude.Eq, ReadPrec [CreateEphemeris]
ReadPrec CreateEphemeris
Int -> ReadS CreateEphemeris
ReadS [CreateEphemeris]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateEphemeris]
$creadListPrec :: ReadPrec [CreateEphemeris]
readPrec :: ReadPrec CreateEphemeris
$creadPrec :: ReadPrec CreateEphemeris
readList :: ReadS [CreateEphemeris]
$creadList :: ReadS [CreateEphemeris]
readsPrec :: Int -> ReadS CreateEphemeris
$creadsPrec :: Int -> ReadS CreateEphemeris
Prelude.Read, Int -> CreateEphemeris -> ShowS
[CreateEphemeris] -> ShowS
CreateEphemeris -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateEphemeris] -> ShowS
$cshowList :: [CreateEphemeris] -> ShowS
show :: CreateEphemeris -> String
$cshow :: CreateEphemeris -> String
showsPrec :: Int -> CreateEphemeris -> ShowS
$cshowsPrec :: Int -> CreateEphemeris -> ShowS
Prelude.Show, forall x. Rep CreateEphemeris x -> CreateEphemeris
forall x. CreateEphemeris -> Rep CreateEphemeris x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateEphemeris x -> CreateEphemeris
$cfrom :: forall x. CreateEphemeris -> Rep CreateEphemeris x
Prelude.Generic)

-- |
-- Create a value of 'CreateEphemeris' 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:
--
-- 'enabled', 'createEphemeris_enabled' - Whether to set the ephemeris status to @ENABLED@ after validation.
--
-- Setting this to false will set the ephemeris status to @DISABLED@ after
-- validation.
--
-- 'ephemeris', 'createEphemeris_ephemeris' - Ephemeris data.
--
-- 'expirationTime', 'createEphemeris_expirationTime' - An overall expiration time for the ephemeris in UTC, after which it will
-- become @EXPIRED@.
--
-- 'kmsKeyArn', 'createEphemeris_kmsKeyArn' - The ARN of a KMS key used to encrypt the ephemeris in Ground Station.
--
-- 'priority', 'createEphemeris_priority' - Customer-provided priority score to establish the order in which
-- overlapping ephemerides should be used.
--
-- The default for customer-provided ephemeris priority is 1, and higher
-- numbers take precedence.
--
-- Priority must be 1 or greater
--
-- 'tags', 'createEphemeris_tags' - Tags assigned to an ephemeris.
--
-- 'name', 'createEphemeris_name' - A name string associated with the ephemeris. Used as a human-readable
-- identifier for the ephemeris.
--
-- 'satelliteId', 'createEphemeris_satelliteId' - AWS Ground Station satellite ID for this ephemeris.
newCreateEphemeris ::
  -- | 'name'
  Prelude.Text ->
  -- | 'satelliteId'
  Prelude.Text ->
  CreateEphemeris
newCreateEphemeris :: Text -> Text -> CreateEphemeris
newCreateEphemeris Text
pName_ Text
pSatelliteId_ =
  CreateEphemeris'
    { $sel:enabled:CreateEphemeris' :: Maybe Bool
enabled = forall a. Maybe a
Prelude.Nothing,
      $sel:ephemeris:CreateEphemeris' :: Maybe EphemerisData
ephemeris = forall a. Maybe a
Prelude.Nothing,
      $sel:expirationTime:CreateEphemeris' :: Maybe POSIX
expirationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:kmsKeyArn:CreateEphemeris' :: Maybe Text
kmsKeyArn = forall a. Maybe a
Prelude.Nothing,
      $sel:priority:CreateEphemeris' :: Maybe Natural
priority = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:CreateEphemeris' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:name:CreateEphemeris' :: Text
name = Text
pName_,
      $sel:satelliteId:CreateEphemeris' :: Text
satelliteId = Text
pSatelliteId_
    }

-- | Whether to set the ephemeris status to @ENABLED@ after validation.
--
-- Setting this to false will set the ephemeris status to @DISABLED@ after
-- validation.
createEphemeris_enabled :: Lens.Lens' CreateEphemeris (Prelude.Maybe Prelude.Bool)
createEphemeris_enabled :: Lens' CreateEphemeris (Maybe Bool)
createEphemeris_enabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEphemeris' {Maybe Bool
enabled :: Maybe Bool
$sel:enabled:CreateEphemeris' :: CreateEphemeris -> Maybe Bool
enabled} -> Maybe Bool
enabled) (\s :: CreateEphemeris
s@CreateEphemeris' {} Maybe Bool
a -> CreateEphemeris
s {$sel:enabled:CreateEphemeris' :: Maybe Bool
enabled = Maybe Bool
a} :: CreateEphemeris)

-- | Ephemeris data.
createEphemeris_ephemeris :: Lens.Lens' CreateEphemeris (Prelude.Maybe EphemerisData)
createEphemeris_ephemeris :: Lens' CreateEphemeris (Maybe EphemerisData)
createEphemeris_ephemeris = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEphemeris' {Maybe EphemerisData
ephemeris :: Maybe EphemerisData
$sel:ephemeris:CreateEphemeris' :: CreateEphemeris -> Maybe EphemerisData
ephemeris} -> Maybe EphemerisData
ephemeris) (\s :: CreateEphemeris
s@CreateEphemeris' {} Maybe EphemerisData
a -> CreateEphemeris
s {$sel:ephemeris:CreateEphemeris' :: Maybe EphemerisData
ephemeris = Maybe EphemerisData
a} :: CreateEphemeris)

-- | An overall expiration time for the ephemeris in UTC, after which it will
-- become @EXPIRED@.
createEphemeris_expirationTime :: Lens.Lens' CreateEphemeris (Prelude.Maybe Prelude.UTCTime)
createEphemeris_expirationTime :: Lens' CreateEphemeris (Maybe UTCTime)
createEphemeris_expirationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEphemeris' {Maybe POSIX
expirationTime :: Maybe POSIX
$sel:expirationTime:CreateEphemeris' :: CreateEphemeris -> Maybe POSIX
expirationTime} -> Maybe POSIX
expirationTime) (\s :: CreateEphemeris
s@CreateEphemeris' {} Maybe POSIX
a -> CreateEphemeris
s {$sel:expirationTime:CreateEphemeris' :: Maybe POSIX
expirationTime = Maybe POSIX
a} :: CreateEphemeris) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The ARN of a KMS key used to encrypt the ephemeris in Ground Station.
createEphemeris_kmsKeyArn :: Lens.Lens' CreateEphemeris (Prelude.Maybe Prelude.Text)
createEphemeris_kmsKeyArn :: Lens' CreateEphemeris (Maybe Text)
createEphemeris_kmsKeyArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEphemeris' {Maybe Text
kmsKeyArn :: Maybe Text
$sel:kmsKeyArn:CreateEphemeris' :: CreateEphemeris -> Maybe Text
kmsKeyArn} -> Maybe Text
kmsKeyArn) (\s :: CreateEphemeris
s@CreateEphemeris' {} Maybe Text
a -> CreateEphemeris
s {$sel:kmsKeyArn:CreateEphemeris' :: Maybe Text
kmsKeyArn = Maybe Text
a} :: CreateEphemeris)

-- | Customer-provided priority score to establish the order in which
-- overlapping ephemerides should be used.
--
-- The default for customer-provided ephemeris priority is 1, and higher
-- numbers take precedence.
--
-- Priority must be 1 or greater
createEphemeris_priority :: Lens.Lens' CreateEphemeris (Prelude.Maybe Prelude.Natural)
createEphemeris_priority :: Lens' CreateEphemeris (Maybe Natural)
createEphemeris_priority = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEphemeris' {Maybe Natural
priority :: Maybe Natural
$sel:priority:CreateEphemeris' :: CreateEphemeris -> Maybe Natural
priority} -> Maybe Natural
priority) (\s :: CreateEphemeris
s@CreateEphemeris' {} Maybe Natural
a -> CreateEphemeris
s {$sel:priority:CreateEphemeris' :: Maybe Natural
priority = Maybe Natural
a} :: CreateEphemeris)

-- | Tags assigned to an ephemeris.
createEphemeris_tags :: Lens.Lens' CreateEphemeris (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createEphemeris_tags :: Lens' CreateEphemeris (Maybe (HashMap Text Text))
createEphemeris_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEphemeris' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateEphemeris' :: CreateEphemeris -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateEphemeris
s@CreateEphemeris' {} Maybe (HashMap Text Text)
a -> CreateEphemeris
s {$sel:tags:CreateEphemeris' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateEphemeris) 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

-- | A name string associated with the ephemeris. Used as a human-readable
-- identifier for the ephemeris.
createEphemeris_name :: Lens.Lens' CreateEphemeris Prelude.Text
createEphemeris_name :: Lens' CreateEphemeris Text
createEphemeris_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEphemeris' {Text
name :: Text
$sel:name:CreateEphemeris' :: CreateEphemeris -> Text
name} -> Text
name) (\s :: CreateEphemeris
s@CreateEphemeris' {} Text
a -> CreateEphemeris
s {$sel:name:CreateEphemeris' :: Text
name = Text
a} :: CreateEphemeris)

-- | AWS Ground Station satellite ID for this ephemeris.
createEphemeris_satelliteId :: Lens.Lens' CreateEphemeris Prelude.Text
createEphemeris_satelliteId :: Lens' CreateEphemeris Text
createEphemeris_satelliteId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateEphemeris' {Text
satelliteId :: Text
$sel:satelliteId:CreateEphemeris' :: CreateEphemeris -> Text
satelliteId} -> Text
satelliteId) (\s :: CreateEphemeris
s@CreateEphemeris' {} Text
a -> CreateEphemeris
s {$sel:satelliteId:CreateEphemeris' :: Text
satelliteId = Text
a} :: CreateEphemeris)

instance Core.AWSRequest CreateEphemeris where
  type
    AWSResponse CreateEphemeris =
      EphemerisIdResponse
  request :: (Service -> Service) -> CreateEphemeris -> Request CreateEphemeris
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateEphemeris
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateEphemeris)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      (\Int
s ResponseHeaders
h Object
x -> forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)

instance Prelude.Hashable CreateEphemeris where
  hashWithSalt :: Int -> CreateEphemeris -> Int
hashWithSalt Int
_salt CreateEphemeris' {Maybe Bool
Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe EphemerisData
Text
satelliteId :: Text
name :: Text
tags :: Maybe (HashMap Text Text)
priority :: Maybe Natural
kmsKeyArn :: Maybe Text
expirationTime :: Maybe POSIX
ephemeris :: Maybe EphemerisData
enabled :: Maybe Bool
$sel:satelliteId:CreateEphemeris' :: CreateEphemeris -> Text
$sel:name:CreateEphemeris' :: CreateEphemeris -> Text
$sel:tags:CreateEphemeris' :: CreateEphemeris -> Maybe (HashMap Text Text)
$sel:priority:CreateEphemeris' :: CreateEphemeris -> Maybe Natural
$sel:kmsKeyArn:CreateEphemeris' :: CreateEphemeris -> Maybe Text
$sel:expirationTime:CreateEphemeris' :: CreateEphemeris -> Maybe POSIX
$sel:ephemeris:CreateEphemeris' :: CreateEphemeris -> Maybe EphemerisData
$sel:enabled:CreateEphemeris' :: CreateEphemeris -> Maybe Bool
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enabled
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EphemerisData
ephemeris
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
expirationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
kmsKeyArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
priority
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
satelliteId

instance Prelude.NFData CreateEphemeris where
  rnf :: CreateEphemeris -> ()
rnf CreateEphemeris' {Maybe Bool
Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe EphemerisData
Text
satelliteId :: Text
name :: Text
tags :: Maybe (HashMap Text Text)
priority :: Maybe Natural
kmsKeyArn :: Maybe Text
expirationTime :: Maybe POSIX
ephemeris :: Maybe EphemerisData
enabled :: Maybe Bool
$sel:satelliteId:CreateEphemeris' :: CreateEphemeris -> Text
$sel:name:CreateEphemeris' :: CreateEphemeris -> Text
$sel:tags:CreateEphemeris' :: CreateEphemeris -> Maybe (HashMap Text Text)
$sel:priority:CreateEphemeris' :: CreateEphemeris -> Maybe Natural
$sel:kmsKeyArn:CreateEphemeris' :: CreateEphemeris -> Maybe Text
$sel:expirationTime:CreateEphemeris' :: CreateEphemeris -> Maybe POSIX
$sel:ephemeris:CreateEphemeris' :: CreateEphemeris -> Maybe EphemerisData
$sel:enabled:CreateEphemeris' :: CreateEphemeris -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enabled
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EphemerisData
ephemeris
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
expirationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
kmsKeyArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
priority
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
satelliteId

instance Data.ToHeaders CreateEphemeris where
  toHeaders :: CreateEphemeris -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON CreateEphemeris where
  toJSON :: CreateEphemeris -> Value
toJSON CreateEphemeris' {Maybe Bool
Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe EphemerisData
Text
satelliteId :: Text
name :: Text
tags :: Maybe (HashMap Text Text)
priority :: Maybe Natural
kmsKeyArn :: Maybe Text
expirationTime :: Maybe POSIX
ephemeris :: Maybe EphemerisData
enabled :: Maybe Bool
$sel:satelliteId:CreateEphemeris' :: CreateEphemeris -> Text
$sel:name:CreateEphemeris' :: CreateEphemeris -> Text
$sel:tags:CreateEphemeris' :: CreateEphemeris -> Maybe (HashMap Text Text)
$sel:priority:CreateEphemeris' :: CreateEphemeris -> Maybe Natural
$sel:kmsKeyArn:CreateEphemeris' :: CreateEphemeris -> Maybe Text
$sel:expirationTime:CreateEphemeris' :: CreateEphemeris -> Maybe POSIX
$sel:ephemeris:CreateEphemeris' :: CreateEphemeris -> Maybe EphemerisData
$sel:enabled:CreateEphemeris' :: CreateEphemeris -> Maybe Bool
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"enabled" 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
enabled,
            (Key
"ephemeris" 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 EphemerisData
ephemeris,
            (Key
"expirationTime" 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 POSIX
expirationTime,
            (Key
"kmsKeyArn" 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 Text
kmsKeyArn,
            (Key
"priority" 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 Natural
priority,
            (Key
"tags" 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 (HashMap Text Text)
tags,
            forall a. a -> Maybe a
Prelude.Just (Key
"name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name),
            forall a. a -> Maybe a
Prelude.Just (Key
"satelliteId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
satelliteId)
          ]
      )

instance Data.ToPath CreateEphemeris where
  toPath :: CreateEphemeris -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/ephemeris"

instance Data.ToQuery CreateEphemeris where
  toQuery :: CreateEphemeris -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty