{-# 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.Glacier.InitiateJob
(
InitiateJob (..),
newInitiateJob,
initiateJob_jobParameters,
initiateJob_accountId,
initiateJob_vaultName,
InitiateJobResponse (..),
newInitiateJobResponse,
initiateJobResponse_jobId,
initiateJobResponse_jobOutputPath,
initiateJobResponse_location,
initiateJobResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Glacier.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data InitiateJob = InitiateJob'
{
InitiateJob -> Maybe JobParameters
jobParameters :: Prelude.Maybe JobParameters,
InitiateJob -> Text
accountId :: Prelude.Text,
InitiateJob -> Text
vaultName :: Prelude.Text
}
deriving (InitiateJob -> InitiateJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InitiateJob -> InitiateJob -> Bool
$c/= :: InitiateJob -> InitiateJob -> Bool
== :: InitiateJob -> InitiateJob -> Bool
$c== :: InitiateJob -> InitiateJob -> Bool
Prelude.Eq, ReadPrec [InitiateJob]
ReadPrec InitiateJob
Int -> ReadS InitiateJob
ReadS [InitiateJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InitiateJob]
$creadListPrec :: ReadPrec [InitiateJob]
readPrec :: ReadPrec InitiateJob
$creadPrec :: ReadPrec InitiateJob
readList :: ReadS [InitiateJob]
$creadList :: ReadS [InitiateJob]
readsPrec :: Int -> ReadS InitiateJob
$creadsPrec :: Int -> ReadS InitiateJob
Prelude.Read, Int -> InitiateJob -> ShowS
[InitiateJob] -> ShowS
InitiateJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InitiateJob] -> ShowS
$cshowList :: [InitiateJob] -> ShowS
show :: InitiateJob -> String
$cshow :: InitiateJob -> String
showsPrec :: Int -> InitiateJob -> ShowS
$cshowsPrec :: Int -> InitiateJob -> ShowS
Prelude.Show, forall x. Rep InitiateJob x -> InitiateJob
forall x. InitiateJob -> Rep InitiateJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InitiateJob x -> InitiateJob
$cfrom :: forall x. InitiateJob -> Rep InitiateJob x
Prelude.Generic)
newInitiateJob ::
Prelude.Text ->
Prelude.Text ->
InitiateJob
newInitiateJob :: Text -> Text -> InitiateJob
newInitiateJob Text
pAccountId_ Text
pVaultName_ =
InitiateJob'
{ $sel:jobParameters:InitiateJob' :: Maybe JobParameters
jobParameters = forall a. Maybe a
Prelude.Nothing,
$sel:accountId:InitiateJob' :: Text
accountId = Text
pAccountId_,
$sel:vaultName:InitiateJob' :: Text
vaultName = Text
pVaultName_
}
initiateJob_jobParameters :: Lens.Lens' InitiateJob (Prelude.Maybe JobParameters)
initiateJob_jobParameters :: Lens' InitiateJob (Maybe JobParameters)
initiateJob_jobParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateJob' {Maybe JobParameters
jobParameters :: Maybe JobParameters
$sel:jobParameters:InitiateJob' :: InitiateJob -> Maybe JobParameters
jobParameters} -> Maybe JobParameters
jobParameters) (\s :: InitiateJob
s@InitiateJob' {} Maybe JobParameters
a -> InitiateJob
s {$sel:jobParameters:InitiateJob' :: Maybe JobParameters
jobParameters = Maybe JobParameters
a} :: InitiateJob)
initiateJob_accountId :: Lens.Lens' InitiateJob Prelude.Text
initiateJob_accountId :: Lens' InitiateJob Text
initiateJob_accountId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateJob' {Text
accountId :: Text
$sel:accountId:InitiateJob' :: InitiateJob -> Text
accountId} -> Text
accountId) (\s :: InitiateJob
s@InitiateJob' {} Text
a -> InitiateJob
s {$sel:accountId:InitiateJob' :: Text
accountId = Text
a} :: InitiateJob)
initiateJob_vaultName :: Lens.Lens' InitiateJob Prelude.Text
initiateJob_vaultName :: Lens' InitiateJob Text
initiateJob_vaultName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateJob' {Text
vaultName :: Text
$sel:vaultName:InitiateJob' :: InitiateJob -> Text
vaultName} -> Text
vaultName) (\s :: InitiateJob
s@InitiateJob' {} Text
a -> InitiateJob
s {$sel:vaultName:InitiateJob' :: Text
vaultName = Text
a} :: InitiateJob)
instance Core.AWSRequest InitiateJob where
type AWSResponse InitiateJob = InitiateJobResponse
request :: (Service -> Service) -> InitiateJob -> Request InitiateJob
request Service -> Service
overrides =
forall a. ByteString -> Request a -> Request a
Request.glacierVersionHeader (Service -> ByteString
Core.version Service
defaultService)
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 InitiateJob
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse InitiateJob)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
( \Int
s ResponseHeaders
h ()
x ->
Maybe Text
-> Maybe Text -> Maybe Text -> Int -> InitiateJobResponse
InitiateJobResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"x-amz-job-id")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"x-amz-job-output-path")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (ResponseHeaders
h forall a.
FromText a =>
ResponseHeaders -> HeaderName -> Either String (Maybe a)
Data..#? HeaderName
"Location")
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 InitiateJob where
hashWithSalt :: Int -> InitiateJob -> Int
hashWithSalt Int
_salt InitiateJob' {Maybe JobParameters
Text
vaultName :: Text
accountId :: Text
jobParameters :: Maybe JobParameters
$sel:vaultName:InitiateJob' :: InitiateJob -> Text
$sel:accountId:InitiateJob' :: InitiateJob -> Text
$sel:jobParameters:InitiateJob' :: InitiateJob -> Maybe JobParameters
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe JobParameters
jobParameters
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
accountId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
vaultName
instance Prelude.NFData InitiateJob where
rnf :: InitiateJob -> ()
rnf InitiateJob' {Maybe JobParameters
Text
vaultName :: Text
accountId :: Text
jobParameters :: Maybe JobParameters
$sel:vaultName:InitiateJob' :: InitiateJob -> Text
$sel:accountId:InitiateJob' :: InitiateJob -> Text
$sel:jobParameters:InitiateJob' :: InitiateJob -> Maybe JobParameters
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe JobParameters
jobParameters
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
accountId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
vaultName
instance Data.ToHeaders InitiateJob where
toHeaders :: InitiateJob -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToJSON InitiateJob where
toJSON :: InitiateJob -> Value
toJSON InitiateJob' {Maybe JobParameters
Text
vaultName :: Text
accountId :: Text
jobParameters :: Maybe JobParameters
$sel:vaultName:InitiateJob' :: InitiateJob -> Text
$sel:accountId:InitiateJob' :: InitiateJob -> Text
$sel:jobParameters:InitiateJob' :: InitiateJob -> Maybe JobParameters
..} = forall a. ToJSON a => a -> Value
Data.toJSON Maybe JobParameters
jobParameters
instance Data.ToPath InitiateJob where
toPath :: InitiateJob -> ByteString
toPath InitiateJob' {Maybe JobParameters
Text
vaultName :: Text
accountId :: Text
jobParameters :: Maybe JobParameters
$sel:vaultName:InitiateJob' :: InitiateJob -> Text
$sel:accountId:InitiateJob' :: InitiateJob -> Text
$sel:jobParameters:InitiateJob' :: InitiateJob -> Maybe JobParameters
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
accountId,
ByteString
"/vaults/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
vaultName,
ByteString
"/jobs"
]
instance Data.ToQuery InitiateJob where
toQuery :: InitiateJob -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data InitiateJobResponse = InitiateJobResponse'
{
InitiateJobResponse -> Maybe Text
jobId :: Prelude.Maybe Prelude.Text,
InitiateJobResponse -> Maybe Text
jobOutputPath :: Prelude.Maybe Prelude.Text,
InitiateJobResponse -> Maybe Text
location :: Prelude.Maybe Prelude.Text,
InitiateJobResponse -> Int
httpStatus :: Prelude.Int
}
deriving (InitiateJobResponse -> InitiateJobResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InitiateJobResponse -> InitiateJobResponse -> Bool
$c/= :: InitiateJobResponse -> InitiateJobResponse -> Bool
== :: InitiateJobResponse -> InitiateJobResponse -> Bool
$c== :: InitiateJobResponse -> InitiateJobResponse -> Bool
Prelude.Eq, ReadPrec [InitiateJobResponse]
ReadPrec InitiateJobResponse
Int -> ReadS InitiateJobResponse
ReadS [InitiateJobResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InitiateJobResponse]
$creadListPrec :: ReadPrec [InitiateJobResponse]
readPrec :: ReadPrec InitiateJobResponse
$creadPrec :: ReadPrec InitiateJobResponse
readList :: ReadS [InitiateJobResponse]
$creadList :: ReadS [InitiateJobResponse]
readsPrec :: Int -> ReadS InitiateJobResponse
$creadsPrec :: Int -> ReadS InitiateJobResponse
Prelude.Read, Int -> InitiateJobResponse -> ShowS
[InitiateJobResponse] -> ShowS
InitiateJobResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InitiateJobResponse] -> ShowS
$cshowList :: [InitiateJobResponse] -> ShowS
show :: InitiateJobResponse -> String
$cshow :: InitiateJobResponse -> String
showsPrec :: Int -> InitiateJobResponse -> ShowS
$cshowsPrec :: Int -> InitiateJobResponse -> ShowS
Prelude.Show, forall x. Rep InitiateJobResponse x -> InitiateJobResponse
forall x. InitiateJobResponse -> Rep InitiateJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InitiateJobResponse x -> InitiateJobResponse
$cfrom :: forall x. InitiateJobResponse -> Rep InitiateJobResponse x
Prelude.Generic)
newInitiateJobResponse ::
Prelude.Int ->
InitiateJobResponse
newInitiateJobResponse :: Int -> InitiateJobResponse
newInitiateJobResponse Int
pHttpStatus_ =
InitiateJobResponse'
{ $sel:jobId:InitiateJobResponse' :: Maybe Text
jobId = forall a. Maybe a
Prelude.Nothing,
$sel:jobOutputPath:InitiateJobResponse' :: Maybe Text
jobOutputPath = forall a. Maybe a
Prelude.Nothing,
$sel:location:InitiateJobResponse' :: Maybe Text
location = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:InitiateJobResponse' :: Int
httpStatus = Int
pHttpStatus_
}
initiateJobResponse_jobId :: Lens.Lens' InitiateJobResponse (Prelude.Maybe Prelude.Text)
initiateJobResponse_jobId :: Lens' InitiateJobResponse (Maybe Text)
initiateJobResponse_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateJobResponse' {Maybe Text
jobId :: Maybe Text
$sel:jobId:InitiateJobResponse' :: InitiateJobResponse -> Maybe Text
jobId} -> Maybe Text
jobId) (\s :: InitiateJobResponse
s@InitiateJobResponse' {} Maybe Text
a -> InitiateJobResponse
s {$sel:jobId:InitiateJobResponse' :: Maybe Text
jobId = Maybe Text
a} :: InitiateJobResponse)
initiateJobResponse_jobOutputPath :: Lens.Lens' InitiateJobResponse (Prelude.Maybe Prelude.Text)
initiateJobResponse_jobOutputPath :: Lens' InitiateJobResponse (Maybe Text)
initiateJobResponse_jobOutputPath = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateJobResponse' {Maybe Text
jobOutputPath :: Maybe Text
$sel:jobOutputPath:InitiateJobResponse' :: InitiateJobResponse -> Maybe Text
jobOutputPath} -> Maybe Text
jobOutputPath) (\s :: InitiateJobResponse
s@InitiateJobResponse' {} Maybe Text
a -> InitiateJobResponse
s {$sel:jobOutputPath:InitiateJobResponse' :: Maybe Text
jobOutputPath = Maybe Text
a} :: InitiateJobResponse)
initiateJobResponse_location :: Lens.Lens' InitiateJobResponse (Prelude.Maybe Prelude.Text)
initiateJobResponse_location :: Lens' InitiateJobResponse (Maybe Text)
initiateJobResponse_location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateJobResponse' {Maybe Text
location :: Maybe Text
$sel:location:InitiateJobResponse' :: InitiateJobResponse -> Maybe Text
location} -> Maybe Text
location) (\s :: InitiateJobResponse
s@InitiateJobResponse' {} Maybe Text
a -> InitiateJobResponse
s {$sel:location:InitiateJobResponse' :: Maybe Text
location = Maybe Text
a} :: InitiateJobResponse)
initiateJobResponse_httpStatus :: Lens.Lens' InitiateJobResponse Prelude.Int
initiateJobResponse_httpStatus :: Lens' InitiateJobResponse Int
initiateJobResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InitiateJobResponse' {Int
httpStatus :: Int
$sel:httpStatus:InitiateJobResponse' :: InitiateJobResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: InitiateJobResponse
s@InitiateJobResponse' {} Int
a -> InitiateJobResponse
s {$sel:httpStatus:InitiateJobResponse' :: Int
httpStatus = Int
a} :: InitiateJobResponse)
instance Prelude.NFData InitiateJobResponse where
rnf :: InitiateJobResponse -> ()
rnf InitiateJobResponse' {Int
Maybe Text
httpStatus :: Int
location :: Maybe Text
jobOutputPath :: Maybe Text
jobId :: Maybe Text
$sel:httpStatus:InitiateJobResponse' :: InitiateJobResponse -> Int
$sel:location:InitiateJobResponse' :: InitiateJobResponse -> Maybe Text
$sel:jobOutputPath:InitiateJobResponse' :: InitiateJobResponse -> Maybe Text
$sel:jobId:InitiateJobResponse' :: InitiateJobResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobOutputPath
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
location
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus