{-# 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.IoT.DescribeJobTemplate
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about a job template.
module Amazonka.IoT.DescribeJobTemplate
  ( -- * Creating a Request
    DescribeJobTemplate (..),
    newDescribeJobTemplate,

    -- * Request Lenses
    describeJobTemplate_jobTemplateId,

    -- * Destructuring the Response
    DescribeJobTemplateResponse (..),
    newDescribeJobTemplateResponse,

    -- * Response Lenses
    describeJobTemplateResponse_abortConfig,
    describeJobTemplateResponse_createdAt,
    describeJobTemplateResponse_description,
    describeJobTemplateResponse_document,
    describeJobTemplateResponse_documentSource,
    describeJobTemplateResponse_jobExecutionsRetryConfig,
    describeJobTemplateResponse_jobExecutionsRolloutConfig,
    describeJobTemplateResponse_jobTemplateArn,
    describeJobTemplateResponse_jobTemplateId,
    describeJobTemplateResponse_presignedUrlConfig,
    describeJobTemplateResponse_timeoutConfig,
    describeJobTemplateResponse_httpStatus,
  )
where

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

-- | /See:/ 'newDescribeJobTemplate' smart constructor.
data DescribeJobTemplate = DescribeJobTemplate'
  { -- | The unique identifier of the job template.
    DescribeJobTemplate -> Text
jobTemplateId :: Prelude.Text
  }
  deriving (DescribeJobTemplate -> DescribeJobTemplate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeJobTemplate -> DescribeJobTemplate -> Bool
$c/= :: DescribeJobTemplate -> DescribeJobTemplate -> Bool
== :: DescribeJobTemplate -> DescribeJobTemplate -> Bool
$c== :: DescribeJobTemplate -> DescribeJobTemplate -> Bool
Prelude.Eq, ReadPrec [DescribeJobTemplate]
ReadPrec DescribeJobTemplate
Int -> ReadS DescribeJobTemplate
ReadS [DescribeJobTemplate]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeJobTemplate]
$creadListPrec :: ReadPrec [DescribeJobTemplate]
readPrec :: ReadPrec DescribeJobTemplate
$creadPrec :: ReadPrec DescribeJobTemplate
readList :: ReadS [DescribeJobTemplate]
$creadList :: ReadS [DescribeJobTemplate]
readsPrec :: Int -> ReadS DescribeJobTemplate
$creadsPrec :: Int -> ReadS DescribeJobTemplate
Prelude.Read, Int -> DescribeJobTemplate -> ShowS
[DescribeJobTemplate] -> ShowS
DescribeJobTemplate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeJobTemplate] -> ShowS
$cshowList :: [DescribeJobTemplate] -> ShowS
show :: DescribeJobTemplate -> String
$cshow :: DescribeJobTemplate -> String
showsPrec :: Int -> DescribeJobTemplate -> ShowS
$cshowsPrec :: Int -> DescribeJobTemplate -> ShowS
Prelude.Show, forall x. Rep DescribeJobTemplate x -> DescribeJobTemplate
forall x. DescribeJobTemplate -> Rep DescribeJobTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeJobTemplate x -> DescribeJobTemplate
$cfrom :: forall x. DescribeJobTemplate -> Rep DescribeJobTemplate x
Prelude.Generic)

-- |
-- Create a value of 'DescribeJobTemplate' 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:
--
-- 'jobTemplateId', 'describeJobTemplate_jobTemplateId' - The unique identifier of the job template.
newDescribeJobTemplate ::
  -- | 'jobTemplateId'
  Prelude.Text ->
  DescribeJobTemplate
newDescribeJobTemplate :: Text -> DescribeJobTemplate
newDescribeJobTemplate Text
pJobTemplateId_ =
  DescribeJobTemplate'
    { $sel:jobTemplateId:DescribeJobTemplate' :: Text
jobTemplateId =
        Text
pJobTemplateId_
    }

-- | The unique identifier of the job template.
describeJobTemplate_jobTemplateId :: Lens.Lens' DescribeJobTemplate Prelude.Text
describeJobTemplate_jobTemplateId :: Lens' DescribeJobTemplate Text
describeJobTemplate_jobTemplateId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplate' {Text
jobTemplateId :: Text
$sel:jobTemplateId:DescribeJobTemplate' :: DescribeJobTemplate -> Text
jobTemplateId} -> Text
jobTemplateId) (\s :: DescribeJobTemplate
s@DescribeJobTemplate' {} Text
a -> DescribeJobTemplate
s {$sel:jobTemplateId:DescribeJobTemplate' :: Text
jobTemplateId = Text
a} :: DescribeJobTemplate)

