Creates a fleet provisioning template.
Requires permission to access the CreateProvisioningTemplate action.
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
create-provisioning-template
--template-name <value>
[--description <value>]
--template-body <value>
[--enabled | --no-enabled]
--provisioning-role-arn <value>
[--pre-provisioning-hook <value>]
[--tags <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--template-name
(string)
The name of the fleet provisioning template.
--description
(string)
The description of the fleet provisioning template.
--template-body
(string)
The JSON formatted contents of the fleet provisioning template.
--enabled
| --no-enabled
(boolean)
True to enable the fleet provisioning template, otherwise false.
--provisioning-role-arn
(string)
The role ARN for the role associated with the fleet provisioning template. This IoT role grants permission to provision a device.
--pre-provisioning-hook
(structure)
Creates a pre-provisioning hook template.
payloadVersion -> (string)
The payload that was sent to the target function.
Note: Only Lambda functions are currently supported.
targetArn -> (string)
The ARN of the target function.
Note: Only Lambda functions are currently supported.
Shorthand Syntax:
payloadVersion=string,targetArn=string
JSON Syntax:
{
"payloadVersion": "string",
"targetArn": "string"
}
--tags
(list)
Metadata which can be used to manage the fleet provisioning template.
Note
For URI Request parameters use format: …key1=value1&key2=value2…
For the CLI command-line parameter use format: &&tags “key1=value1&key2=value2…”
For the cli-input-json file use format: “tags”: “key1=value1&key2=value2…”
(structure)
A set of key/value pairs that are used to manage the resource.
Key -> (string)
The tag’s key.
Value -> (string)
The tag’s value.
Shorthand Syntax:
Key=string,Value=string ...
JSON Syntax:
[
{
"Key": "string",
"Value": "string"
}
...
]
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
See ‘aws help’ for descriptions of global parameters.
To create a provisioning template
The following create-provisioning-template
example creates a provisioning template as defined by the file template.json
.
aws iot create-provisioning-template \
--template-name widget-template \
--description "A provisioning template for widgets" \
--provisioning-role-arn arn:aws:iam::123456789012:role/Provision_role \
--template-body file://template.json
Contents of template.json
:
{
"Parameters" : {
"DeviceLocation": {
"Type": "String"
}
},
"Mappings": {
"LocationTable": {
"Seattle": {
"LocationUrl": "https://example.aws"
}
}
},
"Resources" : {
"thing" : {
"Type" : "AWS::IoT::Thing",
"Properties" : {
"AttributePayload" : {
"version" : "v1",
"serialNumber" : "serialNumber"
},
"ThingName" : {"Fn::Join":["",["ThingPrefix_",{"Ref":"SerialNumber"}]]},
"ThingTypeName" : {"Fn::Join":["",["ThingTypePrefix_",{"Ref":"SerialNumber"}]]},
"ThingGroups" : ["widgets", "WA"],
"BillingGroup": "BillingGroup"
},
"OverrideSettings" : {
"AttributePayload" : "MERGE",
"ThingTypeName" : "REPLACE",
"ThingGroups" : "DO_NOTHING"
}
},
"certificate" : {
"Type" : "AWS::IoT::Certificate",
"Properties" : {
"CertificateId": {"Ref": "AWS::IoT::Certificate::Id"},
"Status" : "Active"
}
},
"policy" : {
"Type" : "AWS::IoT::Policy",
"Properties" : {
"PolicyDocument" : {
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action":["iot:Publish"],
"Resource": ["arn:aws:iot:us-east-1:504350838278:topic/foo/bar"]
}]
}
}
}
},
"DeviceConfiguration": {
"FallbackUrl": "https://www.example.com/test-site",
"LocationUrl": {
"Fn::FindInMap": ["LocationTable",{"Ref": "DeviceLocation"}, "LocationUrl"]}
}
}
}
Output:
{
"templateArn": "arn:aws:iot:us-east-1:123456789012:provisioningtemplate/widget-template",
"templateName": "widget-template",
"defaultVersionId": 1
}
For more information, see AWS IoT Secure Tunneling in the AWS IoT Core Developer Guide.
templateArn -> (string)
The ARN that identifies the provisioning template.
templateName -> (string)
The name of the fleet provisioning template.
defaultVersionId -> (integer)
The default version of the fleet provisioning template.