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

    -- * Request Lenses
    describeManagedJobTemplate_templateVersion,
    describeManagedJobTemplate_templateName,

    -- * Destructuring the Response
    DescribeManagedJobTemplateResponse (..),
    newDescribeManagedJobTemplateResponse,

    -- * Response Lenses
    describeManagedJobTemplateResponse_description,
    describeManagedJobTemplateResponse_document,
    describeManagedJobTemplateResponse_documentParameters,
    describeManagedJobTemplateResponse_environments,
    describeManagedJobTemplateResponse_templateArn,
    describeManagedJobTemplateResponse_templateName,
    describeManagedJobTemplateResponse_templateVersion,
    describeManagedJobTemplateResponse_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:/ 'newDescribeManagedJobTemplate' smart constructor.
data DescribeManagedJobTemplate = DescribeManagedJobTemplate'
  { -- | An optional parameter to specify version of a managed template. If not
    -- specified, the pre-defined default version is returned.
    DescribeManagedJobTemplate -> Maybe Text
templateVersion :: Prelude.Maybe Prelude.Text,
    -- | The unique name of a managed job template, which is required.
    DescribeManagedJobTemplate -> Text
templateName :: Prelude.Text
  }
  deriving (DescribeManagedJobTemplate -> DescribeManagedJobTemplate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeManagedJobTemplate -> DescribeManagedJobTemplate -> Bool
$c/= :: DescribeManagedJobTemplate -> DescribeManagedJobTemplate -> Bool
== :: DescribeManagedJobTemplate -> DescribeManagedJobTemplate -> Bool
$c== :: DescribeManagedJobTemplate -> DescribeManagedJobTemplate -> Bool
Prelude.Eq, ReadPrec [DescribeManagedJobTemplate]
ReadPrec DescribeManagedJobTemplate
Int -> ReadS DescribeManagedJobTemplate
ReadS [DescribeManagedJobTemplate]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeManagedJobTemplate]
$creadListPrec :: ReadPrec [DescribeManagedJobTemplate]
readPrec :: ReadPrec DescribeManagedJobTemplate
$creadPrec :: ReadPrec DescribeManagedJobTemplate
readList :: ReadS [DescribeManagedJobTemplate]
$creadList :: ReadS [DescribeManagedJobTemplate]
readsPrec :: Int -> ReadS DescribeManagedJobTemplate
$creadsPrec :: Int -> ReadS DescribeManagedJobTemplate
Prelude.Read, Int -> DescribeManagedJobTemplate -> ShowS
[DescribeManagedJobTemplate] -> ShowS
DescribeManagedJobTemplate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeManagedJobTemplate] -> ShowS
$cshowList :: [DescribeManagedJobTemplate] -> ShowS
show :: DescribeManagedJobTemplate -> String
$cshow :: DescribeManagedJobTemplate -> String
showsPrec :: Int -> DescribeManagedJobTemplate -> ShowS
$cshowsPrec :: Int -> DescribeManagedJobTemplate -> ShowS
Prelude.Show, forall x.
Rep DescribeManagedJobTemplate x -> DescribeManagedJobTemplate
forall x.
DescribeManagedJobTemplate -> Rep DescribeManagedJobTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeManagedJobTemplate x -> DescribeManagedJobTemplate
$cfrom :: forall x.
DescribeManagedJobTemplate -> Rep DescribeManagedJobTemplate x
Prelude.Generic)

-- |
-- Create a value of 'DescribeManagedJobTemplate' 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:
--
-- 'templateVersion', 'describeManagedJobTemplate_templateVersion' - An optional parameter to specify version of a managed template. If not
-- specified, the pre-defined default version is returned.
--
-- 'templateName', 'describeManagedJobTemplate_templateName' - The unique name of a managed job template, which is required.
newDescribeManagedJobTemplate ::
  -- | 'templateName'
  Prelude.Text ->
  DescribeManagedJobTemplate
newDescribeManagedJobTemplate :: Text -> DescribeManagedJobTemplate
newDescribeManagedJobTemplate Text
pTemplateName_ =
  DescribeManagedJobTemplate'
    { $sel:templateVersion:DescribeManagedJobTemplate' :: Maybe Text
templateVersion =
        forall a. Maybe a
Prelude.Nothing,
      $sel:templateName:DescribeManagedJobTemplate' :: Text
templateName = Text
pTemplateName_
    }

