Amazon IoT Core · Schema
Amazon IoT Core Thing Definition
Schema defining the structure of an Amazon IoT Core thing resource, including attributes, thing type, thing group membership, certificates, and shadow state.
Device ManagementIoTMQTTMessage Routing
Properties
| Name | Type | Description |
|---|---|---|
| thingName | string | The name of the thing. |
| thingId | string | The unique identifier of the thing. |
| thingArn | string | The ARN of the thing. |
| thingTypeName | string | The name of the thing type, if assigned. |
| attributes | object | A list of thing attributes as name-value pairs. |
| version | integer | The current version of the thing record. |
| billingGroupName | string | The name of the billing group the thing belongs to. |
| defaultClientId | string | The default MQTT client ID. |
| shadow | object | |
| certificates | array | Certificates attached to the thing. |
| policies | array | Policies attached to the thing's certificates. |
| thingGroups | array | The thing groups the thing belongs to. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.apievangelist.com/amazon-iot-core/thing-definition",
"title": "Amazon IoT Core Thing Definition",
"description": "Schema defining the structure of an Amazon IoT Core thing resource, including attributes, thing type, thing group membership, certificates, and shadow state.",
"type": "object",
"required": [
"thingName"
],
"properties": {
"thingName": {
"type": "string",
"description": "The name of the thing.",
"minLength": 1,
"maxLength": 128,
"pattern": "^[a-zA-Z0-9:_-]+$"
},
"thingId": {
"type": "string",
"description": "The unique identifier of the thing."
},
"thingArn": {
"type": "string",
"description": "The ARN of the thing."
},
"thingTypeName": {
"type": "string",
"description": "The name of the thing type, if assigned."
},
"attributes": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A list of thing attributes as name-value pairs."
},
"version": {
"type": "integer",
"description": "The current version of the thing record."
},
"billingGroupName": {
"type": "string",
"description": "The name of the billing group the thing belongs to."
},
"defaultClientId": {
"type": "string",
"description": "The default MQTT client ID."
},
"shadow": {
"$ref": "#/$defs/Shadow"
},
"certificates": {
"type": "array",
"items": {
"$ref": "#/$defs/Certificate"
},
"description": "Certificates attached to the thing."
},
"policies": {
"type": "array",
"items": {
"$ref": "#/$defs/Policy"
},
"description": "Policies attached to the thing's certificates."
},
"thingGroups": {
"type": "array",
"items": {
"type": "string"
},
"description": "The thing groups the thing belongs to."
}
},
"$defs": {
"Shadow": {
"type": "object",
"description": "The device shadow state for the thing.",
"properties": {
"state": {
"type": "object",
"properties": {
"desired": {
"type": "object",
"additionalProperties": true,
"description": "The desired state of the thing."
},
"reported": {
"type": "object",
"additionalProperties": true,
"description": "The reported state of the thing."
},
"delta": {
"type": "object",
"additionalProperties": true,
"description": "The difference between desired and reported state."
}
}
},
"metadata": {
"type": "object",
"description": "Metadata about the shadow state."
},
"version": {
"type": "integer",
"description": "The shadow version."
},
"timestamp": {
"type": "integer",
"description": "The shadow timestamp."
}
}
},
"Certificate": {
"type": "object",
"description": "An X.509 certificate for device authentication.",
"properties": {
"certificateId": {
"type": "string",
"description": "The unique identifier of the certificate."
},
"certificateArn": {
"type": "string",
"description": "The ARN of the certificate."
},
"status": {
"type": "string",
"enum": [
"ACTIVE",
"INACTIVE",
"REVOKED",
"PENDING_TRANSFER",
"REGISTER_INACTIVE",
"PENDING_ACTIVATION"
],
"description": "The status of the certificate."
},
"creationDate": {
"type": "string",
"format": "date-time",
"description": "The date the certificate was created."
}
}
},
"Policy": {
"type": "object",
"description": "An IoT policy that defines allowed operations.",
"properties": {
"policyName": {
"type": "string",
"description": "The name of the policy."
},
"policyArn": {
"type": "string",
"description": "The ARN of the policy."
},
"policyDocument": {
"type": "string",
"description": "The JSON document that describes the policy."
},
"defaultVersionId": {
"type": "string",
"description": "The default version of the policy."
}
}
}
}
}