Provisioning Template
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());
}
}
Content copied to clipboard
Import
IoT fleet provisioning templates can be imported using the name
, e.g.
$ pulumi import aws:iot/provisioningTemplate:ProvisioningTemplate fleet FleetProvisioningTemplate
Content copied to clipboard
Properties
Link copied to clipboard
The default version of the fleet provisioning template.
Link copied to clipboard
The description of the fleet provisioning template.
Link copied to clipboard
Creates a pre-provisioning hook template. Details below.
Link copied to clipboard
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
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
The JSON formatted contents of the fleet provisioning template.