{-# 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 -- -- 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. setAsDefault :: Prelude.Maybe Prelude.Bool, -- | The name of the provisioning template. templateName :: Prelude.Text, -- | The JSON formatted contents of the provisioning template. templateBody :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'CreateProvisioningTemplateVersion' with all optional fields omitted. -- -- Use or 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 pTemplateName_ pTemplateBody_ = CreateProvisioningTemplateVersion' { setAsDefault = Prelude.Nothing, templateName = pTemplateName_, templateBody = pTemplateBody_ } -- | Sets a fleet provision template version as the default version. createProvisioningTemplateVersion_setAsDefault :: Lens.Lens' CreateProvisioningTemplateVersion (Prelude.Maybe Prelude.Bool) createProvisioningTemplateVersion_setAsDefault = Lens.lens (\CreateProvisioningTemplateVersion' {setAsDefault} -> setAsDefault) (\s@CreateProvisioningTemplateVersion' {} a -> s {setAsDefault = a} :: CreateProvisioningTemplateVersion) -- | The name of the provisioning template. createProvisioningTemplateVersion_templateName :: Lens.Lens' CreateProvisioningTemplateVersion Prelude.Text createProvisioningTemplateVersion_templateName = Lens.lens (\CreateProvisioningTemplateVersion' {templateName} -> templateName) (\s@CreateProvisioningTemplateVersion' {} a -> s {templateName = a} :: CreateProvisioningTemplateVersion) -- | The JSON formatted contents of the provisioning template. createProvisioningTemplateVersion_templateBody :: Lens.Lens' CreateProvisioningTemplateVersion Prelude.Text createProvisioningTemplateVersion_templateBody = Lens.lens (\CreateProvisioningTemplateVersion' {templateBody} -> templateBody) (\s@CreateProvisioningTemplateVersion' {} a -> s {templateBody = a} :: CreateProvisioningTemplateVersion) instance Core.AWSRequest CreateProvisioningTemplateVersion where type AWSResponse CreateProvisioningTemplateVersion = CreateProvisioningTemplateVersionResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> CreateProvisioningTemplateVersionResponse' Prelude.<$> (x Data..?> "isDefaultVersion") Prelude.<*> (x Data..?> "templateArn") Prelude.<*> (x Data..?> "templateName") Prelude.<*> (x Data..?> "versionId") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable CreateProvisioningTemplateVersion where hashWithSalt _salt CreateProvisioningTemplateVersion' {..} = _salt `Prelude.hashWithSalt` setAsDefault `Prelude.hashWithSalt` templateName `Prelude.hashWithSalt` templateBody instance Prelude.NFData CreateProvisioningTemplateVersion where rnf CreateProvisioningTemplateVersion' {..} = Prelude.rnf setAsDefault `Prelude.seq` Prelude.rnf templateName `Prelude.seq` Prelude.rnf templateBody instance Data.ToHeaders CreateProvisioningTemplateVersion where toHeaders = Prelude.const Prelude.mempty instance Data.ToJSON CreateProvisioningTemplateVersion where toJSON CreateProvisioningTemplateVersion' {..} = Data.object ( Prelude.catMaybes [Prelude.Just ("templateBody" Data..= templateBody)] ) instance Data.ToPath CreateProvisioningTemplateVersion where toPath CreateProvisioningTemplateVersion' {..} = Prelude.mconcat [ "/provisioning-templates/", Data.toBS templateName, "/versions" ] instance Data.ToQuery CreateProvisioningTemplateVersion where toQuery CreateProvisioningTemplateVersion' {..} = Prelude.mconcat ["setAsDefault" Data.=: setAsDefault] -- | /See:/ 'newCreateProvisioningTemplateVersionResponse' smart constructor. data CreateProvisioningTemplateVersionResponse = CreateProvisioningTemplateVersionResponse' { -- | True if the provisioning template version is the default version, -- otherwise false. isDefaultVersion :: Prelude.Maybe Prelude.Bool, -- | The ARN that identifies the provisioning template. templateArn :: Prelude.Maybe Prelude.Text, -- | The name of the provisioning template. templateName :: Prelude.Maybe Prelude.Text, -- | The version of the provisioning template. versionId :: Prelude.Maybe Prelude.Int, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'CreateProvisioningTemplateVersionResponse' with all optional fields omitted. -- -- Use or 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 pHttpStatus_ = CreateProvisioningTemplateVersionResponse' { isDefaultVersion = Prelude.Nothing, templateArn = Prelude.Nothing, templateName = Prelude.Nothing, versionId = Prelude.Nothing, httpStatus = 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.lens (\CreateProvisioningTemplateVersionResponse' {isDefaultVersion} -> isDefaultVersion) (\s@CreateProvisioningTemplateVersionResponse' {} a -> s {isDefaultVersion = a} :: CreateProvisioningTemplateVersionResponse) -- | The ARN that identifies the provisioning template. createProvisioningTemplateVersionResponse_templateArn :: Lens.Lens' CreateProvisioningTemplateVersionResponse (Prelude.Maybe Prelude.Text) createProvisioningTemplateVersionResponse_templateArn = Lens.lens (\CreateProvisioningTemplateVersionResponse' {templateArn} -> templateArn) (\s@CreateProvisioningTemplateVersionResponse' {} a -> s {templateArn = a} :: CreateProvisioningTemplateVersionResponse) -- | The name of the provisioning template. createProvisioningTemplateVersionResponse_templateName :: Lens.Lens' CreateProvisioningTemplateVersionResponse (Prelude.Maybe Prelude.Text) createProvisioningTemplateVersionResponse_templateName = Lens.lens (\CreateProvisioningTemplateVersionResponse' {templateName} -> templateName) (\s@CreateProvisioningTemplateVersionResponse' {} a -> s {templateName = a} :: CreateProvisioningTemplateVersionResponse) -- | The version of the provisioning template. createProvisioningTemplateVersionResponse_versionId :: Lens.Lens' CreateProvisioningTemplateVersionResponse (Prelude.Maybe Prelude.Int) createProvisioningTemplateVersionResponse_versionId = Lens.lens (\CreateProvisioningTemplateVersionResponse' {versionId} -> versionId) (\s@CreateProvisioningTemplateVersionResponse' {} a -> s {versionId = a} :: CreateProvisioningTemplateVersionResponse) -- | The response's http status code. createProvisioningTemplateVersionResponse_httpStatus :: Lens.Lens' CreateProvisioningTemplateVersionResponse Prelude.Int createProvisioningTemplateVersionResponse_httpStatus = Lens.lens (\CreateProvisioningTemplateVersionResponse' {httpStatus} -> httpStatus) (\s@CreateProvisioningTemplateVersionResponse' {} a -> s {httpStatus = a} :: CreateProvisioningTemplateVersionResponse) instance Prelude.NFData CreateProvisioningTemplateVersionResponse where rnf CreateProvisioningTemplateVersionResponse' {..} = Prelude.rnf isDefaultVersion `Prelude.seq` Prelude.rnf templateArn `Prelude.seq` Prelude.rnf templateName `Prelude.seq` Prelude.rnf versionId `Prelude.seq` Prelude.rnf httpStatus