AWS CloudFormation
User Guide (API Version 2010-05-15)

AWS::Greengrass::DeviceDefinition

The AWS::Greengrass::DeviceDefinition resource represents a device definition for AWS IoT Greengrass. Device definitions are used to organize your device definition versions.

Device definitions can reference multiple device definition versions.

A device definition hierarchy with associated device definition versions and devices.

All device definition versions must be associated with a device definition. Each device definition version can contain one or more devices.

Note

When you create a device definition, you can optionally include an initial device definition version. To associate a device definition version later, create an AWS::Greengrass::DeviceDefinitionVersion resource and specify the ID of this device definition.

After you create the device definition version that contains the devices you want to deploy, you must add it to your group version. For more information, see AWS::Greengrass::Group.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::Greengrass::DeviceDefinition", "Properties" : { "InitialVersion" : DeviceDefinitionVersion, "Name" : String } }

YAML

Type: "AWS::Greengrass::DeviceDefinition" Properties: InitialVersion: DeviceDefinitionVersion Name: String

Properties

InitialVersion

The device definition version to include when the device definition is created. A device definition version contains a list of device property types.

Note

To associate a device definition version after the device definition is created, create an AWS::Greengrass::DeviceDefinitionVersion resource and specify the ID of this device definition.

Required: No

Type: DeviceDefinitionVersion

Update requires: Replacement

Name

The name of the device definition.

Required: Yes

Type: String

Update requires: No interruption

Return Values

Ref

When you pass the logical ID of an AWS::Greengrass::DeviceDefinition resource to the intrinsic Ref function, the function returns the ID of the device definition, such as 1234a5b6-78cd-901e-2fgh-3i45j6k178l9.

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

LatestVersionArn

The Amazon Resource Name (ARN) of the last DeviceDefinitionVersion that was added to the DeviceDefinition, such as arn:aws:greengrass:us-east-1:123456789012:/greengrass/definition/devices/1234a5b6-78cd-901e-2fgh-3i45j6k178l9/versions/9876ac30-4bdb-4f9d-95af-b5fdb66be1a2.

Id

The ID of the DeviceDefinition, such as 1234a5b6-78cd-901e-2fgh-3i45j6k178l9.

Arn

The ARN of the DeviceDefinition, such as arn:aws:greengrass:us-east-1:123456789012:/greengrass/definition/devices/1234a5b6-78cd-901e-2fgh-3i45j6k178l9.

Name

The name of the DeviceDefinition, such as MyDeviceDefinition.

For more information about using Fn::GetAtt, see Fn::GetAtt.

Examples

Device Definition Snippet

The following snippet defines a device definition resource with an initial version that contains a device. This example points to a manually generated device certificate.

For an example of a complete template, see the Group resource.

JSON

"TestDeviceDefinition": { "Type": "AWS::Greengrass::DeviceDefinition", "Properties": { "Name": "DemoTestDeviceDefinition", "InitialVersion": { "Devices": [ { "Id": "TestDevice1", "ThingArn": { "Fn::Join": [ ":", [ "arn:aws:iot", { "Ref": "AWS::Region" }, { "Ref": "AWS::AccountId" }, "thing/TestDevice1" ] ] }, "CertificateArn": { "Fn::Join": [ ":", [ "arn:aws:iot", { "Ref": "AWS::Region" }, { "Ref": "AWS::AccountId" }, "cert/4db8b7f58d95b7fdb45c38c28a0b1adf6c5f8c03e902de65734935fea83e751f" ] ] }, "SyncShadow": "true" } ] } } }

YAML

TestDeviceDefinition: Type: 'AWS::Greengrass::DeviceDefinition' Properties: Name: DemoTestDeviceDefinition InitialVersion: Devices: - Id: TestDevice1 ThingArn: !Join - ':' - - 'arn:aws:iot' - !Ref 'AWS::Region' - !Ref 'AWS::AccountId' - thing/TestDevice1 CertificateArn: !Join - ':' - - 'arn:aws:iot' - !Ref 'AWS::Region' - !Ref 'AWS::AccountId' - >- cert/4db8b7f58d95b7fdb45c38c28a0b1adf6c5f8c03e902de65734935fea83e751f SyncShadow: 'true'

See Also