instance Core.AWSRequest DescribeJobTemplate where
  type
    AWSResponse DescribeJobTemplate =
      DescribeJobTemplateResponse
  request :: (Service -> Service)
-> DescribeJobTemplate -> Request DescribeJobTemplate
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeJobTemplate
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeJobTemplate)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe AbortConfig
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe JobExecutionsRetryConfig
-> Maybe JobExecutionsRolloutConfig
-> Maybe Text
-> Maybe Text
-> Maybe PresignedUrlConfig
-> Maybe TimeoutConfig
-> Int
-> DescribeJobTemplateResponse
DescribeJobTemplateResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"abortConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"createdAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"document")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"documentSource")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"jobExecutionsRetryConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"jobExecutionsRolloutConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"jobTemplateArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"jobTemplateId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"presignedUrlConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"timeoutConfig")
            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 DescribeJobTemplate where
  hashWithSalt :: Int -> DescribeJobTemplate -> Int
hashWithSalt Int
_salt DescribeJobTemplate' {Text
jobTemplateId :: Text
$sel:jobTemplateId:DescribeJobTemplate' :: DescribeJobTemplate -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
jobTemplateId

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

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

instance Data.ToPath DescribeJobTemplate where
  toPath :: DescribeJobTemplate -> ByteString
toPath DescribeJobTemplate' {Text
jobTemplateId :: Text
$sel:jobTemplateId:DescribeJobTemplate' :: DescribeJobTemplate -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/job-templates/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
jobTemplateId]

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

-- | /See:/ 'newDescribeJobTemplateResponse' smart constructor.
data DescribeJobTemplateResponse = DescribeJobTemplateResponse'
  { DescribeJobTemplateResponse -> Maybe AbortConfig
abortConfig :: Prelude.Maybe AbortConfig,
    -- | The time, in seconds since the epoch, when the job template was created.
    DescribeJobTemplateResponse -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | A description of the job template.
    DescribeJobTemplateResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The job document.
    DescribeJobTemplateResponse -> Maybe Text
document :: Prelude.Maybe Prelude.Text,
    -- | An S3 link to the job document.
    DescribeJobTemplateResponse -> Maybe Text
documentSource :: Prelude.Maybe Prelude.Text,
    -- | The configuration that determines how many retries are allowed for each
    -- failure type for a job.
    DescribeJobTemplateResponse -> Maybe JobExecutionsRetryConfig
jobExecutionsRetryConfig :: Prelude.Maybe JobExecutionsRetryConfig,
    DescribeJobTemplateResponse -> Maybe JobExecutionsRolloutConfig
jobExecutionsRolloutConfig :: Prelude.Maybe JobExecutionsRolloutConfig,
    -- | The ARN of the job template.
    DescribeJobTemplateResponse -> Maybe Text
jobTemplateArn :: Prelude.Maybe Prelude.Text,
    -- | The unique identifier of the job template.
    DescribeJobTemplateResponse -> Maybe Text
jobTemplateId :: Prelude.Maybe Prelude.Text,
    DescribeJobTemplateResponse -> Maybe PresignedUrlConfig
presignedUrlConfig :: Prelude.Maybe PresignedUrlConfig,
    DescribeJobTemplateResponse -> Maybe TimeoutConfig
timeoutConfig :: Prelude.Maybe TimeoutConfig,
    -- | The response's http status code.
    DescribeJobTemplateResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeJobTemplateResponse -> DescribeJobTemplateResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeJobTemplateResponse -> DescribeJobTemplateResponse -> Bool
$c/= :: DescribeJobTemplateResponse -> DescribeJobTemplateResponse -> Bool
== :: DescribeJobTemplateResponse -> DescribeJobTemplateResponse -> Bool
$c== :: DescribeJobTemplateResponse -> DescribeJobTemplateResponse -> Bool
Prelude.Eq, ReadPrec [DescribeJobTemplateResponse]
ReadPrec DescribeJobTemplateResponse
Int -> ReadS DescribeJobTemplateResponse
ReadS [DescribeJobTemplateResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeJobTemplateResponse]
$creadListPrec :: ReadPrec [DescribeJobTemplateResponse]
readPrec :: ReadPrec DescribeJobTemplateResponse
$creadPrec :: ReadPrec DescribeJobTemplateResponse
readList :: ReadS [DescribeJobTemplateResponse]
$creadList :: ReadS [DescribeJobTemplateResponse]
readsPrec :: Int -> ReadS DescribeJobTemplateResponse
$creadsPrec :: Int -> ReadS DescribeJobTemplateResponse
Prelude.Read, Int -> DescribeJobTemplateResponse -> ShowS
[DescribeJobTemplateResponse] -> ShowS
DescribeJobTemplateResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeJobTemplateResponse] -> ShowS
$cshowList :: [DescribeJobTemplateResponse] -> ShowS
show :: DescribeJobTemplateResponse -> String
$cshow :: DescribeJobTemplateResponse -> String
showsPrec :: Int -> DescribeJobTemplateResponse -> ShowS
$cshowsPrec :: Int -> DescribeJobTemplateResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeJobTemplateResponse x -> DescribeJobTemplateResponse
forall x.
DescribeJobTemplateResponse -> Rep DescribeJobTemplateResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeJobTemplateResponse x -> DescribeJobTemplateResponse
$cfrom :: forall x.
DescribeJobTemplateResponse -> Rep DescribeJobTemplateResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeJobTemplateResponse' 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:
--
-- 'abortConfig', 'describeJobTemplateResponse_abortConfig' - Undocumented member.
--
-- 'createdAt', 'describeJobTemplateResponse_createdAt' - The time, in seconds since the epoch, when the job template was created.
--
-- 'description', 'describeJobTemplateResponse_description' - A description of the job template.
--
-- 'document', 'describeJobTemplateResponse_document' - The job document.
--
-- 'documentSource', 'describeJobTemplateResponse_documentSource' - An S3 link to the job document.
--
-- 'jobExecutionsRetryConfig', 'describeJobTemplateResponse_jobExecutionsRetryConfig' - The configuration that determines how many retries are allowed for each
-- failure type for a job.
--
-- 'jobExecutionsRolloutConfig', 'describeJobTemplateResponse_jobExecutionsRolloutConfig' - Undocumented member.
--
-- 'jobTemplateArn', 'describeJobTemplateResponse_jobTemplateArn' - The ARN of the job template.
--
-- 'jobTemplateId', 'describeJobTemplateResponse_jobTemplateId' - The unique identifier of the job template.
--
-- 'presignedUrlConfig', 'describeJobTemplateResponse_presignedUrlConfig' - Undocumented member.
--
-- 'timeoutConfig', 'describeJobTemplateResponse_timeoutConfig' - Undocumented member.
--
-- 'httpStatus', 'describeJobTemplateResponse_httpStatus' - The response's http status code.
newDescribeJobTemplateResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeJobTemplateResponse
newDescribeJobTemplateResponse :: Int -> DescribeJobTemplateResponse
newDescribeJobTemplateResponse Int
pHttpStatus_ =
  DescribeJobTemplateResponse'
    { $sel:abortConfig:DescribeJobTemplateResponse' :: Maybe AbortConfig
abortConfig =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:DescribeJobTemplateResponse' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeJobTemplateResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:document:DescribeJobTemplateResponse' :: Maybe Text
document = forall a. Maybe a
Prelude.Nothing,
      $sel:documentSource:DescribeJobTemplateResponse' :: Maybe Text
documentSource = forall a. Maybe a
Prelude.Nothing,
      $sel:jobExecutionsRetryConfig:DescribeJobTemplateResponse' :: Maybe JobExecutionsRetryConfig
jobExecutionsRetryConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:jobExecutionsRolloutConfig:DescribeJobTemplateResponse' :: Maybe JobExecutionsRolloutConfig
jobExecutionsRolloutConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:jobTemplateArn:DescribeJobTemplateResponse' :: Maybe Text
jobTemplateArn = forall a. Maybe a
Prelude.Nothing,
      $sel:jobTemplateId:DescribeJobTemplateResponse' :: Maybe Text
jobTemplateId = forall a. Maybe a
Prelude.Nothing,
      $sel:presignedUrlConfig:DescribeJobTemplateResponse' :: Maybe PresignedUrlConfig
presignedUrlConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:timeoutConfig:DescribeJobTemplateResponse' :: Maybe TimeoutConfig
timeoutConfig = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeJobTemplateResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Undocumented member.
describeJobTemplateResponse_abortConfig :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe AbortConfig)
describeJobTemplateResponse_abortConfig :: Lens' DescribeJobTemplateResponse (Maybe AbortConfig)
describeJobTemplateResponse_abortConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe AbortConfig
abortConfig :: Maybe AbortConfig
$sel:abortConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe AbortConfig
abortConfig} -> Maybe AbortConfig
abortConfig) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe AbortConfig
a -> DescribeJobTemplateResponse
s {$sel:abortConfig:DescribeJobTemplateResponse' :: Maybe AbortConfig
abortConfig = Maybe AbortConfig
a} :: DescribeJobTemplateResponse)