-- | An optional parameter to specify version of a managed template. If not
-- specified, the pre-defined default version is returned.
describeManagedJobTemplate_templateVersion :: Lens.Lens' DescribeManagedJobTemplate (Prelude.Maybe Prelude.Text)
describeManagedJobTemplate_templateVersion :: Lens' DescribeManagedJobTemplate (Maybe Text)
describeManagedJobTemplate_templateVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeManagedJobTemplate' {Maybe Text
templateVersion :: Maybe Text
$sel:templateVersion:DescribeManagedJobTemplate' :: DescribeManagedJobTemplate -> Maybe Text
templateVersion} -> Maybe Text
templateVersion) (\s :: DescribeManagedJobTemplate
s@DescribeManagedJobTemplate' {} Maybe Text
a -> DescribeManagedJobTemplate
s {$sel:templateVersion:DescribeManagedJobTemplate' :: Maybe Text
templateVersion = Maybe Text
a} :: DescribeManagedJobTemplate)

-- | The unique name of a managed job template, which is required.
describeManagedJobTemplate_templateName :: Lens.Lens' DescribeManagedJobTemplate Prelude.Text
describeManagedJobTemplate_templateName :: Lens' DescribeManagedJobTemplate Text
describeManagedJobTemplate_templateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeManagedJobTemplate' {Text
templateName :: Text
$sel:templateName:DescribeManagedJobTemplate' :: DescribeManagedJobTemplate -> Text
templateName} -> Text
templateName) (\s :: DescribeManagedJobTemplate
s@DescribeManagedJobTemplate' {} Text
a -> DescribeManagedJobTemplate
s {$sel:templateName:DescribeManagedJobTemplate' :: Text
templateName = Text
a} :: DescribeManagedJobTemplate)

instance Core.AWSRequest DescribeManagedJobTemplate where
  type
    AWSResponse DescribeManagedJobTemplate =
      DescribeManagedJobTemplateResponse
  request :: (Service -> Service)
-> DescribeManagedJobTemplate -> Request DescribeManagedJobTemplate
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 DescribeManagedJobTemplate
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeManagedJobTemplate)))
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 Text
-> Maybe Text
-> Maybe [DocumentParameter]
-> Maybe [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> DescribeManagedJobTemplateResponse
DescribeManagedJobTemplateResponse'
            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
"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
"documentParameters"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            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
"environments" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            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
"templateArn")
            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
"templateName")
            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
"templateVersion")
            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 DescribeManagedJobTemplate where
  hashWithSalt :: Int -> DescribeManagedJobTemplate -> Int
hashWithSalt Int
_salt DescribeManagedJobTemplate' {Maybe Text
Text
templateName :: Text
templateVersion :: Maybe Text
$sel:templateName:DescribeManagedJobTemplate' :: DescribeManagedJobTemplate -> Text
$sel:templateVersion:DescribeManagedJobTemplate' :: DescribeManagedJobTemplate -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
templateVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
templateName

instance Prelude.NFData DescribeManagedJobTemplate where
  rnf :: DescribeManagedJobTemplate -> ()
rnf DescribeManagedJobTemplate' {Maybe Text
Text
templateName :: Text
templateVersion :: Maybe Text
$sel:templateName:DescribeManagedJobTemplate' :: DescribeManagedJobTemplate -> Text
$sel:templateVersion:DescribeManagedJobTemplate' :: DescribeManagedJobTemplate -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
templateVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
templateName

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

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

instance Data.ToQuery DescribeManagedJobTemplate where
  toQuery :: DescribeManagedJobTemplate -> QueryString
toQuery DescribeManagedJobTemplate' {Maybe Text
Text
templateName :: Text
templateVersion :: Maybe Text
$sel:templateName:DescribeManagedJobTemplate' :: DescribeManagedJobTemplate -> Text
$sel:templateVersion:DescribeManagedJobTemplate' :: DescribeManagedJobTemplate -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"templateVersion" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
templateVersion]

-- | /See:/ 'newDescribeManagedJobTemplateResponse' smart constructor.
data DescribeManagedJobTemplateResponse = DescribeManagedJobTemplateResponse'
  { -- | The unique description of a managed template.
    DescribeManagedJobTemplateResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The document schema for a managed job template.
    DescribeManagedJobTemplateResponse -> Maybe Text
document :: Prelude.Maybe Prelude.Text,
    -- | A map of key-value pairs that you can use as guidance to specify the
    -- inputs for creating a job from a managed template.
    --
    -- @documentParameters@ can only be used when creating jobs from Amazon Web
    -- Services managed templates. This parameter can\'t be used with custom
    -- job templates or to create jobs from them.
    DescribeManagedJobTemplateResponse -> Maybe [DocumentParameter]
documentParameters :: Prelude.Maybe [DocumentParameter],
    -- | A list of environments that are supported with the managed job template.
    DescribeManagedJobTemplateResponse -> Maybe [Text]
environments :: Prelude.Maybe [Prelude.Text],
    -- | The unique Amazon Resource Name (ARN) of the managed template.
    DescribeManagedJobTemplateResponse -> Maybe Text
templateArn :: Prelude.Maybe Prelude.Text,
    -- | The unique name of a managed template, such as @AWS-Reboot@.
    DescribeManagedJobTemplateResponse -> Maybe Text
templateName :: Prelude.Maybe Prelude.Text,
    -- | The version for a managed template.
    DescribeManagedJobTemplateResponse -> Maybe Text
templateVersion :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeManagedJobTemplateResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeManagedJobTemplateResponse
-> DescribeManagedJobTemplateResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeManagedJobTemplateResponse
-> DescribeManagedJobTemplateResponse -> Bool
$c/= :: DescribeManagedJobTemplateResponse
-> DescribeManagedJobTemplateResponse -> Bool
== :: DescribeManagedJobTemplateResponse
-> DescribeManagedJobTemplateResponse -> Bool
$c== :: DescribeManagedJobTemplateResponse
-> DescribeManagedJobTemplateResponse -> Bool
Prelude.Eq, ReadPrec [DescribeManagedJobTemplateResponse]
ReadPrec DescribeManagedJobTemplateResponse
Int -> ReadS DescribeManagedJobTemplateResponse
ReadS [DescribeManagedJobTemplateResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeManagedJobTemplateResponse]
$creadListPrec :: ReadPrec [DescribeManagedJobTemplateResponse]
readPrec :: ReadPrec DescribeManagedJobTemplateResponse
$creadPrec :: ReadPrec DescribeManagedJobTemplateResponse
readList :: ReadS [DescribeManagedJobTemplateResponse]
$creadList :: ReadS [DescribeManagedJobTemplateResponse]
readsPrec :: Int -> ReadS DescribeManagedJobTemplateResponse
$creadsPrec :: Int -> ReadS DescribeManagedJobTemplateResponse
Prelude.Read, Int -> DescribeManagedJobTemplateResponse -> ShowS
[DescribeManagedJobTemplateResponse] -> ShowS
DescribeManagedJobTemplateResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeManagedJobTemplateResponse] -> ShowS
$cshowList :: [DescribeManagedJobTemplateResponse] -> ShowS
show :: DescribeManagedJobTemplateResponse -> String
$cshow :: DescribeManagedJobTemplateResponse -> String
showsPrec :: Int -> DescribeManagedJobTemplateResponse -> ShowS
$cshowsPrec :: Int -> DescribeManagedJobTemplateResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeManagedJobTemplateResponse x
-> DescribeManagedJobTemplateResponse
forall x.
DescribeManagedJobTemplateResponse
-> Rep DescribeManagedJobTemplateResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeManagedJobTemplateResponse x
-> DescribeManagedJobTemplateResponse
$cfrom :: forall x.
DescribeManagedJobTemplateResponse
-> Rep DescribeManagedJobTemplateResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeManagedJobTemplateResponse' 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:
--
-- 'description', 'describeManagedJobTemplateResponse_description' - The unique description of a managed template.
--
-- 'document', 'describeManagedJobTemplateResponse_document' - The document schema for a managed job template.
--
-- 'documentParameters', 'describeManagedJobTemplateResponse_documentParameters' - A map of key-value pairs that you can use as guidance to specify the
-- inputs for creating a job from a managed template.
--
-- @documentParameters@ can only be used when creating jobs from Amazon Web
-- Services managed templates. This parameter can\'t be used with custom
-- job templates or to create jobs from them.
--
-- 'environments', 'describeManagedJobTemplateResponse_environments' - A list of environments that are supported with the managed job template.
--
-- 'templateArn', 'describeManagedJobTemplateResponse_templateArn' - The unique Amazon Resource Name (ARN) of the managed template.
--
-- 'templateName', 'describeManagedJobTemplateResponse_templateName' - The unique name of a managed template, such as @AWS-Reboot@.
--
-- 'templateVersion', 'describeManagedJobTemplateResponse_templateVersion' - The version for a managed template.
--
-- 'httpStatus', 'describeManagedJobTemplateResponse_httpStatus' - The response's http status code.
newDescribeManagedJobTemplateResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeManagedJobTemplateResponse
newDescribeManagedJobTemplateResponse :: Int -> DescribeManagedJobTemplateResponse
newDescribeManagedJobTemplateResponse Int
pHttpStatus_ =
  DescribeManagedJobTemplateResponse'
    { $sel:description:DescribeManagedJobTemplateResponse' :: Maybe Text
description =
        forall a. Maybe a
Prelude.Nothing,
      $sel:document:DescribeManagedJobTemplateResponse' :: Maybe Text
document = forall a. Maybe a
Prelude.Nothing,
      $sel:documentParameters:DescribeManagedJobTemplateResponse' :: Maybe [DocumentParameter]
documentParameters = forall a. Maybe a
Prelude.Nothing,
      $sel:environments:DescribeManagedJobTemplateResponse' :: Maybe [Text]
environments = forall a. Maybe a
Prelude.Nothing,
      $sel:templateArn:DescribeManagedJobTemplateResponse' :: Maybe Text
templateArn = forall a. Maybe a
Prelude.Nothing,
      $sel:templateName:DescribeManagedJobTemplateResponse' :: Maybe Text
templateName = forall a. Maybe a
Prelude.Nothing,
      $sel:templateVersion:DescribeManagedJobTemplateResponse' :: Maybe Text
templateVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeManagedJobTemplateResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The unique description of a managed template.
describeManagedJobTemplateResponse_description :: Lens.Lens' DescribeManagedJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeManagedJobTemplateResponse_description :: Lens' DescribeManagedJobTemplateResponse (Maybe Text)
describeManagedJobTemplateResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeManagedJobTemplateResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeManagedJobTemplateResponse
s@DescribeManagedJobTemplateResponse' {} Maybe Text
a -> DescribeManagedJobTemplateResponse
s {$sel:description:DescribeManagedJobTemplateResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeManagedJobTemplateResponse)

-- | The document schema for a managed job template.
describeManagedJobTemplateResponse_document :: Lens.Lens' DescribeManagedJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeManagedJobTemplateResponse_document :: Lens' DescribeManagedJobTemplateResponse (Maybe Text)
describeManagedJobTemplateResponse_document = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeManagedJobTemplateResponse' {Maybe Text
document :: Maybe Text
$sel:document:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
document} -> Maybe Text
document) (\s :: DescribeManagedJobTemplateResponse
s@DescribeManagedJobTemplateResponse' {} Maybe Text
a -> DescribeManagedJobTemplateResponse
s {$sel:document:DescribeManagedJobTemplateResponse' :: Maybe Text
document = Maybe Text
a} :: DescribeManagedJobTemplateResponse)

-- | A map of key-value pairs that you can use as guidance to specify the
-- inputs for creating a job from a managed template.
--
-- @documentParameters@ can only be used when creating jobs from Amazon Web
-- Services managed templates. This parameter can\'t be used with custom
-- job templates or to create jobs from them.
describeManagedJobTemplateResponse_documentParameters :: Lens.Lens' DescribeManagedJobTemplateResponse (Prelude.Maybe [DocumentParameter])
describeManagedJobTemplateResponse_documentParameters :: Lens'
  DescribeManagedJobTemplateResponse (Maybe [DocumentParameter])
describeManagedJobTemplateResponse_documentParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeManagedJobTemplateResponse' {Maybe [DocumentParameter]
documentParameters :: Maybe [DocumentParameter]
$sel:documentParameters:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe [DocumentParameter]
documentParameters} -> Maybe [DocumentParameter]
documentParameters) (\s :: DescribeManagedJobTemplateResponse
s@DescribeManagedJobTemplateResponse' {} Maybe [DocumentParameter]
a -> DescribeManagedJobTemplateResponse
s {$sel:documentParameters:DescribeManagedJobTemplateResponse' :: Maybe [DocumentParameter]
documentParameters = Maybe [DocumentParameter]
a} :: DescribeManagedJobTemplateResponse) 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

-- | A list of environments that are supported with the managed job template.
describeManagedJobTemplateResponse_environments :: Lens.Lens' DescribeManagedJobTemplateResponse (Prelude.Maybe [Prelude.Text])
describeManagedJobTemplateResponse_environments :: Lens' DescribeManagedJobTemplateResponse (Maybe [Text])
describeManagedJobTemplateResponse_environments = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeManagedJobTemplateResponse' {Maybe [Text]
environments :: Maybe [Text]
$sel:environments:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe [Text]
environments} -> Maybe [Text]
environments) (\s :: DescribeManagedJobTemplateResponse
s@DescribeManagedJobTemplateResponse' {} Maybe [Text]
a -> DescribeManagedJobTemplateResponse
s {$sel:environments:DescribeManagedJobTemplateResponse' :: Maybe [Text]
environments = Maybe [Text]
a} :: DescribeManagedJobTemplateResponse) 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

-- | The unique Amazon Resource Name (ARN) of the managed template.
describeManagedJobTemplateResponse_templateArn :: Lens.Lens' DescribeManagedJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeManagedJobTemplateResponse_templateArn :: Lens' DescribeManagedJobTemplateResponse (Maybe Text)
describeManagedJobTemplateResponse_templateArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeManagedJobTemplateResponse' {Maybe Text
templateArn :: Maybe Text
$sel:templateArn:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
templateArn} -> Maybe Text
templateArn) (\s :: DescribeManagedJobTemplateResponse
s@DescribeManagedJobTemplateResponse' {} Maybe Text
a -> DescribeManagedJobTemplateResponse
s {$sel:templateArn:DescribeManagedJobTemplateResponse' :: Maybe Text
templateArn = Maybe Text
a} :: DescribeManagedJobTemplateResponse)

-- | The unique name of a managed template, such as @AWS-Reboot@.
describeManagedJobTemplateResponse_templateName :: Lens.Lens' DescribeManagedJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeManagedJobTemplateResponse_templateName :: Lens' DescribeManagedJobTemplateResponse (Maybe Text)
describeManagedJobTemplateResponse_templateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeManagedJobTemplateResponse' {Maybe Text
templateName :: Maybe Text
$sel:templateName:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
templateName} -> Maybe Text
templateName) (\s :: DescribeManagedJobTemplateResponse
s@DescribeManagedJobTemplateResponse' {} Maybe Text
a -> DescribeManagedJobTemplateResponse
s {$sel:templateName:DescribeManagedJobTemplateResponse' :: Maybe Text
templateName = Maybe Text
a} :: DescribeManagedJobTemplateResponse)

-- | The version for a managed template.
describeManagedJobTemplateResponse_templateVersion :: Lens.Lens' DescribeManagedJobTemplateResponse (Prelude.Maybe Prelude.Text)
describeManagedJobTemplateResponse_templateVersion :: Lens' DescribeManagedJobTemplateResponse (Maybe Text)
describeManagedJobTemplateResponse_templateVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeManagedJobTemplateResponse' {Maybe Text
templateVersion :: Maybe Text
$sel:templateVersion:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
templateVersion} -> Maybe Text
templateVersion) (\s :: DescribeManagedJobTemplateResponse
s@DescribeManagedJobTemplateResponse' {} Maybe Text
a -> DescribeManagedJobTemplateResponse
s {$sel:templateVersion:DescribeManagedJobTemplateResponse' :: Maybe Text
templateVersion = Maybe Text
a} :: DescribeManagedJobTemplateResponse)

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

instance
  Prelude.NFData
    DescribeManagedJobTemplateResponse
  where
  rnf :: DescribeManagedJobTemplateResponse -> ()
rnf DescribeManagedJobTemplateResponse' {Int
Maybe [Text]
Maybe [DocumentParameter]
Maybe Text
httpStatus :: Int
templateVersion :: Maybe Text
templateName :: Maybe Text
templateArn :: Maybe Text
environments :: Maybe [Text]
documentParameters :: Maybe [DocumentParameter]
document :: Maybe Text
description :: Maybe Text
$sel:httpStatus:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Int
$sel:templateVersion:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
$sel:templateName:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
$sel:templateArn:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
$sel:environments:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe [Text]
$sel:documentParameters:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe [DocumentParameter]
$sel:document:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
$sel:description:DescribeManagedJobTemplateResponse' :: DescribeManagedJobTemplateResponse -> Maybe Text
..} =
    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 [DocumentParameter]
documentParameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
environments
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
templateArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
templateName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
templateVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus