{-# 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.CreateProvisioningTemplateVersion
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a new version of a provisioning template.
--
-- Requires permission to access the
-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions CreateProvisioningTemplateVersion>
-- action.
module Amazonka.IoT.CreateProvisioningTemplateVersion
  ( -- * Creating a Request
    CreateProvisioningTemplateVersion (..),
    newCreateProvisioningTemplateVersion,

    -- * Request Lenses
    createProvisioningTemplateVersion_setAsDefault,
    createProvisioningTemplateVersion_templateName,
    createProvisioningTemplateVersion_templateBody,

    -- * Destructuring the Response
    CreateProvisioningTemplateVersionResponse (..),
    newCreateProvisioningTemplateVersionResponse,

    -- * Response Lenses
    createProvisioningTemplateVersionResponse_isDefaultVersion,
    createProvisioningTemplateVersionResponse_templateArn,
    createProvisioningTemplateVersionResponse_templateName,
    createProvisioningTemplateVersionResponse_versionId,
    createProvisioningTemplateVersionResponse_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:/ 'newCreateProvisioningTemplateVersion' smart constructor.
data CreateProvisioningTemplateVersion = CreateProvisioningTemplateVersion'
  { -- | Sets a fleet provision template version as the default version.
    CreateProvisioningTemplateVersion -> Maybe Bool
setAsDefault :: Prelude.Maybe Prelude.Bool,
    -- | The name of the provisioning template.
    CreateProvisioningTemplateVersion -> Text
templateName :: Prelude.Text,
    -- | The JSON formatted contents of the provisioning template.
    CreateProvisioningTemplateVersion -> Text
templateBody :: Prelude.Text
  }
  deriving (CreateProvisioningTemplateVersion
-> CreateProvisioningTemplateVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateProvisioningTemplateVersion
-> CreateProvisioningTemplateVersion -> Bool
$c/= :: CreateProvisioningTemplateVersion
-> CreateProvisioningTemplateVersion -> Bool
== :: CreateProvisioningTemplateVersion
-> CreateProvisioningTemplateVersion -> Bool
$c== :: CreateProvisioningTemplateVersion
-> CreateProvisioningTemplateVersion -> Bool
Prelude.Eq, ReadPrec [CreateProvisioningTemplateVersion]
ReadPrec CreateProvisioningTemplateVersion
Int -> ReadS CreateProvisioningTemplateVersion
ReadS [CreateProvisioningTemplateVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateProvisioningTemplateVersion]
$creadListPrec :: ReadPrec [CreateProvisioningTemplateVersion]
readPrec :: ReadPrec CreateProvisioningTemplateVersion
$creadPrec :: ReadPrec CreateProvisioningTemplateVersion
readList :: ReadS [CreateProvisioningTemplateVersion]
$creadList :: ReadS [CreateProvisioningTemplateVersion]
readsPrec :: Int -> ReadS CreateProvisioningTemplateVersion
$creadsPrec :: Int -> ReadS CreateProvisioningTemplateVersion
Prelude.Read, Int -> CreateProvisioningTemplateVersion -> ShowS
[CreateProvisioningTemplateVersion] -> ShowS
CreateProvisioningTemplateVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateProvisioningTemplateVersion] -> ShowS
$cshowList :: [CreateProvisioningTemplateVersion] -> ShowS
show :: CreateProvisioningTemplateVersion -> String
$cshow :: CreateProvisioningTemplateVersion -> String
showsPrec :: Int -> CreateProvisioningTemplateVersion -> ShowS
$cshowsPrec :: Int -> CreateProvisioningTemplateVersion -> ShowS
Prelude.Show, forall x.
Rep CreateProvisioningTemplateVersion x
-> CreateProvisioningTemplateVersion
forall x.
CreateProvisioningTemplateVersion
-> Rep CreateProvisioningTemplateVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateProvisioningTemplateVersion x
-> CreateProvisioningTemplateVersion
$cfrom :: forall x.
CreateProvisioningTemplateVersion
-> Rep CreateProvisioningTemplateVersion x
Prelude.Generic)

-- |
-- Create a value of 'CreateProvisioningTemplateVersion' 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:
--
-- 'setAsDefault', 'createProvisioningTemplateVersion_setAsDefault' - Sets a fleet provision template version as the default version.
--
-- 'templateName', 'createProvisioningTemplateVersion_templateName' - The name of the provisioning template.
--
-- 'templateBody', 'createProvisioningTemplateVersion_templateBody' - The JSON formatted contents of the provisioning template.
newCreateProvisioningTemplateVersion ::
  -- | 'templateName'
  Prelude.Text ->
  -- | 'templateBody'
  Prelude.Text ->
  CreateProvisioningTemplateVersion
newCreateProvisioningTemplateVersion :: Text -> Text -> CreateProvisioningTemplateVersion
newCreateProvisioningTemplateVersion
  Text
pTemplateName_
  Text
pTemplateBody_ =
    CreateProvisioningTemplateVersion'
      { $sel:setAsDefault:CreateProvisioningTemplateVersion' :: Maybe Bool
setAsDefault =
          forall a. Maybe a
Prelude.Nothing,
        $sel:templateName:CreateProvisioningTemplateVersion' :: Text
templateName = Text
pTemplateName_,
        $sel:templateBody:CreateProvisioningTemplateVersion' :: Text
templateBody = Text
pTemplateBody_
      }

-- | Sets a fleet provision template version as the default version.
createProvisioningTemplateVersion_setAsDefault :: Lens.Lens' CreateProvisioningTemplateVersion (Prelude.Maybe Prelude.Bool)
createProvisioningTemplateVersion_setAsDefault :: Lens' CreateProvisioningTemplateVersion (Maybe Bool)
createProvisioningTemplateVersion_setAsDefault = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateProvisioningTemplateVersion' {Maybe Bool
setAsDefault :: Maybe Bool
$sel:setAsDefault:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Maybe Bool
setAsDefault} -> Maybe Bool
setAsDefault) (\s :: CreateProvisioningTemplateVersion
s@CreateProvisioningTemplateVersion' {} Maybe Bool
a -> CreateProvisioningTemplateVersion
s {$sel:setAsDefault:CreateProvisioningTemplateVersion' :: Maybe Bool
setAsDefault = Maybe Bool
a} :: CreateProvisioningTemplateVersion)

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

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

instance
  Core.AWSRequest
    CreateProvisioningTemplateVersion
  where
  type
    AWSResponse CreateProvisioningTemplateVersion =
      CreateProvisioningTemplateVersionResponse
  request :: (Service -> Service)
-> CreateProvisioningTemplateVersion
-> Request CreateProvisioningTemplateVersion
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateProvisioningTemplateVersion
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse CreateProvisioningTemplateVersion)))
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 Bool
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Int
-> CreateProvisioningTemplateVersionResponse
CreateProvisioningTemplateVersionResponse'
            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
"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
"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
"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
    CreateProvisioningTemplateVersion
  where
  hashWithSalt :: Int -> CreateProvisioningTemplateVersion -> Int
hashWithSalt
    Int
_salt
    CreateProvisioningTemplateVersion' {Maybe Bool
Text
templateBody :: Text
templateName :: Text
setAsDefault :: Maybe Bool
$sel:templateBody:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Text
$sel:templateName:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Text
$sel:setAsDefault:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Maybe Bool
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
setAsDefault
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
templateName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
templateBody

instance
  Prelude.NFData
    CreateProvisioningTemplateVersion
  where
  rnf :: CreateProvisioningTemplateVersion -> ()
rnf CreateProvisioningTemplateVersion' {Maybe Bool
Text
templateBody :: Text
templateName :: Text
setAsDefault :: Maybe Bool
$sel:templateBody:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Text
$sel:templateName:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Text
$sel:setAsDefault:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Maybe Bool
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
setAsDefault
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Text
templateBody

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

instance
  Data.ToJSON
    CreateProvisioningTemplateVersion
  where
  toJSON :: CreateProvisioningTemplateVersion -> Value
toJSON CreateProvisioningTemplateVersion' {Maybe Bool
Text
templateBody :: Text
templateName :: Text
setAsDefault :: Maybe Bool
$sel:templateBody:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Text
$sel:templateName:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Text
$sel:setAsDefault:CreateProvisioningTemplateVersion' :: CreateProvisioningTemplateVersion -> Maybe Bool
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [forall a. a -> Maybe a
Prelude.Just (Key
"templateBody" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
templateBody)]
      )

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

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