-- | The time, in seconds since the epoch, when the job template was created.
describeJobTemplateResponse_createdAt :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe Prelude.UTCTime)
describeJobTemplateResponse_createdAt :: Lens' DescribeJobTemplateResponse (Maybe UTCTime)
describeJobTemplateResponse_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe POSIX
a -> DescribeJobTemplateResponse
s {$sel:createdAt:DescribeJobTemplateResponse' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: DescribeJobTemplateResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | A description of the job template.
describeJobTemplateResponse_description :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeJobTemplateResponse_description :: Lens' DescribeJobTemplateResponse (Maybe Text)
describeJobTemplateResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe Text
a -> DescribeJobTemplateResponse
s {$sel:description:DescribeJobTemplateResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeJobTemplateResponse)

-- | The job document.
describeJobTemplateResponse_document :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeJobTemplateResponse_document :: Lens' DescribeJobTemplateResponse (Maybe Text)
describeJobTemplateResponse_document = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe Text
document :: Maybe Text
$sel:document:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
document} -> Maybe Text
document) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe Text
a -> DescribeJobTemplateResponse
s {$sel:document:DescribeJobTemplateResponse' :: Maybe Text
document = Maybe Text
a} :: DescribeJobTemplateResponse)

-- | An S3 link to the job document.
describeJobTemplateResponse_documentSource :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeJobTemplateResponse_documentSource :: Lens' DescribeJobTemplateResponse (Maybe Text)
describeJobTemplateResponse_documentSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe Text
documentSource :: Maybe Text
$sel:documentSource:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
documentSource} -> Maybe Text
documentSource) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe Text
a -> DescribeJobTemplateResponse
s {$sel:documentSource:DescribeJobTemplateResponse' :: Maybe Text
documentSource = Maybe Text
a} :: DescribeJobTemplateResponse)

-- | The configuration that determines how many retries are allowed for each
-- failure type for a job.
describeJobTemplateResponse_jobExecutionsRetryConfig :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe JobExecutionsRetryConfig)
describeJobTemplateResponse_jobExecutionsRetryConfig :: Lens' DescribeJobTemplateResponse (Maybe JobExecutionsRetryConfig)
describeJobTemplateResponse_jobExecutionsRetryConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe JobExecutionsRetryConfig
jobExecutionsRetryConfig :: Maybe JobExecutionsRetryConfig
$sel:jobExecutionsRetryConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe JobExecutionsRetryConfig
jobExecutionsRetryConfig} -> Maybe JobExecutionsRetryConfig
jobExecutionsRetryConfig) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe JobExecutionsRetryConfig
a -> DescribeJobTemplateResponse
s {$sel:jobExecutionsRetryConfig:DescribeJobTemplateResponse' :: Maybe JobExecutionsRetryConfig
jobExecutionsRetryConfig = Maybe JobExecutionsRetryConfig
a} :: DescribeJobTemplateResponse)

-- | Undocumented member.
describeJobTemplateResponse_jobExecutionsRolloutConfig :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe JobExecutionsRolloutConfig)
describeJobTemplateResponse_jobExecutionsRolloutConfig :: Lens'
  DescribeJobTemplateResponse (Maybe JobExecutionsRolloutConfig)
describeJobTemplateResponse_jobExecutionsRolloutConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe JobExecutionsRolloutConfig
jobExecutionsRolloutConfig :: Maybe JobExecutionsRolloutConfig
$sel:jobExecutionsRolloutConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe JobExecutionsRolloutConfig
jobExecutionsRolloutConfig} -> Maybe JobExecutionsRolloutConfig
jobExecutionsRolloutConfig) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe JobExecutionsRolloutConfig
a -> DescribeJobTemplateResponse
s {$sel:jobExecutionsRolloutConfig:DescribeJobTemplateResponse' :: Maybe JobExecutionsRolloutConfig
jobExecutionsRolloutConfig = Maybe JobExecutionsRolloutConfig
a} :: DescribeJobTemplateResponse)

-- | The ARN of the job template.
describeJobTemplateResponse_jobTemplateArn :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeJobTemplateResponse_jobTemplateArn :: Lens' DescribeJobTemplateResponse (Maybe Text)
describeJobTemplateResponse_jobTemplateArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe Text
jobTemplateArn :: Maybe Text
$sel:jobTemplateArn:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
jobTemplateArn} -> Maybe Text
jobTemplateArn) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe Text
a -> DescribeJobTemplateResponse
s {$sel:jobTemplateArn:DescribeJobTemplateResponse' :: Maybe Text
jobTemplateArn = Maybe Text
a} :: DescribeJobTemplateResponse)

-- | The unique identifier of the job template.
describeJobTemplateResponse_jobTemplateId :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeJobTemplateResponse_jobTemplateId :: Lens' DescribeJobTemplateResponse (Maybe Text)
describeJobTemplateResponse_jobTemplateId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe Text
jobTemplateId :: Maybe Text
$sel:jobTemplateId:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
jobTemplateId} -> Maybe Text
jobTemplateId) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe Text
a -> DescribeJobTemplateResponse
s {$sel:jobTemplateId:DescribeJobTemplateResponse' :: Maybe Text
jobTemplateId = Maybe Text
a} :: DescribeJobTemplateResponse)

-- | Undocumented member.
describeJobTemplateResponse_presignedUrlConfig :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe PresignedUrlConfig)
describeJobTemplateResponse_presignedUrlConfig :: Lens' DescribeJobTemplateResponse (Maybe PresignedUrlConfig)
describeJobTemplateResponse_presignedUrlConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe PresignedUrlConfig
presignedUrlConfig :: Maybe PresignedUrlConfig
$sel:presignedUrlConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe PresignedUrlConfig
presignedUrlConfig} -> Maybe PresignedUrlConfig
presignedUrlConfig) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe PresignedUrlConfig
a -> DescribeJobTemplateResponse
s {$sel:presignedUrlConfig:DescribeJobTemplateResponse' :: Maybe PresignedUrlConfig
presignedUrlConfig = Maybe PresignedUrlConfig
a} :: DescribeJobTemplateResponse)

-- | Undocumented member.
describeJobTemplateResponse_timeoutConfig :: Lens.Lens' DescribeJobTemplateResponse (Prelude.Maybe TimeoutConfig)
describeJobTemplateResponse_timeoutConfig :: Lens' DescribeJobTemplateResponse (Maybe TimeoutConfig)
describeJobTemplateResponse_timeoutConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeJobTemplateResponse' {Maybe TimeoutConfig
timeoutConfig :: Maybe TimeoutConfig
$sel:timeoutConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe TimeoutConfig
timeoutConfig} -> Maybe TimeoutConfig
timeoutConfig) (\s :: DescribeJobTemplateResponse
s@DescribeJobTemplateResponse' {} Maybe TimeoutConfig
a -> DescribeJobTemplateResponse
s {$sel:timeoutConfig:DescribeJobTemplateResponse' :: Maybe TimeoutConfig
timeoutConfig = Maybe TimeoutConfig
a} :: DescribeJobTemplateResponse)

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

instance Prelude.NFData DescribeJobTemplateResponse where
  rnf :: DescribeJobTemplateResponse -> ()
rnf DescribeJobTemplateResponse' {Int
Maybe Text
Maybe POSIX
Maybe AbortConfig
Maybe PresignedUrlConfig
Maybe JobExecutionsRolloutConfig
Maybe JobExecutionsRetryConfig
Maybe TimeoutConfig
httpStatus :: Int
timeoutConfig :: Maybe TimeoutConfig
presignedUrlConfig :: Maybe PresignedUrlConfig
jobTemplateId :: Maybe Text
jobTemplateArn :: Maybe Text
jobExecutionsRolloutConfig :: Maybe JobExecutionsRolloutConfig
jobExecutionsRetryConfig :: Maybe JobExecutionsRetryConfig
documentSource :: Maybe Text
document :: Maybe Text
description :: Maybe Text
createdAt :: Maybe POSIX
abortConfig :: Maybe AbortConfig
$sel:httpStatus:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Int
$sel:timeoutConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe TimeoutConfig
$sel:presignedUrlConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe PresignedUrlConfig
$sel:jobTemplateId:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
$sel:jobTemplateArn:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
$sel:jobExecutionsRolloutConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe JobExecutionsRolloutConfig
$sel:jobExecutionsRetryConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe JobExecutionsRetryConfig
$sel:documentSource:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
$sel:document:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
$sel:description:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe Text
$sel:createdAt:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe POSIX
$sel:abortConfig:DescribeJobTemplateResponse' :: DescribeJobTemplateResponse -> Maybe AbortConfig
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AbortConfig
abortConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
document
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
documentSource
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JobExecutionsRetryConfig
jobExecutionsRetryConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JobExecutionsRolloutConfig
jobExecutionsRolloutConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobTemplateArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobTemplateId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PresignedUrlConfig
presignedUrlConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TimeoutConfig
timeoutConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus