# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Microsoft Azure iotHubClient POST API version: 1.0.0 extends: openapi/microsoft-azure-post-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 8 - target: $.paths['/subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkNameAvailability'].post update: x-apievangelist-phrasing: intent: Check if an IoT hub name is available effect: read questions: - Is the IoT hub name I want still available? - Can I check an IoT hub name before trying to create the hub? instructions: - text: Check whether IoT hub name {name} is available. slots: name: requestBody.name - text: See if {name} can be used as a new IoT hub name in subscription {subscriptionId}. slots: name: requestBody.name subscriptionId: path.subscriptionId method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testall'].post update: x-apievangelist-phrasing: intent: Test all message routes on an IoT hub effect: read questions: - Which of my IoT hub's routes would a sample message match? - Can I test every configured route against a device twin or message? instructions: - text: Test all routes on IoT hub {iotHubName} in resource group {resourceGroupName} of subscription {subscriptionId}. slots: subscriptionId: path.subscriptionId iotHubName: path.iotHubName resourceGroupName: path.resourceGroupName - text: Run every route on {iotHubName} against routing source {routingSource}. slots: iotHubName: path.iotHubName routingSource: requestBody.routingSource method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testnew'].post update: x-apievangelist-phrasing: intent: Test a new route on an IoT hub effect: read questions: - Can I try out a new IoT hub route before saving it? - Would a proposed route match my sample message? instructions: - text: Test the new route {route} on IoT hub {iotHubName} in {resourceGroupName} of subscription {subscriptionId}. slots: subscriptionId: path.subscriptionId route: requestBody.route iotHubName: path.iotHubName resourceGroupName: path.resourceGroupName - text: Check whether route {route} matches a sample message on {iotHubName}. slots: route: requestBody.route iotHubName: path.iotHubName method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/listkeys'].post update: x-apievangelist-phrasing: intent: List an IoT hub's shared access policies effect: read questions: - Where do I find the security keys and shared access policies for my IoT hub? - Can I list all shared access keys on an IoT hub at once? instructions: - text: List the shared access keys for IoT hub {resourceName} in {resourceGroupName} of subscription {subscriptionId}. slots: subscriptionId: path.subscriptionId resourceName: path.resourceName resourceGroupName: path.resourceGroupName - text: Show all security metadata for IoT hub {resourceName}. slots: resourceName: path.resourceName method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubKeys/{keyName}/listkeys'].post update: x-apievangelist-phrasing: intent: Get one shared access policy of an IoT hub effect: read questions: - Can I get the keys for just one named shared access policy on my IoT hub? - What are the keys for the iothubowner policy? instructions: - text: Get shared access policy {keyName} for IoT hub {resourceName} in {resourceGroupName} of subscription {subscriptionId}. slots: subscriptionId: path.subscriptionId keyName: path.keyName resourceName: path.resourceName resourceGroupName: path.resourceGroupName - text: Show the keys for policy {keyName} on {resourceName}. slots: keyName: path.keyName resourceName: path.resourceName method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/exportDevices'].post update: x-apievangelist-phrasing: intent: Export IoT hub device identities to blob storage effect: write questions: - How do I export all device identities from my IoT hub to a storage container? - Can I export devices without including their keys? instructions: - text: Export device identities from IoT hub {resourceName} in {resourceGroupName}, subscription {subscriptionId}, to {exportBlobContainerUri}. slots: subscriptionId: path.subscriptionId resourceName: path.resourceName resourceGroupName: path.resourceGroupName exportBlobContainerUri: requestBody.exportBlobContainerUri - text: Export devices from {resourceName} to {exportBlobContainerUri} with excludeKeys set to {excludeKeys}. slots: resourceName: path.resourceName exportBlobContainerUri: requestBody.exportBlobContainerUri excludeKeys: requestBody.excludeKeys method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/importDevices'].post update: x-apievangelist-phrasing: intent: Import device identities into an IoT hub effect: write questions: - Can I bulk import, update or delete IoT hub devices from a blob? - Where does the import job write its results? instructions: - text: Import devices to hub {resourceName} ({resourceGroupName}, sub {subscriptionId}) from {inputBlobContainerUri}, output to {outputBlobContainerUri}. slots: subscriptionId: path.subscriptionId resourceName: path.resourceName resourceGroupName: path.resourceGroupName inputBlobContainerUri: requestBody.inputBlobContainerUri outputBlobContainerUri: requestBody.outputBlobContainerUri - text: Bulk load device identities from blob {inputBlobName} into {resourceName}. slots: inputBlobName: requestBody.inputBlobName resourceName: path.resourceName method: generated generated: '2026-09-26' - target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/failover'].post update: x-apievangelist-phrasing: intent: Fail an IoT hub over to its secondary region effect: destructive questions: - How do I manually fail over my IoT hub to its secondary region? - Can I trigger an IoT hub failover during a regional outage? instructions: - text: Fail over IoT hub {iotHubName} in {resourceGroupName} of subscription {subscriptionId} to region {failoverRegion}. slots: subscriptionId: path.subscriptionId iotHubName: path.iotHubName resourceGroupName: path.resourceGroupName failoverRegion: requestBody.failoverRegion - text: Start a manual failover of {iotHubName} to {failoverRegion}. slots: iotHubName: path.iotHubName failoverRegion: requestBody.failoverRegion method: generated generated: '2026-09-26'