{-# 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.DescribeProvisioningTemplateVersion
-- 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 provisioning template version.
--
-- Requires permission to access the
-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions DescribeProvisioningTemplateVersion>
-- action.
module Amazonka.IoT.DescribeProvisioningTemplateVersion
  ( -- * Creating a Request
    DescribeProvisioningTemplateVersion (..),
    newDescribeProvisioningTemplateVersion,

    -- * Request Lenses
    describeProvisioningTemplateVersion_templateName,
    describeProvisioningTemplateVersion_versionId,

    -- * Destructuring the Response
    DescribeProvisioningTemplateVersionResponse (..),
    newDescribeProvisioningTemplateVersionResponse,

    -- * Response Lenses
    describeProvisioningTemplateVersionResponse_creationDate,
    describeProvisioningTemplateVersionResponse_isDefaultVersion,
    describeProvisioningTemplateVersionResponse_templateBody,
    describeProvisioningTemplateVersionResponse_versionId,
    describeProvisioningTemplateVersionResponse_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:/ 'newDescribeProvisioningTemplateVersion' smart constructor.
data DescribeProvisioningTemplateVersion = DescribeProvisioningTemplateVersion'
  { -- | The template name.
    DescribeProvisioningTemplateVersion -> Text
templateName :: Prelude.Text,
    -- | The provisioning template version ID.
    DescribeProvisioningTemplateVersion -> Int
versionId :: Prelude.Int
  }
  deriving (DescribeProvisioningTemplateVersion
-> DescribeProvisioningTemplateVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeProvisioningTemplateVersion
-> DescribeProvisioningTemplateVersion -> Bool
$c/= :: DescribeProvisioningTemplateVersion
-> DescribeProvisioningTemplateVersion -> Bool
== :: DescribeProvisioningTemplateVersion
-> DescribeProvisioningTemplateVersion -> Bool
$c== :: DescribeProvisioningTemplateVersion
-> DescribeProvisioningTemplateVersion -> Bool
Prelude.Eq, ReadPrec [DescribeProvisioningTemplateVersion]
ReadPrec DescribeProvisioningTemplateVersion
Int -> ReadS DescribeProvisioningTemplateVersion
ReadS [DescribeProvisioningTemplateVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeProvisioningTemplateVersion]
$creadListPrec :: ReadPrec [DescribeProvisioningTemplateVersion]
readPrec :: ReadPrec DescribeProvisioningTemplateVersion
$creadPrec :: ReadPrec DescribeProvisioningTemplateVersion
readList :: ReadS [DescribeProvisioningTemplateVersion]
$creadList :: ReadS [DescribeProvisioningTemplateVersion]
readsPrec :: Int -> ReadS DescribeProvisioningTemplateVersion
$creadsPrec :: Int -> ReadS DescribeProvisioningTemplateVersion
Prelude.Read, Int -> DescribeProvisioningTemplateVersion -> ShowS
[DescribeProvisioningTemplateVersion] -> ShowS
DescribeProvisioningTemplateVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeProvisioningTemplateVersion] -> ShowS
$cshowList :: [DescribeProvisioningTemplateVersion] -> ShowS
show :: DescribeProvisioningTemplateVersion -> String
$cshow :: DescribeProvisioningTemplateVersion -> String
showsPrec :: Int -> DescribeProvisioningTemplateVersion -> ShowS
$cshowsPrec :: Int -> DescribeProvisioningTemplateVersion -> ShowS
Prelude.Show, forall x.
Rep DescribeProvisioningTemplateVersion x
-> DescribeProvisioningTemplateVersion
forall x.
DescribeProvisioningTemplateVersion
-> Rep DescribeProvisioningTemplateVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeProvisioningTemplateVersion x
-> DescribeProvisioningTemplateVersion
$cfrom :: forall x.
DescribeProvisioningTemplateVersion
-> Rep DescribeProvisioningTemplateVersion x
Prelude.Generic)

-- |
-- Create a value of 'DescribeProvisioningTemplateVersion' 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:
--
-- 'templateName', 'describeProvisioningTemplateVersion_templateName' - The template name.
--
-- 'versionId', 'describeProvisioningTemplateVersion_versionId' - The provisioning template version ID.
newDescribeProvisioningTemplateVersion ::
  -- | 'templateName'
  Prelude.Text ->
  -- | 'versionId'
  Prelude.Int ->
  DescribeProvisioningTemplateVersion
newDescribeProvisioningTemplateVersion :: Text -> Int -> DescribeProvisioningTemplateVersion
newDescribeProvisioningTemplateVersion
  Text
pTemplateName_
  Int
pVersionId_ =
    DescribeProvisioningTemplateVersion'
      { $sel:templateName:DescribeProvisioningTemplateVersion' :: Text
templateName =
          Text
pTemplateName_,
        $sel:versionId:DescribeProvisioningTemplateVersion' :: Int
versionId = Int
pVersionId_
      }

-- | The template name.
describeProvisioningTemplateVersion_templateName :: Lens.Lens' DescribeProvisioningTemplateVersion Prelude.Text
describeProvisioningTemplateVersion_templateName :: Lens' DescribeProvisioningTemplateVersion Text
describeProvisioningTemplateVersion_templateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningTemplateVersion' {Text
templateName :: Text
$sel:templateName:DescribeProvisioningTemplateVersion' :: DescribeProvisioningTemplateVersion -> Text
templateName} -> Text
templateName) (\s :: DescribeProvisioningTemplateVersion
s@DescribeProvisioningTemplateVersion' {} Text
a -> DescribeProvisioningTemplateVersion
s {$sel:templateName:DescribeProvisioningTemplateVersion' :: Text
templateName = Text
a} :: DescribeProvisioningTemplateVersion)

-- | The provisioning template version ID.
describeProvisioningTemplateVersion_versionId :: Lens.Lens' DescribeProvisioningTemplateVersion Prelude.Int
describeProvisioningTemplateVersion_versionId :: Lens' DescribeProvisioningTemplateVersion Int
describeProvisioningTemplateVersion_versionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningTemplateVersion' {Int
versionId :: Int
$sel:versionId:DescribeProvisioningTemplateVersion' :: DescribeProvisioningTemplateVersion -> Int
versionId} -> Int
versionId) (\s :: DescribeProvisioningTemplateVersion
s@DescribeProvisioningTemplateVersion' {} Int
a -> DescribeProvisioningTemplateVersion
s {$sel:versionId:DescribeProvisioningTemplateVersion' :: Int
versionId = Int
a} :: DescribeProvisioningTemplateVersion)

instance
  Core.AWSRequest
    DescribeProvisioningTemplateVersion
  where
  type
    AWSResponse DescribeProvisioningTemplateVersion =
      DescribeProvisioningTemplateVersionResponse
  request :: (Service -> Service)
-> DescribeProvisioningTemplateVersion
-> Request DescribeProvisioningTemplateVersion
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 DescribeProvisioningTemplateVersion
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DescribeProvisioningTemplateVersion)))
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 POSIX
-> Maybe Bool
-> Maybe Text
-> Maybe Int
-> Int
-> DescribeProvisioningTemplateVersionResponse
DescribeProvisioningTemplateVersionResponse'
            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
"creationDate")
            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
"isDefaultVersion")
            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
"templateBody")
            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
"versionId")
            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
    DescribeProvisioningTemplateVersion
  where
  hashWithSalt :: Int -> DescribeProvisioningTemplateVersion -> Int
hashWithSalt
    Int
_salt
    DescribeProvisioningTemplateVersion' {Int
Text
versionId :: Int
templateName :: Text
$sel:versionId:DescribeProvisioningTemplateVersion' :: DescribeProvisioningTemplateVersion -> Int
$sel:templateName:DescribeProvisioningTemplateVersion' :: DescribeProvisioningTemplateVersion -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
templateName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Int
versionId

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

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

instance
  Data.ToPath
    DescribeProvisioningTemplateVersion
  where
  toPath :: DescribeProvisioningTemplateVersion -> ByteString
toPath DescribeProvisioningTemplateVersion' {Int
Text
versionId :: Int
templateName :: Text
$sel:versionId:DescribeProvisioningTemplateVersion' :: DescribeProvisioningTemplateVersion -> Int
$sel:templateName:DescribeProvisioningTemplateVersion' :: DescribeProvisioningTemplateVersion -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/provisioning-templates/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
templateName,
        ByteString
"/versions/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Int
versionId
      ]

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

-- | /See:/ 'newDescribeProvisioningTemplateVersionResponse' smart constructor.
data DescribeProvisioningTemplateVersionResponse = DescribeProvisioningTemplateVersionResponse'
  { -- | The date when the provisioning template version was created.
    DescribeProvisioningTemplateVersionResponse -> Maybe POSIX
creationDate :: Prelude.Maybe Data.POSIX,
    -- | True if the provisioning template version is the default version.
    DescribeProvisioningTemplateVersionResponse -> Maybe Bool
isDefaultVersion :: Prelude.Maybe Prelude.Bool,
    -- | The JSON formatted contents of the provisioning template version.
    DescribeProvisioningTemplateVersionResponse -> Maybe Text
templateBody :: Prelude.Maybe Prelude.Text,
    -- | The provisioning template version ID.
    DescribeProvisioningTemplateVersionResponse -> Maybe Int
versionId :: Prelude.Maybe Prelude.Int,
    -- | The response's http status code.
    DescribeProvisioningTemplateVersionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (DescribeProvisioningTemplateVersionResponse
-> DescribeProvisioningTemplateVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeProvisioningTemplateVersionResponse
-> DescribeProvisioningTemplateVersionResponse -> Bool
$c/= :: DescribeProvisioningTemplateVersionResponse
-> DescribeProvisioningTemplateVersionResponse -> Bool
== :: DescribeProvisioningTemplateVersionResponse
-> DescribeProvisioningTemplateVersionResponse -> Bool
$c== :: DescribeProvisioningTemplateVersionResponse
-> DescribeProvisioningTemplateVersionResponse -> Bool
Prelude.Eq, ReadPrec [DescribeProvisioningTemplateVersionResponse]
ReadPrec DescribeProvisioningTemplateVersionResponse
Int -> ReadS DescribeProvisioningTemplateVersionResponse
ReadS [DescribeProvisioningTemplateVersionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeProvisioningTemplateVersionResponse]
$creadListPrec :: ReadPrec [DescribeProvisioningTemplateVersionResponse]
readPrec :: ReadPrec DescribeProvisioningTemplateVersionResponse
$creadPrec :: ReadPrec DescribeProvisioningTemplateVersionResponse
readList :: ReadS [DescribeProvisioningTemplateVersionResponse]
$creadList :: ReadS [DescribeProvisioningTemplateVersionResponse]
readsPrec :: Int -> ReadS DescribeProvisioningTemplateVersionResponse
$creadsPrec :: Int -> ReadS DescribeProvisioningTemplateVersionResponse
Prelude.Read, Int -> DescribeProvisioningTemplateVersionResponse -> ShowS
[DescribeProvisioningTemplateVersionResponse] -> ShowS
DescribeProvisioningTemplateVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeProvisioningTemplateVersionResponse] -> ShowS
$cshowList :: [DescribeProvisioningTemplateVersionResponse] -> ShowS
show :: DescribeProvisioningTemplateVersionResponse -> String
$cshow :: DescribeProvisioningTemplateVersionResponse -> String
showsPrec :: Int -> DescribeProvisioningTemplateVersionResponse -> ShowS
$cshowsPrec :: Int -> DescribeProvisioningTemplateVersionResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeProvisioningTemplateVersionResponse x
-> DescribeProvisioningTemplateVersionResponse
forall x.
DescribeProvisioningTemplateVersionResponse
-> Rep DescribeProvisioningTemplateVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeProvisioningTemplateVersionResponse x
-> DescribeProvisioningTemplateVersionResponse
$cfrom :: forall x.
DescribeProvisioningTemplateVersionResponse
-> Rep DescribeProvisioningTemplateVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeProvisioningTemplateVersionResponse' 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:
--
-- 'creationDate', 'describeProvisioningTemplateVersionResponse_creationDate' - The date when the provisioning template version was created.
--
-- 'isDefaultVersion', 'describeProvisioningTemplateVersionResponse_isDefaultVersion' - True if the provisioning template version is the default version.
--
-- 'templateBody', 'describeProvisioningTemplateVersionResponse_templateBody' - The JSON formatted contents of the provisioning template version.
--
-- 'versionId', 'describeProvisioningTemplateVersionResponse_versionId' - The provisioning template version ID.
--
-- 'httpStatus', 'describeProvisioningTemplateVersionResponse_httpStatus' - The response's http status code.
newDescribeProvisioningTemplateVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DescribeProvisioningTemplateVersionResponse
newDescribeProvisioningTemplateVersionResponse :: Int -> DescribeProvisioningTemplateVersionResponse
newDescribeProvisioningTemplateVersionResponse
  Int
pHttpStatus_ =
    DescribeProvisioningTemplateVersionResponse'
      { $sel:creationDate:DescribeProvisioningTemplateVersionResponse' :: Maybe POSIX
creationDate =
          forall a. Maybe a
Prelude.Nothing,
        $sel:isDefaultVersion:DescribeProvisioningTemplateVersionResponse' :: Maybe Bool
isDefaultVersion =
          forall a. Maybe a
Prelude.Nothing,
        $sel:templateBody:DescribeProvisioningTemplateVersionResponse' :: Maybe Text
templateBody = forall a. Maybe a
Prelude.Nothing,
        $sel:versionId:DescribeProvisioningTemplateVersionResponse' :: Maybe Int
versionId = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeProvisioningTemplateVersionResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The date when the provisioning template version was created.
describeProvisioningTemplateVersionResponse_creationDate :: Lens.Lens' DescribeProvisioningTemplateVersionResponse (Prelude.Maybe Prelude.UTCTime)
describeProvisioningTemplateVersionResponse_creationDate :: Lens' DescribeProvisioningTemplateVersionResponse (Maybe UTCTime)
describeProvisioningTemplateVersionResponse_creationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningTemplateVersionResponse' {Maybe POSIX
creationDate :: Maybe POSIX
$sel:creationDate:DescribeProvisioningTemplateVersionResponse' :: DescribeProvisioningTemplateVersionResponse -> Maybe POSIX
creationDate} -> Maybe POSIX
creationDate) (\s :: DescribeProvisioningTemplateVersionResponse
s@DescribeProvisioningTemplateVersionResponse' {} Maybe POSIX
a -> DescribeProvisioningTemplateVersionResponse
s {$sel:creationDate:DescribeProvisioningTemplateVersionResponse' :: Maybe POSIX
creationDate = Maybe POSIX
a} :: DescribeProvisioningTemplateVersionResponse) 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

-- | True if the provisioning template version is the default version.
describeProvisioningTemplateVersionResponse_isDefaultVersion :: Lens.Lens' DescribeProvisioningTemplateVersionResponse (Prelude.Maybe Prelude.Bool)
describeProvisioningTemplateVersionResponse_isDefaultVersion :: Lens' DescribeProvisioningTemplateVersionResponse (Maybe Bool)
describeProvisioningTemplateVersionResponse_isDefaultVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningTemplateVersionResponse' {Maybe Bool
isDefaultVersion :: Maybe Bool
$sel:isDefaultVersion:DescribeProvisioningTemplateVersionResponse' :: DescribeProvisioningTemplateVersionResponse -> Maybe Bool
isDefaultVersion} -> Maybe Bool
isDefaultVersion) (\s :: DescribeProvisioningTemplateVersionResponse
s@DescribeProvisioningTemplateVersionResponse' {} Maybe Bool
a -> DescribeProvisioningTemplateVersionResponse
s {$sel:isDefaultVersion:DescribeProvisioningTemplateVersionResponse' :: Maybe Bool
isDefaultVersion = Maybe Bool
a} :: DescribeProvisioningTemplateVersionResponse)

-- | The JSON formatted contents of the provisioning template version.
describeProvisioningTemplateVersionResponse_templateBody :: Lens.Lens' DescribeProvisioningTemplateVersionResponse (Prelude.Maybe Prelude.Text)
describeProvisioningTemplateVersionResponse_templateBody :: Lens' DescribeProvisioningTemplateVersionResponse (Maybe Text)
describeProvisioningTemplateVersionResponse_templateBody = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningTemplateVersionResponse' {Maybe Text
templateBody :: Maybe Text
$sel:templateBody:DescribeProvisioningTemplateVersionResponse' :: DescribeProvisioningTemplateVersionResponse -> Maybe Text
templateBody} -> Maybe Text
templateBody) (\s :: DescribeProvisioningTemplateVersionResponse
s@DescribeProvisioningTemplateVersionResponse' {} Maybe Text
a -> DescribeProvisioningTemplateVersionResponse
s {$sel:templateBody:DescribeProvisioningTemplateVersionResponse' :: Maybe Text
templateBody = Maybe Text
a} :: DescribeProvisioningTemplateVersionResponse)

-- | The provisioning template version ID.
describeProvisioningTemplateVersionResponse_versionId :: Lens.Lens' DescribeProvisioningTemplateVersionResponse (Prelude.Maybe Prelude.Int)
describeProvisioningTemplateVersionResponse_versionId :: Lens' DescribeProvisioningTemplateVersionResponse (Maybe Int)
describeProvisioningTemplateVersionResponse_versionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeProvisioningTemplateVersionResponse' {Maybe Int
versionId :: Maybe Int
$sel:versionId:DescribeProvisioningTemplateVersionResponse' :: DescribeProvisioningTemplateVersionResponse -> Maybe Int
versionId} -> Maybe Int
versionId) (\s :: DescribeProvisioningTemplateVersionResponse
s@DescribeProvisioningTemplateVersionResponse' {} Maybe Int
a -> DescribeProvisioningTemplateVersionResponse
s {$sel:versionId:DescribeProvisioningTemplateVersionResponse' :: Maybe Int
versionId = Maybe Int
a} :: DescribeProvisioningTemplateVersionResponse)

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

instance
  Prelude.NFData
    DescribeProvisioningTemplateVersionResponse
  where
  rnf :: DescribeProvisioningTemplateVersionResponse -> ()
rnf DescribeProvisioningTemplateVersionResponse' {Int
Maybe Bool
Maybe Int
Maybe Text
Maybe POSIX
httpStatus :: Int
versionId :: Maybe Int
templateBody :: Maybe Text
isDefaultVersion :: Maybe Bool
creationDate :: Maybe POSIX
$sel:httpStatus:DescribeProvisioningTemplateVersionResponse' :: DescribeProvisioningTemplateVersionResponse -> Int
$sel:versionId:DescribeProvisioningTemplateVersionResponse' :: DescribeProvisioningTemplateVersionResponse -> Maybe Int
$sel:templateBody:DescribeProvisioningTemplateVersionResponse' :: DescribeProvisioningTemplateVersionResponse -> Maybe Text
$sel:isDefaultVersion:DescribeProvisioningTemplateVersionResponse' :: DescribeProvisioningTemplateVersionResponse -> Maybe Bool
$sel:creationDate:DescribeProvisioningTemplateVersionResponse' :: DescribeProvisioningTemplateVersionResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
isDefaultVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
templateBody
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
versionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus