{-# 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.DescribeEphemeris
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes an existing ephemeris.
module Amazonka.GroundStation.DescribeEphemeris
  ( -- * Creating a Request
    DescribeEphemeris (..),
    newDescribeEphemeris,

    -- * Request Lenses
    describeEphemeris_ephemerisId,

    -- * Destructuring the Response
    DescribeEphemerisResponse (..),
    newDescribeEphemerisResponse,

    -- * Response Lenses
    describeEphemerisResponse_creationTime,
    describeEphemerisResponse_enabled,
    describeEphemerisResponse_ephemerisId,
    describeEphemerisResponse_invalidReason,
    describeEphemerisResponse_name,
    describeEphemerisResponse_priority,
    describeEphemerisResponse_satelliteId,
    describeEphemerisResponse_status,
    describeEphemerisResponse_suppliedData,
    describeEphemerisResponse_tags,
    describeEphemerisResponse_httpStatus,
  )
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:/ 'newDescribeEphemeris' smart constructor.
data DescribeEphemeris = DescribeEphemeris'
  { -- | The AWS Ground Station ephemeris ID.
    DescribeEphemeris -> Text
ephemerisId :: Prelude.Text
  }
  deriving (DescribeEphemeris -> DescribeEphemeris -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeEphemeris -> DescribeEphemeris -> Bool
$c/= :: DescribeEphemeris -> DescribeEphemeris -> Bool
== :: DescribeEphemeris -> DescribeEphemeris -> Bool
$c== :: DescribeEphemeris -> DescribeEphemeris -> Bool
Prelude.Eq, ReadPrec [DescribeEphemeris]
ReadPrec DescribeEphemeris
Int -> ReadS DescribeEphemeris
ReadS [DescribeEphemeris]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeEphemeris]
$creadListPrec :: ReadPrec [DescribeEphemeris]
readPrec :: ReadPrec DescribeEphemeris
$creadPrec :: ReadPrec DescribeEphemeris
readList :: ReadS [DescribeEphemeris]
$creadList :: ReadS [DescribeEphemeris]
readsPrec :: Int -> ReadS DescribeEphemeris
$creadsPrec :: Int -> ReadS DescribeEphemeris
Prelude.Read, Int -> DescribeEphemeris -> ShowS
[DescribeEphemeris] -> ShowS
DescribeEphemeris -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeEphemeris] -> ShowS
$cshowList :: [DescribeEphemeris] -> ShowS
show :: DescribeEphemeris -> String
$cshow :: DescribeEphemeris -> String
showsPrec :: Int -> DescribeEphemeris -> ShowS
$cshowsPrec :: Int -> DescribeEphemeris -> ShowS
Prelude.Show, forall x. Rep DescribeEphemeris x -> DescribeEphemeris
forall x. DescribeEphemeris -> Rep DescribeEphemeris x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeEphemeris x -> DescribeEphemeris
$cfrom :: forall x. DescribeEphemeris -> Rep DescribeEphemeris x
Prelude.Generic)

-- |
-- Create a value of 'DescribeEphemeris' 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:
--
-- 'ephemerisId', 'describeEphemeris_ephemerisId' - The AWS Ground Station ephemeris ID.
newDescribeEphemeris ::
  -- | 'ephemerisId'
  Prelude.Text ->
  DescribeEphemeris
newDescribeEphemeris :: Text -> DescribeEphemeris
newDescribeEphemeris Text
pEphemerisId_ =
  DescribeEphemeris' {$sel:ephemerisId:DescribeEphemeris' :: Text
ephemerisId = Text
pEphemerisId_}

-- | The AWS Ground Station ephemeris ID.
describeEphemeris_ephemerisId :: Lens.Lens' DescribeEphemeris Prelude.Text
describeEphemeris_ephemerisId :: Lens' DescribeEphemeris Text
describeEphemeris_ephemerisId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemeris' {Text
ephemerisId :: Text
$sel:ephemerisId:DescribeEphemeris' :: DescribeEphemeris -> Text
ephemerisId} -> Text
ephemerisId) (\s :: DescribeEphemeris
s@DescribeEphemeris' {} Text
a -> DescribeEphemeris
s {$sel:ephemerisId:DescribeEphemeris' :: Text
ephemerisId = Text
a} :: DescribeEphemeris)

