There is a command group 'az_iot_device'. This group of commands could 'leverage device simulation and other device centric operations such as device to cloud or cloud to device messaging capabilities'. The group of commands has global parameter '--debug' which means 'Increase logging verbosity to show all debug logs.'. The group of commands has global parameter '--help -h' which means 'Show this help message and exit.'. The group of commands has global parameter '--only-show-errors' which means 'Only show errors, suppressing warnings.'. The group of commands has global parameter '--output -o' which means 'Output format.'. The group of commands has global parameter '--query' which means 'JMESPath query string. See <a href="http://jmespath.org/">http://jmespath.org/</a> for more information and examples.'. The group of commands has global parameter '--subscription' which means 'Name or ID of subscription. You can configure the default subscription using `az account set -s NAME_OR_ID`.'. The group of commands has global parameter '--verbose' which means 'Increase logging verbosity. Use --debug for full debug logs.'. This group contains a child command 'az_iot_device_simulate'.The syntax is: az iot device simulate --device-id
                       [--certificate-file-path]
                       [--da]
                       [--dtmi]
                       [--hub-name]
                       [--init-reported-properties]
                       [--key]
                       [--key-file-path]
                       [--login]
                       [--mc]
                       [--method-response-code]
                       [--method-response-payload]
                       [--mi]
                       [--pass]
                       [--properties]
                       [--proto {http, mqtt}]
                       [--receive-settle {abandon, complete, reject}]
                       [--resource-group]. The 1th example of the child command would be to use it to 'basic usage  mqtt', the syntax is: az iot device simulate -n {iothub_name} -d {device_id}. The 2th example of the child command would be to use it to 'basic usage for device registering the model id of  dtmi com example thermostat 1  upon connection  mqtt', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --model-id 'dtmi:com:example:Thermostat;1'. The 3th example of the child command would be to use it to 'basic usage for device with x509 authentication  mqtt', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --cp {certificate_file_path} --kp {key_file_path}. The 4th example of the child command would be to use it to 'basic usage for device with x509 authentication  mqtt  in which the key file has a passphrase', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --cp {certificate_file_path} --kp {key_file_path} --pass {passphrase}. The 5th example of the child command would be to use it to 'send mixed properties  mqtt', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --properties "myprop=myvalue;$.ct=application/json". The 6th example of the child command would be to use it to 'send direct method response status code and direct method response payload as raw json  mqtt only', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --method-response-code 201 --method-response-payload '{"result":"Direct method successful"}'. The 7th example of the child command would be to use it to 'send direct method response status code and direct method response payload as path to local file  mqtt only', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --method-response-code 201 --method-response-payload '../my_direct_method_payload.json'. The 8th example of the child command would be to use it to 'send the initial state of device twin reported properties as raw json for the target device  mqtt only', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --init-reported-properties '{"reported_prop_1":"val_1", "reported_prop_2":val_2}'. The 9th example of the child command would be to use it to 'send the initial state of device twin reported properties as path to local file for the target device  mqtt only', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --init-reported-properties '../my_device_twin_reported_properties.json'. The 10th example of the child command would be to use it to 'basic usage  http', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --protocol http. The 11th example of the child command would be to use it to 'send mixed properties  http', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --protocol http --properties "iothub-app-myprop=myvalue;content-type=application/json;iothub-correlationid=12345". The 12th example of the child command would be to use it to 'choose total message count and interval between messages', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --msg-count 1000 --msg-interval 5. The 13th example of the child command would be to use it to 'reject c2d messages  http only', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --rs reject --protocol http. The 14th example of the child command would be to use it to 'abandon c2d messages  http only', the syntax is: az iot device simulate -n {iothub_name} -d {device_id} --rs abandon --protocol http. The parameter '--device-id -d' is required. It is used to target device id.. The parameter '--certificate-file-path --cp' is optional. path to certificate file.. The parameter '--da --data' is optional. message body. provide text or raw json.. The parameter '--dtmi --model-id' is optional. the digital twin model id the device will report when connecting to the hub. see https://docs.microsoft.com/en-us/azure/iot-develop/overview-iot-plug-and-play for more details.. The parameter '--hub-name -n' is optional. iot hub name or hostname. required if --login is not provided.. The parameter '--init-reported-properties --irp' is optional. initial state of twin reported properties for the target device when the simulator is run. optional param, only supported for mqtt.. The parameter '--key --symmetric-key' is optional. symmetric key to use for the device. if the symmetric key and other device authentication arguments are provided, symmetric key takes priority.. The parameter '--key-file-path --kp' is optional. path to key file.. The parameter '--login -l' is optional. this command supports an entity connection string with rights to perform action. use to avoid session login via "az login". if both an entity connection string and name are provided the connection string takes priority. required if --hub-name is not provided.. The parameter '--mc --msg-count' is optional. number of device messages to send to iot hub.. The parameter '--method-response-code --mrc' is optional. status code to be returned when direct method is executed on device. optional param, only supported for mqtt.. The parameter '--method-response-payload --mrp' is optional. payload to be returned when direct method is executed on device. provide file path or raw json. optional param, only supported for mqtt.. The parameter '--mi --msg-interval' is optional. delay in seconds between device-to-cloud messages.. The parameter '--pass --passphrase' is optional. passphrase for key file.. The parameter '--properties --props -p' is optional. message property bag in key-value pairs with the following format: a=b;c=d. for mqtt messaging - you are able to send system properties using $.<name>=value. for instance $.cid=12345 sets the system correlation id property. other system property identifier examples include $.ct for content type, $.mid for message id and $.ce for content encoding.  for http messaging - application properties are sent using iothub-app-<name>=value, for instance iothub-app-myprop=myvalue. system properties are generally prefixed with iothub-<name> like iothub-correlationid but there are exceptions such as content-type and content-encoding.. The parameter '--proto --protocol' is optional. indicates device-to-cloud message protocol.. The parameter '--receive-settle --rs' is optional. indicates how to settle received cloud-to-device messages. supported with http only.. The parameter '--resource-group -g' is optional. name of resource group. you can configure the default group using `az configure --defaults group=<name>`.. 