[ aws . iot ]

create-provisioning-template

Description

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.

Synopsis

  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>]

Options

--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.

Examples

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.

Output

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.