instance Core.AWSRequest DescribeEphemeris where
  type
    AWSResponse DescribeEphemeris =
      DescribeEphemerisResponse
  request :: (Service -> Service)
-> DescribeEphemeris -> Request DescribeEphemeris
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeEphemeris
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeEphemeris)))
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 ->
          Maybe POSIX
-> Maybe Bool
-> Maybe Text
-> Maybe EphemerisInvalidReason
-> Maybe Text
-> Maybe Natural
-> Maybe Text
-> Maybe EphemerisStatus
-> Maybe EphemerisTypeDescription
-> Maybe (HashMap Text Text)
-> Int
-> DescribeEphemerisResponse
DescribeEphemerisResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"creationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"enabled")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ephemerisId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"invalidReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"name")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"priority")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"satelliteId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"suppliedData")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeEphemeris where
  hashWithSalt :: Int -> DescribeEphemeris -> Int
hashWithSalt Int
_salt DescribeEphemeris' {Text
ephemerisId :: Text
$sel:ephemerisId:DescribeEphemeris' :: DescribeEphemeris -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
ephemerisId

instance Prelude.NFData DescribeEphemeris where
  rnf :: DescribeEphemeris -> ()
rnf DescribeEphemeris' {Text
ephemerisId :: Text
$sel:ephemerisId:DescribeEphemeris' :: DescribeEphemeris -> Text
..} = forall a. NFData a => a -> ()
Prelude.rnf Text
ephemerisId

instance Data.ToHeaders DescribeEphemeris where
  toHeaders :: DescribeEphemeris -> 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.ToPath DescribeEphemeris where
  toPath :: DescribeEphemeris -> ByteString
toPath DescribeEphemeris' {Text
ephemerisId :: Text
$sel:ephemerisId:DescribeEphemeris' :: DescribeEphemeris -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/ephemeris/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
ephemerisId]

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

-- | /See:/ 'newDescribeEphemerisResponse' smart constructor.
data DescribeEphemerisResponse = DescribeEphemerisResponse'
  { -- | The time the ephemeris was uploaded in UTC.
    DescribeEphemerisResponse -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | Whether or not the ephemeris is enabled.
    DescribeEphemerisResponse -> Maybe Bool
enabled :: Prelude.Maybe Prelude.Bool,
    -- | The AWS Ground Station ephemeris ID.
    DescribeEphemerisResponse -> Maybe Text
ephemerisId :: Prelude.Maybe Prelude.Text,
    -- | Reason that an ephemeris failed validation. Only provided for
    -- ephemerides with @INVALID@ status.
    DescribeEphemerisResponse -> Maybe EphemerisInvalidReason
invalidReason :: Prelude.Maybe EphemerisInvalidReason,
    -- | A name string associated with the ephemeris. Used as a human-readable
    -- identifier for the ephemeris.
    DescribeEphemerisResponse -> Maybe Text
name :: 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
    DescribeEphemerisResponse -> Maybe Natural
priority :: Prelude.Maybe Prelude.Natural,
    -- | The AWS Ground Station satellite ID associated with ephemeris.
    DescribeEphemerisResponse -> Maybe Text
satelliteId :: Prelude.Maybe Prelude.Text,
    -- | The status of the ephemeris.
    DescribeEphemerisResponse -> Maybe EphemerisStatus
status :: Prelude.Maybe EphemerisStatus,
    -- | Supplied ephemeris data.
    DescribeEphemerisResponse -> Maybe EphemerisTypeDescription
suppliedData :: Prelude.Maybe EphemerisTypeDescription,
    -- | Tags assigned to an ephemeris.
    DescribeEphemerisResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    DescribeEphemerisResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeEphemerisResponse -> DescribeEphemerisResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeEphemerisResponse -> DescribeEphemerisResponse -> Bool
$c/= :: DescribeEphemerisResponse -> DescribeEphemerisResponse -> Bool
== :: DescribeEphemerisResponse -> DescribeEphemerisResponse -> Bool
$c== :: DescribeEphemerisResponse -> DescribeEphemerisResponse -> Bool
Prelude.Eq, ReadPrec [DescribeEphemerisResponse]
ReadPrec DescribeEphemerisResponse
Int -> ReadS DescribeEphemerisResponse
ReadS [DescribeEphemerisResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeEphemerisResponse]
$creadListPrec :: ReadPrec [DescribeEphemerisResponse]
readPrec :: ReadPrec DescribeEphemerisResponse
$creadPrec :: ReadPrec DescribeEphemerisResponse
readList :: ReadS [DescribeEphemerisResponse]
$creadList :: ReadS [DescribeEphemerisResponse]
readsPrec :: Int -> ReadS DescribeEphemerisResponse
$creadsPrec :: Int -> ReadS DescribeEphemerisResponse
Prelude.Read, Int -> DescribeEphemerisResponse -> ShowS
[DescribeEphemerisResponse] -> ShowS
DescribeEphemerisResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeEphemerisResponse] -> ShowS
$cshowList :: [DescribeEphemerisResponse] -> ShowS
show :: DescribeEphemerisResponse -> String
$cshow :: DescribeEphemerisResponse -> String
showsPrec :: Int -> DescribeEphemerisResponse -> ShowS
$cshowsPrec :: Int -> DescribeEphemerisResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeEphemerisResponse x -> DescribeEphemerisResponse
forall x.
DescribeEphemerisResponse -> Rep DescribeEphemerisResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeEphemerisResponse x -> DescribeEphemerisResponse
$cfrom :: forall x.
DescribeEphemerisResponse -> Rep DescribeEphemerisResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeEphemerisResponse' 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:
--
-- 'creationTime', 'describeEphemerisResponse_creationTime' - The time the ephemeris was uploaded in UTC.
--
-- 'enabled', 'describeEphemerisResponse_enabled' - Whether or not the ephemeris is enabled.
--
-- 'ephemerisId', 'describeEphemerisResponse_ephemerisId' - The AWS Ground Station ephemeris ID.
--
-- 'invalidReason', 'describeEphemerisResponse_invalidReason' - Reason that an ephemeris failed validation. Only provided for
-- ephemerides with @INVALID@ status.
--
-- 'name', 'describeEphemerisResponse_name' - A name string associated with the ephemeris. Used as a human-readable
-- identifier for the ephemeris.
--
-- 'priority', 'describeEphemerisResponse_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
--
-- 'satelliteId', 'describeEphemerisResponse_satelliteId' - The AWS Ground Station satellite ID associated with ephemeris.
--
-- 'status', 'describeEphemerisResponse_status' - The status of the ephemeris.
--
-- 'suppliedData', 'describeEphemerisResponse_suppliedData' - Supplied ephemeris data.
--
-- 'tags', 'describeEphemerisResponse_tags' - Tags assigned to an ephemeris.
--
-- 'httpStatus', 'describeEphemerisResponse_httpStatus' - The response's http status code.
newDescribeEphemerisResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeEphemerisResponse
newDescribeEphemerisResponse :: Int -> DescribeEphemerisResponse
newDescribeEphemerisResponse Int
pHttpStatus_ =
  DescribeEphemerisResponse'
    { $sel:creationTime:DescribeEphemerisResponse' :: Maybe POSIX
creationTime =
        forall a. Maybe a
Prelude.Nothing,
      $sel:enabled:DescribeEphemerisResponse' :: Maybe Bool
enabled = forall a. Maybe a
Prelude.Nothing,
      $sel:ephemerisId:DescribeEphemerisResponse' :: Maybe Text
ephemerisId = forall a. Maybe a
Prelude.Nothing,
      $sel:invalidReason:DescribeEphemerisResponse' :: Maybe EphemerisInvalidReason
invalidReason = forall a. Maybe a
Prelude.Nothing,
      $sel:name:DescribeEphemerisResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:priority:DescribeEphemerisResponse' :: Maybe Natural
priority = forall a. Maybe a
Prelude.Nothing,
      $sel:satelliteId:DescribeEphemerisResponse' :: Maybe Text
satelliteId = forall a. Maybe a
Prelude.Nothing,
      $sel:status:DescribeEphemerisResponse' :: Maybe EphemerisStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:suppliedData:DescribeEphemerisResponse' :: Maybe EphemerisTypeDescription
suppliedData = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeEphemerisResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeEphemerisResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The time the ephemeris was uploaded in UTC.
describeEphemerisResponse_creationTime :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.UTCTime)
describeEphemerisResponse_creationTime :: Lens' DescribeEphemerisResponse (Maybe UTCTime)
describeEphemerisResponse_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemerisResponse' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: DescribeEphemerisResponse
s@DescribeEphemerisResponse' {} Maybe POSIX
a -> DescribeEphemerisResponse
s {$sel:creationTime:DescribeEphemerisResponse' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: DescribeEphemerisResponse) 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

-- | Whether or not the ephemeris is enabled.
describeEphemerisResponse_enabled :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.Bool)
describeEphemerisResponse_enabled :: Lens' DescribeEphemerisResponse (Maybe Bool)
describeEphemerisResponse_enabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemerisResponse' {Maybe Bool
enabled :: Maybe Bool
$sel:enabled:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe Bool
enabled} -> Maybe Bool
enabled) (\s :: DescribeEphemerisResponse
s@DescribeEphemerisResponse' {} Maybe Bool
a -> DescribeEphemerisResponse
s {$sel:enabled:DescribeEphemerisResponse' :: Maybe Bool
enabled = Maybe Bool
a} :: DescribeEphemerisResponse)

-- | The AWS Ground Station ephemeris ID.
describeEphemerisResponse_ephemerisId :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.Text)
describeEphemerisResponse_ephemerisId :: Lens' DescribeEphemerisResponse (Maybe Text)
describeEphemerisResponse_ephemerisId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemerisResponse' {Maybe Text
ephemerisId :: Maybe Text
$sel:ephemerisId:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe Text
ephemerisId} -> Maybe Text
ephemerisId) (\s :: DescribeEphemerisResponse
s@DescribeEphemerisResponse' {} Maybe Text
a -> DescribeEphemerisResponse
s {$sel:ephemerisId:DescribeEphemerisResponse' :: Maybe Text
ephemerisId = Maybe Text
a} :: DescribeEphemerisResponse)

-- | Reason that an ephemeris failed validation. Only provided for
-- ephemerides with @INVALID@ status.
describeEphemerisResponse_invalidReason :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe EphemerisInvalidReason)
describeEphemerisResponse_invalidReason :: Lens' DescribeEphemerisResponse (Maybe EphemerisInvalidReason)
describeEphemerisResponse_invalidReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemerisResponse' {Maybe EphemerisInvalidReason
invalidReason :: Maybe EphemerisInvalidReason
$sel:invalidReason:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe EphemerisInvalidReason
invalidReason} -> Maybe EphemerisInvalidReason
invalidReason) (\s :: DescribeEphemerisResponse
s@DescribeEphemerisResponse' {} Maybe EphemerisInvalidReason
a -> DescribeEphemerisResponse
s {$sel:invalidReason:DescribeEphemerisResponse' :: Maybe EphemerisInvalidReason
invalidReason = Maybe EphemerisInvalidReason
a} :: DescribeEphemerisResponse)

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

-- | 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
describeEphemerisResponse_priority :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.Natural)
describeEphemerisResponse_priority :: Lens' DescribeEphemerisResponse (Maybe Natural)
describeEphemerisResponse_priority = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemerisResponse' {Maybe Natural
priority :: Maybe Natural
$sel:priority:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe Natural
priority} -> Maybe Natural
priority) (\s :: DescribeEphemerisResponse
s@DescribeEphemerisResponse' {} Maybe Natural
a -> DescribeEphemerisResponse
s {$sel:priority:DescribeEphemerisResponse' :: Maybe Natural
priority = Maybe Natural
a} :: DescribeEphemerisResponse)

-- | The AWS Ground Station satellite ID associated with ephemeris.
describeEphemerisResponse_satelliteId :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe Prelude.Text)
describeEphemerisResponse_satelliteId :: Lens' DescribeEphemerisResponse (Maybe Text)
describeEphemerisResponse_satelliteId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemerisResponse' {Maybe Text
satelliteId :: Maybe Text
$sel:satelliteId:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe Text
satelliteId} -> Maybe Text
satelliteId) (\s :: DescribeEphemerisResponse
s@DescribeEphemerisResponse' {} Maybe Text
a -> DescribeEphemerisResponse
s {$sel:satelliteId:DescribeEphemerisResponse' :: Maybe Text
satelliteId = Maybe Text
a} :: DescribeEphemerisResponse)

-- | The status of the ephemeris.
describeEphemerisResponse_status :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe EphemerisStatus)
describeEphemerisResponse_status :: Lens' DescribeEphemerisResponse (Maybe EphemerisStatus)
describeEphemerisResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemerisResponse' {Maybe EphemerisStatus
status :: Maybe EphemerisStatus
$sel:status:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe EphemerisStatus
status} -> Maybe EphemerisStatus
status) (\s :: DescribeEphemerisResponse
s@DescribeEphemerisResponse' {} Maybe EphemerisStatus
a -> DescribeEphemerisResponse
s {$sel:status:DescribeEphemerisResponse' :: Maybe EphemerisStatus
status = Maybe EphemerisStatus
a} :: DescribeEphemerisResponse)

-- | Supplied ephemeris data.
describeEphemerisResponse_suppliedData :: Lens.Lens' DescribeEphemerisResponse (Prelude.Maybe EphemerisTypeDescription)
describeEphemerisResponse_suppliedData :: Lens' DescribeEphemerisResponse (Maybe EphemerisTypeDescription)
describeEphemerisResponse_suppliedData = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemerisResponse' {Maybe EphemerisTypeDescription
suppliedData :: Maybe EphemerisTypeDescription
$sel:suppliedData:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe EphemerisTypeDescription
suppliedData} -> Maybe EphemerisTypeDescription
suppliedData) (\s :: DescribeEphemerisResponse
s@DescribeEphemerisResponse' {} Maybe EphemerisTypeDescription
a -> DescribeEphemerisResponse
s {$sel:suppliedData:DescribeEphemerisResponse' :: Maybe EphemerisTypeDescription
suppliedData = Maybe EphemerisTypeDescription
a} :: DescribeEphemerisResponse)

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

-- | The response's http status code.
describeEphemerisResponse_httpStatus :: Lens.Lens' DescribeEphemerisResponse Prelude.Int
describeEphemerisResponse_httpStatus :: Lens' DescribeEphemerisResponse Int
describeEphemerisResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeEphemerisResponse' {Int
httpStatus :: Int
$sel:httpStatus:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DescribeEphemerisResponse
s@DescribeEphemerisResponse' {} Int
a -> DescribeEphemerisResponse
s {$sel:httpStatus:DescribeEphemerisResponse' :: Int
httpStatus = Int
a} :: DescribeEphemerisResponse)

instance Prelude.NFData DescribeEphemerisResponse where
  rnf :: DescribeEphemerisResponse -> ()
rnf DescribeEphemerisResponse' {Int
Maybe Bool
Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Maybe EphemerisInvalidReason
Maybe EphemerisStatus
Maybe EphemerisTypeDescription
httpStatus :: Int
tags :: Maybe (HashMap Text Text)
suppliedData :: Maybe EphemerisTypeDescription
status :: Maybe EphemerisStatus
satelliteId :: Maybe Text
priority :: Maybe Natural
name :: Maybe Text
invalidReason :: Maybe EphemerisInvalidReason
ephemerisId :: Maybe Text
enabled :: Maybe Bool
creationTime :: Maybe POSIX
$sel:httpStatus:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Int
$sel:tags:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe (HashMap Text Text)
$sel:suppliedData:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe EphemerisTypeDescription
$sel:status:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe EphemerisStatus
$sel:satelliteId:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe Text
$sel:priority:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe Natural
$sel:name:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe Text
$sel:invalidReason:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe EphemerisInvalidReason
$sel:ephemerisId:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe Text
$sel:enabled:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe Bool
$sel:creationTime:DescribeEphemerisResponse' :: DescribeEphemerisResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Text
ephemerisId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EphemerisInvalidReason
invalidReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
      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 Text
satelliteId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EphemerisStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EphemerisTypeDescription
suppliedData
      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 Int
httpStatus