There is a command group 'az_iot_device_c2d message'. This group of commands could 'cloud to device messaging commands'. 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_c2d message_send'.The syntax is: az iot device c2d-message send --device-id
                               [--ack {full, negative, positive}]
                               [--auth-type {key, login}]
                               [--ce]
                               [--cid]
                               [--content-type]
                               [--da]
                               [--data-file-path]
                               [--expiry]
                               [--hub-name]
                               [--login]
                               [--message-id]
                               [--properties]
                               [--repair {false, true}]
                               [--resource-group]
                               [--uid]
                               [--wait {false, true}]
                               [--yes {false, true}]. The 1th example of the child command would be to use it to 'basic usage with default message body', the syntax is: az iot device c2d-message send -d {device_id} -n {iothub_name}. The 2th example of the child command would be to use it to 'send cloud to device message with custom data and properties', the syntax is: az iot device c2d-message send -d {device_id} -n {iothub_name} --data 'Hello World' --props 'key0=value0;key1=value1'. The 3th example of the child command would be to use it to 'send a c2d message and wait for device acknowledgement', the syntax is: az iot device c2d-message send -d {device_id} -n {iothub_name} --ack full --wait. The 4th example of the child command would be to use it to 'send a c2d message in binary format from a file', the syntax is: az iot device c2d-message send -d {device_id} -n {iothub_name} --data-file-path {file_path} --content-type 'application/octet-stream'. The 5th example of the child command would be to use it to 'send a c2d message in json format from a file', the syntax is: az iot device c2d-message send -d {device_id} -n {iothub_name} --data-file-path {file_path} --content-type 'application/json'. The parameter '--device-id -d' is required. It is used to target device id.. The parameter '--ack' is optional. request the delivery of per-message feedback regarding the final state of that message. the description of ack values is as follows. positive: if the c2d message reaches the completed state, iot hub generates a feedback message. negative: if the c2d message reaches the dead lettered state, iot hub generates a feedback message. full: iot hub generates a feedback message in either case. by default, no ack is requested.. The parameter '--auth-type' is optional. indicates whether the operation should auto-derive a policy key or use the current azure ad session. if the authentication type is login and the resource hostname is provided, resource lookup will be skipped unless needed.you can configure the default using `az configure --defaults iothub-data-auth-type=<auth-type-value>`.. The parameter '--ce --content-encoding' is optional. the encoding for the c2d message body.. The parameter '--cid --correlation-id' is optional. the correlation id associated with the c2d message.. The parameter '--content-type --ct' is optional. the content type for the c2d message body.. The parameter '--da --data' is optional. message body. provide text or raw json.. The parameter '--data-file-path --dfp' is optional. provide path to file for message body payload. please note when the payload needs to be sent in binary format, set the content type to application/octet-stream.. The parameter '--expiry --expiry-time-utc' is optional. units are milliseconds since unix epoch. if no time is indicated the default iot hub c2d message ttl is used.. The parameter '--hub-name -n' is optional. iot hub name or hostname. required if --login is not provided.. 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 '--message-id --mid' is optional. the c2d message id. if no message id is provided a uuid will be generated.. The parameter '--properties --props -p' is optional. message property bag in key-value pairs with the following format: a=b;c=d.. The parameter '--repair -r' is optional. reinstall uamqp dependency compatible with extension version. default: false.. The parameter '--resource-group -g' is optional. name of resource group. you can configure the default group using `az configure --defaults group=<name>`.. The parameter '--uid --user-id' is optional. the c2d message, user id property.. The parameter '--wait -w' is optional. if set the c2d send operation will block until device feedback has been received.. The parameter '--yes -y' is optional. skip user prompts. indicates acceptance of action. used primarily for automation scenarios. default: false.. 