{-# 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.DescribeProvisioningTemplate -- 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. -- -- Requires permission to access the -- -- action. module Amazonka.IoT.DescribeProvisioningTemplate ( -- * Creating a Request DescribeProvisioningTemplate (..), newDescribeProvisioningTemplate, -- * Request Lenses describeProvisioningTemplate_templateName, -- * Destructuring the Response DescribeProvisioningTemplateResponse (..), newDescribeProvisioningTemplateResponse, -- * Response Lenses describeProvisioningTemplateResponse_creationDate, describeProvisioningTemplateResponse_defaultVersionId, describeProvisioningTemplateResponse_description, describeProvisioningTemplateResponse_enabled, describeProvisioningTemplateResponse_lastModifiedDate, describeProvisioningTemplateResponse_preProvisioningHook, describeProvisioningTemplateResponse_provisioningRoleArn, describeProvisioningTemplateResponse_templateArn, describeProvisioningTemplateResponse_templateBody, describeProvisioningTemplateResponse_templateName, describeProvisioningTemplateResponse_type, describeProvisioningTemplateResponse_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:/ 'newDescribeProvisioningTemplate' smart constructor. data DescribeProvisioningTemplate = DescribeProvisioningTemplate' { -- | The name of the provisioning template. templateName :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeProvisioningTemplate' 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: -- -- 'templateName', 'describeProvisioningTemplate_templateName' - The name of the provisioning template. newDescribeProvisioningTemplate :: -- | 'templateName' Prelude.Text -> DescribeProvisioningTemplate newDescribeProvisioningTemplate pTemplateName_ = DescribeProvisioningTemplate' { templateName = pTemplateName_ } -- | The name of the provisioning template. describeProvisioningTemplate_templateName :: Lens.Lens' DescribeProvisioningTemplate Prelude.Text describeProvisioningTemplate_templateName = Lens.lens (\DescribeProvisioningTemplate' {templateName} -> templateName) (\s@DescribeProvisioningTemplate' {} a -> s {templateName = a} :: DescribeProvisioningTemplate) instance Core.AWSRequest DescribeProvisioningTemplate where type AWSResponse DescribeProvisioningTemplate = DescribeProvisioningTemplateResponse request overrides = Request.get (overrides defaultService) response = Response.receiveJSON ( \s h x -> DescribeProvisioningTemplateResponse' Prelude.<$> (x Data..?> "creationDate") Prelude.<*> (x Data..?> "defaultVersionId") Prelude.<*> (x Data..?> "description") Prelude.<*> (x Data..?> "enabled") Prelude.<*> (x Data..?> "lastModifiedDate") Prelude.<*> (x Data..?> "preProvisioningHook") Prelude.<*> (x Data..?> "provisioningRoleArn") Prelude.<*> (x Data..?> "templateArn") Prelude.<*> (x Data..?> "templateBody") Prelude.<*> (x Data..?> "templateName") Prelude.<*> (x Data..?> "type") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable DescribeProvisioningTemplate where hashWithSalt _salt DescribeProvisioningTemplate' {..} = _salt `Prelude.hashWithSalt` templateName instance Prelude.NFData DescribeProvisioningTemplate where rnf DescribeProvisioningTemplate' {..} = Prelude.rnf templateName instance Data.ToHeaders DescribeProvisioningTemplate where toHeaders = Prelude.const Prelude.mempty instance Data.ToPath DescribeProvisioningTemplate where toPath DescribeProvisioningTemplate' {..} = Prelude.mconcat ["/provisioning-templates/", Data.toBS templateName] instance Data.ToQuery DescribeProvisioningTemplate where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDescribeProvisioningTemplateResponse' smart constructor. data DescribeProvisioningTemplateResponse = DescribeProvisioningTemplateResponse' { -- | The date when the provisioning template was created. creationDate :: Prelude.Maybe Data.POSIX, -- | The default fleet template version ID. defaultVersionId :: Prelude.Maybe Prelude.Int, -- | The description of the provisioning template. description :: Prelude.Maybe Prelude.Text, -- | True if the provisioning template is enabled, otherwise false. enabled :: Prelude.Maybe Prelude.Bool, -- | The date when the provisioning template was last modified. lastModifiedDate :: Prelude.Maybe Data.POSIX, -- | Gets information about a pre-provisioned hook. preProvisioningHook :: Prelude.Maybe ProvisioningHook, -- | The ARN of the role associated with the provisioning template. This IoT -- role grants permission to provision a device. provisioningRoleArn :: Prelude.Maybe Prelude.Text, -- | The ARN of the provisioning template. templateArn :: Prelude.Maybe Prelude.Text, -- | The JSON formatted contents of the provisioning template. templateBody :: Prelude.Maybe Prelude.Text, -- | The name of the provisioning template. templateName :: Prelude.Maybe Prelude.Text, -- | The type you define in a provisioning template. You can create a -- template with only one type. You can\'t change the template type after -- its creation. The default value is @FLEET_PROVISIONING@. For more -- information about provisioning template, see: -- . type' :: Prelude.Maybe TemplateType, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeProvisioningTemplateResponse' 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: -- -- 'creationDate', 'describeProvisioningTemplateResponse_creationDate' - The date when the provisioning template was created. -- -- 'defaultVersionId', 'describeProvisioningTemplateResponse_defaultVersionId' - The default fleet template version ID. -- -- 'description', 'describeProvisioningTemplateResponse_description' - The description of the provisioning template. -- -- 'enabled', 'describeProvisioningTemplateResponse_enabled' - True if the provisioning template is enabled, otherwise false. -- -- 'lastModifiedDate', 'describeProvisioningTemplateResponse_lastModifiedDate' - The date when the provisioning template was last modified. -- -- 'preProvisioningHook', 'describeProvisioningTemplateResponse_preProvisioningHook' - Gets information about a pre-provisioned hook. -- -- 'provisioningRoleArn', 'describeProvisioningTemplateResponse_provisioningRoleArn' - The ARN of the role associated with the provisioning template. This IoT -- role grants permission to provision a device. -- -- 'templateArn', 'describeProvisioningTemplateResponse_templateArn' - The ARN of the provisioning template. -- -- 'templateBody', 'describeProvisioningTemplateResponse_templateBody' - The JSON formatted contents of the provisioning template. -- -- 'templateName', 'describeProvisioningTemplateResponse_templateName' - The name of the provisioning template. -- -- 'type'', 'describeProvisioningTemplateResponse_type' - The type you define in a provisioning template. You can create a -- template with only one type. You can\'t change the template type after -- its creation. The default value is @FLEET_PROVISIONING@. For more -- information about provisioning template, see: -- . -- -- 'httpStatus', 'describeProvisioningTemplateResponse_httpStatus' - The response's http status code. newDescribeProvisioningTemplateResponse :: -- | 'httpStatus' Prelude.Int -> DescribeProvisioningTemplateResponse newDescribeProvisioningTemplateResponse pHttpStatus_ = DescribeProvisioningTemplateResponse' { creationDate = Prelude.Nothing, defaultVersionId = Prelude.Nothing, description = Prelude.Nothing, enabled = Prelude.Nothing, lastModifiedDate = Prelude.Nothing, preProvisioningHook = Prelude.Nothing, provisioningRoleArn = Prelude.Nothing, templateArn = Prelude.Nothing, templateBody = Prelude.Nothing, templateName = Prelude.Nothing, type' = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The date when the provisioning template was created. describeProvisioningTemplateResponse_creationDate :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe Prelude.UTCTime) describeProvisioningTemplateResponse_creationDate = Lens.lens (\DescribeProvisioningTemplateResponse' {creationDate} -> creationDate) (\s@DescribeProvisioningTemplateResponse' {} a -> s {creationDate = a} :: DescribeProvisioningTemplateResponse) Prelude.. Lens.mapping Data._Time -- | The default fleet template version ID. describeProvisioningTemplateResponse_defaultVersionId :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe Prelude.Int) describeProvisioningTemplateResponse_defaultVersionId = Lens.lens (\DescribeProvisioningTemplateResponse' {defaultVersionId} -> defaultVersionId) (\s@DescribeProvisioningTemplateResponse' {} a -> s {defaultVersionId = a} :: DescribeProvisioningTemplateResponse) -- | The description of the provisioning template. describeProvisioningTemplateResponse_description :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe Prelude.Text) describeProvisioningTemplateResponse_description = Lens.lens (\DescribeProvisioningTemplateResponse' {description} -> description) (\s@DescribeProvisioningTemplateResponse' {} a -> s {description = a} :: DescribeProvisioningTemplateResponse) -- | True if the provisioning template is enabled, otherwise false. describeProvisioningTemplateResponse_enabled :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe Prelude.Bool) describeProvisioningTemplateResponse_enabled = Lens.lens (\DescribeProvisioningTemplateResponse' {enabled} -> enabled) (\s@DescribeProvisioningTemplateResponse' {} a -> s {enabled = a} :: DescribeProvisioningTemplateResponse) -- | The date when the provisioning template was last modified. describeProvisioningTemplateResponse_lastModifiedDate :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe Prelude.UTCTime) describeProvisioningTemplateResponse_lastModifiedDate = Lens.lens (\DescribeProvisioningTemplateResponse' {lastModifiedDate} -> lastModifiedDate) (\s@DescribeProvisioningTemplateResponse' {} a -> s {lastModifiedDate = a} :: DescribeProvisioningTemplateResponse) Prelude.. Lens.mapping Data._Time -- | Gets information about a pre-provisioned hook. describeProvisioningTemplateResponse_preProvisioningHook :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe ProvisioningHook) describeProvisioningTemplateResponse_preProvisioningHook = Lens.lens (\DescribeProvisioningTemplateResponse' {preProvisioningHook} -> preProvisioningHook) (\s@DescribeProvisioningTemplateResponse' {} a -> s {preProvisioningHook = a} :: DescribeProvisioningTemplateResponse) -- | The ARN of the role associated with the provisioning template. This IoT -- role grants permission to provision a device. describeProvisioningTemplateResponse_provisioningRoleArn :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe Prelude.Text) describeProvisioningTemplateResponse_provisioningRoleArn = Lens.lens (\DescribeProvisioningTemplateResponse' {provisioningRoleArn} -> provisioningRoleArn) (\s@DescribeProvisioningTemplateResponse' {} a -> s {provisioningRoleArn = a} :: DescribeProvisioningTemplateResponse) -- | The ARN of the provisioning template. describeProvisioningTemplateResponse_templateArn :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe Prelude.Text) describeProvisioningTemplateResponse_templateArn = Lens.lens (\DescribeProvisioningTemplateResponse' {templateArn} -> templateArn) (\s@DescribeProvisioningTemplateResponse' {} a -> s {templateArn = a} :: DescribeProvisioningTemplateResponse) -- | The JSON formatted contents of the provisioning template. describeProvisioningTemplateResponse_templateBody :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe Prelude.Text) describeProvisioningTemplateResponse_templateBody = Lens.lens (\DescribeProvisioningTemplateResponse' {templateBody} -> templateBody) (\s@DescribeProvisioningTemplateResponse' {} a -> s {templateBody = a} :: DescribeProvisioningTemplateResponse) -- | The name of the provisioning template. describeProvisioningTemplateResponse_templateName :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe Prelude.Text) describeProvisioningTemplateResponse_templateName = Lens.lens (\DescribeProvisioningTemplateResponse' {templateName} -> templateName) (\s@DescribeProvisioningTemplateResponse' {} a -> s {templateName = a} :: DescribeProvisioningTemplateResponse) -- | The type you define in a provisioning template. You can create a -- template with only one type. You can\'t change the template type after -- its creation. The default value is @FLEET_PROVISIONING@. For more -- information about provisioning template, see: -- . describeProvisioningTemplateResponse_type :: Lens.Lens' DescribeProvisioningTemplateResponse (Prelude.Maybe TemplateType) describeProvisioningTemplateResponse_type = Lens.lens (\DescribeProvisioningTemplateResponse' {type'} -> type') (\s@DescribeProvisioningTemplateResponse' {} a -> s {type' = a} :: DescribeProvisioningTemplateResponse) -- | The response's http status code. describeProvisioningTemplateResponse_httpStatus :: Lens.Lens' DescribeProvisioningTemplateResponse Prelude.Int describeProvisioningTemplateResponse_httpStatus = Lens.lens (\DescribeProvisioningTemplateResponse' {httpStatus} -> httpStatus) (\s@DescribeProvisioningTemplateResponse' {} a -> s {httpStatus = a} :: DescribeProvisioningTemplateResponse) instance Prelude.NFData DescribeProvisioningTemplateResponse where rnf DescribeProvisioningTemplateResponse' {..} = Prelude.rnf creationDate `Prelude.seq` Prelude.rnf defaultVersionId `Prelude.seq` Prelude.rnf description `Prelude.seq` Prelude.rnf enabled `Prelude.seq` Prelude.rnf lastModifiedDate `Prelude.seq` Prelude.rnf preProvisioningHook `Prelude.seq` Prelude.rnf provisioningRoleArn `Prelude.seq` Prelude.rnf templateArn `Prelude.seq` Prelude.rnf templateBody `Prelude.seq` Prelude.rnf templateName `Prelude.seq` Prelude.rnf type' `Prelude.seq` Prelude.rnf httpStatus