{-# 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.DescribeContact
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Describes an existing contact.
module Amazonka.GroundStation.DescribeContact
  ( -- * Creating a Request
    DescribeContact (..),
    newDescribeContact,

    -- * Request Lenses
    describeContact_contactId,

    -- * Destructuring the Response
    DescribeContactResponse (..),
    newDescribeContactResponse,

    -- * Response Lenses
    describeContactResponse_contactStatus,
    describeContactResponse_missionProfileArn,
    describeContactResponse_startTime,
    describeContactResponse_dataflowList,
    describeContactResponse_satelliteArn,
    describeContactResponse_maximumElevation,
    describeContactResponse_groundStation,
    describeContactResponse_endTime,
    describeContactResponse_contactId,
    describeContactResponse_region,
    describeContactResponse_postPassEndTime,
    describeContactResponse_prePassStartTime,
    describeContactResponse_errorMessage,
    describeContactResponse_tags,
    describeContactResponse_httpStatus,
  )
where

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

-- |
--
-- /See:/ 'newDescribeContact' smart constructor.
data DescribeContact = DescribeContact'
  { -- | UUID of a contact.
    DescribeContact -> Text
contactId :: Prelude.Text
  }
  deriving (DescribeContact -> DescribeContact -> Bool
(DescribeContact -> DescribeContact -> Bool)
-> (DescribeContact -> DescribeContact -> Bool)
-> Eq DescribeContact
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeContact -> DescribeContact -> Bool
$c/= :: DescribeContact -> DescribeContact -> Bool
== :: DescribeContact -> DescribeContact -> Bool
$c== :: DescribeContact -> DescribeContact -> Bool
Prelude.Eq, ReadPrec [DescribeContact]
ReadPrec DescribeContact
Int -> ReadS DescribeContact
ReadS [DescribeContact]
(Int -> ReadS DescribeContact)
-> ReadS [DescribeContact]
-> ReadPrec DescribeContact
-> ReadPrec [DescribeContact]
-> Read DescribeContact
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeContact]
$creadListPrec :: ReadPrec [DescribeContact]
readPrec :: ReadPrec DescribeContact
$creadPrec :: ReadPrec DescribeContact
readList :: ReadS [DescribeContact]
$creadList :: ReadS [DescribeContact]
readsPrec :: Int -> ReadS DescribeContact
$creadsPrec :: Int -> ReadS DescribeContact
Prelude.Read, Int -> DescribeContact -> ShowS
[DescribeContact] -> ShowS
DescribeContact -> String
(Int -> DescribeContact -> ShowS)
-> (DescribeContact -> String)
-> ([DescribeContact] -> ShowS)
-> Show DescribeContact
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeContact] -> ShowS
$cshowList :: [DescribeContact] -> ShowS
show :: DescribeContact -> String
$cshow :: DescribeContact -> String
showsPrec :: Int -> DescribeContact -> ShowS
$cshowsPrec :: Int -> DescribeContact -> ShowS
Prelude.Show, (forall x. DescribeContact -> Rep DescribeContact x)
-> (forall x. Rep DescribeContact x -> DescribeContact)
-> Generic DescribeContact
forall x. Rep DescribeContact x -> DescribeContact
forall x. DescribeContact -> Rep DescribeContact x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeContact x -> DescribeContact
$cfrom :: forall x. DescribeContact -> Rep DescribeContact x
Prelude.Generic)

-- |
-- Create a value of 'DescribeContact' 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:
--
-- 'contactId', 'describeContact_contactId' - UUID of a contact.
newDescribeContact ::
  -- | 'contactId'
  Prelude.Text ->
  DescribeContact
newDescribeContact :: Text -> DescribeContact
newDescribeContact Text
pContactId_ =
  DescribeContact' :: Text -> DescribeContact
DescribeContact' {$sel:contactId:DescribeContact' :: Text
contactId = Text
pContactId_}

-- | UUID of a contact.
describeContact_contactId :: Lens.Lens' DescribeContact Prelude.Text
describeContact_contactId :: (Text -> f Text) -> DescribeContact -> f DescribeContact
describeContact_contactId = (DescribeContact -> Text)
-> (DescribeContact -> Text -> DescribeContact)
-> Lens DescribeContact DescribeContact Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContact' {Text
contactId :: Text
$sel:contactId:DescribeContact' :: DescribeContact -> Text
contactId} -> Text
contactId) (\s :: DescribeContact
s@DescribeContact' {} Text
a -> DescribeContact
s {$sel:contactId:DescribeContact' :: Text
contactId = Text
a} :: DescribeContact)

instance Core.AWSRequest DescribeContact where
  type
    AWSResponse DescribeContact =
      DescribeContactResponse
  request :: DescribeContact -> Request DescribeContact
request = Service -> DescribeContact -> Request DescribeContact
forall a. ToRequest a => Service -> a -> Request a
Request.get Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeContact
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeContact)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeContact))
-> Logger
-> Service
-> Proxy DescribeContact
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeContact)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe ContactStatus
-> Maybe Text
-> Maybe POSIX
-> Maybe [DataflowDetail]
-> Maybe Text
-> Maybe Elevation
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> DescribeContactResponse
DescribeContactResponse'
            (Maybe ContactStatus
 -> Maybe Text
 -> Maybe POSIX
 -> Maybe [DataflowDetail]
 -> Maybe Text
 -> Maybe Elevation
 -> Maybe Text
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe Text
 -> Maybe POSIX
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe (HashMap Text Text)
 -> Int
 -> DescribeContactResponse)
-> Either String (Maybe ContactStatus)
-> Either
     String
     (Maybe Text
      -> Maybe POSIX
      -> Maybe [DataflowDetail]
      -> Maybe Text
      -> Maybe Elevation
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe ContactStatus)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"contactStatus")
            Either
  String
  (Maybe Text
   -> Maybe POSIX
   -> Maybe [DataflowDetail]
   -> Maybe Text
   -> Maybe Elevation
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe POSIX
      -> Maybe [DataflowDetail]
      -> Maybe Text
      -> Maybe Elevation
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"missionProfileArn")
            Either
  String
  (Maybe POSIX
   -> Maybe [DataflowDetail]
   -> Maybe Text
   -> Maybe Elevation
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe [DataflowDetail]
      -> Maybe Text
      -> Maybe Elevation
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"startTime")
            Either
  String
  (Maybe [DataflowDetail]
   -> Maybe Text
   -> Maybe Elevation
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe [DataflowDetail])
-> Either
     String
     (Maybe Text
      -> Maybe Elevation
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe [DataflowDetail]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"dataflowList" Either String (Maybe (Maybe [DataflowDetail]))
-> Maybe [DataflowDetail] -> Either String (Maybe [DataflowDetail])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [DataflowDetail]
forall a. Monoid a => a
Prelude.mempty)
            Either
  String
  (Maybe Text
   -> Maybe Elevation
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Elevation
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"satelliteArn")
            Either
  String
  (Maybe Elevation
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe Elevation)
-> Either
     String
     (Maybe Text
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Elevation)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"maximumElevation")
            Either
  String
  (Maybe Text
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe POSIX
      -> Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"groundStation")
            Either
  String
  (Maybe POSIX
   -> Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe Text
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"endTime")
            Either
  String
  (Maybe Text
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"contactId")
            Either
  String
  (Maybe Text
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"region")
            Either
  String
  (Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Int
      -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"postPassEndTime")
            Either
  String
  (Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Int
   -> DescribeContactResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe Text
      -> Maybe (HashMap Text Text) -> Int -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"prePassStartTime")
            Either
  String
  (Maybe Text
   -> Maybe (HashMap Text Text) -> Int -> DescribeContactResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (HashMap Text Text) -> Int -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"errorMessage")
            Either
  String
  (Maybe (HashMap Text Text) -> Int -> DescribeContactResponse)
-> Either String (Maybe (HashMap Text Text))
-> Either String (Int -> DescribeContactResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"tags" Either String (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text)
-> Either String (Maybe (HashMap Text Text))
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty)
            Either String (Int -> DescribeContactResponse)
-> Either String Int -> Either String DescribeContactResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable DescribeContact

instance Prelude.NFData DescribeContact

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

instance Core.ToPath DescribeContact where
  toPath :: DescribeContact -> ByteString
toPath DescribeContact' {Text
contactId :: Text
$sel:contactId:DescribeContact' :: DescribeContact -> Text
..} =
    [ByteString] -> ByteString
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/contact/", Text -> ByteString
forall a. ToByteString a => a -> ByteString
Core.toBS Text
contactId]

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

-- |
--
-- /See:/ 'newDescribeContactResponse' smart constructor.
data DescribeContactResponse = DescribeContactResponse'
  { -- | Status of a contact.
    DescribeContactResponse -> Maybe ContactStatus
contactStatus :: Prelude.Maybe ContactStatus,
    -- | ARN of a mission profile.
    DescribeContactResponse -> Maybe Text
missionProfileArn :: Prelude.Maybe Prelude.Text,
    -- | Start time of a contact.
    DescribeContactResponse -> Maybe POSIX
startTime :: Prelude.Maybe Core.POSIX,
    -- | List describing source and destination details for each dataflow edge.
    DescribeContactResponse -> Maybe [DataflowDetail]
dataflowList :: Prelude.Maybe [DataflowDetail],
    -- | ARN of a satellite.
    DescribeContactResponse -> Maybe Text
satelliteArn :: Prelude.Maybe Prelude.Text,
    -- | Maximum elevation angle of a contact.
    DescribeContactResponse -> Maybe Elevation
maximumElevation :: Prelude.Maybe Elevation,
    -- | Ground station for a contact.
    DescribeContactResponse -> Maybe Text
groundStation :: Prelude.Maybe Prelude.Text,
    -- | End time of a contact.
    DescribeContactResponse -> Maybe POSIX
endTime :: Prelude.Maybe Core.POSIX,
    -- | UUID of a contact.
    DescribeContactResponse -> Maybe Text
contactId :: Prelude.Maybe Prelude.Text,
    -- | Region of a contact.
    DescribeContactResponse -> Maybe Text
region :: Prelude.Maybe Prelude.Text,
    -- | Amount of time after a contact ends that you’d like to receive a
    -- CloudWatch event indicating the pass has finished.
    DescribeContactResponse -> Maybe POSIX
postPassEndTime :: Prelude.Maybe Core.POSIX,
    -- | Amount of time prior to contact start you’d like to receive a CloudWatch
    -- event indicating an upcoming pass.
    DescribeContactResponse -> Maybe POSIX
prePassStartTime :: Prelude.Maybe Core.POSIX,
    -- | Error message for a contact.
    DescribeContactResponse -> Maybe Text
errorMessage :: Prelude.Maybe Prelude.Text,
    -- | Tags assigned to a contact.
    DescribeContactResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The response's http status code.
    DescribeContactResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeContactResponse -> DescribeContactResponse -> Bool
(DescribeContactResponse -> DescribeContactResponse -> Bool)
-> (DescribeContactResponse -> DescribeContactResponse -> Bool)
-> Eq DescribeContactResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeContactResponse -> DescribeContactResponse -> Bool
$c/= :: DescribeContactResponse -> DescribeContactResponse -> Bool
== :: DescribeContactResponse -> DescribeContactResponse -> Bool
$c== :: DescribeContactResponse -> DescribeContactResponse -> Bool
Prelude.Eq, ReadPrec [DescribeContactResponse]
ReadPrec DescribeContactResponse
Int -> ReadS DescribeContactResponse
ReadS [DescribeContactResponse]
(Int -> ReadS DescribeContactResponse)
-> ReadS [DescribeContactResponse]
-> ReadPrec DescribeContactResponse
-> ReadPrec [DescribeContactResponse]
-> Read DescribeContactResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeContactResponse]
$creadListPrec :: ReadPrec [DescribeContactResponse]
readPrec :: ReadPrec DescribeContactResponse
$creadPrec :: ReadPrec DescribeContactResponse
readList :: ReadS [DescribeContactResponse]
$creadList :: ReadS [DescribeContactResponse]
readsPrec :: Int -> ReadS DescribeContactResponse
$creadsPrec :: Int -> ReadS DescribeContactResponse
Prelude.Read, Int -> DescribeContactResponse -> ShowS
[DescribeContactResponse] -> ShowS
DescribeContactResponse -> String
(Int -> DescribeContactResponse -> ShowS)
-> (DescribeContactResponse -> String)
-> ([DescribeContactResponse] -> ShowS)
-> Show DescribeContactResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeContactResponse] -> ShowS
$cshowList :: [DescribeContactResponse] -> ShowS
show :: DescribeContactResponse -> String
$cshow :: DescribeContactResponse -> String
showsPrec :: Int -> DescribeContactResponse -> ShowS
$cshowsPrec :: Int -> DescribeContactResponse -> ShowS
Prelude.Show, (forall x.
 DescribeContactResponse -> Rep DescribeContactResponse x)
-> (forall x.
    Rep DescribeContactResponse x -> DescribeContactResponse)
-> Generic DescribeContactResponse
forall x. Rep DescribeContactResponse x -> DescribeContactResponse
forall x. DescribeContactResponse -> Rep DescribeContactResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeContactResponse x -> DescribeContactResponse
$cfrom :: forall x. DescribeContactResponse -> Rep DescribeContactResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeContactResponse' 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:
--
-- 'contactStatus', 'describeContactResponse_contactStatus' - Status of a contact.
--
-- 'missionProfileArn', 'describeContactResponse_missionProfileArn' - ARN of a mission profile.
--
-- 'startTime', 'describeContactResponse_startTime' - Start time of a contact.
--
-- 'dataflowList', 'describeContactResponse_dataflowList' - List describing source and destination details for each dataflow edge.
--
-- 'satelliteArn', 'describeContactResponse_satelliteArn' - ARN of a satellite.
--
-- 'maximumElevation', 'describeContactResponse_maximumElevation' - Maximum elevation angle of a contact.
--
-- 'groundStation', 'describeContactResponse_groundStation' - Ground station for a contact.
--
-- 'endTime', 'describeContactResponse_endTime' - End time of a contact.
--
-- 'contactId', 'describeContactResponse_contactId' - UUID of a contact.
--
-- 'region', 'describeContactResponse_region' - Region of a contact.
--
-- 'postPassEndTime', 'describeContactResponse_postPassEndTime' - Amount of time after a contact ends that you’d like to receive a
-- CloudWatch event indicating the pass has finished.
--
-- 'prePassStartTime', 'describeContactResponse_prePassStartTime' - Amount of time prior to contact start you’d like to receive a CloudWatch
-- event indicating an upcoming pass.
--
-- 'errorMessage', 'describeContactResponse_errorMessage' - Error message for a contact.
--
-- 'tags', 'describeContactResponse_tags' - Tags assigned to a contact.
--
-- 'httpStatus', 'describeContactResponse_httpStatus' - The response's http status code.
newDescribeContactResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeContactResponse
newDescribeContactResponse :: Int -> DescribeContactResponse
newDescribeContactResponse Int
pHttpStatus_ =
  DescribeContactResponse' :: Maybe ContactStatus
-> Maybe Text
-> Maybe POSIX
-> Maybe [DataflowDetail]
-> Maybe Text
-> Maybe Elevation
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Int
-> DescribeContactResponse
DescribeContactResponse'
    { $sel:contactStatus:DescribeContactResponse' :: Maybe ContactStatus
contactStatus =
        Maybe ContactStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:missionProfileArn:DescribeContactResponse' :: Maybe Text
missionProfileArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:DescribeContactResponse' :: Maybe POSIX
startTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:dataflowList:DescribeContactResponse' :: Maybe [DataflowDetail]
dataflowList = Maybe [DataflowDetail]
forall a. Maybe a
Prelude.Nothing,
      $sel:satelliteArn:DescribeContactResponse' :: Maybe Text
satelliteArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:maximumElevation:DescribeContactResponse' :: Maybe Elevation
maximumElevation = Maybe Elevation
forall a. Maybe a
Prelude.Nothing,
      $sel:groundStation:DescribeContactResponse' :: Maybe Text
groundStation = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:endTime:DescribeContactResponse' :: Maybe POSIX
endTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:contactId:DescribeContactResponse' :: Maybe Text
contactId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:region:DescribeContactResponse' :: Maybe Text
region = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:postPassEndTime:DescribeContactResponse' :: Maybe POSIX
postPassEndTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:prePassStartTime:DescribeContactResponse' :: Maybe POSIX
prePassStartTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:errorMessage:DescribeContactResponse' :: Maybe Text
errorMessage = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeContactResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeContactResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Status of a contact.
describeContactResponse_contactStatus :: Lens.Lens' DescribeContactResponse (Prelude.Maybe ContactStatus)
describeContactResponse_contactStatus :: (Maybe ContactStatus -> f (Maybe ContactStatus))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_contactStatus = (DescribeContactResponse -> Maybe ContactStatus)
-> (DescribeContactResponse
    -> Maybe ContactStatus -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe ContactStatus)
     (Maybe ContactStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe ContactStatus
contactStatus :: Maybe ContactStatus
$sel:contactStatus:DescribeContactResponse' :: DescribeContactResponse -> Maybe ContactStatus
contactStatus} -> Maybe ContactStatus
contactStatus) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe ContactStatus
a -> DescribeContactResponse
s {$sel:contactStatus:DescribeContactResponse' :: Maybe ContactStatus
contactStatus = Maybe ContactStatus
a} :: DescribeContactResponse)

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

-- | Start time of a contact.
describeContactResponse_startTime :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.UTCTime)
describeContactResponse_startTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_startTime = (DescribeContactResponse -> Maybe POSIX)
-> (DescribeContactResponse
    -> Maybe POSIX -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:DescribeContactResponse' :: DescribeContactResponse -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe POSIX
a -> DescribeContactResponse
s {$sel:startTime:DescribeContactResponse' :: Maybe POSIX
startTime = Maybe POSIX
a} :: DescribeContactResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeContactResponse -> f DescribeContactResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeContactResponse
-> f DescribeContactResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | List describing source and destination details for each dataflow edge.
describeContactResponse_dataflowList :: Lens.Lens' DescribeContactResponse (Prelude.Maybe [DataflowDetail])
describeContactResponse_dataflowList :: (Maybe [DataflowDetail] -> f (Maybe [DataflowDetail]))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_dataflowList = (DescribeContactResponse -> Maybe [DataflowDetail])
-> (DescribeContactResponse
    -> Maybe [DataflowDetail] -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe [DataflowDetail])
     (Maybe [DataflowDetail])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe [DataflowDetail]
dataflowList :: Maybe [DataflowDetail]
$sel:dataflowList:DescribeContactResponse' :: DescribeContactResponse -> Maybe [DataflowDetail]
dataflowList} -> Maybe [DataflowDetail]
dataflowList) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe [DataflowDetail]
a -> DescribeContactResponse
s {$sel:dataflowList:DescribeContactResponse' :: Maybe [DataflowDetail]
dataflowList = Maybe [DataflowDetail]
a} :: DescribeContactResponse) ((Maybe [DataflowDetail] -> f (Maybe [DataflowDetail]))
 -> DescribeContactResponse -> f DescribeContactResponse)
-> ((Maybe [DataflowDetail] -> f (Maybe [DataflowDetail]))
    -> Maybe [DataflowDetail] -> f (Maybe [DataflowDetail]))
-> (Maybe [DataflowDetail] -> f (Maybe [DataflowDetail]))
-> DescribeContactResponse
-> f DescribeContactResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DataflowDetail] [DataflowDetail] [DataflowDetail] [DataflowDetail]
-> Iso
     (Maybe [DataflowDetail])
     (Maybe [DataflowDetail])
     (Maybe [DataflowDetail])
     (Maybe [DataflowDetail])
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 AnIso
  [DataflowDetail] [DataflowDetail] [DataflowDetail] [DataflowDetail]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | ARN of a satellite.
describeContactResponse_satelliteArn :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)
describeContactResponse_satelliteArn :: (Maybe Text -> f (Maybe Text))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_satelliteArn = (DescribeContactResponse -> Maybe Text)
-> (DescribeContactResponse
    -> Maybe Text -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe Text
satelliteArn :: Maybe Text
$sel:satelliteArn:DescribeContactResponse' :: DescribeContactResponse -> Maybe Text
satelliteArn} -> Maybe Text
satelliteArn) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe Text
a -> DescribeContactResponse
s {$sel:satelliteArn:DescribeContactResponse' :: Maybe Text
satelliteArn = Maybe Text
a} :: DescribeContactResponse)

-- | Maximum elevation angle of a contact.
describeContactResponse_maximumElevation :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Elevation)
describeContactResponse_maximumElevation :: (Maybe Elevation -> f (Maybe Elevation))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_maximumElevation = (DescribeContactResponse -> Maybe Elevation)
-> (DescribeContactResponse
    -> Maybe Elevation -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe Elevation)
     (Maybe Elevation)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe Elevation
maximumElevation :: Maybe Elevation
$sel:maximumElevation:DescribeContactResponse' :: DescribeContactResponse -> Maybe Elevation
maximumElevation} -> Maybe Elevation
maximumElevation) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe Elevation
a -> DescribeContactResponse
s {$sel:maximumElevation:DescribeContactResponse' :: Maybe Elevation
maximumElevation = Maybe Elevation
a} :: DescribeContactResponse)

-- | Ground station for a contact.
describeContactResponse_groundStation :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)
describeContactResponse_groundStation :: (Maybe Text -> f (Maybe Text))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_groundStation = (DescribeContactResponse -> Maybe Text)
-> (DescribeContactResponse
    -> Maybe Text -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe Text
groundStation :: Maybe Text
$sel:groundStation:DescribeContactResponse' :: DescribeContactResponse -> Maybe Text
groundStation} -> Maybe Text
groundStation) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe Text
a -> DescribeContactResponse
s {$sel:groundStation:DescribeContactResponse' :: Maybe Text
groundStation = Maybe Text
a} :: DescribeContactResponse)

-- | End time of a contact.
describeContactResponse_endTime :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.UTCTime)
describeContactResponse_endTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_endTime = (DescribeContactResponse -> Maybe POSIX)
-> (DescribeContactResponse
    -> Maybe POSIX -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:DescribeContactResponse' :: DescribeContactResponse -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe POSIX
a -> DescribeContactResponse
s {$sel:endTime:DescribeContactResponse' :: Maybe POSIX
endTime = Maybe POSIX
a} :: DescribeContactResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeContactResponse -> f DescribeContactResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeContactResponse
-> f DescribeContactResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | UUID of a contact.
describeContactResponse_contactId :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)
describeContactResponse_contactId :: (Maybe Text -> f (Maybe Text))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_contactId = (DescribeContactResponse -> Maybe Text)
-> (DescribeContactResponse
    -> Maybe Text -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe Text
contactId :: Maybe Text
$sel:contactId:DescribeContactResponse' :: DescribeContactResponse -> Maybe Text
contactId} -> Maybe Text
contactId) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe Text
a -> DescribeContactResponse
s {$sel:contactId:DescribeContactResponse' :: Maybe Text
contactId = Maybe Text
a} :: DescribeContactResponse)

-- | Region of a contact.
describeContactResponse_region :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)
describeContactResponse_region :: (Maybe Text -> f (Maybe Text))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_region = (DescribeContactResponse -> Maybe Text)
-> (DescribeContactResponse
    -> Maybe Text -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe Text
region :: Maybe Text
$sel:region:DescribeContactResponse' :: DescribeContactResponse -> Maybe Text
region} -> Maybe Text
region) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe Text
a -> DescribeContactResponse
s {$sel:region:DescribeContactResponse' :: Maybe Text
region = Maybe Text
a} :: DescribeContactResponse)

-- | Amount of time after a contact ends that you’d like to receive a
-- CloudWatch event indicating the pass has finished.
describeContactResponse_postPassEndTime :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.UTCTime)
describeContactResponse_postPassEndTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_postPassEndTime = (DescribeContactResponse -> Maybe POSIX)
-> (DescribeContactResponse
    -> Maybe POSIX -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe POSIX
postPassEndTime :: Maybe POSIX
$sel:postPassEndTime:DescribeContactResponse' :: DescribeContactResponse -> Maybe POSIX
postPassEndTime} -> Maybe POSIX
postPassEndTime) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe POSIX
a -> DescribeContactResponse
s {$sel:postPassEndTime:DescribeContactResponse' :: Maybe POSIX
postPassEndTime = Maybe POSIX
a} :: DescribeContactResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeContactResponse -> f DescribeContactResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeContactResponse
-> f DescribeContactResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Amount of time prior to contact start you’d like to receive a CloudWatch
-- event indicating an upcoming pass.
describeContactResponse_prePassStartTime :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.UTCTime)
describeContactResponse_prePassStartTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_prePassStartTime = (DescribeContactResponse -> Maybe POSIX)
-> (DescribeContactResponse
    -> Maybe POSIX -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe POSIX
prePassStartTime :: Maybe POSIX
$sel:prePassStartTime:DescribeContactResponse' :: DescribeContactResponse -> Maybe POSIX
prePassStartTime} -> Maybe POSIX
prePassStartTime) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe POSIX
a -> DescribeContactResponse
s {$sel:prePassStartTime:DescribeContactResponse' :: Maybe POSIX
prePassStartTime = Maybe POSIX
a} :: DescribeContactResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeContactResponse -> f DescribeContactResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeContactResponse
-> f DescribeContactResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Error message for a contact.
describeContactResponse_errorMessage :: Lens.Lens' DescribeContactResponse (Prelude.Maybe Prelude.Text)
describeContactResponse_errorMessage :: (Maybe Text -> f (Maybe Text))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_errorMessage = (DescribeContactResponse -> Maybe Text)
-> (DescribeContactResponse
    -> Maybe Text -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe Text
errorMessage :: Maybe Text
$sel:errorMessage:DescribeContactResponse' :: DescribeContactResponse -> Maybe Text
errorMessage} -> Maybe Text
errorMessage) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe Text
a -> DescribeContactResponse
s {$sel:errorMessage:DescribeContactResponse' :: Maybe Text
errorMessage = Maybe Text
a} :: DescribeContactResponse)

-- | Tags assigned to a contact.
describeContactResponse_tags :: Lens.Lens' DescribeContactResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeContactResponse_tags :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeContactResponse -> f DescribeContactResponse
describeContactResponse_tags = (DescribeContactResponse -> Maybe (HashMap Text Text))
-> (DescribeContactResponse
    -> Maybe (HashMap Text Text) -> DescribeContactResponse)
-> Lens
     DescribeContactResponse
     DescribeContactResponse
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeContactResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeContactResponse' :: DescribeContactResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeContactResponse
s@DescribeContactResponse' {} Maybe (HashMap Text Text)
a -> DescribeContactResponse
s {$sel:tags:DescribeContactResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeContactResponse) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> DescribeContactResponse -> f DescribeContactResponse)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeContactResponse
-> f DescribeContactResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
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 AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance Prelude.NFData DescribeContactResponse