Twin Class
The state information for a device or module. This is implicitly created and deleted when the corresponding device/ module identity is created or deleted in the IoT Hub.
Constructor
Twin(*, device_id: str = None, module_id: str = None, tags=None, properties=None, etag: str = None, version: int = None, device_etag: str = None, status=None, status_reason: str = None, status_update_time=None, connection_state=None, last_activity_time=None, cloud_to_device_message_count: int = None, authentication_type=None, x509_thumbprint=None, capabilities=None, device_scope: str = None, parent_scopes=None, **kwargs)Parameters
| Name | Description | 
|---|---|
| device_id 
				Required
			 | The unique identifier of the device in the identity registry of the IoT Hub. It is a case-sensitive string (up to 128 char long) of ASCII 7-bit alphanumeric chars, and the following special characters {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''}. | 
| module_id 
				Required
			 | The unique identifier of the module in the identity registry of the IoT Hub. It is a case-sensitive string (up to 128 char long) of ASCII 7-bit alphanumeric chars, and the following special characters {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''}. | 
| tags 
				Required
			 | The collection of key-value pairs read and written by the solution back end. They are not visible to device apps. They keys are UTF-8 encoded, case-sensitive and up-to 1KB in length. Allowed characters exclude UNICODE control characters (segments C0 and C1), '.', '$' and space. The values are JSON objects, up-to 4KB in length. | 
| properties 
				Required
			 | The desired and reported properties of the twin. | 
| etag 
				Required
			 | The string representing a ETag for the device twin, as per RFC7232. | 
| version 
				Required
			 | 
				<xref:long>
		 The version for the device twin including tags and desired properties | 
| device_etag 
				Required
			 | The string representing a ETag for the device, as per RFC7232. | 
| status 
				Required
			 | 
				str or 
				<xref:protocol.models.enum>
		 The enabled status of the device. If disabled, the device cannot connect to the service. Possible values include: 'enabled', 'disabled' | 
| status_reason 
				Required
			 | The reason for the current status of the device, if any. | 
| status_update_time 
				Required
			 | The date and time when the status of the device was last updated. | 
| connection_state 
				Required
			 | 
				str or 
				<xref:protocol.models.enum>
		 The connection state of the device. Possible values include: 'Disconnected', 'Connected' | 
| last_activity_time 
				Required
			 | The date and time when the device last connected or received or sent a message. The date and time is sepecified in ISO8601 datetime format in UTC, for example, 2015-01-28T16:24:48.789Z. This value is not updated if the device uses the HTTP/1 protocol to perform messaging operations. | 
| cloud_to_device_message_count 
				Required
			 | The number of cloud-to-device messages sent. | 
| authentication_type 
				Required
			 | 
				str or 
				<xref:protocol.models.enum>
		 The authentication type used by the device. Possible values include: 'sas', 'selfSigned', 'certificateAuthority', 'none' | 
| x509_thumbprint 
				Required
			 | The X509 thumbprint of the device. | 
| capabilities 
				Required
			 |  | 
| device_scope 
				Required
			 | The scope of the device. | 
| parent_scopes 
				Required
			 | The scopes of the upper level edge devices if applicable. Only available for edge devices. | 
Keyword-Only Parameters
| Name | Description | 
|---|---|
| device_id | Default value: None | 
| module_id | Default value: None | 
| tags | Default value: None | 
| properties | Default value: None | 
| etag | Default value: None | 
| version | Default value: None | 
| device_etag | Default value: None | 
| status | Default value: None | 
| status_reason | Default value: None | 
| status_update_time | Default value: None | 
| connection_state | Default value: None | 
| last_activity_time | Default value: None | 
| cloud_to_device_message_count | Default value: None | 
| authentication_type | Default value: None | 
| x509_thumbprint | Default value: None | 
| capabilities | Default value: None | 
| device_scope | Default value: None | 
| parent_scopes | Default value: None | 
Methods
| as_dict | Return a dict that can be JSONify using json.dump. Advanced usage might optionally use a callback as parameter: Key is the attribute name used in Python. Attr_desc is a dict of metadata. Currently contains 'type' with the msrest type and 'key' with the RestAPI encoded key. Value is the current value in this object. The string returned will be used to serialize the key. If the return type is a list, this is considered hierarchical result dict. See the three examples in this file: 
 If you want XML serialization, you can pass the kwargs is_xml=True. | 
| deserialize | Parse a str using the RestAPI syntax and return a model. | 
| enable_additional_properties_sending | |
| from_dict | Parse a dict using given key extractor return a model. By default consider key extractors (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor and last_rest_key_case_insensitive_extractor) | 
| is_xml_model | |
| serialize | Return the JSON that would be sent to azure from this model. This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False). If you want XML serialization, you can pass the kwargs is_xml=True. | 
| validate | Validate this model recursively and return a list of ValidationError. | 
as_dict
Return a dict that can be JSONify using json.dump.
Advanced usage might optionally use a callback as parameter:
Key is the attribute name used in Python. Attr_desc is a dict of metadata. Currently contains 'type' with the msrest type and 'key' with the RestAPI encoded key. Value is the current value in this object.
The string returned will be used to serialize the key. If the return type is a list, this is considered hierarchical result dict.
See the three examples in this file:
- attribute_transformer 
- full_restapi_key_transformer 
- last_restapi_key_transformer 
If you want XML serialization, you can pass the kwargs is_xml=True.
as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)Parameters
| Name | Description | 
|---|---|
| key_transformer | 
				<xref:function>
		 A key transformer function. | 
| keep_readonly | Default value: True | 
Returns
| Type | Description | 
|---|---|
| A dict JSON compatible object | 
deserialize
Parse a str using the RestAPI syntax and return a model.
deserialize(data, content_type=None)Parameters
| Name | Description | 
|---|---|
| data 
				Required
			 | A str using RestAPI structure. JSON by default. | 
| content_type | JSON by default, set application/xml if XML. Default value: None | 
Returns
| Type | Description | 
|---|---|
| An instance of this model | 
Exceptions
| Type | Description | 
|---|---|
| 
							   DeserializationError if something went wrong 
						 | 
enable_additional_properties_sending
enable_additional_properties_sending()from_dict
Parse a dict using given key extractor return a model.
By default consider key extractors (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor and last_rest_key_case_insensitive_extractor)
from_dict(data, key_extractors=None, content_type=None)Parameters
| Name | Description | 
|---|---|
| data 
				Required
			 | A dict using RestAPI structure | 
| content_type | JSON by default, set application/xml if XML. Default value: None | 
| key_extractors | Default value: None | 
Returns
| Type | Description | 
|---|---|
| An instance of this model | 
Exceptions
| Type | Description | 
|---|---|
| 
							   DeserializationError if something went wrong 
						 | 
is_xml_model
is_xml_model()serialize
Return the JSON that would be sent to azure from this model.
This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False).
If you want XML serialization, you can pass the kwargs is_xml=True.
serialize(keep_readonly=False, **kwargs)Parameters
| Name | Description | 
|---|---|
| keep_readonly | If you want to serialize the readonly attributes Default value: False | 
Returns
| Type | Description | 
|---|---|
| A dict JSON compatible object | 
validate
Validate this model recursively and return a list of ValidationError.
validate()Returns
| Type | Description | 
|---|---|
| A list of validation error |