ProvisioningTemplateArgs

data class ProvisioningTemplateArgs(val description: Output<String>? = null, val enabled: Output<Boolean>? = null, val name: Output<String>? = null, val preProvisioningHook: Output<ProvisioningTemplatePreProvisioningHookArgs>? = null, val provisioningRoleArn: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val templateBody: Output<String>? = null) : ConvertibleToJava<ProvisioningTemplateArgs>

Manages an IoT fleet provisioning template. For more info, see the AWS documentation on fleet provisioning.

Example Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.iam.IamFunctions;
import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
import com.pulumi.aws.iam.Role;
import com.pulumi.aws.iam.RoleArgs;
import com.pulumi.aws.iam.RolePolicyAttachment;
import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
import com.pulumi.aws.iot.Policy;
import com.pulumi.aws.iot.PolicyArgs;
import com.pulumi.aws.iot.ProvisioningTemplate;
import com.pulumi.aws.iot.ProvisioningTemplateArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var iotAssumeRolePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.actions("sts:AssumeRole")
.principals(GetPolicyDocumentStatementPrincipalArgs.builder()
.type("Service")
.identifiers("iot.amazonaws.com")
.build())
.build())
.build());
var iotFleetProvisioning = new Role("iotFleetProvisioning", RoleArgs.builder()
.path("/service-role/")
.assumeRolePolicy(iotAssumeRolePolicy.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
var iotFleetProvisioningRegistration = new RolePolicyAttachment("iotFleetProvisioningRegistration", RolePolicyAttachmentArgs.builder()
.role(iotFleetProvisioning.name())
.policyArn("arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration")
.build());
final var devicePolicyPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
.statements(GetPolicyDocumentStatementArgs.builder()
.actions("iot:Subscribe")
.resources("*")
.build())
.build());
var devicePolicyPolicy = new Policy("devicePolicyPolicy", PolicyArgs.builder()
.policy(devicePolicyPolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
var fleet = new ProvisioningTemplate("fleet", ProvisioningTemplateArgs.builder()
.description("My provisioning template")
.provisioningRoleArn(iotFleetProvisioning.arn())
.templateBody(devicePolicyPolicy.name().applyValue(name -> serializeJson(
jsonObject(
jsonProperty("Parameters", jsonObject(
jsonProperty("SerialNumber", jsonObject(
jsonProperty("Type", "String")
))
)),
jsonProperty("Resources", jsonObject(
jsonProperty("certificate", jsonObject(
jsonProperty("Properties", jsonObject(
jsonProperty("CertificateId", jsonObject(
jsonProperty("Ref", "AWS::IoT::Certificate::Id")
)),
jsonProperty("Status", "Active")
)),
jsonProperty("Type", "AWS::IoT::Certificate")
)),
jsonProperty("policy", jsonObject(
jsonProperty("Properties", jsonObject(
jsonProperty("PolicyName", name)
)),
jsonProperty("Type", "AWS::IoT::Policy")
))
))
))))
.build());
}
}

Import

IoT fleet provisioning templates can be imported using the name, e.g.

$ pulumi import aws:iot/provisioningTemplate:ProvisioningTemplate fleet FleetProvisioningTemplate

Constructors

Link copied to clipboard
constructor(description: Output<String>? = null, enabled: Output<Boolean>? = null, name: Output<String>? = null, preProvisioningHook: Output<ProvisioningTemplatePreProvisioningHookArgs>? = null, provisioningRoleArn: Output<String>? = null, tags: Output<Map<String, String>>? = null, templateBody: Output<String>? = null)

Properties

Link copied to clipboard
val description: Output<String>? = null

The description of the fleet provisioning template.

Link copied to clipboard
val enabled: Output<Boolean>? = null

True to enable the fleet provisioning template, otherwise false.

Link copied to clipboard
val name: Output<String>? = null

The name of the fleet provisioning template.

Link copied to clipboard

Creates a pre-provisioning hook template. Details below.

Link copied to clipboard
val provisioningRoleArn: Output<String>? = null

The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Link copied to clipboard
val templateBody: Output<String>? = null

The JSON formatted contents of the fleet provisioning template.

Functions

Link copied to clipboard
open override fun toJava(): ProvisioningTemplateArgs