{-# 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 #-}
module Amazonka.GroundStation.ReserveContact
(
ReserveContact (..),
newReserveContact,
reserveContact_tags,
reserveContact_endTime,
reserveContact_groundStation,
reserveContact_missionProfileArn,
reserveContact_satelliteArn,
reserveContact_startTime,
ContactIdResponse (..),
newContactIdResponse,
contactIdResponse_contactId,
)
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
data ReserveContact = ReserveContact'
{
ReserveContact -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
ReserveContact -> POSIX
endTime :: Data.POSIX,
ReserveContact -> Text
groundStation :: Prelude.Text,
ReserveContact -> Text
missionProfileArn :: Prelude.Text,
ReserveContact -> Text
satelliteArn :: Prelude.Text,
ReserveContact -> POSIX
startTime :: Data.POSIX
}
deriving (ReserveContact -> ReserveContact -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReserveContact -> ReserveContact -> Bool
$c/= :: ReserveContact -> ReserveContact -> Bool
== :: ReserveContact -> ReserveContact -> Bool
$c== :: ReserveContact -> ReserveContact -> Bool
Prelude.Eq, ReadPrec [ReserveContact]
ReadPrec ReserveContact
Int -> ReadS ReserveContact
ReadS [ReserveContact]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReserveContact]
$creadListPrec :: ReadPrec [ReserveContact]
readPrec :: ReadPrec ReserveContact
$creadPrec :: ReadPrec ReserveContact
readList :: ReadS [ReserveContact]
$creadList :: ReadS [ReserveContact]
readsPrec :: Int -> ReadS ReserveContact
$creadsPrec :: Int -> ReadS ReserveContact
Prelude.Read, Int -> ReserveContact -> ShowS
[ReserveContact] -> ShowS
ReserveContact -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReserveContact] -> ShowS
$cshowList :: [ReserveContact] -> ShowS
show :: ReserveContact -> String
$cshow :: ReserveContact -> String
showsPrec :: Int -> ReserveContact -> ShowS
$cshowsPrec :: Int -> ReserveContact -> ShowS
Prelude.Show, forall x. Rep ReserveContact x -> ReserveContact
forall x. ReserveContact -> Rep ReserveContact x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReserveContact x -> ReserveContact
$cfrom :: forall x. ReserveContact -> Rep ReserveContact x
Prelude.Generic)
newReserveContact ::
Prelude.UTCTime ->
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
Prelude.UTCTime ->
ReserveContact
newReserveContact :: UTCTime -> Text -> Text -> Text -> UTCTime -> ReserveContact
newReserveContact
UTCTime
pEndTime_
Text
pGroundStation_
Text
pMissionProfileArn_
Text
pSatelliteArn_
UTCTime
pStartTime_ =
ReserveContact'
{ $sel:tags:ReserveContact' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
$sel:endTime:ReserveContact' :: POSIX
endTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pEndTime_,
$sel:groundStation:ReserveContact' :: Text
groundStation = Text
pGroundStation_,
$sel:missionProfileArn:ReserveContact' :: Text
missionProfileArn = Text
pMissionProfileArn_,
$sel:satelliteArn:ReserveContact' :: Text
satelliteArn = Text
pSatelliteArn_,
$sel:startTime:ReserveContact' :: POSIX
startTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pStartTime_
}
reserveContact_tags :: Lens.Lens' ReserveContact (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
reserveContact_tags :: Lens' ReserveContact (Maybe (HashMap Text Text))
reserveContact_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReserveContact' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:ReserveContact' :: ReserveContact -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: ReserveContact
s@ReserveContact' {} Maybe (HashMap Text Text)
a -> ReserveContact
s {$sel:tags:ReserveContact' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: ReserveContact) 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
reserveContact_endTime :: Lens.Lens' ReserveContact Prelude.UTCTime
reserveContact_endTime :: Lens' ReserveContact UTCTime
reserveContact_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReserveContact' {POSIX
endTime :: POSIX
$sel:endTime:ReserveContact' :: ReserveContact -> POSIX
endTime} -> POSIX
endTime) (\s :: ReserveContact
s@ReserveContact' {} POSIX
a -> ReserveContact
s {$sel:endTime:ReserveContact' :: POSIX
endTime = POSIX
a} :: ReserveContact) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
reserveContact_groundStation :: Lens.Lens' ReserveContact Prelude.Text
reserveContact_groundStation :: Lens' ReserveContact Text
reserveContact_groundStation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReserveContact' {Text
groundStation :: Text
$sel:groundStation:ReserveContact' :: ReserveContact -> Text
groundStation} -> Text
groundStation) (\s :: ReserveContact
s@ReserveContact' {} Text
a -> ReserveContact
s {$sel:groundStation:ReserveContact' :: Text
groundStation = Text
a} :: ReserveContact)
reserveContact_missionProfileArn :: Lens.Lens' ReserveContact Prelude.Text
reserveContact_missionProfileArn :: Lens' ReserveContact Text
reserveContact_missionProfileArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReserveContact' {Text
missionProfileArn :: Text
$sel:missionProfileArn:ReserveContact' :: ReserveContact -> Text
missionProfileArn} -> Text
missionProfileArn) (\s :: ReserveContact
s@ReserveContact' {} Text
a -> ReserveContact
s {$sel:missionProfileArn:ReserveContact' :: Text
missionProfileArn = Text
a} :: ReserveContact)
reserveContact_satelliteArn :: Lens.Lens' ReserveContact Prelude.Text
reserveContact_satelliteArn :: Lens' ReserveContact Text
reserveContact_satelliteArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReserveContact' {Text
satelliteArn :: Text
$sel:satelliteArn:ReserveContact' :: ReserveContact -> Text
satelliteArn} -> Text
satelliteArn) (\s :: ReserveContact
s@ReserveContact' {} Text
a -> ReserveContact
s {$sel:satelliteArn:ReserveContact' :: Text
satelliteArn = Text
a} :: ReserveContact)
reserveContact_startTime :: Lens.Lens' ReserveContact Prelude.UTCTime
reserveContact_startTime :: Lens' ReserveContact UTCTime
reserveContact_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReserveContact' {POSIX
startTime :: POSIX
$sel:startTime:ReserveContact' :: ReserveContact -> POSIX
startTime} -> POSIX
startTime) (\s :: ReserveContact
s@ReserveContact' {} POSIX
a -> ReserveContact
s {$sel:startTime:ReserveContact' :: POSIX
startTime = POSIX
a} :: ReserveContact) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
instance Core.AWSRequest ReserveContact where
type AWSResponse ReserveContact = ContactIdResponse
request :: (Service -> Service) -> ReserveContact -> Request ReserveContact
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy ReserveContact
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse ReserveContact)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
(\Int
s ResponseHeaders
h Object
x -> forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)
instance Prelude.Hashable ReserveContact where
hashWithSalt :: Int -> ReserveContact -> Int
hashWithSalt Int
_salt ReserveContact' {Maybe (HashMap Text Text)
Text
POSIX
startTime :: POSIX
satelliteArn :: Text
missionProfileArn :: Text
groundStation :: Text
endTime :: POSIX
tags :: Maybe (HashMap Text Text)
$sel:startTime:ReserveContact' :: ReserveContact -> POSIX
$sel:satelliteArn:ReserveContact' :: ReserveContact -> Text
$sel:missionProfileArn:ReserveContact' :: ReserveContact -> Text
$sel:groundStation:ReserveContact' :: ReserveContact -> Text
$sel:endTime:ReserveContact' :: ReserveContact -> POSIX
$sel:tags:ReserveContact' :: ReserveContact -> Maybe (HashMap Text Text)
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
endTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
groundStation
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
missionProfileArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
satelliteArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
startTime
instance Prelude.NFData ReserveContact where
rnf :: ReserveContact -> ()
rnf ReserveContact' {Maybe (HashMap Text Text)
Text
POSIX
startTime :: POSIX
satelliteArn :: Text
missionProfileArn :: Text
groundStation :: Text
endTime :: POSIX
tags :: Maybe (HashMap Text Text)
$sel:startTime:ReserveContact' :: ReserveContact -> POSIX
$sel:satelliteArn:ReserveContact' :: ReserveContact -> Text
$sel:missionProfileArn:ReserveContact' :: ReserveContact -> Text
$sel:groundStation:ReserveContact' :: ReserveContact -> Text
$sel:endTime:ReserveContact' :: ReserveContact -> POSIX
$sel:tags:ReserveContact' :: ReserveContact -> Maybe (HashMap Text Text)
..} =
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 POSIX
endTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
groundStation
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
missionProfileArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
satelliteArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
startTime
instance Data.ToHeaders ReserveContact where
toHeaders :: ReserveContact -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON ReserveContact where
toJSON :: ReserveContact -> Value
toJSON ReserveContact' {Maybe (HashMap Text Text)
Text
POSIX
startTime :: POSIX
satelliteArn :: Text
missionProfileArn :: Text
groundStation :: Text
endTime :: POSIX
tags :: Maybe (HashMap Text Text)
$sel:startTime:ReserveContact' :: ReserveContact -> POSIX
$sel:satelliteArn:ReserveContact' :: ReserveContact -> Text
$sel:missionProfileArn:ReserveContact' :: ReserveContact -> Text
$sel:groundStation:ReserveContact' :: ReserveContact -> Text
$sel:endTime:ReserveContact' :: ReserveContact -> POSIX
$sel:tags:ReserveContact' :: ReserveContact -> Maybe (HashMap Text Text)
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"tags" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
tags,
forall a. a -> Maybe a
Prelude.Just (Key
"endTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= POSIX
endTime),
forall a. a -> Maybe a
Prelude.Just (Key
"groundStation" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
groundStation),
forall a. a -> Maybe a
Prelude.Just
(Key
"missionProfileArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
missionProfileArn),
forall a. a -> Maybe a
Prelude.Just (Key
"satelliteArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
satelliteArn),
forall a. a -> Maybe a
Prelude.Just (Key
"startTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= POSIX
startTime)
]
)
instance Data.ToPath ReserveContact where
toPath :: ReserveContact -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/contact"
instance Data.ToQuery ReserveContact where
toQuery :: ReserveContact -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty