{"files":{"SKILL.md":"---\nname: iothubclient\ndescription: \"iotHubClient API skill. Use when working with iotHubClient for providers, subscriptions. Covers 32 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# iotHubClient\nAPI version: 2019-07-01-preview\n\n## Auth\nOAuth2\n\n## Base URL\nhttps://management.azure.com\n\n## Setup\n1. Configure auth: OAuth2\n2. GET /providers/Microsoft.Devices/operations -- lists all of the available iot hub rest api operations.\n3. POST /subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkNameAvailability -- create first checkNameAvailability\n\n## Endpoints\n32 endpoints across 2 groups. See references/api-spec.lap for full details.\n\n### Providers\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /providers/Microsoft.Devices/operations | Lists all of the available IoT Hub REST API operations. |\n\n### Subscriptions\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName} | Get the non-security related metadata of an IoT hub |\n| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName} | Create or update the metadata of an IoT hub. |\n| PATCH | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName} | Update an existing IoT Hubs tags. |\n| DELETE | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName} | Delete an IoT hub |\n| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Devices/IotHubs | Get all the IoT hubs in a subscription |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs | Get all the IoT hubs in a resource group |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubStats | Get the statistics from an IoT hub |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/skus | Get the list of valid SKUs for an IoT hub |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups | Get a list of the consumer groups in the Event Hub-compatible device-to-cloud endpoint in an IoT hub |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name} | Get a consumer group from the Event Hub-compatible device-to-cloud endpoint for an IoT hub |\n| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name} | Add a consumer group to an Event Hub-compatible endpoint in an IoT hub |\n| DELETE | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name} | Delete a consumer group from an Event Hub-compatible endpoint in an IoT hub |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs | Get a list of all the jobs in an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs/{jobId} | Get the details of a job from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/quotaMetrics | Get the quota metrics for an IoT hub |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routingEndpointsHealth | Get the health for routing endpoints |\n| POST | /subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkNameAvailability | Check if an IoT hub name is available |\n| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Devices/usages | Get the number of iot hubs in the subscription |\n| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testall | Test all routes |\n| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testnew | Test the new route |\n| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/listkeys | Get the security metadata for an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security |\n| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubKeys/{keyName}/listkeys | Get a shared access policy by name from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security |\n| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/exportDevices | Exports all the device identities in the IoT hub identity registry to an Azure Storage blob container. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities |\n| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/importDevices | Import, update, or delete device identities in the IoT hub identity registry from a blob. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates | Get the certificate list. |\n| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName} | Get the certificate. |\n| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName} | Upload the certificate to the IoT hub. |\n| DELETE | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName} | Delete an X509 certificate. |\n| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/generateVerificationCode | Generate verification code for proof of possession flow. |\n| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/verify | Verify certificate's private key possession. |\n| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/failover | Manual Failover Fail over |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all operations?\" -> GET /providers/Microsoft.Devices/operations\n- \"Get IotHub details?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}\n- \"Update a IotHub?\" -> PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}\n- \"Partially update a IotHub?\" -> PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}\n- \"Delete a IotHub?\" -> DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}\n- \"List all IotHubs?\" -> GET /subscriptions/{subscriptionId}/providers/Microsoft.Devices/IotHubs\n- \"List all IotHubStats?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubStats\n- \"List all skus?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/skus\n- \"List all ConsumerGroups?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups\n- \"Get ConsumerGroup details?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name}\n- \"Update a ConsumerGroup?\" -> PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name}\n- \"Delete a ConsumerGroup?\" -> DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name}\n- \"List all jobs?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs\n- \"Get job details?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs/{jobId}\n- \"List all quotaMetrics?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/quotaMetrics\n- \"List all routingEndpointsHealth?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routingEndpointsHealth\n- \"Create a checkNameAvailability?\" -> POST /subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkNameAvailability\n- \"List all usages?\" -> GET /subscriptions/{subscriptionId}/providers/Microsoft.Devices/usages\n- \"Create a $testall?\" -> POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testall\n- \"Create a $testnew?\" -> POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testnew\n- \"Create a listkey?\" -> POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/listkeys\n- \"Create a exportDevice?\" -> POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/exportDevices\n- \"Create a importDevice?\" -> POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/importDevices\n- \"List all certificates?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates\n- \"Get certificate details?\" -> GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}\n- \"Update a certificate?\" -> PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}\n- \"Delete a certificate?\" -> DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}\n- \"Create a generateVerificationCode?\" -> POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/generateVerificationCode\n- \"Create a verify?\" -> POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/verify\n- \"Create a failover?\" -> POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/failover\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api iotHubClient\n@base https://management.azure.com\n@version 2019-07-01-preview\n@auth OAuth2\n@common_fields {api-version: any # The version of the API., subscriptionId: any # The subscription identifier.}\n@endpoints 32\n@hint download_for_search\n@toc providers(1), subscriptions(31)\n\n@group providers\n@endpoint GET /providers/Microsoft.Devices/operations\n@desc Lists all of the available IoT Hub REST API operations.\n@returns(200) OK. The request has succeeded.\n\n@endgroup\n\n@group subscriptions\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}\n@desc Get the non-security related metadata of an IoT hub\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub.}\n@returns(200) The body contains all the non-security properties of the IoT hub. Security-related properties are set to null.\n\n@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}\n@desc Create or update the metadata of an IoT hub.\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., iotHubDescription: map # The IoT hub metadata and security metadata.}\n@optional {If-Match: any # ETag of the IoT Hub. Do not specify for creating a brand new IoT Hub. Required to update an existing IoT Hub.}\n@returns(200) This is returned as a response to the status polling request for the create or update operation. The body contains the resource representation that indicates a transitional provisioning state.\n@returns(201) This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation. If successful, the operation returns HTTP status code of 201 (OK).\n\n@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}\n@desc Update an existing IoT Hubs tags.\n@required {resourceGroupName: any # Resource group identifier., resourceName: any # Name of iot hub to update., IotHubTags: any # Updated tag information to set into the iot hub instance.}\n@returns(200) Iot Hub was successfully updated\n\n@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}\n@desc Delete an IoT hub\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub.}\n@returns(200) This is returned as a response to the status polling request for the delete operation. The body contains the resource representation that indicates a transitional provisioning state.\n@returns(202) The Iot Hub resource provider always returns a 202 Accepted status code with valid Location and Retry-After headers. The resource provider also sets the Azure-AsyncOperation header with a URL that points to the operation resource for this operation. Subsequent GET attempts on the resource after a DELETE operation return a resource representation that indicates a transitional provisioning state (such as Terminating). To retrieve the status of the operation, a client can either poll the URL returned in the Location header after the Retry-After interval, get the IoT Hub service status directly, or query the operation resource.\n@returns(204) Once the long running delete operation completes successfully, a 204 No Content status code is returned when the status polling request finds the Iot hub metadata in the service and the status of the delete operation is set to a completed state.\n@errors {404: After the long running delete operation completes successfully, a 404 Not Found is returned when the status polling request no longer finds the Iot hub metadata in the service.}\n\n@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Devices/IotHubs\n@desc Get all the IoT hubs in a subscription\n@returns(200) This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT hubs in the subscription.\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs\n@desc Get all the IoT hubs in a resource group\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub.}\n@returns(200) This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT hubs in the resource group.\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubStats\n@desc Get the statistics from an IoT hub\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub.}\n@returns(200) This is a synchronous operation. The body contains JSON-serialized statistics from the identity registry in the IoT hub.\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/skus\n@desc Get the list of valid SKUs for an IoT hub\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub.}\n@returns(200) This is a synchronous operation. The body contains a JSON-serialized array of the valid SKUs for this IoT hub.\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups\n@desc Get a list of the consumer groups in the Event Hub-compatible device-to-cloud endpoint in an IoT hub\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., eventHubEndpointName: any # The name of the Event Hub-compatible endpoint.}\n@returns(200) This is a synchronous operation. The body contains a JSON-serialized list of the consumer groups in the Event Hub-compatible endpoint in this IoT hub\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name}\n@desc Get a consumer group from the Event Hub-compatible device-to-cloud endpoint for an IoT hub\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., eventHubEndpointName: any # The name of the Event Hub-compatible endpoint in the IoT hub., name: any # The name of the consumer group to retrieve.}\n@returns(200) This is a synchronous operation. The body contains a JSON-serialized consumer group.\n\n@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name}\n@desc Add a consumer group to an Event Hub-compatible endpoint in an IoT hub\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., eventHubEndpointName: any # The name of the Event Hub-compatible endpoint in the IoT hub., name: any # The name of the consumer group to add.}\n@returns(200) This is a synchronous operation.\n\n@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name}\n@desc Delete a consumer group from an Event Hub-compatible endpoint in an IoT hub\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., eventHubEndpointName: any # The name of the Event Hub-compatible endpoint in the IoT hub., name: any # The name of the consumer group to delete.}\n@returns(200) This is a synchronous operation.\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs\n@desc Get a list of all the jobs in an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub.}\n@returns(200) This is a synchronous operation. The response contains a JSON-serialized array of all the jobs in the IoT hub.\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs/{jobId}\n@desc Get the details of a job from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., jobId: any # The job identifier.}\n@returns(200) This is a synchronous operation. The response contains a JSON-serialized description of the job in the IoT hub.\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/quotaMetrics\n@desc Get the quota metrics for an IoT hub\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub.}\n@returns(200) This is a synchronous operation. The response contains a JSON-serialized array of the quota metrics for the IoT hub.\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routingEndpointsHealth\n@desc Get the health for routing endpoints\n@required {resourceGroupName: any, iotHubName: any}\n@returns(200) OK\n\n@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkNameAvailability\n@desc Check if an IoT hub name is available\n@required {operationInputs: map # Set the name parameter in the OperationInputs structure to the name of the IoT hub to check.}\n@returns(200) This is a synchronous operation. The body contains a JSON-serialized response that specifies whether the IoT hub name is available. If the name is not available, the body contains the reason.\n\n@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Devices/usages\n@desc Get the number of iot hubs in the subscription\n@returns(200) OK\n\n@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testall\n@desc Test all routes\n@required {input: map # Input for testing all routes, iotHubName: any # IotHub to be tested, resourceGroupName: any # resource group which Iot Hub belongs to}\n@returns(200) OK\n\n@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testnew\n@desc Test the new route\n@required {input: map # Route that needs to be tested, iotHubName: any # IotHub to be tested, resourceGroupName: any # resource group which Iot Hub belongs to}\n@returns(200) OK\n\n@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/listkeys\n@desc Get the security metadata for an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub.}\n@returns(200) This is a synchronous operation. The body contains a JSON-serialized array of shared access policies, including keys, that you can use to access the IoT hub endpoints.\n\n@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubKeys/{keyName}/listkeys\n@desc Get a shared access policy by name from an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., keyName: any # The name of the shared access policy.}\n@returns(200) This is a synchronous operation. The body contains a JSON-serialized shared access policy, including keys, that you can use to access one or more IoT hub endpoints.\n\n@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/exportDevices\n@desc Exports all the device identities in the IoT hub identity registry to an Azure Storage blob container. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., exportDevicesParameters: map # The parameters that specify the export devices operation.}\n@returns(200) OK\n\n@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/importDevices\n@desc Import, update, or delete device identities in the IoT hub identity registry from a blob. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., importDevicesParameters: map # The parameters that specify the import devices operation.}\n@returns(200) OK\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates\n@desc Get the certificate list.\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub.}\n@returns(200) The body contains all the certificate list.\n\n@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}\n@desc Get the certificate.\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., certificateName: any # The name of the certificate}\n@returns(200) The body contains the certificate.\n\n@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}\n@desc Upload the certificate to the IoT hub.\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., certificateName: any # The name of the certificate, certificateDescription: map # The certificate body.}\n@optional {If-Match: any # ETag of the Certificate. Do not specify for creating a brand new certificate. Required to update an existing certificate.}\n@returns(200) If certificate already exist and update was successful, the operation returns HTTP status code of 201 (OK).\n@returns(201) If certificate didn't exist creation was successful, the operation returns HTTP status code of 201 (OK).\n\n@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}\n@desc Delete an X509 certificate.\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., certificateName: any # The name of the certificate, If-Match: any # ETag of the Certificate.}\n@returns(200) Certificate has been deleted.\n@returns(204) Certificate does not exist.\n\n@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/generateVerificationCode\n@desc Generate verification code for proof of possession flow.\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., certificateName: any # The name of the certificate, If-Match: any # ETag of the Certificate.}\n@returns(200) The body contains the certificate.\n\n@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/verify\n@desc Verify certificate's private key possession.\n@required {resourceGroupName: any # The name of the resource group that contains the IoT hub., resourceName: any # The name of the IoT hub., certificateName: any # The name of the certificate, certificateVerificationBody: map # The name of the certificate, If-Match: any # ETag of the Certificate.}\n@returns(200) The body contains the certificate.\n\n@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/failover\n@desc Manual Failover Fail over\n@required {iotHubName: any # IotHub to fail over, failoverInput: map # Region to failover to. Must be a azure DR pair, resourceGroupName: any # resource group which Iot Hub belongs to}\n@returns(200) Long running Manual failover operation completed\n@returns(202) Manual failover initiated\n\n@endgroup\n\n@end\n"}}