-- | /See:/ 'newCreateProvisioningTemplateVersionResponse' smart constructor.
data CreateProvisioningTemplateVersionResponse = CreateProvisioningTemplateVersionResponse'
  { -- | True if the provisioning template version is the default version,
    -- otherwise false.
    CreateProvisioningTemplateVersionResponse -> Maybe Bool
isDefaultVersion :: Prelude.Maybe Prelude.Bool,
    -- | The ARN that identifies the provisioning template.
    CreateProvisioningTemplateVersionResponse -> Maybe Text
templateArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the provisioning template.
    CreateProvisioningTemplateVersionResponse -> Maybe Text
templateName :: Prelude.Maybe Prelude.Text,
    -- | The version of the provisioning template.
    CreateProvisioningTemplateVersionResponse -> Maybe Int
versionId :: Prelude.Maybe Prelude.Int,
    -- | The response's http status code.
    CreateProvisioningTemplateVersionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateProvisioningTemplateVersionResponse
-> CreateProvisioningTemplateVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateProvisioningTemplateVersionResponse
-> CreateProvisioningTemplateVersionResponse -> Bool
$c/= :: CreateProvisioningTemplateVersionResponse
-> CreateProvisioningTemplateVersionResponse -> Bool
== :: CreateProvisioningTemplateVersionResponse
-> CreateProvisioningTemplateVersionResponse -> Bool
$c== :: CreateProvisioningTemplateVersionResponse
-> CreateProvisioningTemplateVersionResponse -> Bool
Prelude.Eq, ReadPrec [CreateProvisioningTemplateVersionResponse]
ReadPrec CreateProvisioningTemplateVersionResponse
Int -> ReadS CreateProvisioningTemplateVersionResponse
ReadS [CreateProvisioningTemplateVersionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateProvisioningTemplateVersionResponse]
$creadListPrec :: ReadPrec [CreateProvisioningTemplateVersionResponse]
readPrec :: ReadPrec CreateProvisioningTemplateVersionResponse
$creadPrec :: ReadPrec CreateProvisioningTemplateVersionResponse
readList :: ReadS [CreateProvisioningTemplateVersionResponse]
$creadList :: ReadS [CreateProvisioningTemplateVersionResponse]
readsPrec :: Int -> ReadS CreateProvisioningTemplateVersionResponse
$creadsPrec :: Int -> ReadS CreateProvisioningTemplateVersionResponse
Prelude.Read, Int -> CreateProvisioningTemplateVersionResponse -> ShowS
[CreateProvisioningTemplateVersionResponse] -> ShowS
CreateProvisioningTemplateVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateProvisioningTemplateVersionResponse] -> ShowS
$cshowList :: [CreateProvisioningTemplateVersionResponse] -> ShowS
show :: CreateProvisioningTemplateVersionResponse -> String
$cshow :: CreateProvisioningTemplateVersionResponse -> String
showsPrec :: Int -> CreateProvisioningTemplateVersionResponse -> ShowS
$cshowsPrec :: Int -> CreateProvisioningTemplateVersionResponse -> ShowS
Prelude.Show, forall x.
Rep CreateProvisioningTemplateVersionResponse x
-> CreateProvisioningTemplateVersionResponse
forall x.
CreateProvisioningTemplateVersionResponse
-> Rep CreateProvisioningTemplateVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateProvisioningTemplateVersionResponse x
-> CreateProvisioningTemplateVersionResponse
$cfrom :: forall x.
CreateProvisioningTemplateVersionResponse
-> Rep CreateProvisioningTemplateVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateProvisioningTemplateVersionResponse' 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:
--
-- 'isDefaultVersion', 'createProvisioningTemplateVersionResponse_isDefaultVersion' - True if the provisioning template version is the default version,
-- otherwise false.
--
-- 'templateArn', 'createProvisioningTemplateVersionResponse_templateArn' - The ARN that identifies the provisioning template.
--
-- 'templateName', 'createProvisioningTemplateVersionResponse_templateName' - The name of the provisioning template.
--
-- 'versionId', 'createProvisioningTemplateVersionResponse_versionId' - The version of the provisioning template.
--
-- 'httpStatus', 'createProvisioningTemplateVersionResponse_httpStatus' - The response's http status code.
newCreateProvisioningTemplateVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateProvisioningTemplateVersionResponse
newCreateProvisioningTemplateVersionResponse :: Int -> CreateProvisioningTemplateVersionResponse
newCreateProvisioningTemplateVersionResponse
  Int
pHttpStatus_ =
    CreateProvisioningTemplateVersionResponse'
      { $sel:isDefaultVersion:CreateProvisioningTemplateVersionResponse' :: Maybe Bool
isDefaultVersion =
          forall a. Maybe a
Prelude.Nothing,
        $sel:templateArn:CreateProvisioningTemplateVersionResponse' :: Maybe Text
templateArn = forall a. Maybe a
Prelude.Nothing,
        $sel:templateName:CreateProvisioningTemplateVersionResponse' :: Maybe Text
templateName = forall a. Maybe a
Prelude.Nothing,
        $sel:versionId:CreateProvisioningTemplateVersionResponse' :: Maybe Int
versionId = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:CreateProvisioningTemplateVersionResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

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

-- | The ARN that identifies the provisioning template.
createProvisioningTemplateVersionResponse_templateArn :: Lens.Lens' CreateProvisioningTemplateVersionResponse (Prelude.Maybe Prelude.Text)
createProvisioningTemplateVersionResponse_templateArn :: Lens' CreateProvisioningTemplateVersionResponse (Maybe Text)
createProvisioningTemplateVersionResponse_templateArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateProvisioningTemplateVersionResponse' {Maybe Text
templateArn :: Maybe Text
$sel:templateArn:CreateProvisioningTemplateVersionResponse' :: CreateProvisioningTemplateVersionResponse -> Maybe Text
templateArn} -> Maybe Text
templateArn) (\s :: CreateProvisioningTemplateVersionResponse
s@CreateProvisioningTemplateVersionResponse' {} Maybe Text
a -> CreateProvisioningTemplateVersionResponse
s {$sel:templateArn:CreateProvisioningTemplateVersionResponse' :: Maybe Text
templateArn = Maybe Text
a} :: CreateProvisioningTemplateVersionResponse)

-- | The name of the provisioning template.
createProvisioningTemplateVersionResponse_templateName :: Lens.Lens' CreateProvisioningTemplateVersionResponse (Prelude.Maybe Prelude.Text)
createProvisioningTemplateVersionResponse_templateName :: Lens' CreateProvisioningTemplateVersionResponse (Maybe Text)
createProvisioningTemplateVersionResponse_templateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateProvisioningTemplateVersionResponse' {Maybe Text
templateName :: Maybe Text
$sel:templateName:CreateProvisioningTemplateVersionResponse' :: CreateProvisioningTemplateVersionResponse -> Maybe Text
templateName} -> Maybe Text
templateName) (\s :: CreateProvisioningTemplateVersionResponse
s@CreateProvisioningTemplateVersionResponse' {} Maybe Text
a -> CreateProvisioningTemplateVersionResponse
s {$sel:templateName:CreateProvisioningTemplateVersionResponse' :: Maybe Text
templateName = Maybe Text
a} :: CreateProvisioningTemplateVersionResponse)

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

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

instance
  Prelude.NFData
    CreateProvisioningTemplateVersionResponse
  where
  rnf :: CreateProvisioningTemplateVersionResponse -> ()
rnf CreateProvisioningTemplateVersionResponse' {Int
Maybe Bool
Maybe Int
Maybe Text
httpStatus :: Int
versionId :: Maybe Int
templateName :: Maybe Text
templateArn :: Maybe Text
isDefaultVersion :: Maybe Bool
$sel:httpStatus:CreateProvisioningTemplateVersionResponse' :: CreateProvisioningTemplateVersionResponse -> Int
$sel:versionId:CreateProvisioningTemplateVersionResponse' :: CreateProvisioningTemplateVersionResponse -> Maybe Int
$sel:templateName:CreateProvisioningTemplateVersionResponse' :: CreateProvisioningTemplateVersionResponse -> Maybe Text
$sel:templateArn:CreateProvisioningTemplateVersionResponse' :: CreateProvisioningTemplateVersionResponse -> Maybe Text
$sel:isDefaultVersion:CreateProvisioningTemplateVersionResponse' :: CreateProvisioningTemplateVersionResponse -> Maybe Bool
..} =
    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
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 Int
versionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus