{-# 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.GetMissionProfile
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns a mission profile.
module Amazonka.GroundStation.GetMissionProfile
  ( -- * Creating a Request
    GetMissionProfile (..),
    newGetMissionProfile,

    -- * Request Lenses
    getMissionProfile_missionProfileId,

    -- * Destructuring the Response
    GetMissionProfileResponse (..),
    newGetMissionProfileResponse,

    -- * Response Lenses
    getMissionProfileResponse_contactPostPassDurationSeconds,
    getMissionProfileResponse_contactPrePassDurationSeconds,
    getMissionProfileResponse_dataflowEdges,
    getMissionProfileResponse_minimumViableContactDurationSeconds,
    getMissionProfileResponse_missionProfileArn,
    getMissionProfileResponse_missionProfileId,
    getMissionProfileResponse_name,
    getMissionProfileResponse_region,
    getMissionProfileResponse_tags,
    getMissionProfileResponse_trackingConfigArn,
    getMissionProfileResponse_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:/ 'newGetMissionProfile' smart constructor.
data GetMissionProfile = GetMissionProfile'
  { -- | UUID of a mission profile.
    GetMissionProfile -> Text
missionProfileId :: Prelude.Text
  }
  deriving (GetMissionProfile -> GetMissionProfile -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetMissionProfile -> GetMissionProfile -> Bool
$c/= :: GetMissionProfile -> GetMissionProfile -> Bool
== :: GetMissionProfile -> GetMissionProfile -> Bool
$c== :: GetMissionProfile -> GetMissionProfile -> Bool
Prelude.Eq, ReadPrec [GetMissionProfile]
ReadPrec GetMissionProfile
Int -> ReadS GetMissionProfile
ReadS [GetMissionProfile]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetMissionProfile]
$creadListPrec :: ReadPrec [GetMissionProfile]
readPrec :: ReadPrec GetMissionProfile
$creadPrec :: ReadPrec GetMissionProfile
readList :: ReadS [GetMissionProfile]
$creadList :: ReadS [GetMissionProfile]
readsPrec :: Int -> ReadS GetMissionProfile
$creadsPrec :: Int -> ReadS GetMissionProfile
Prelude.Read, Int -> GetMissionProfile -> ShowS
[GetMissionProfile] -> ShowS
GetMissionProfile -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetMissionProfile] -> ShowS
$cshowList :: [GetMissionProfile] -> ShowS
show :: GetMissionProfile -> String
$cshow :: GetMissionProfile -> String
showsPrec :: Int -> GetMissionProfile -> ShowS
$cshowsPrec :: Int -> GetMissionProfile -> ShowS
Prelude.Show, forall x. Rep GetMissionProfile x -> GetMissionProfile
forall x. GetMissionProfile -> Rep GetMissionProfile x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetMissionProfile x -> GetMissionProfile
$cfrom :: forall x. GetMissionProfile -> Rep GetMissionProfile x
Prelude.Generic)

-- |
-- Create a value of 'GetMissionProfile' 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:
--
-- 'missionProfileId', 'getMissionProfile_missionProfileId' - UUID of a mission profile.
newGetMissionProfile ::
  -- | 'missionProfileId'
  Prelude.Text ->
  GetMissionProfile
newGetMissionProfile :: Text -> GetMissionProfile
newGetMissionProfile Text
pMissionProfileId_ =
  GetMissionProfile'
    { $sel:missionProfileId:GetMissionProfile' :: Text
missionProfileId =
        Text
pMissionProfileId_
    }

-- | UUID of a mission profile.
getMissionProfile_missionProfileId :: Lens.Lens' GetMissionProfile Prelude.Text
getMissionProfile_missionProfileId :: Lens' GetMissionProfile Text
getMissionProfile_missionProfileId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfile' {Text
missionProfileId :: Text
$sel:missionProfileId:GetMissionProfile' :: GetMissionProfile -> Text
missionProfileId} -> Text
missionProfileId) (\s :: GetMissionProfile
s@GetMissionProfile' {} Text
a -> GetMissionProfile
s {$sel:missionProfileId:GetMissionProfile' :: Text
missionProfileId = Text
a} :: GetMissionProfile)

instance Core.AWSRequest GetMissionProfile where
  type
    AWSResponse GetMissionProfile =
      GetMissionProfileResponse
  request :: (Service -> Service)
-> GetMissionProfile -> Request GetMissionProfile
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 GetMissionProfile
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetMissionProfile)))
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 Natural
-> Maybe Natural
-> Maybe [NonEmpty Text]
-> Maybe Natural
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Int
-> GetMissionProfileResponse
GetMissionProfileResponse'
            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
"contactPostPassDurationSeconds")
            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
"contactPrePassDurationSeconds")
            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
"dataflowEdges" 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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"minimumViableContactDurationSeconds")
            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
"missionProfileArn")
            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
"missionProfileId")
            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
"region")
            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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"trackingConfigArn")
            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 GetMissionProfile where
  hashWithSalt :: Int -> GetMissionProfile -> Int
hashWithSalt Int
_salt GetMissionProfile' {Text
missionProfileId :: Text
$sel:missionProfileId:GetMissionProfile' :: GetMissionProfile -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
missionProfileId

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

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

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

-- |
--
-- /See:/ 'newGetMissionProfileResponse' smart constructor.
data GetMissionProfileResponse = GetMissionProfileResponse'
  { -- | Amount of time after a contact ends that you’d like to receive a
    -- CloudWatch event indicating the pass has finished.
    GetMissionProfileResponse -> Maybe Natural
contactPostPassDurationSeconds :: Prelude.Maybe Prelude.Natural,
    -- | Amount of time prior to contact start you’d like to receive a CloudWatch
    -- event indicating an upcoming pass.
    GetMissionProfileResponse -> Maybe Natural
contactPrePassDurationSeconds :: Prelude.Maybe Prelude.Natural,
    -- | A list of lists of ARNs. Each list of ARNs is an edge, with a /from/
    -- @Config@ and a /to/ @Config@.
    GetMissionProfileResponse -> Maybe [NonEmpty Text]
dataflowEdges :: Prelude.Maybe [Prelude.NonEmpty Prelude.Text],
    -- | Smallest amount of time in seconds that you’d like to see for an
    -- available contact. AWS Ground Station will not present you with contacts
    -- shorter than this duration.
    GetMissionProfileResponse -> Maybe Natural
minimumViableContactDurationSeconds :: Prelude.Maybe Prelude.Natural,
    -- | ARN of a mission profile.
    GetMissionProfileResponse -> Maybe Text
missionProfileArn :: Prelude.Maybe Prelude.Text,
    -- | UUID of a mission profile.
    GetMissionProfileResponse -> Maybe Text
missionProfileId :: Prelude.Maybe Prelude.Text,
    -- | Name of a mission profile.
    GetMissionProfileResponse -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | Region of a mission profile.
    GetMissionProfileResponse -> Maybe Text
region :: Prelude.Maybe Prelude.Text,
    -- | Tags assigned to a mission profile.
    GetMissionProfileResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | ARN of a tracking @Config@.
    GetMissionProfileResponse -> Maybe Text
trackingConfigArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetMissionProfileResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetMissionProfileResponse -> GetMissionProfileResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetMissionProfileResponse -> GetMissionProfileResponse -> Bool
$c/= :: GetMissionProfileResponse -> GetMissionProfileResponse -> Bool
== :: GetMissionProfileResponse -> GetMissionProfileResponse -> Bool
$c== :: GetMissionProfileResponse -> GetMissionProfileResponse -> Bool
Prelude.Eq, ReadPrec [GetMissionProfileResponse]
ReadPrec GetMissionProfileResponse
Int -> ReadS GetMissionProfileResponse
ReadS [GetMissionProfileResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetMissionProfileResponse]
$creadListPrec :: ReadPrec [GetMissionProfileResponse]
readPrec :: ReadPrec GetMissionProfileResponse
$creadPrec :: ReadPrec GetMissionProfileResponse
readList :: ReadS [GetMissionProfileResponse]
$creadList :: ReadS [GetMissionProfileResponse]
readsPrec :: Int -> ReadS GetMissionProfileResponse
$creadsPrec :: Int -> ReadS GetMissionProfileResponse
Prelude.Read, Int -> GetMissionProfileResponse -> ShowS
[GetMissionProfileResponse] -> ShowS
GetMissionProfileResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetMissionProfileResponse] -> ShowS
$cshowList :: [GetMissionProfileResponse] -> ShowS
show :: GetMissionProfileResponse -> String
$cshow :: GetMissionProfileResponse -> String
showsPrec :: Int -> GetMissionProfileResponse -> ShowS
$cshowsPrec :: Int -> GetMissionProfileResponse -> ShowS
Prelude.Show, forall x.
Rep GetMissionProfileResponse x -> GetMissionProfileResponse
forall x.
GetMissionProfileResponse -> Rep GetMissionProfileResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetMissionProfileResponse x -> GetMissionProfileResponse
$cfrom :: forall x.
GetMissionProfileResponse -> Rep GetMissionProfileResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetMissionProfileResponse' 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:
--
-- 'contactPostPassDurationSeconds', 'getMissionProfileResponse_contactPostPassDurationSeconds' - Amount of time after a contact ends that you’d like to receive a
-- CloudWatch event indicating the pass has finished.
--
-- 'contactPrePassDurationSeconds', 'getMissionProfileResponse_contactPrePassDurationSeconds' - Amount of time prior to contact start you’d like to receive a CloudWatch
-- event indicating an upcoming pass.
--
-- 'dataflowEdges', 'getMissionProfileResponse_dataflowEdges' - A list of lists of ARNs. Each list of ARNs is an edge, with a /from/
-- @Config@ and a /to/ @Config@.
--
-- 'minimumViableContactDurationSeconds', 'getMissionProfileResponse_minimumViableContactDurationSeconds' - Smallest amount of time in seconds that you’d like to see for an
-- available contact. AWS Ground Station will not present you with contacts
-- shorter than this duration.
--
-- 'missionProfileArn', 'getMissionProfileResponse_missionProfileArn' - ARN of a mission profile.
--
-- 'missionProfileId', 'getMissionProfileResponse_missionProfileId' - UUID of a mission profile.
--
-- 'name', 'getMissionProfileResponse_name' - Name of a mission profile.
--
-- 'region', 'getMissionProfileResponse_region' - Region of a mission profile.
--
-- 'tags', 'getMissionProfileResponse_tags' - Tags assigned to a mission profile.
--
-- 'trackingConfigArn', 'getMissionProfileResponse_trackingConfigArn' - ARN of a tracking @Config@.
--
-- 'httpStatus', 'getMissionProfileResponse_httpStatus' - The response's http status code.
newGetMissionProfileResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetMissionProfileResponse
newGetMissionProfileResponse :: Int -> GetMissionProfileResponse
newGetMissionProfileResponse Int
pHttpStatus_ =
  GetMissionProfileResponse'
    { $sel:contactPostPassDurationSeconds:GetMissionProfileResponse' :: Maybe Natural
contactPostPassDurationSeconds =
        forall a. Maybe a
Prelude.Nothing,
      $sel:contactPrePassDurationSeconds:GetMissionProfileResponse' :: Maybe Natural
contactPrePassDurationSeconds = forall a. Maybe a
Prelude.Nothing,
      $sel:dataflowEdges:GetMissionProfileResponse' :: Maybe [NonEmpty Text]
dataflowEdges = forall a. Maybe a
Prelude.Nothing,
      $sel:minimumViableContactDurationSeconds:GetMissionProfileResponse' :: Maybe Natural
minimumViableContactDurationSeconds =
        forall a. Maybe a
Prelude.Nothing,
      $sel:missionProfileArn:GetMissionProfileResponse' :: Maybe Text
missionProfileArn = forall a. Maybe a
Prelude.Nothing,
      $sel:missionProfileId:GetMissionProfileResponse' :: Maybe Text
missionProfileId = forall a. Maybe a
Prelude.Nothing,
      $sel:name:GetMissionProfileResponse' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:region:GetMissionProfileResponse' :: Maybe Text
region = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:GetMissionProfileResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:trackingConfigArn:GetMissionProfileResponse' :: Maybe Text
trackingConfigArn = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetMissionProfileResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Amount of time after a contact ends that you’d like to receive a
-- CloudWatch event indicating the pass has finished.
getMissionProfileResponse_contactPostPassDurationSeconds :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Natural)
getMissionProfileResponse_contactPostPassDurationSeconds :: Lens' GetMissionProfileResponse (Maybe Natural)
getMissionProfileResponse_contactPostPassDurationSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfileResponse' {Maybe Natural
contactPostPassDurationSeconds :: Maybe Natural
$sel:contactPostPassDurationSeconds:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Natural
contactPostPassDurationSeconds} -> Maybe Natural
contactPostPassDurationSeconds) (\s :: GetMissionProfileResponse
s@GetMissionProfileResponse' {} Maybe Natural
a -> GetMissionProfileResponse
s {$sel:contactPostPassDurationSeconds:GetMissionProfileResponse' :: Maybe Natural
contactPostPassDurationSeconds = Maybe Natural
a} :: GetMissionProfileResponse)

-- | Amount of time prior to contact start you’d like to receive a CloudWatch
-- event indicating an upcoming pass.
getMissionProfileResponse_contactPrePassDurationSeconds :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Natural)
getMissionProfileResponse_contactPrePassDurationSeconds :: Lens' GetMissionProfileResponse (Maybe Natural)
getMissionProfileResponse_contactPrePassDurationSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfileResponse' {Maybe Natural
contactPrePassDurationSeconds :: Maybe Natural
$sel:contactPrePassDurationSeconds:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Natural
contactPrePassDurationSeconds} -> Maybe Natural
contactPrePassDurationSeconds) (\s :: GetMissionProfileResponse
s@GetMissionProfileResponse' {} Maybe Natural
a -> GetMissionProfileResponse
s {$sel:contactPrePassDurationSeconds:GetMissionProfileResponse' :: Maybe Natural
contactPrePassDurationSeconds = Maybe Natural
a} :: GetMissionProfileResponse)

-- | A list of lists of ARNs. Each list of ARNs is an edge, with a /from/
-- @Config@ and a /to/ @Config@.
getMissionProfileResponse_dataflowEdges :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe [Prelude.NonEmpty Prelude.Text])
getMissionProfileResponse_dataflowEdges :: Lens' GetMissionProfileResponse (Maybe [NonEmpty Text])
getMissionProfileResponse_dataflowEdges = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfileResponse' {Maybe [NonEmpty Text]
dataflowEdges :: Maybe [NonEmpty Text]
$sel:dataflowEdges:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe [NonEmpty Text]
dataflowEdges} -> Maybe [NonEmpty Text]
dataflowEdges) (\s :: GetMissionProfileResponse
s@GetMissionProfileResponse' {} Maybe [NonEmpty Text]
a -> GetMissionProfileResponse
s {$sel:dataflowEdges:GetMissionProfileResponse' :: Maybe [NonEmpty Text]
dataflowEdges = Maybe [NonEmpty Text]
a} :: GetMissionProfileResponse) 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

-- | Smallest amount of time in seconds that you’d like to see for an
-- available contact. AWS Ground Station will not present you with contacts
-- shorter than this duration.
getMissionProfileResponse_minimumViableContactDurationSeconds :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Natural)
getMissionProfileResponse_minimumViableContactDurationSeconds :: Lens' GetMissionProfileResponse (Maybe Natural)
getMissionProfileResponse_minimumViableContactDurationSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfileResponse' {Maybe Natural
minimumViableContactDurationSeconds :: Maybe Natural
$sel:minimumViableContactDurationSeconds:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Natural
minimumViableContactDurationSeconds} -> Maybe Natural
minimumViableContactDurationSeconds) (\s :: GetMissionProfileResponse
s@GetMissionProfileResponse' {} Maybe Natural
a -> GetMissionProfileResponse
s {$sel:minimumViableContactDurationSeconds:GetMissionProfileResponse' :: Maybe Natural
minimumViableContactDurationSeconds = Maybe Natural
a} :: GetMissionProfileResponse)

-- | ARN of a mission profile.
getMissionProfileResponse_missionProfileArn :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)
getMissionProfileResponse_missionProfileArn :: Lens' GetMissionProfileResponse (Maybe Text)
getMissionProfileResponse_missionProfileArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfileResponse' {Maybe Text
missionProfileArn :: Maybe Text
$sel:missionProfileArn:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
missionProfileArn} -> Maybe Text
missionProfileArn) (\s :: GetMissionProfileResponse
s@GetMissionProfileResponse' {} Maybe Text
a -> GetMissionProfileResponse
s {$sel:missionProfileArn:GetMissionProfileResponse' :: Maybe Text
missionProfileArn = Maybe Text
a} :: GetMissionProfileResponse)

-- | UUID of a mission profile.
getMissionProfileResponse_missionProfileId :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)
getMissionProfileResponse_missionProfileId :: Lens' GetMissionProfileResponse (Maybe Text)
getMissionProfileResponse_missionProfileId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfileResponse' {Maybe Text
missionProfileId :: Maybe Text
$sel:missionProfileId:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
missionProfileId} -> Maybe Text
missionProfileId) (\s :: GetMissionProfileResponse
s@GetMissionProfileResponse' {} Maybe Text
a -> GetMissionProfileResponse
s {$sel:missionProfileId:GetMissionProfileResponse' :: Maybe Text
missionProfileId = Maybe Text
a} :: GetMissionProfileResponse)

-- | Name of a mission profile.
getMissionProfileResponse_name :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)
getMissionProfileResponse_name :: Lens' GetMissionProfileResponse (Maybe Text)
getMissionProfileResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfileResponse' {Maybe Text
name :: Maybe Text
$sel:name:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: GetMissionProfileResponse
s@GetMissionProfileResponse' {} Maybe Text
a -> GetMissionProfileResponse
s {$sel:name:GetMissionProfileResponse' :: Maybe Text
name = Maybe Text
a} :: GetMissionProfileResponse)

-- | Region of a mission profile.
getMissionProfileResponse_region :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)
getMissionProfileResponse_region :: Lens' GetMissionProfileResponse (Maybe Text)
getMissionProfileResponse_region = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfileResponse' {Maybe Text
region :: Maybe Text
$sel:region:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
region} -> Maybe Text
region) (\s :: GetMissionProfileResponse
s@GetMissionProfileResponse' {} Maybe Text
a -> GetMissionProfileResponse
s {$sel:region:GetMissionProfileResponse' :: Maybe Text
region = Maybe Text
a} :: GetMissionProfileResponse)

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

-- | ARN of a tracking @Config@.
getMissionProfileResponse_trackingConfigArn :: Lens.Lens' GetMissionProfileResponse (Prelude.Maybe Prelude.Text)
getMissionProfileResponse_trackingConfigArn :: Lens' GetMissionProfileResponse (Maybe Text)
getMissionProfileResponse_trackingConfigArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetMissionProfileResponse' {Maybe Text
trackingConfigArn :: Maybe Text
$sel:trackingConfigArn:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
trackingConfigArn} -> Maybe Text
trackingConfigArn) (\s :: GetMissionProfileResponse
s@GetMissionProfileResponse' {} Maybe Text
a -> GetMissionProfileResponse
s {$sel:trackingConfigArn:GetMissionProfileResponse' :: Maybe Text
trackingConfigArn = Maybe Text
a} :: GetMissionProfileResponse)

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

instance Prelude.NFData GetMissionProfileResponse where
  rnf :: GetMissionProfileResponse -> ()
rnf GetMissionProfileResponse' {Int
Maybe Natural
Maybe [NonEmpty Text]
Maybe Text
Maybe (HashMap Text Text)
httpStatus :: Int
trackingConfigArn :: Maybe Text
tags :: Maybe (HashMap Text Text)
region :: Maybe Text
name :: Maybe Text
missionProfileId :: Maybe Text
missionProfileArn :: Maybe Text
minimumViableContactDurationSeconds :: Maybe Natural
dataflowEdges :: Maybe [NonEmpty Text]
contactPrePassDurationSeconds :: Maybe Natural
contactPostPassDurationSeconds :: Maybe Natural
$sel:httpStatus:GetMissionProfileResponse' :: GetMissionProfileResponse -> Int
$sel:trackingConfigArn:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
$sel:tags:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe (HashMap Text Text)
$sel:region:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
$sel:name:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
$sel:missionProfileId:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
$sel:missionProfileArn:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Text
$sel:minimumViableContactDurationSeconds:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Natural
$sel:dataflowEdges:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe [NonEmpty Text]
$sel:contactPrePassDurationSeconds:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Natural
$sel:contactPostPassDurationSeconds:GetMissionProfileResponse' :: GetMissionProfileResponse -> Maybe Natural
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
contactPostPassDurationSeconds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
contactPrePassDurationSeconds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [NonEmpty Text]
dataflowEdges
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
minimumViableContactDurationSeconds
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
missionProfileArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
missionProfileId
      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 Text
region
      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 Maybe Text
trackingConfigArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus