{-# 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.ImportExport.CreateJob
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- This operation initiates the process of scheduling an upload or download
-- of your data. You include in the request a manifest that describes the
-- data transfer specifics. The response to the request includes a job ID,
-- which you can use in other operations, a signature that you use to
-- identify your storage device, and the address where you should ship your
-- storage device.
module Amazonka.ImportExport.CreateJob
  ( -- * Creating a Request
    CreateJob (..),
    newCreateJob,

    -- * Request Lenses
    createJob_aPIVersion,
    createJob_manifestAddendum,
    createJob_jobType,
    createJob_manifest,
    createJob_validateOnly,

    -- * Destructuring the Response
    CreateJobResponse (..),
    newCreateJobResponse,

    -- * Response Lenses
    createJobResponse_artifactList,
    createJobResponse_jobId,
    createJobResponse_jobType,
    createJobResponse_signature,
    createJobResponse_signatureFileContents,
    createJobResponse_warningMessage,
    createJobResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ImportExport.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Input structure for the CreateJob operation.
--
-- /See:/ 'newCreateJob' smart constructor.
data CreateJob = CreateJob'
  { CreateJob -> Maybe Text
aPIVersion :: Prelude.Maybe Prelude.Text,
    CreateJob -> Maybe Text
manifestAddendum :: Prelude.Maybe Prelude.Text,
    CreateJob -> JobType
jobType :: JobType,
    CreateJob -> Text
manifest :: Prelude.Text,
    CreateJob -> Bool
validateOnly :: Prelude.Bool
  }
  deriving (CreateJob -> CreateJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateJob -> CreateJob -> Bool
$c/= :: CreateJob -> CreateJob -> Bool
== :: CreateJob -> CreateJob -> Bool
$c== :: CreateJob -> CreateJob -> Bool
Prelude.Eq, ReadPrec [CreateJob]
ReadPrec CreateJob
Int -> ReadS CreateJob
ReadS [CreateJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateJob]
$creadListPrec :: ReadPrec [CreateJob]
readPrec :: ReadPrec CreateJob
$creadPrec :: ReadPrec CreateJob
readList :: ReadS [CreateJob]
$creadList :: ReadS [CreateJob]
readsPrec :: Int -> ReadS CreateJob
$creadsPrec :: Int -> ReadS CreateJob
Prelude.Read, Int -> CreateJob -> ShowS
[CreateJob] -> ShowS
CreateJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateJob] -> ShowS
$cshowList :: [CreateJob] -> ShowS
show :: CreateJob -> String
$cshow :: CreateJob -> String
showsPrec :: Int -> CreateJob -> ShowS
$cshowsPrec :: Int -> CreateJob -> ShowS
Prelude.Show, forall x. Rep CreateJob x -> CreateJob
forall x. CreateJob -> Rep CreateJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateJob x -> CreateJob
$cfrom :: forall x. CreateJob -> Rep CreateJob x
Prelude.Generic)

-- |
-- Create a value of 'CreateJob' 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:
--
-- 'aPIVersion', 'createJob_aPIVersion' - Undocumented member.
--
-- 'manifestAddendum', 'createJob_manifestAddendum' - Undocumented member.
--
-- 'jobType', 'createJob_jobType' - Undocumented member.
--
-- 'manifest', 'createJob_manifest' - Undocumented member.
--
-- 'validateOnly', 'createJob_validateOnly' - Undocumented member.
newCreateJob ::
  -- | 'jobType'
  JobType ->
  -- | 'manifest'
  Prelude.Text ->
  -- | 'validateOnly'
  Prelude.Bool ->
  CreateJob
newCreateJob :: JobType -> Text -> Bool -> CreateJob
newCreateJob JobType
pJobType_ Text
pManifest_ Bool
pValidateOnly_ =
  CreateJob'
    { $sel:aPIVersion:CreateJob' :: Maybe Text
aPIVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:manifestAddendum:CreateJob' :: Maybe Text
manifestAddendum = forall a. Maybe a
Prelude.Nothing,
      $sel:jobType:CreateJob' :: JobType
jobType = JobType
pJobType_,
      $sel:manifest:CreateJob' :: Text
manifest = Text
pManifest_,
      $sel:validateOnly:CreateJob' :: Bool
validateOnly = Bool
pValidateOnly_
    }

-- | Undocumented member.
createJob_aPIVersion :: Lens.Lens' CreateJob (Prelude.Maybe Prelude.Text)
createJob_aPIVersion :: Lens' CreateJob (Maybe Text)
createJob_aPIVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJob' {Maybe Text
aPIVersion :: Maybe Text
$sel:aPIVersion:CreateJob' :: CreateJob -> Maybe Text
aPIVersion} -> Maybe Text
aPIVersion) (\s :: CreateJob
s@CreateJob' {} Maybe Text
a -> CreateJob
s {$sel:aPIVersion:CreateJob' :: Maybe Text
aPIVersion = Maybe Text
a} :: CreateJob)

-- | Undocumented member.
createJob_manifestAddendum :: Lens.Lens' CreateJob (Prelude.Maybe Prelude.Text)
createJob_manifestAddendum :: Lens' CreateJob (Maybe Text)
createJob_manifestAddendum = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJob' {Maybe Text
manifestAddendum :: Maybe Text
$sel:manifestAddendum:CreateJob' :: CreateJob -> Maybe Text
manifestAddendum} -> Maybe Text
manifestAddendum) (\s :: CreateJob
s@CreateJob' {} Maybe Text
a -> CreateJob
s {$sel:manifestAddendum:CreateJob' :: Maybe Text
manifestAddendum = Maybe Text
a} :: CreateJob)

-- | Undocumented member.
createJob_jobType :: Lens.Lens' CreateJob JobType
createJob_jobType :: Lens' CreateJob JobType
createJob_jobType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJob' {JobType
jobType :: JobType
$sel:jobType:CreateJob' :: CreateJob -> JobType
jobType} -> JobType
jobType) (\s :: CreateJob
s@CreateJob' {} JobType
a -> CreateJob
s {$sel:jobType:CreateJob' :: JobType
jobType = JobType
a} :: CreateJob)

-- | Undocumented member.
createJob_manifest :: Lens.Lens' CreateJob Prelude.Text
createJob_manifest :: Lens' CreateJob Text
createJob_manifest = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJob' {Text
manifest :: Text
$sel:manifest:CreateJob' :: CreateJob -> Text
manifest} -> Text
manifest) (\s :: CreateJob
s@CreateJob' {} Text
a -> CreateJob
s {$sel:manifest:CreateJob' :: Text
manifest = Text
a} :: CreateJob)

-- | Undocumented member.
createJob_validateOnly :: Lens.Lens' CreateJob Prelude.Bool
createJob_validateOnly :: Lens' CreateJob Bool
createJob_validateOnly = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJob' {Bool
validateOnly :: Bool
$sel:validateOnly:CreateJob' :: CreateJob -> Bool
validateOnly} -> Bool
validateOnly) (\s :: CreateJob
s@CreateJob' {} Bool
a -> CreateJob
s {$sel:validateOnly:CreateJob' :: Bool
validateOnly = Bool
a} :: CreateJob)

instance Core.AWSRequest CreateJob where
  type AWSResponse CreateJob = CreateJobResponse
  request :: (Service -> Service) -> CreateJob -> Request CreateJob
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateJob
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateJob)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
    -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
      Text
"CreateJobResult"
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe [Artifact]
-> Maybe Text
-> Maybe JobType
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> CreateJobResponse
CreateJobResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
                            forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"ArtifactList"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                            forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"member")
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"JobId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"JobType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Signature")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"SignatureFileContents")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"WarningMessage")
            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 CreateJob where
  hashWithSalt :: Int -> CreateJob -> Int
hashWithSalt Int
_salt CreateJob' {Bool
Maybe Text
Text
JobType
validateOnly :: Bool
manifest :: Text
jobType :: JobType
manifestAddendum :: Maybe Text
aPIVersion :: Maybe Text
$sel:validateOnly:CreateJob' :: CreateJob -> Bool
$sel:manifest:CreateJob' :: CreateJob -> Text
$sel:jobType:CreateJob' :: CreateJob -> JobType
$sel:manifestAddendum:CreateJob' :: CreateJob -> Maybe Text
$sel:aPIVersion:CreateJob' :: CreateJob -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
aPIVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
manifestAddendum
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` JobType
jobType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
manifest
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Bool
validateOnly

instance Prelude.NFData CreateJob where
  rnf :: CreateJob -> ()
rnf CreateJob' {Bool
Maybe Text
Text
JobType
validateOnly :: Bool
manifest :: Text
jobType :: JobType
manifestAddendum :: Maybe Text
aPIVersion :: Maybe Text
$sel:validateOnly:CreateJob' :: CreateJob -> Bool
$sel:manifest:CreateJob' :: CreateJob -> Text
$sel:jobType:CreateJob' :: CreateJob -> JobType
$sel:manifestAddendum:CreateJob' :: CreateJob -> Maybe Text
$sel:aPIVersion:CreateJob' :: CreateJob -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
aPIVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
manifestAddendum
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf JobType
jobType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
manifest
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Bool
validateOnly

instance Data.ToHeaders CreateJob where
  toHeaders :: CreateJob -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath CreateJob where
  toPath :: CreateJob -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery CreateJob where
  toQuery :: CreateJob -> QueryString
toQuery CreateJob' {Bool
Maybe Text
Text
JobType
validateOnly :: Bool
manifest :: Text
jobType :: JobType
manifestAddendum :: Maybe Text
aPIVersion :: Maybe Text
$sel:validateOnly:CreateJob' :: CreateJob -> Bool
$sel:manifest:CreateJob' :: CreateJob -> Text
$sel:jobType:CreateJob' :: CreateJob -> JobType
$sel:manifestAddendum:CreateJob' :: CreateJob -> Maybe Text
$sel:aPIVersion:CreateJob' :: CreateJob -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ QueryString
"Operation=CreateJob",
        ByteString
"Action" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"CreateJob" :: Prelude.ByteString),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2010-06-01" :: Prelude.ByteString),
        ByteString
"APIVersion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
aPIVersion,
        ByteString
"ManifestAddendum" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
manifestAddendum,
        ByteString
"JobType" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: JobType
jobType,
        ByteString
"Manifest" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
manifest,
        ByteString
"ValidateOnly" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Bool
validateOnly
      ]

-- | Output structure for the CreateJob operation.
--
-- /See:/ 'newCreateJobResponse' smart constructor.
data CreateJobResponse = CreateJobResponse'
  { CreateJobResponse -> Maybe [Artifact]
artifactList :: Prelude.Maybe [Artifact],
    CreateJobResponse -> Maybe Text
jobId :: Prelude.Maybe Prelude.Text,
    CreateJobResponse -> Maybe JobType
jobType :: Prelude.Maybe JobType,
    CreateJobResponse -> Maybe Text
signature :: Prelude.Maybe Prelude.Text,
    CreateJobResponse -> Maybe Text
signatureFileContents :: Prelude.Maybe Prelude.Text,
    CreateJobResponse -> Maybe Text
warningMessage :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    CreateJobResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateJobResponse -> CreateJobResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateJobResponse -> CreateJobResponse -> Bool
$c/= :: CreateJobResponse -> CreateJobResponse -> Bool
== :: CreateJobResponse -> CreateJobResponse -> Bool
$c== :: CreateJobResponse -> CreateJobResponse -> Bool
Prelude.Eq, ReadPrec [CreateJobResponse]
ReadPrec CreateJobResponse
Int -> ReadS CreateJobResponse
ReadS [CreateJobResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateJobResponse]
$creadListPrec :: ReadPrec [CreateJobResponse]
readPrec :: ReadPrec CreateJobResponse
$creadPrec :: ReadPrec CreateJobResponse
readList :: ReadS [CreateJobResponse]
$creadList :: ReadS [CreateJobResponse]
readsPrec :: Int -> ReadS CreateJobResponse
$creadsPrec :: Int -> ReadS CreateJobResponse
Prelude.Read, Int -> CreateJobResponse -> ShowS
[CreateJobResponse] -> ShowS
CreateJobResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateJobResponse] -> ShowS
$cshowList :: [CreateJobResponse] -> ShowS
show :: CreateJobResponse -> String
$cshow :: CreateJobResponse -> String
showsPrec :: Int -> CreateJobResponse -> ShowS
$cshowsPrec :: Int -> CreateJobResponse -> ShowS
Prelude.Show, forall x. Rep CreateJobResponse x -> CreateJobResponse
forall x. CreateJobResponse -> Rep CreateJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateJobResponse x -> CreateJobResponse
$cfrom :: forall x. CreateJobResponse -> Rep CreateJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateJobResponse' 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:
--
-- 'artifactList', 'createJobResponse_artifactList' - Undocumented member.
--
-- 'jobId', 'createJobResponse_jobId' - Undocumented member.
--
-- 'jobType', 'createJobResponse_jobType' - Undocumented member.
--
-- 'signature', 'createJobResponse_signature' - Undocumented member.
--
-- 'signatureFileContents', 'createJobResponse_signatureFileContents' - Undocumented member.
--
-- 'warningMessage', 'createJobResponse_warningMessage' - Undocumented member.
--
-- 'httpStatus', 'createJobResponse_httpStatus' - The response's http status code.
newCreateJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateJobResponse
newCreateJobResponse :: Int -> CreateJobResponse
newCreateJobResponse Int
pHttpStatus_ =
  CreateJobResponse'
    { $sel:artifactList:CreateJobResponse' :: Maybe [Artifact]
artifactList = forall a. Maybe a
Prelude.Nothing,
      $sel:jobId:CreateJobResponse' :: Maybe Text
jobId = forall a. Maybe a
Prelude.Nothing,
      $sel:jobType:CreateJobResponse' :: Maybe JobType
jobType = forall a. Maybe a
Prelude.Nothing,
      $sel:signature:CreateJobResponse' :: Maybe Text
signature = forall a. Maybe a
Prelude.Nothing,
      $sel:signatureFileContents:CreateJobResponse' :: Maybe Text
signatureFileContents = forall a. Maybe a
Prelude.Nothing,
      $sel:warningMessage:CreateJobResponse' :: Maybe Text
warningMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateJobResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Undocumented member.
createJobResponse_artifactList :: Lens.Lens' CreateJobResponse (Prelude.Maybe [Artifact])
createJobResponse_artifactList :: Lens' CreateJobResponse (Maybe [Artifact])
createJobResponse_artifactList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJobResponse' {Maybe [Artifact]
artifactList :: Maybe [Artifact]
$sel:artifactList:CreateJobResponse' :: CreateJobResponse -> Maybe [Artifact]
artifactList} -> Maybe [Artifact]
artifactList) (\s :: CreateJobResponse
s@CreateJobResponse' {} Maybe [Artifact]
a -> CreateJobResponse
s {$sel:artifactList:CreateJobResponse' :: Maybe [Artifact]
artifactList = Maybe [Artifact]
a} :: CreateJobResponse) 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

-- | Undocumented member.
createJobResponse_jobId :: Lens.Lens' CreateJobResponse (Prelude.Maybe Prelude.Text)
createJobResponse_jobId :: Lens' CreateJobResponse (Maybe Text)
createJobResponse_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJobResponse' {Maybe Text
jobId :: Maybe Text
$sel:jobId:CreateJobResponse' :: CreateJobResponse -> Maybe Text
jobId} -> Maybe Text
jobId) (\s :: CreateJobResponse
s@CreateJobResponse' {} Maybe Text
a -> CreateJobResponse
s {$sel:jobId:CreateJobResponse' :: Maybe Text
jobId = Maybe Text
a} :: CreateJobResponse)

-- | Undocumented member.
createJobResponse_jobType :: Lens.Lens' CreateJobResponse (Prelude.Maybe JobType)
createJobResponse_jobType :: Lens' CreateJobResponse (Maybe JobType)
createJobResponse_jobType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJobResponse' {Maybe JobType
jobType :: Maybe JobType
$sel:jobType:CreateJobResponse' :: CreateJobResponse -> Maybe JobType
jobType} -> Maybe JobType
jobType) (\s :: CreateJobResponse
s@CreateJobResponse' {} Maybe JobType
a -> CreateJobResponse
s {$sel:jobType:CreateJobResponse' :: Maybe JobType
jobType = Maybe JobType
a} :: CreateJobResponse)

-- | Undocumented member.
createJobResponse_signature :: Lens.Lens' CreateJobResponse (Prelude.Maybe Prelude.Text)
createJobResponse_signature :: Lens' CreateJobResponse (Maybe Text)
createJobResponse_signature = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJobResponse' {Maybe Text
signature :: Maybe Text
$sel:signature:CreateJobResponse' :: CreateJobResponse -> Maybe Text
signature} -> Maybe Text
signature) (\s :: CreateJobResponse
s@CreateJobResponse' {} Maybe Text
a -> CreateJobResponse
s {$sel:signature:CreateJobResponse' :: Maybe Text
signature = Maybe Text
a} :: CreateJobResponse)

-- | Undocumented member.
createJobResponse_signatureFileContents :: Lens.Lens' CreateJobResponse (Prelude.Maybe Prelude.Text)
createJobResponse_signatureFileContents :: Lens' CreateJobResponse (Maybe Text)
createJobResponse_signatureFileContents = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJobResponse' {Maybe Text
signatureFileContents :: Maybe Text
$sel:signatureFileContents:CreateJobResponse' :: CreateJobResponse -> Maybe Text
signatureFileContents} -> Maybe Text
signatureFileContents) (\s :: CreateJobResponse
s@CreateJobResponse' {} Maybe Text
a -> CreateJobResponse
s {$sel:signatureFileContents:CreateJobResponse' :: Maybe Text
signatureFileContents = Maybe Text
a} :: CreateJobResponse)

-- | Undocumented member.
createJobResponse_warningMessage :: Lens.Lens' CreateJobResponse (Prelude.Maybe Prelude.Text)
createJobResponse_warningMessage :: Lens' CreateJobResponse (Maybe Text)
createJobResponse_warningMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateJobResponse' {Maybe Text
warningMessage :: Maybe Text
$sel:warningMessage:CreateJobResponse' :: CreateJobResponse -> Maybe Text
warningMessage} -> Maybe Text
warningMessage) (\s :: CreateJobResponse
s@CreateJobResponse' {} Maybe Text
a -> CreateJobResponse
s {$sel:warningMessage:CreateJobResponse' :: Maybe Text
warningMessage = Maybe Text
a} :: CreateJobResponse)

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

instance Prelude.NFData CreateJobResponse where
  rnf :: CreateJobResponse -> ()
rnf CreateJobResponse' {Int
Maybe [Artifact]
Maybe Text
Maybe JobType
httpStatus :: Int
warningMessage :: Maybe Text
signatureFileContents :: Maybe Text
signature :: Maybe Text
jobType :: Maybe JobType
jobId :: Maybe Text
artifactList :: Maybe [Artifact]
$sel:httpStatus:CreateJobResponse' :: CreateJobResponse -> Int
$sel:warningMessage:CreateJobResponse' :: CreateJobResponse -> Maybe Text
$sel:signatureFileContents:CreateJobResponse' :: CreateJobResponse -> Maybe Text
$sel:signature:CreateJobResponse' :: CreateJobResponse -> Maybe Text
$sel:jobType:CreateJobResponse' :: CreateJobResponse -> Maybe JobType
$sel:jobId:CreateJobResponse' :: CreateJobResponse -> Maybe Text
$sel:artifactList:CreateJobResponse' :: CreateJobResponse -> Maybe [Artifact]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Artifact]
artifactList
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 JobType
jobType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
signature
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
signatureFileContents
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
warningMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus