Package com.pulumi.aws.iot
Class ProvisioningTemplate
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.iot.ProvisioningTemplate
-
public class ProvisioningTemplate extends com.pulumi.resources.CustomResourceManages an IoT fleet provisioning template. For more info, see the AWS documentation on [fleet provisioning](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html). ## Example Usage
## Import Using `pulumi import`, import IoT fleet provisioning templates using the `name`. For example: ```sh $ pulumi import aws:iot/provisioningTemplate:ProvisioningTemplate fleet FleetProvisioningTemplate ```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.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; 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.ArrayList; import java.util.Arrays; 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() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("iot.amazonaws.com") .build()) .actions("sts:AssumeRole") .build()) .build()); var iotFleetProvisioning = new Role("iotFleetProvisioning", RoleArgs.builder() .name("IoTProvisioningServiceRole") .path("/service-role/") .assumeRolePolicy(iotAssumeRolePolicy.json()) .build()); var iotFleetProvisioningRegistration = new RolePolicyAttachment("iotFleetProvisioningRegistration", RolePolicyAttachmentArgs.builder() .role(iotFleetProvisioning.name()) .policyArn("arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration") .build()); final var devicePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .actions("iot:Subscribe") .resources("*") .build()) .build()); var devicePolicyPolicy = new Policy("devicePolicyPolicy", PolicyArgs.builder() .name("DevicePolicy") .policy(devicePolicy.json()) .build()); var fleet = new ProvisioningTemplate("fleet", ProvisioningTemplateArgs.builder() .name("FleetTemplate") .description("My provisioning template") .provisioningRoleArn(iotFleetProvisioning.arn()) .enabled(true) .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()); } }
-
-
Constructor Summary
Constructors Constructor Description ProvisioningTemplate(java.lang.String name)ProvisioningTemplate(java.lang.String name, ProvisioningTemplateArgs args)ProvisioningTemplate(java.lang.String name, ProvisioningTemplateArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.lang.Integer>defaultVersionId()com.pulumi.core.Output<java.util.Optional<java.lang.String>>description()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>enabled()static ProvisioningTemplateget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ProvisioningTemplateState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.util.Optional<ProvisioningTemplatePreProvisioningHook>>preProvisioningHook()com.pulumi.core.Output<java.lang.String>provisioningRoleArn()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()com.pulumi.core.Output<java.lang.String>templateBody()com.pulumi.core.Output<java.lang.String>type()
-
-
-
Constructor Detail
-
ProvisioningTemplate
public ProvisioningTemplate(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
ProvisioningTemplate
public ProvisioningTemplate(java.lang.String name, ProvisioningTemplateArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
ProvisioningTemplate
public ProvisioningTemplate(java.lang.String name, ProvisioningTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- The ARN that identifies the provisioning template.
-
defaultVersionId
public com.pulumi.core.Output<java.lang.Integer> defaultVersionId()
- Returns:
- The default version of the fleet provisioning template.
-
description
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
- Returns:
- The description of the fleet provisioning template.
-
enabled
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enabled()
- Returns:
- True to enable the fleet provisioning template, otherwise false.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- The name of the fleet provisioning template.
-
preProvisioningHook
public com.pulumi.core.Output<java.util.Optional<ProvisioningTemplatePreProvisioningHook>> preProvisioningHook()
- Returns:
- Creates a pre-provisioning hook template. Details below.
-
provisioningRoleArn
public com.pulumi.core.Output<java.lang.String> provisioningRoleArn()
- Returns:
- The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
templateBody
public com.pulumi.core.Output<java.lang.String> templateBody()
- Returns:
- The JSON formatted contents of the fleet provisioning template.
-
type
public com.pulumi.core.Output<java.lang.String> type()
- Returns:
- The type you define in a provisioning template.
-
get
public static ProvisioningTemplate get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable ProvisioningTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-