swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: Use this API to manage the IoT hubs in your Azure subscription.
  title: iotHubClient
  version: 2019-07-01-preview
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-ms-code-generation-settings:
    header: MICROSOFT_MIT_NO_VERSION
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/iothub/resource-manager/Microsoft.Devices/preview/2019-07-01-preview/iothub.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: iothub
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  api-version:
    description: The version of the API.
    in: query
    name: api-version
    required: true
    type: string
  certificateName:
    description: The name of the certificate
    in: path
    name: certificateName
    pattern: ^[A-Za-z0-9-._]{1,64}$
    required: true
    type: string
    x-ms-parameter-location: method
  resourceGroupName:
    description: The name of the resource group that contains the IoT hub.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  resourceName:
    description: The name of the IoT hub.
    in: path
    name: resourceName
    required: true
    type: string
    x-ms-parameter-location: method
  subscriptionId:
    description: The subscription identifier.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  /providers/Microsoft.Devices/operations:
    get:
      description: Lists all of the available IoT Hub REST API operations.
      operationId: Operations_List
      parameters:
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/OperationListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      tags:
        - Operations
      x-ms-examples:
        Operations_List:
          parameters:
            api-version: 2019-07-01-preview
          responses:
            "200":
              body:
                value:
                  - display:
                      description: Register the subscription for the IotHub resource provider and enables the creation of IotHub resources
                      operation: Register Resource Provider
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/register/action
                  - display:
                      description: Gets the diagnostic setting for the resource
                      operation: Get Diagnostic Setting
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/IotHubs/diagnosticSettings/read
                  - display:
                      description: Creates or updates the diagnostic setting for the resource
                      operation: Set Diagnostic Setting
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/IotHubs/diagnosticSettings/write
                  - display:
                      description: Gets the available metrics for the IotHub service
                      operation: Read IotHub service metric definitions
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/IotHubs/metricDefinitions/read
                  - display:
                      description: Gets the available log definitions for the IotHub Service
                      operation: Read IotHub service log definitions
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/IotHubs/logDefinitions/read
                  - display:
                      description: Get All ResourceProvider Operations
                      operation: Get All ResourceProvider Operations
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/operations/Read
                  - display:
                      description: Check If IotHub name is available
                      operation: Check If IotHub name is available
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/checkNameAvailability/Action
                  - display:
                      description: Get subscription usage details for this provider.
                      operation: Get Subscription Usages
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/usages/Read
                  - display:
                      description: Gets the IotHub resource(s)
                      operation: Get IotHub(s)
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/Read
                  - display:
                      description: Create or update IotHub Resource
                      operation: Create or update IotHub Resource
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/Write
                  - display:
                      description: Delete IotHub Resource
                      operation: Delete IotHub Resource
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/Delete
                  - display:
                      description: Get IotHub Statistics
                      operation: Get IotHub Statistics
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/iotHubStats/Read
                  - display:
                      description: Get valid IotHub Skus
                      operation: Get valid IotHub Skus
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/skus/Read
                  - display:
                      description: Get all IotHub Keys
                      operation: Get all IotHub Keys
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/listkeys/Action
                  - display:
                      description: Get IotHub Key for the given name
                      operation: Get IotHub Key for the given name
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/iotHubKeys/listkeys/Action
                  - display:
                      description: Create EventHub Consumer Group
                      operation: Create EventHub Consumer Group
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Write
                  - display:
                      description: Get EventHub Consumer Group(s)
                      operation: Get EventHub Consumer Group(s)
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Read
                  - display:
                      description: Delete EventHub Consumer Group
                      operation: Delete EventHub Consumer Group
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/eventHubEndpoints/consumerGroups/Delete
                  - display:
                      description: Export Devices
                      operation: Export Devices
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/exportDevices/Action
                  - display:
                      description: Import Devices
                      operation: Import Devices
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/importDevices/Action
                  - display:
                      description: Get Job(s) details submitted on given IotHub
                      operation: Get the Job(s) on IotHub
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/jobs/Read
                  - display:
                      description: Get Quota Metrics
                      operation: Get Quota Metrics
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/quotaMetrics/Read
                  - display:
                      description: Test a message against all existing Routes
                      operation: Routing Rule Test All
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/routing/routes/$testall/Action
                  - display:
                      description: Test a message against a provided test Route
                      operation: Routing Rule Test Route
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/routing/routes/$testnew/Action
                  - display:
                      description: Gets the health of all routing Endpoints for an IotHub
                      operation: Get Endpoint Health
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/iotHubs/routingEndpointsHealth/Read
                  - display:
                      description: Gets the diagnostic setting for the resource
                      operation: Get Diagnostic Setting
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/ProvisioningServices/diagnosticSettings/read
                  - display:
                      description: Creates or updates the diagnostic setting for the resource
                      operation: Set Diagnostic Setting
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/ProvisioningServices/diagnosticSettings/write
                  - display:
                      description: Gets the available metrics for the DPS service
                      operation: Read DPS service metric definitions
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/ProvisioningServices/metricDefinitions/read
                  - display:
                      description: Gets the available log definitions for the DPS Service
                      operation: Read DPS service log definitions
                      provider: Microsoft Devices
                      resource: IotHubs
                    name: Microsoft.Devices/ProvisioningServices/logDefinitions/read
                  - display:
                      description: Check If Provisioning Service name is available
                      operation: Check If Provisioning Service name is available
                      provider: Microsoft Devices
                      resource: ProvisioningServives
                    name: Microsoft.Devices/checkProvisioningServiceNameAvailability/Action
                  - display:
                      description: Get Provisioning Service resource
                      operation: Get Provisioning Service resource
                      provider: Microsoft Devices
                      resource: ProvisioningServices
                    name: Microsoft.Devices/provisioningServices/Read
                  - display:
                      description: Create Provisioning Service resource
                      operation: Create Provisioning Service resource
                      provider: Microsoft Devices
                      resource: ProvisioningServices
                    name: Microsoft.Devices/provisioningServices/Write
                  - display:
                      description: Delete Provisioning Service resource
                      operation: Delete Provisioning Service resource
                      provider: Microsoft Devices
                      resource: ProvisioningServices
                    name: Microsoft.Devices/provisioningServices/Delete
                  - display:
                      description: Delete Provisioning Service resource
                      operation: Delete Provisioning Service resource
                      provider: Microsoft Devices
                      resource: ProvisioningServices
                    name: Microsoft.Devices/provisioningServices/skus/Read
                  - display:
                      description: get security related metadata
                      operation: get security related metadata
                      provider: Microsoft Devices
                      resource: ProvisioningServices
                    name: Microsoft.Devices/provisioningServices/listkeys/Action
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/IotHubs":
    get:
      deprecated: false
      description: Get all the IoT hubs in a subscription.
      operationId: IotHubResource_ListBySubscription
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
      responses:
        "200":
          description: This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT hubs in the subscription.
          schema:
            $ref: "#/definitions/IotHubDescriptionListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get all the IoT hubs in a subscription
      tags:
        - GET
      x-ms-examples:
        IotHubResource_ListBySubscription:
          parameters:
            api-version: 2019-07-01-preview
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - etag: AAAAAAFD6M4=
                    id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub
                    location: centraluseuap
                    name: testHub
                    properties:
                      cloudToDevice:
                        defaultTtlAsIso8601: PT1H
                        feedback:
                          lockDurationAsIso8601: PT1M
                          maxDeliveryCount: 10
                          ttlAsIso8601: PT1H
                        maxDeliveryCount: 10
                      enableFileUploadNotifications: false
                      eventHubEndpoints:
                        events:
                          endpoint: sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/
                          partitionCount: 2
                          partitionIds:
                            - "0"
                            - "1"
                          path: iot-dps-cit-hub-1
                          retentionTimeInDays: 1
                      features: None
                      hostName: iot-dps-cit-hub-1.azure-devices.net
                      ipFilterRules: []
                      messagingEndpoints:
                        fileNotifications:
                          lockDurationAsIso8601: PT1M
                          maxDeliveryCount: 10
                          ttlAsIso8601: PT1H
                      provisioningState: Succeeded
                      routing:
                        endpoints:
                          eventHubs: []
                          serviceBusQueues: []
                          serviceBusTopics: []
                          storageContainers: []
                        enrichments: []
                        fallbackRoute:
                          condition: "true"
                          endpointNames:
                            - events
                          isEnabled: true
                          name: $fallback
                          source: DeviceMessages
                        routes: []
                      state: Active
                      storageEndpoints:
                        $default:
                          connectionString: ""
                          containerName: ""
                          sasTtlAsIso8601: PT1H
                    sku:
                      capacity: 1
                      name: S1
                      tier: Standard
                    tags: {}
                    type: Microsoft.Devices/IotHubs
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/checkNameAvailability":
    post:
      deprecated: false
      description: Check if an IoT hub name is available.
      operationId: IotHubResource_CheckNameAvailability
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - description: Set the name parameter in the OperationInputs structure to the name of the IoT hub to check.
          in: body
          name: operationInputs
          required: true
          schema:
            $ref: "#/definitions/OperationInputs"
      responses:
        "200":
          description: 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.
          schema:
            $ref: "#/definitions/IotHubNameAvailabilityInfo"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Check if an IoT hub name is available
      tags:
        - POST
      x-ms-examples:
        IotHubResource_CheckNameAvailability:
          parameters:
            api-version: 2019-07-01-preview
            operationInputs:
              name: test-request
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                message: ""
                nameAvailable: true
                reason: Invalid
  "/subscriptions/{subscriptionId}/providers/Microsoft.Devices/usages":
    get:
      consumes: []
      deprecated: false
      description: Get the number of free and paid iot hubs in the subscription
      operationId: ResourceProviderCommon_GetSubscriptionQuota
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/UserSubscriptionQuotaListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get the number of iot hubs in the subscription
      tags:
        - GET
      x-ms-examples:
        ResourceProviderCommon_GetSubscriptionQuota:
          parameters:
            api-version: 2019-07-01-preview
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - currentValue: 1
                    id: /subscription/91d12660-3dec-467a-be2a-213b5544ddc0/providers/Microsoft.Devices/usages/freeHubCount
                    limit: 1
                    name:
                      localizedValue: Free Hub Count
                      value: FreeHubCount
                    type: /subscription/91d12660-3dec-467a-be2a-213b5544ddc0/providers/Microsoft.Devices/usages
                    unit: count
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs":
    get:
      deprecated: false
      description: Get all the IoT hubs in a resource group.
      operationId: IotHubResource_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
      responses:
        "200":
          description: This is a synchronous operation. The body contains a JSON-serialized array of the metadata from all the IoT hubs in the resource group.
          schema:
            $ref: "#/definitions/IotHubDescriptionListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get all the IoT hubs in a resource group
      tags:
        - GET
      x-ms-examples:
        IotHubResource_ListByResourceGroup:
          parameters:
            api-version: 2019-07-01-preview
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - etag: AAAAAAFD6M4=
                    id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub
                    location: centraluseuap
                    name: testHub
                    properties:
                      cloudToDevice:
                        defaultTtlAsIso8601: PT1H
                        feedback:
                          lockDurationAsIso8601: PT1M
                          maxDeliveryCount: 10
                          ttlAsIso8601: PT1H
                        maxDeliveryCount: 10
                      enableFileUploadNotifications: false
                      eventHubEndpoints:
                        events:
                          endpoint: sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/
                          partitionCount: 2
                          partitionIds:
                            - "0"
                            - "1"
                          path: iot-dps-cit-hub-1
                          retentionTimeInDays: 1
                      features: None
                      hostName: iot-dps-cit-hub-1.azure-devices.net
                      ipFilterRules: []
                      messagingEndpoints:
                        fileNotifications:
                          lockDurationAsIso8601: PT1M
                          maxDeliveryCount: 10
                          ttlAsIso8601: PT1H
                      provisioningState: Succeeded
                      routing:
                        endpoints:
                          eventHubs: []
                          serviceBusQueues: []
                          serviceBusTopics: []
                          storageContainers: []
                        enrichments: []
                        fallbackRoute:
                          condition: "true"
                          endpointNames:
                            - events
                          isEnabled: true
                          name: $fallback
                          source: DeviceMessages
                        routes: []
                      state: Active
                      storageEndpoints:
                        $default:
                          connectionString: ""
                          containerName: ""
                          sasTtlAsIso8601: PT1H
                    sku:
                      capacity: 1
                      name: S1
                      tier: Standard
                    tags: {}
                    type: Microsoft.Devices/IotHubs
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/failover":
    post:
      description: Perform manual fail over of given hub
      operationId: IotHub_ManualFailover
      parameters:
        - description: IotHub to fail over
          in: path
          name: iotHubName
          required: true
          type: string
        - description: Region to failover to. Must be a azure DR pair
          in: body
          name: failoverInput
          required: true
          schema:
            $ref: "#/definitions/FailoverInput"
        - $ref: "#/parameters/subscriptionId"
        - description: resource group which Iot Hub belongs to
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: Long running Manual failover operation completed
        "202":
          description: Manual failover initiated
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Manual Failover Fail over
      tags:
        - POST
      x-ms-examples:
        IotHub_ManualFailover:
          parameters:
            api-version: 2019-07-01-preview
            failoverInput:
              failoverRegion: testHub
            iotHubName: testHub
            resourceGroupName: myResourceGroup
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200": {}
            "202": {}
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testall":
    post:
      deprecated: false
      description: Test all routes configured in this Iot Hub
      operationId: IotHubResource_TestAllRoutes
      parameters:
        - description: Input for testing all routes
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/TestAllRoutesInput"
        - description: IotHub to be tested
          in: path
          name: iotHubName
          required: true
          type: string
        - $ref: "#/parameters/subscriptionId"
        - description: resource group which Iot Hub belongs to
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/TestAllRoutesResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Test all routes
      tags:
        - POST
      x-ms-examples:
        IotHubResource_TestAllRoutes:
          parameters:
            api-version: 2019-07-01-preview
            input:
              message:
                appProperties: App Properties
                body: Body of message
                systemProperties: System Properties
              routingSource: DeviceMessages
            iotHubName: testHub
            resourceGroupName: myResourceGroup
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                routes:
                  - properties:
                      endpointNames:
                        - id1
                      isEnabled: true
                      name: Routeid
                      source: DeviceMessages
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routing/routes/$testnew":
    post:
      deprecated: false
      description: Test the new route for this Iot Hub
      operationId: IotHubResource_TestRoute
      parameters:
        - description: Route that needs to be tested
          in: body
          name: input
          required: true
          schema:
            $ref: "#/definitions/TestRouteInput"
        - description: IotHub to be tested
          in: path
          name: iotHubName
          required: true
          type: string
        - $ref: "#/parameters/subscriptionId"
        - description: resource group which Iot Hub belongs to
          in: path
          name: resourceGroupName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/TestRouteResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Test the new route
      tags:
        - POST
      x-ms-examples:
        IotHubResource_TestRoute:
          parameters:
            api-version: 2019-07-01-preview
            input:
              message:
                appProperties: App Properties
                body: Body of message
                systemProperties: System Properties
              route:
                endpointNames:
                  - id1
                isEnabled: true
                name: Routeid
                source: DeviceMessages
            iotHubName: testHub
            resourceGroupName: myResourceGroup
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                details:
                  compilationErrors:
                    - location:
                        end:
                          column: 24
                          line: 12
                        start:
                          column: 12
                          line: 12
                      message: string response
                      severity: error
                result: "false"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{iotHubName}/routingEndpointsHealth":
    get:
      consumes: []
      deprecated: false
      description: Get the health for routing endpoints.
      operationId: IotHubResource_GetEndpointHealth
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - in: path
          name: resourceGroupName
          required: true
          type: string
        - in: path
          name: iotHubName
          required: true
          type: string
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/EndpointHealthDataListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get the health for routing endpoints
      tags:
        - GET
      x-ms-examples:
        IotHubResource_GetEndpointHealth:
          parameters:
            api-version: 2019-07-01-preview
            iotHubName: testHub
            resourceGroupName: myResourceGroup
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - endpointId: id1
                    healthStatus: healthy
                  - endpointId: id2
                    healthStatus: unknown
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}":
    delete:
      deprecated: false
      description: Delete an IoT hub.
      operationId: IotHubResource_Delete
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
      responses:
        "200":
          description: 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.
          schema:
            $ref: "#/definitions/IotHubDescription"
        "202":
          description: 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.
          schema:
            $ref: "#/definitions/IotHubDescription"
        "204":
          description: 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.
        "404":
          description: 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.
          schema:
            $ref: "#/definitions/ErrorDetails"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Delete an IoT hub
      tags:
        - DELETE
      x-ms-examples:
        IotHubResource_Delete:
          parameters:
            api-version: 2019-07-01-preview
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                etag: AAAAAAFD6M4=
                id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub
                location: centraluseuap
                name: testHub
                properties:
                  cloudToDevice:
                    defaultTtlAsIso8601: PT1H
                    feedback:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                    maxDeliveryCount: 10
                  enableFileUploadNotifications: false
                  eventHubEndpoints:
                    events:
                      endpoint: sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/
                      partitionCount: 2
                      partitionIds:
                        - "0"
                        - "1"
                      path: iot-dps-cit-hub-1
                      retentionTimeInDays: 1
                  features: None
                  hostName: iot-dps-cit-hub-1.azure-devices.net
                  ipFilterRules: []
                  messagingEndpoints:
                    fileNotifications:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                  provisioningState: Succeeded
                  routing:
                    endpoints:
                      eventHubs: []
                      serviceBusQueues: []
                      serviceBusTopics: []
                      storageContainers: []
                    enrichments: []
                    fallbackRoute:
                      condition: "true"
                      endpointNames:
                        - events
                      isEnabled: true
                      source: DeviceMessages
                    routes: []
                  state: Active
                  storageEndpoints:
                    $default:
                      connectionString: ""
                      containerName: ""
                      sasTtlAsIso8601: PT1H
                sku:
                  capacity: 1
                  name: S1
                  tier: Standard
                tags: {}
                type: Microsoft.Devices/IotHubs
            "202":
              body:
                etag: AAAAAAFD6M4=
                id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub
                location: centraluseuap
                name: testHub
                properties:
                  cloudToDevice:
                    defaultTtlAsIso8601: PT1H
                    feedback:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                    maxDeliveryCount: 10
                  enableFileUploadNotifications: false
                  eventHubEndpoints:
                    events:
                      endpoint: sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/
                      partitionCount: 2
                      partitionIds:
                        - "0"
                        - "1"
                      path: iot-dps-cit-hub-1
                      retentionTimeInDays: 1
                  features: None
                  hostName: iot-dps-cit-hub-1.azure-devices.net
                  ipFilterRules: []
                  messagingEndpoints:
                    fileNotifications:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                  provisioningState: Succeeded
                  routing:
                    endpoints:
                      eventHubs: []
                      serviceBusQueues: []
                      serviceBusTopics: []
                      storageContainers: []
                    enrichments: []
                    fallbackRoute:
                      condition: "true"
                      endpointNames:
                        - events
                      isEnabled: true
                      source: DeviceMessages
                    routes: []
                  state: Active
                  storageEndpoints:
                    $default:
                      connectionString: ""
                      containerName: ""
                      sasTtlAsIso8601: PT1H
                sku:
                  capacity: 1
                  name: S1
                  tier: Standard
                tags: {}
                type: Microsoft.Devices/IotHubs
            "204": {}
            "404":
              body: {}
      x-ms-long-running-operation: true
    get:
      deprecated: false
      description: Get the non-security related metadata of an IoT hub.
      operationId: IotHubResource_Get
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
      responses:
        "200":
          description: The body contains all the non-security properties of the IoT hub. Security-related properties are set to null.
          schema:
            $ref: "#/definitions/IotHubDescription"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get the non-security related metadata of an IoT hub
      tags:
        - GET
      x-ms-examples:
        IotHubResource_Get:
          parameters:
            api-version: 2019-07-01-preview
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                etag: AAAAAAFD6M4=
                id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub
                location: centraluseuap
                name: testHub
                properties:
                  cloudToDevice:
                    defaultTtlAsIso8601: PT1H
                    feedback:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                    maxDeliveryCount: 10
                  deviceStreams:
                    streamingEndpoints:
                      - https://streams.azure-devices-int.net:9443
                  enableFileUploadNotifications: false
                  eventHubEndpoints:
                    events:
                      endpoint: sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/
                      partitionCount: 2
                      partitionIds:
                        - "0"
                        - "1"
                      path: iot-dps-cit-hub-1
                      retentionTimeInDays: 1
                  features: None
                  hostName: iot-dps-cit-hub-1.azure-devices.net
                  ipFilterRules: []
                  locations:
                    - location: West US
                      role: primary
                    - location: East US
                      role: secondary
                  messagingEndpoints:
                    fileNotifications:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                  provisioningState: Succeeded
                  routing:
                    endpoints:
                      eventHubs: []
                      serviceBusQueues: []
                      serviceBusTopics: []
                      storageContainers: []
                    enrichments: []
                    fallbackRoute:
                      condition: "true"
                      endpointNames:
                        - events
                      isEnabled: true
                      source: DeviceMessages
                    routes: []
                  state: Active
                  storageEndpoints:
                    $default:
                      connectionString: ""
                      containerName: ""
                      sasTtlAsIso8601: PT1H
                sku:
                  capacity: 1
                  name: S1
                  tier: Standard
                tags: {}
                type: Microsoft.Devices/IotHubs
    patch:
      description: Update an existing IoT Hub tags. to update other fields use the CreateOrUpdate method
      operationId: IotHubResource_Update
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - description: Resource group identifier.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: Name of iot hub to update.
          in: path
          name: resourceName
          required: true
          type: string
        - description: Updated tag information to set into the iot hub instance.
          in: body
          name: IotHubTags
          required: true
          schema:
            $ref: "#/definitions/TagsResource"
        - $ref: "#/parameters/api-version"
      responses:
        "200":
          description: Iot Hub was successfully updated
          schema:
            $ref: "#/definitions/IotHubDescription"
      summary: Update an existing IoT Hubs tags.
      tags:
        - PATCH
      x-ms-examples:
        IotHubResource_Update:
          parameters:
            IotHubTags:
              tags:
                foo: bar
            api-version: 2019-07-01-preview
            location: East US
            resourceGroupName: myResourceGroup
            resourceName: myHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
            type: Microsoft.Devices/IotHubs
          responses:
            "200":
              body:
                etag: AAAAAAFD6M4=
                id: /subscriptions/ae24ff83-d2ca-4fc8-9717-05dae4bba489/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub
                location: centraluseuap
                name: testHub
                properties:
                  cloudToDevice:
                    defaultTtlAsIso8601: PT1H
                    feedback:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                    maxDeliveryCount: 10
                  enableFileUploadNotifications: false
                  eventHubEndpoints:
                    events:
                      endpoint: sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/
                      partitionCount: 2
                      partitionIds:
                        - "0"
                        - "1"
                      path: iot-dps-cit-hub-1
                      retentionTimeInDays: 1
                  features: None
                  hostName: iot-dps-cit-hub-1.azure-devices.net
                  ipFilterRules: []
                  messagingEndpoints:
                    fileNotifications:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                  provisioningState: Succeeded
                  routing:
                    endpoints:
                      eventHubs: []
                      serviceBusQueues: []
                      serviceBusTopics: []
                      storageContainers: []
                    enrichments: []
                    fallbackRoute:
                      condition: "true"
                      endpointNames:
                        - events
                      isEnabled: true
                      name: $fallback
                      source: DeviceMessages
                    routes: []
                  state: Active
                  storageEndpoints:
                    $default:
                      connectionString: ""
                      containerName: ""
                      sasTtlAsIso8601: PT1H
                sku:
                  capacity: 1
                  name: S1
                  tier: Standard
                tags:
                  foo: bar
                type: Microsoft.Devices/IotHubs
      x-ms-long-running-operation: true
    put:
      deprecated: false
      description: Create or update the metadata of an Iot hub. The usual pattern to modify a property is to retrieve the IoT hub metadata and security metadata, and then combine them with the modified values in a new body to update the IoT hub.
      operationId: IotHubResource_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - description: The IoT hub metadata and security metadata.
          in: body
          name: iotHubDescription
          required: true
          schema:
            $ref: "#/definitions/IotHubDescription"
        - description: ETag of the IoT Hub. Do not specify for creating a brand new IoT Hub. Required to update an existing IoT Hub.
          in: header
          name: If-Match
          required: false
          type: string
      responses:
        "200":
          description: 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.
          schema:
            $ref: "#/definitions/IotHubDescription"
        "201":
          description: 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).
          schema:
            $ref: "#/definitions/IotHubDescription"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Create or update the metadata of an IoT hub.
      tags:
        - PUT
      x-ms-examples:
        IotHubResource_CreateOrUpdate:
          parameters:
            api-version: 2019-07-01-preview
            iotHubDescription:
              etag: AAAAAAFD6M4=
              location: centraluseuap
              properties:
                cloudToDevice:
                  defaultTtlAsIso8601: PT1H
                  feedback:
                    lockDurationAsIso8601: PT1M
                    maxDeliveryCount: 10
                    ttlAsIso8601: PT1H
                  maxDeliveryCount: 10
                enableFileUploadNotifications: false
                eventHubEndpoints:
                  events:
                    partitionCount: 2
                    retentionTimeInDays: 1
                features: None
                ipFilterRules: []
                messagingEndpoints:
                  fileNotifications:
                    lockDurationAsIso8601: PT1M
                    maxDeliveryCount: 10
                    ttlAsIso8601: PT1H
                routing:
                  endpoints:
                    eventHubs: []
                    serviceBusQueues: []
                    serviceBusTopics: []
                    storageContainers: []
                  enrichments: []
                  fallbackRoute:
                    condition: "true"
                    endpointNames:
                      - events
                    isEnabled: true
                    name: $fallback
                    source: DeviceMessages
                  routes: []
                storageEndpoints:
                  $default:
                    connectionString: ""
                    containerName: ""
                    sasTtlAsIso8601: PT1H
              sku:
                capacity: 1
                name: S1
              tags: {}
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                etag: AAAAAAFD6M4=
                id: /subscriptions/ae24ff83-d2ca-4fc8-9717-05dae4bba489/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub
                location: centraluseuap
                name: testHub
                properties:
                  cloudToDevice:
                    defaultTtlAsIso8601: PT1H
                    feedback:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                    maxDeliveryCount: 10
                  enableFileUploadNotifications: false
                  eventHubEndpoints:
                    events:
                      endpoint: sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/
                      partitionCount: 2
                      partitionIds:
                        - "0"
                        - "1"
                      path: iot-dps-cit-hub-1
                      retentionTimeInDays: 1
                  features: None
                  hostName: iot-dps-cit-hub-1.azure-devices.net
                  ipFilterRules: []
                  messagingEndpoints:
                    fileNotifications:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                  provisioningState: Succeeded
                  routing:
                    endpoints:
                      eventHubs: []
                      serviceBusQueues: []
                      serviceBusTopics: []
                      storageContainers: []
                    enrichments: []
                    fallbackRoute:
                      condition: "true"
                      endpointNames:
                        - events
                      isEnabled: true
                      name: $fallback
                      source: DeviceMessages
                    routes: []
                  state: Active
                  storageEndpoints:
                    $default:
                      connectionString: ""
                      containerName: ""
                      sasTtlAsIso8601: PT1H
                sku:
                  capacity: 1
                  name: S1
                  tier: Standard
                tags: {}
                type: Microsoft.Devices/IotHubs
            "201":
              body:
                etag: AAAAAAFD6M4=
                id: /subscriptions/ae24ff83-d2ca-4fc8-9717-05dae4bba489/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/testHub
                location: centraluseuap
                name: testHub
                properties:
                  cloudToDevice:
                    defaultTtlAsIso8601: PT1H
                    feedback:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                    maxDeliveryCount: 10
                  enableFileUploadNotifications: false
                  eventHubEndpoints:
                    events:
                      endpoint: sb://iothub-ns-iot-dps-ci-245306-76aca8e13b.servicebus.windows.net/
                      partitionCount: 2
                      partitionIds:
                        - "0"
                        - "1"
                      path: iot-dps-cit-hub-1
                      retentionTimeInDays: 1
                  features: None
                  hostName: iot-dps-cit-hub-1.azure-devices.net
                  ipFilterRules: []
                  messagingEndpoints:
                    fileNotifications:
                      lockDurationAsIso8601: PT1M
                      maxDeliveryCount: 10
                      ttlAsIso8601: PT1H
                  provisioningState: Succeeded
                  routing:
                    endpoints:
                      eventHubs: []
                      serviceBusQueues: []
                      serviceBusTopics: []
                      storageContainers: []
                    enrichments: []
                    fallbackRoute:
                      condition: "true"
                      endpointNames:
                        - events
                      isEnabled: true
                      name: $fallback
                      source: DeviceMessages
                    routes: []
                  state: Active
                  storageEndpoints:
                    $default:
                      connectionString: ""
                      containerName: ""
                      sasTtlAsIso8601: PT1H
                sku:
                  capacity: 1
                  name: S1
                  tier: Standard
                tags: {}
                type: Microsoft.Devices/IotHubs
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubKeys/{keyName}/listkeys":
    post:
      deprecated: false
      description: "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."
      operationId: IotHubResource_GetKeysForKeyName
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - description: The name of the shared access policy.
          in: path
          name: keyName
          required: true
          type: string
      responses:
        "200":
          description: 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.
          schema:
            $ref: "#/definitions/SharedAccessSignatureAuthorizationRule"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: "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"
      tags:
        - POST
      x-ms-examples:
        IotHubResource_GetKeysForKeyName:
          parameters:
            api-version: 2019-07-01-preview
            keyName: iothubowner
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                keyName: iothubowner
                primaryKey: 2aWPrKloLLdcug12ZHNpA0e07yJmRRmYMXDLpEOTd/Y=
                rights: RegistryWrite, ServiceConnect, DeviceConnect
                secondaryKey: DLyFnDTGMDK0BU2QjT5TCkNBQ4h08mi20vOqWMC7TxU=
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/IotHubStats":
    get:
      deprecated: false
      description: Get the statistics from an IoT hub.
      operationId: IotHubResource_GetStats
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
      responses:
        "200":
          description: This is a synchronous operation. The body contains JSON-serialized statistics from the identity registry in the IoT hub.
          schema:
            $ref: "#/definitions/RegistryStatistics"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get the statistics from an IoT hub
      tags:
        - GET
      x-ms-examples:
        IotHubResource_GetStats:
          parameters:
            api-version: 2018-04-01
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                disabledDeviceCount: 0
                enabledDeviceCount: 0
                totalDeviceCount: 0
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates":
    get:
      deprecated: false
      description: Returns the list of certificates.
      operationId: Certificates_ListByIotHub
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
      responses:
        "200":
          description: The body contains all the certificate list.
          schema:
            $ref: "#/definitions/CertificateListDescription"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get the certificate list.
      tags:
        - Certificates
      x-ms-examples:
        Certificates_ListByIotHub:
          parameters:
            api-version: 2019-07-01-preview
            resourceGroupName: myResourceGroup
            resourceName: testhub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - etag: AAAAAAExpNs=
                    id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert
                    name: cert
                    properties:
                      created: Thu, 12 Oct 2017 19:23:50 GMT
                      expiry: Sat, 31 Dec 2039 23:59:59 GMT
                      isVerified: false
                      subject: CN=testdevice1
                      thumbprint: 97388663832D0393C9246CAB4FBA2C8677185A25
                      updated: Thu, 12 Oct 2017 19:23:50 GMT
                    type: Microsoft.Devices/IotHubs/Certificates
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}":
    delete:
      deprecated: false
      description: Deletes an existing X509 certificate or does nothing if it does not exist.
      operationId: Certificates_Delete
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - $ref: "#/parameters/certificateName"
        - description: ETag of the Certificate.
          in: header
          name: If-Match
          required: true
          type: string
      responses:
        "200":
          description: Certificate has been deleted.
        "204":
          description: Certificate does not exist.
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Delete an X509 certificate.
      tags:
        - Certificates
      x-ms-examples:
        Certificates_Delete:
          parameters:
            If-Match: AAAAAAAADGk=
            api-version: 2019-07-01-preview
            certificateName: cert
            resourceGroupName: myResourceGroup
            resourceName: myhub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200": {}
            "204": {}
    get:
      deprecated: false
      description: Returns the certificate.
      operationId: Certificates_Get
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - $ref: "#/parameters/certificateName"
      responses:
        "200":
          description: The body contains the certificate.
          schema:
            $ref: "#/definitions/CertificateDescription"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get the certificate.
      tags:
        - Certificates
      x-ms-examples:
        Certificates_Get:
          parameters:
            api-version: 2019-07-01-preview
            certificateName: cert
            resourceGroupName: myResourceGroup
            resourceName: testhub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                etag: AAAAAAExpNs=
                id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/IotHubs/andbuc-hub/certificates/cert
                name: cert
                properties:
                  created: Thu, 12 Oct 2017 19:23:50 GMT
                  expiry: Sat, 31 Dec 2039 23:59:59 GMT
                  isVerified: false
                  subject: CN=testdevice1
                  thumbprint: 97388663832D0393C9246CAB4FBA2C8677185A25
                  updated: Thu, 12 Oct 2017 19:23:50 GMT
                type: Microsoft.Devices/IotHubs/Certificates
    put:
      deprecated: false
      description: Adds new or replaces existing certificate.
      operationId: Certificates_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - $ref: "#/parameters/certificateName"
        - description: The certificate body.
          in: body
          name: certificateDescription
          required: true
          schema:
            $ref: "#/definitions/CertificateBodyDescription"
        - description: ETag of the Certificate. Do not specify for creating a brand new certificate. Required to update an existing certificate.
          in: header
          name: If-Match
          required: false
          type: string
      responses:
        "200":
          description: If certificate already exist and update was successful, the operation returns HTTP status code of 201 (OK).
          schema:
            $ref: "#/definitions/CertificateDescription"
        "201":
          description: If certificate didn't exist creation was successful, the operation returns HTTP status code of 201 (OK).
          schema:
            $ref: "#/definitions/CertificateDescription"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Upload the certificate to the IoT hub.
      tags:
        - Certificates
      x-ms-examples:
        Certificates_CreateOrUpdate:
          parameters:
            api-version: 2019-07-01-preview
            certificateDescription:
              certificate: "############################################"
            certificateName: cert
            resourceGroupName: myResourceGroup
            resourceName: iothub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                etag: AAAAAAExpNs=
                id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServives/myFirstProvisioningService/certificates/cert
                name: cert
                properties:
                  created: Thu, 12 Oct 2017 19:23:50 GMT
                  expiry: Sat, 31 Dec 2039 23:59:59 GMT
                  isVerified: false
                  subject: CN=testdevice1
                  thumbprint: 97388663832D0393C9246CAB4FBA2C8677185A25
                  updated: Thu, 12 Oct 2017 19:23:50 GMT
                type: Microsoft.Devices/IotHubs/Certificates
            "201":
              body:
                etag: AAAAAAExpNs=
                id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServives/myFirstProvisioningService/certificates/cert
                name: cert
                properties:
                  created: Thu, 12 Oct 2017 19:23:50 GMT
                  expiry: Sat, 31 Dec 2039 23:59:59 GMT
                  isVerified: false
                  subject: CN=testdevice1
                  thumbprint: 97388663832D0393C9246CAB4FBA2C8677185A25
                  updated: Thu, 12 Oct 2017 19:23:50 GMT
                type: Microsoft.Devices/IotHubs/Certificates
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/generateVerificationCode":
    post:
      deprecated: false
      description: Generates verification code for proof of possession flow. The verification code will be used to generate a leaf certificate.
      operationId: Certificates_GenerateVerificationCode
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - $ref: "#/parameters/certificateName"
        - description: ETag of the Certificate.
          in: header
          name: If-Match
          required: true
          type: string
      responses:
        "200":
          description: The body contains the certificate.
          schema:
            $ref: "#/definitions/CertificateWithNonceDescription"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Generate verification code for proof of possession flow.
      tags:
        - Certificates
      x-ms-examples:
        Certificates_GenerateVerificationCode:
          parameters:
            If-Match: AAAAAAAADGk=
            api-version: 2019-07-01-preview
            certificateName: cert
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                name: cert
                properties:
                  created: Thu, 12 Oct 2017 19:23:50 GMT
                  expiry: Sat, 31 Dec 2039 23:59:59 GMT
                  isVerified: false
                  subject: CN=andbucdevice1
                  thumbprint: "##############################"
                  updated: Thu, 12 Oct 2017 19:26:56 GMT
                  verificationCode: "##################################"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/certificates/{certificateName}/verify":
    post:
      deprecated: false
      description: Verifies the certificate's private key possession by providing the leaf cert issued by the verifying pre uploaded certificate.
      operationId: Certificates_Verify
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - $ref: "#/parameters/certificateName"
        - description: The name of the certificate
          in: body
          name: certificateVerificationBody
          required: true
          schema:
            $ref: "#/definitions/CertificateVerificationDescription"
        - description: ETag of the Certificate.
          in: header
          name: If-Match
          required: true
          type: string
      responses:
        "200":
          description: The body contains the certificate.
          schema:
            $ref: "#/definitions/CertificateDescription"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Verify certificate's private key possession.
      tags:
        - Certificates
      x-ms-examples:
        Certificates_Verify:
          parameters:
            If-Match: AAAAAAAADGk=
            api-version: 2019-07-01-preview
            certificateName: cert
            certificateVerificationBody:
              certificate: "#####################################"
            resourceGroupName: myResourceGroup
            resourceName: myFirstProvisioningService
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                etag: AAAAAAExpTQ=
                id: /subscriptions/91d12660-3dec-467a-be2a-213b5544ddc0/resourceGroups/myResourceGroup/providers/Microsoft.Devices/ProvisioningServices/myFirstProvisioningService/certificates/cert
                name: cert
                properties:
                  created: Thu, 12 Oct 2017 19:23:50 GMT
                  expiry: Sat, 31 Dec 2039 23:59:59 GMT
                  isVerified: true
                  subject: CN=andbucdevice1
                  thumbprint: 97388663832D0393C9246CAB4FBA2C8677185A25
                  updated: Thu, 12 Oct 2017 19:26:56 GMT
                type: Microsoft.Devices/IotHubs/Certificates
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups":
    get:
      deprecated: false
      description: Get a list of the consumer groups in the Event Hub-compatible device-to-cloud endpoint in an IoT hub.
      operationId: IotHubResource_ListEventHubConsumerGroups
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - description: The name of the Event Hub-compatible endpoint.
          in: path
          name: eventHubEndpointName
          required: true
          type: string
      responses:
        "200":
          description: 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
          schema:
            $ref: "#/definitions/EventHubConsumerGroupsListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get a list of the consumer groups in the Event Hub-compatible device-to-cloud endpoint in an IoT hub
      tags:
        - GET
      x-ms-examples:
        IotHubResource_ListEventHubConsumerGroups:
          parameters:
            api-version: 2019-07-01-preview
            eventHubEndpointName: events
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - etag: AAAAAAFD6M4=
                    id: /subscriptions/cmd-sub-1/resourceGroups/cmd-rg-1/providers/Microsoft.Devices/IotHubs/test-hub-2/eventHubEndpoints/events/ConsumerGroups/%24Default
                    name: $Default
                    properties:
                      created: Thu, 15 Jun 2017 19:20:58 GMT
                    type: Microsoft.Devices/IotHubs/EventHubEndpoints/ConsumerGroups
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/eventHubEndpoints/{eventHubEndpointName}/ConsumerGroups/{name}":
    delete:
      deprecated: false
      description: Delete a consumer group from an Event Hub-compatible endpoint in an IoT hub.
      operationId: IotHubResource_DeleteEventHubConsumerGroup
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - description: The name of the Event Hub-compatible endpoint in the IoT hub.
          in: path
          name: eventHubEndpointName
          required: true
          type: string
        - description: The name of the consumer group to delete.
          in: path
          name: name
          required: true
          type: string
      responses:
        "200":
          description: This is a synchronous operation.
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Delete a consumer group from an Event Hub-compatible endpoint in an IoT hub
      tags:
        - DELETE
      x-ms-examples:
        IotHubResource_DeleteEventHubConsumerGroup:
          parameters:
            api-version: 2019-07-01-preview
            eventHubEndpointName: events
            name: test
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200": {}
    get:
      deprecated: false
      description: Get a consumer group from the Event Hub-compatible device-to-cloud endpoint for an IoT hub.
      operationId: IotHubResource_GetEventHubConsumerGroup
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - description: The name of the Event Hub-compatible endpoint in the IoT hub.
          in: path
          name: eventHubEndpointName
          required: true
          type: string
        - description: The name of the consumer group to retrieve.
          in: path
          name: name
          required: true
          type: string
      responses:
        "200":
          description: This is a synchronous operation. The body contains a JSON-serialized consumer group.
          schema:
            $ref: "#/definitions/EventHubConsumerGroupInfo"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get a consumer group from the Event Hub-compatible device-to-cloud endpoint for an IoT hub
      tags:
        - GET
      x-ms-examples:
        IotHubResource_ListEventHubConsumerGroups:
          parameters:
            api-version: 2019-07-01-preview
            eventHubEndpointName: events
            name: test
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                etag: AAAAAAFD6M4=
                id: /subscriptions/cmd-sub-1/resourceGroups/cmd-rg-1/providers/Microsoft.Devices/IotHubs/test-hub-2/eventHubEndpoints/events/ConsumerGroups/%24Default
                name: test
                properties:
                  created: Thu, 15 Jun 2017 19:20:58 GMT
                type: Microsoft.Devices/IotHubs/EventHubEndpoints/ConsumerGroups
    put:
      deprecated: false
      description: Add a consumer group to an Event Hub-compatible endpoint in an IoT hub.
      operationId: IotHubResource_CreateEventHubConsumerGroup
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - description: The name of the Event Hub-compatible endpoint in the IoT hub.
          in: path
          name: eventHubEndpointName
          required: true
          type: string
        - description: The name of the consumer group to add.
          in: path
          name: name
          required: true
          type: string
      responses:
        "200":
          description: This is a synchronous operation.
          schema:
            $ref: "#/definitions/EventHubConsumerGroupInfo"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Add a consumer group to an Event Hub-compatible endpoint in an IoT hub
      tags:
        - PUT
      x-ms-examples:
        IotHubResource_CreateEventHubConsumerGroup:
          parameters:
            api-version: 2019-07-01-preview
            eventHubEndpointName: events
            name: test
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                etag: AAAAAAFD6M4=
                id: /subscriptions/cmd-sub-1/resourceGroups/cmd-rg-1/providers/Microsoft.Devices/IotHubs/test-hub-2/eventHubEndpoints/events/ConsumerGroups/%24Default
                name: test
                properties:
                  created: Thu, 15 Jun 2017 19:20:58 GMT
                type: Microsoft.Devices/IotHubs/EventHubEndpoints/ConsumerGroups
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/exportDevices":
    post:
      deprecated: false
      description: "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."
      operationId: IotHubResource_ExportDevices
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - description: The parameters that specify the export devices operation.
          in: body
          name: exportDevicesParameters
          required: true
          schema:
            $ref: "#/definitions/ExportDevicesRequest"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/JobResponse"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: "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"
      tags:
        - POST
      x-ms-examples:
        IotHubResource_ExportDevices:
          parameters:
            api-version: 2019-07-01-preview
            exportDevicesParameters:
              excludeKeys: true
              exportBlobContainerUri: testBlob
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                endTimeUtc: Thu, 15 Jun 2017 19:20:58 GMT
                jobId: test
                startTimeUtc: Thu, 15 Jun 2017 19:20:58 GMT
                status: unknown
                type: unknown
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/importDevices":
    post:
      deprecated: false
      description: "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."
      operationId: IotHubResource_ImportDevices
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - description: The parameters that specify the import devices operation.
          in: body
          name: importDevicesParameters
          required: true
          schema:
            $ref: "#/definitions/ImportDevicesRequest"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/JobResponse"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: "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"
      tags:
        - POST
      x-ms-examples:
        IotHubResource_ImportDevices:
          parameters:
            api-version: 2019-07-01-preview
            importDevicesParameters:
              inputBlobContainerUri: testBlob
              outputBlobContainerUri: testBlob
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                endTimeUtc: Thu, 15 Jun 2017 19:20:58 GMT
                jobId: test
                startTimeUtc: Thu, 15 Jun 2017 19:20:58 GMT
                status: unknown
                type: unknown
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs":
    get:
      deprecated: false
      description: "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."
      operationId: IotHubResource_ListJobs
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
      responses:
        "200":
          description: This is a synchronous operation. The response contains a JSON-serialized array of all the jobs in the IoT hub.
          schema:
            $ref: "#/definitions/JobResponseListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: "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"
      tags:
        - GET
      x-ms-examples:
        IotHubResource_ListJobs:
          parameters:
            api-version: 2019-07-01-preview
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - endTimeUtc: Thu, 15 Jun 2017 19:20:58 GMT
                    jobId: test
                    startTimeUtc: Thu, 15 Jun 2017 19:20:58 GMT
                    status: unknown
                    type: unknown
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/jobs/{jobId}":
    get:
      deprecated: false
      description: "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."
      operationId: IotHubResource_GetJob
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
        - description: The job identifier.
          in: path
          name: jobId
          required: true
          type: string
      responses:
        "200":
          description: This is a synchronous operation. The response contains a JSON-serialized description of the job in the IoT hub.
          schema:
            $ref: "#/definitions/JobResponse"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: "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"
      tags:
        - GET
      x-ms-examples:
        IotHubResource_GetJob:
          parameters:
            api-version: 2019-07-01-preview
            jobId: test
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                endTimeUtc: Thu, 15 Jun 2017 19:20:58 GMT
                jobId: test
                startTimeUtc: Thu, 15 Jun 2017 19:20:58 GMT
                status: unknown
                type: unknown
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/listkeys":
    post:
      deprecated: false
      description: "Get the security metadata for an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security."
      operationId: IotHubResource_ListKeys
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
      responses:
        "200":
          description: 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.
          schema:
            $ref: "#/definitions/SharedAccessSignatureAuthorizationRuleListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: "Get the security metadata for an IoT hub. For more information, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-security"
      tags:
        - POST
      x-ms-examples:
        IotHubResource_ListKeys:
          parameters:
            api-version: 2019-07-01-preview
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - keyName: iothubowner
                    primaryKey: 2aWPrKloLLdcug12ZHNpA0e07yJmRRmYMXDLpEOTd/Y=
                    rights: RegistryWrite, ServiceConnect, DeviceConnect
                    secondaryKey: DLyFnDTGMDK0BU2QjT5TCkNBQ4h08mi20vOqWMC7TxU=
                  - keyName: service
                    primaryKey: DinqxWW+s814W2Pc3dLxleelksqSYGy8Jfymt8J7a4c=
                    rights: ServiceConnect
                    secondaryKey: 5G8KgJ9Wx2T0f6HRIn25TgYcFmJnBSivawNaHssiP9Y=
                  - keyName: device
                    primaryKey: o/9gPc0oD8LY/r2lRurgl9U/sKFcL2c/tmFLKAiz+e0=
                    rights: DeviceConnect
                    secondaryKey: YOeBMHnYP95vH+ykR8OeapnhS6W8raMsXOdNFwqg4lg=
                  - keyName: registryRead
                    primaryKey: h2d4mPxy6jPCWX6mO+katV9QPNJivzt4aFq0iGVc1A8=
                    rights: RegistryRead
                    secondaryKey: 3TdcalZNTB7BZHl88LGsG1Z5T6+ElEODunrs1vylwGg=
                  - keyName: registryReadWrite
                    primaryKey: tyNRcaI38fXL+gQTjCmrVZGTP4YFF7uACk7pppWLWzY=
                    rights: RegistryWrite
                    secondaryKey: 6P6DXOp0W3HO5/IotzcPS1kx7PHiOdesaND07Im5cYI=
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/quotaMetrics":
    get:
      deprecated: false
      description: Get the quota metrics for an IoT hub.
      operationId: IotHubResource_GetQuotaMetrics
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
      responses:
        "200":
          description: This is a synchronous operation. The response contains a JSON-serialized array of the quota metrics for the IoT hub.
          schema:
            $ref: "#/definitions/IotHubQuotaMetricInfoListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get the quota metrics for an IoT hub
      tags:
        - GET
      x-ms-examples:
        IotHubResource_GetQuotaMetrics:
          parameters:
            api-version: 2019-07-01-preview
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - currentValue: 0
                    maxValue: 400000
                    name: TotalMessages
                  - currentValue: 0
                    maxValue: 500000
                    name: TotalDeviceCount
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Devices/IotHubs/{resourceName}/skus":
    get:
      deprecated: false
      description: Get the list of valid SKUs for an IoT hub.
      operationId: IotHubResource_GetValidSkus
      parameters:
        - $ref: "#/parameters/api-version"
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/resourceName"
      responses:
        "200":
          description: This is a synchronous operation. The body contains a JSON-serialized array of the valid SKUs for this IoT hub.
          schema:
            $ref: "#/definitions/IotHubSkuDescriptionListResult"
        default:
          description: DefaultErrorResponse
          schema:
            $ref: "#/definitions/ErrorDetails"
      summary: Get the list of valid SKUs for an IoT hub
      tags:
        - GET
      x-ms-examples:
        IotHubResource_GetValidSkus:
          parameters:
            api-version: 2019-07-01-preview
            resourceGroupName: myResourceGroup
            resourceName: testHub
            subscriptionId: 91d12660-3dec-467a-be2a-213b5544ddc0
          responses:
            "200":
              body:
                value:
                  - capacity:
                      default: 1
                      scaleType: Manual
                    resourceType: Microsoft.Devices/IotHubs
                    sku:
                      name: S1
                      tier: Standard
                  - capacity:
                      default: 1
                      maximum: 200
                      minimum: 1
                      scaleType: Manual
                    resourceType: Microsoft.Devices/IotHubs
                    sku:
                      name: S2
                      tier: Standard
                  - capacity:
                      default: 1
                      maximum: 10
                      minimum: 1
                      scaleType: Manual
                    resourceType: Microsoft.Devices/IotHubs
                    sku:
                      name: S3
                      tier: Standard
      x-ms-pageable:
        nextLinkName: nextLink
definitions:
  CertificateBodyDescription:
    description: The JSON-serialized X509 Certificate.
    properties:
      certificate:
        description: base-64 representation of the X509 leaf certificate .cer file or just .pem file content.
        type: string
    type: object
  CertificateDescription:
    description: The X509 Certificate.
    properties:
      etag:
        description: The entity tag.
        readOnly: true
        type: string
      id:
        description: The resource identifier.
        readOnly: true
        type: string
      name:
        description: The name of the certificate.
        readOnly: true
        type: string
      properties:
        $ref: "#/definitions/CertificateProperties"
      type:
        description: The resource type.
        readOnly: true
        type: string
    type: object
    x-ms-azure-resource: true
  CertificateListDescription:
    description: The JSON-serialized array of Certificate objects.
    properties:
      value:
        description: The array of Certificate objects.
        items:
          $ref: "#/definitions/CertificateDescription"
        type: array
    type: object
  CertificateProperties:
    description: The description of an X509 CA Certificate.
    properties:
      certificate:
        description: The certificate content
        type: string
      created:
        description: The certificate's create date and time.
        format: date-time-rfc1123
        readOnly: true
        type: string
      expiry:
        description: The certificate's expiration date and time.
        format: date-time-rfc1123
        readOnly: true
        type: string
      isVerified:
        description: Determines whether certificate has been verified.
        readOnly: true
        type: boolean
      subject:
        description: The certificate's subject name.
        readOnly: true
        type: string
      thumbprint:
        description: The certificate's thumbprint.
        readOnly: true
        type: string
      updated:
        description: The certificate's last update date and time.
        format: date-time-rfc1123
        readOnly: true
        type: string
    type: object
  CertificatePropertiesWithNonce:
    description: The description of an X509 CA Certificate including the challenge nonce issued for the Proof-Of-Possession flow.
    properties:
      certificate:
        description: The certificate content
        readOnly: true
        type: string
      created:
        description: The certificate's create date and time.
        format: date-time-rfc1123
        readOnly: true
        type: string
      expiry:
        description: The certificate's expiration date and time.
        format: date-time-rfc1123
        readOnly: true
        type: string
      isVerified:
        description: Determines whether certificate has been verified.
        readOnly: true
        type: boolean
      subject:
        description: The certificate's subject name.
        readOnly: true
        type: string
      thumbprint:
        description: The certificate's thumbprint.
        readOnly: true
        type: string
      updated:
        description: The certificate's last update date and time.
        format: date-time-rfc1123
        readOnly: true
        type: string
      verificationCode:
        description: The certificate's verification code that will be used for proof of possession.
        readOnly: true
        type: string
    type: object
  CertificateVerificationDescription:
    description: The JSON-serialized leaf certificate
    properties:
      certificate:
        description: base-64 representation of X509 certificate .cer file or just .pem file content.
        type: string
    type: object
  CertificateWithNonceDescription:
    description: The X509 Certificate.
    properties:
      etag:
        description: The entity tag.
        readOnly: true
        type: string
      id:
        description: The resource identifier.
        readOnly: true
        type: string
      name:
        description: The name of the certificate.
        readOnly: true
        type: string
      properties:
        $ref: "#/definitions/CertificatePropertiesWithNonce"
      type:
        description: The resource type.
        readOnly: true
        type: string
    type: object
    x-ms-azure-resource: true
  CloudToDeviceProperties:
    description: The IoT hub cloud-to-device messaging properties.
    properties:
      defaultTtlAsIso8601:
        description: "The default time to live for cloud-to-device messages in the device queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages."
        format: duration
        type: string
      feedback:
        $ref: "#/definitions/FeedbackProperties"
      maxDeliveryCount:
        description: "The max delivery count for cloud-to-device messages in the device queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages."
        format: int32
        maximum: 100
        minimum: 1
        type: integer
    type: object
  EndpointHealthData:
    description: The health data for an endpoint
    properties:
      endpointId:
        description: Id of the endpoint
        type: string
      healthStatus:
        description: Health statuses have following meanings. The 'healthy' status shows that the endpoint is accepting messages as expected. The 'unhealthy' status shows that the endpoint is not accepting messages as expected and IoT Hub is retrying to send data to this endpoint. The status of an unhealthy endpoint will be updated to healthy when IoT Hub has established an eventually consistent state of health. The 'dead' status shows that the endpoint is not accepting messages, after IoT Hub retried sending messages for the retrial period. See IoT Hub metrics to identify errors and monitor issues with endpoints. The 'unknown' status shows that the IoT Hub has not established a connection with the endpoint. No messages have been delivered to or rejected from this endpoint
        enum:
          - unknown
          - healthy
          - unhealthy
          - dead
        type: string
        x-ms-enum:
          modelAsString: true
          name: EndpointHealthStatus
    type: object
  EndpointHealthDataListResult:
    description: The JSON-serialized array of EndpointHealthData objects with a next link.
    properties:
      nextLink:
        description: Link to more results
        readOnly: true
        type: string
      value:
        description: JSON-serialized array of Endpoint health data
        items:
          $ref: "#/definitions/EndpointHealthData"
        type: array
    type: object
  EnrichmentProperties:
    description: The properties of an enrichment that your IoT hub applies to messages delivered to endpoints.
    properties:
      endpointNames:
        description: The list of endpoints for which the enrichment is applied to the message.
        items:
          type: string
        minItems: 1
        type: array
      key:
        description: The key or name for the enrichment property.
        type: string
      value:
        description: The value for the enrichment property.
        type: string
    required:
      - key
      - value
      - endpointNames
    type: object
  ErrorDetails:
    description: Error details.
    properties:
      code:
        description: The error code.
        readOnly: true
        type: string
      details:
        description: The error details.
        readOnly: true
        type: string
      httpStatusCode:
        description: The HTTP status code.
        readOnly: true
        type: string
      message:
        description: The error message.
        readOnly: true
        type: string
    type: object
  EventHubConsumerGroupInfo:
    description: The properties of the EventHubConsumerGroupInfo object.
    properties:
      etag:
        description: The etag.
        readOnly: true
        type: string
      id:
        description: The Event Hub-compatible consumer group identifier.
        readOnly: true
        type: string
      name:
        description: The Event Hub-compatible consumer group name.
        readOnly: true
        type: string
      properties:
        additionalProperties:
          type: string
        description: The tags.
        type: object
      type:
        description: the resource type.
        readOnly: true
        type: string
    type: object
    x-ms-azure-resource: true
  EventHubConsumerGroupsListResult:
    description: The JSON-serialized array of Event Hub-compatible consumer group names with a next link.
    properties:
      nextLink:
        description: The next link.
        readOnly: true
        type: string
      value:
        description: List of consumer groups objects
        items:
          $ref: "#/definitions/EventHubConsumerGroupInfo"
        type: array
    type: object
  EventHubProperties:
    description: The properties of the provisioned Event Hub-compatible endpoint used by the IoT hub.
    properties:
      endpoint:
        description: The Event Hub-compatible endpoint.
        readOnly: true
        type: string
      partitionCount:
        description: "The number of partitions for receiving device-to-cloud messages in the Event Hub-compatible endpoint. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages."
        format: int32
        type: integer
      partitionIds:
        description: The partition ids in the Event Hub-compatible endpoint.
        items:
          type: string
        readOnly: true
        type: array
      path:
        description: The Event Hub-compatible name.
        readOnly: true
        type: string
      retentionTimeInDays:
        description: "The retention time for device-to-cloud messages in days. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#device-to-cloud-messages"
        format: int64
        type: integer
    type: object
  ExportDevicesRequest:
    description: Use to provide parameters when requesting an export of all devices in the IoT hub.
    properties:
      excludeKeys:
        description: The value indicating whether keys should be excluded during export.
        type: boolean
      exportBlobContainerUri:
        description: The export blob container URI.
        type: string
    required:
      - exportBlobContainerUri
      - excludeKeys
    type: object
  FailoverInput:
    description: Use to provide failover region when requesting manual Failover for a hub.
    properties:
      failoverRegion:
        description: Region the hub will be failed over to
        type: string
    required:
      - failoverRegion
    type: object
  FallbackRouteProperties:
    description: The properties of the fallback route. IoT Hub uses these properties when it routes messages to the fallback endpoint.
    properties:
      condition:
        description: "The condition which is evaluated in order to apply the fallback route. If the condition is not provided it will evaluate to true by default. For grammar, See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language"
        type: string
      endpointNames:
        description: The list of endpoints to which the messages that satisfy the condition are routed to. Currently only 1 endpoint is allowed.
        items:
          type: string
        maxItems: 1
        minItems: 1
        type: array
      isEnabled:
        description: Used to specify whether the fallback route is enabled.
        type: boolean
      name:
        description: The name of the route. The name can only include alphanumeric characters, periods, underscores, hyphens, has a maximum length of 64 characters, and must be unique.
        type: string
      source:
        description: The source to which the routing rule is to be applied to. For example, DeviceMessages
        enum:
          - DeviceMessages
        type: string
        x-ms-enum:
          modelAsString: true
          name: RoutingSource
    required:
      - endpointNames
      - source
      - isEnabled
    type: object
  FeedbackProperties:
    description: The properties of the feedback queue for cloud-to-device messages.
    properties:
      lockDurationAsIso8601:
        description: "The lock duration for the feedback queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages."
        format: duration
        type: string
      maxDeliveryCount:
        description: "The number of times the IoT hub attempts to deliver a message on the feedback queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages."
        format: int32
        maximum: 100
        minimum: 1
        type: integer
      ttlAsIso8601:
        description: "The period of time for which a message is available to consume before it is expired by the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages."
        format: duration
        type: string
    type: object
  ImportDevicesRequest:
    description: Use to provide parameters when requesting an import of all devices in the hub.
    properties:
      inputBlobContainerUri:
        description: The input blob container URI.
        type: string
      outputBlobContainerUri:
        description: The output blob container URI.
        type: string
    required:
      - inputBlobContainerUri
      - outputBlobContainerUri
    type: object
  IotHubCapacity:
    description: IoT Hub capacity information.
    properties:
      default:
        description: The default number of units.
        format: int64
        readOnly: true
        type: integer
      maximum:
        description: The maximum number of units.
        format: int64
        readOnly: true
        type: integer
      minimum:
        description: The minimum number of units.
        format: int64
        maximum: 1
        minimum: 1
        readOnly: true
        type: integer
      scaleType:
        description: The type of the scaling enabled.
        enum:
          - Automatic
          - Manual
          - None
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: IotHubScaleType
    type: object
  IotHubDescription:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The description of the IoT hub.
    properties:
      etag:
        description: The Etag field is *not* required. If it is provided in the response body, it must also be provided as a header per the normal ETag convention.
        type: string
      properties:
        $ref: "#/definitions/IotHubProperties"
        description: IotHub properties
      sku:
        $ref: "#/definitions/IotHubSkuInfo"
        description: IotHub SKU info
    required:
      - sku
    type: object
  IotHubDescriptionListResult:
    description: The JSON-serialized array of IotHubDescription objects with a next link.
    properties:
      nextLink:
        description: The next link.
        readOnly: true
        type: string
      value:
        description: The array of IotHubDescription objects.
        items:
          $ref: "#/definitions/IotHubDescription"
        type: array
    type: object
  IotHubLocationDescription:
    description: Public representation of one of the locations where a resource is provisioned.
    properties:
      location:
        description: Azure Geo Regions
        type: string
      role:
        description: Specific Role assigned to this location
        enum:
          - primary
          - secondary
        type: string
        x-ms-enum:
          modelAsString: true
          name: IotHubReplicaRoleType
    type: object
  IotHubNameAvailabilityInfo:
    description: The properties indicating whether a given IoT hub name is available.
    properties:
      message:
        description: The detailed reason message.
        type: string
      nameAvailable:
        description: The value which indicates whether the provided name is available.
        readOnly: true
        type: boolean
      reason:
        description: The reason for unavailability.
        enum:
          - Invalid
          - AlreadyExists
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: IotHubNameUnavailabilityReason
    type: object
  IotHubProperties:
    description: The properties of an IoT hub.
    properties:
      authorizationPolicies:
        description: The shared access policies you can use to secure a connection to the IoT hub.
        items:
          $ref: "#/definitions/SharedAccessSignatureAuthorizationRule"
        type: array
      cloudToDevice:
        $ref: "#/definitions/CloudToDeviceProperties"
      comments:
        description: IoT hub comments.
        type: string
      deviceStreams:
        description: The device streams properties of iothub.
        properties:
          streamingEndpoints:
            description: List of Device Streams Endpoints.
            items:
              type: string
            type: array
        type: object
      enableFileUploadNotifications:
        description: If True, file upload notifications are enabled.
        type: boolean
      eventHubEndpoints:
        additionalProperties:
          $ref: "#/definitions/EventHubProperties"
        description: The Event Hub-compatible endpoint properties. The only possible keys to this dictionary is events. This key has to be present in the dictionary while making create or update calls for the IoT hub.
        type: object
      features:
        description: The capabilities and features enabled for the IoT hub.
        enum:
          - None
          - DeviceManagement
        type: string
        x-ms-enum:
          modelAsString: true
          name: Capabilities
      hostName:
        description: The name of the host.
        readOnly: true
        type: string
      ipFilterRules:
        description: The IP filter rules.
        items:
          $ref: "#/definitions/IpFilterRule"
        type: array
      locations:
        description: Primary and secondary location for iot hub
        items:
          $ref: "#/definitions/IotHubLocationDescription"
        readOnly: true
        type: array
      messagingEndpoints:
        additionalProperties:
          $ref: "#/definitions/MessagingEndpointProperties"
        description: The messaging endpoint properties for the file upload notification queue.
        type: object
      provisioningState:
        description: The provisioning state.
        readOnly: true
        type: string
      routing:
        $ref: "#/definitions/RoutingProperties"
      state:
        description: The hub state.
        readOnly: true
        type: string
      storageEndpoints:
        additionalProperties:
          $ref: "#/definitions/StorageEndpointProperties"
        description: The list of Azure Storage endpoints where you can upload files. Currently you can configure only one Azure Storage account and that MUST have its key as $default. Specifying more than one storage account causes an error to be thrown. Not specifying a value for this property when the enableFileUploadNotifications property is set to True, causes an error to be thrown.
        type: object
    type: object
  IotHubQuotaMetricInfo:
    description: Quota metrics properties.
    properties:
      currentValue:
        description: The current value for the quota metric.
        format: int64
        readOnly: true
        type: integer
      maxValue:
        description: The maximum value of the quota metric.
        format: int64
        readOnly: true
        type: integer
      name:
        description: The name of the quota metric.
        readOnly: true
        type: string
    type: object
  IotHubQuotaMetricInfoListResult:
    description: The JSON-serialized array of IotHubQuotaMetricInfo objects with a next link.
    properties:
      nextLink:
        description: The next link.
        readOnly: true
        type: string
      value:
        description: The array of quota metrics objects.
        items:
          $ref: "#/definitions/IotHubQuotaMetricInfo"
        type: array
    type: object
  IotHubSkuDescription:
    description: SKU properties.
    properties:
      capacity:
        $ref: "#/definitions/IotHubCapacity"
        description: IotHub capacity
      resourceType:
        description: The type of the resource.
        readOnly: true
        type: string
      sku:
        $ref: "#/definitions/IotHubSkuInfo"
        description: The type of the resource.
    required:
      - sku
      - capacity
    type: object
  IotHubSkuDescriptionListResult:
    description: The JSON-serialized array of IotHubSkuDescription objects with a next link.
    properties:
      nextLink:
        description: The next link.
        readOnly: true
        type: string
      value:
        description: The array of IotHubSkuDescription.
        items:
          $ref: "#/definitions/IotHubSkuDescription"
        type: array
    type: object
  IotHubSkuInfo:
    description: Information about the SKU of the IoT hub.
    properties:
      capacity:
        description: "The number of provisioned IoT Hub units. See: https://docs.microsoft.com/azure/azure-subscription-service-limits#iot-hub-limits."
        format: int64
        type: integer
      name:
        description: The name of the SKU.
        enum:
          - F1
          - S1
          - S2
          - S3
          - B1
          - B2
          - B3
        type: string
        x-ms-enum:
          modelAsString: true
          name: IotHubSku
      tier:
        description: The billing tier for the IoT hub.
        enum:
          - Free
          - Standard
          - Basic
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: IotHubSkuTier
    required:
      - name
    type: object
  IpFilterRule:
    description: The IP filter rules for the IoT hub.
    properties:
      action:
        description: The desired action for requests captured by this rule.
        enum:
          - Accept
          - Reject
        type: string
        x-ms-enum:
          modelAsString: false
          name: IpFilterActionType
      filterName:
        description: The name of the IP filter rule.
        type: string
      ipMask:
        description: A string that contains the IP address range in CIDR notation for the rule.
        type: string
    required:
      - filterName
      - action
      - ipMask
    type: object
  JobResponse:
    description: The properties of the Job Response object.
    properties:
      endTimeUtc:
        description: The time the job stopped processing.
        format: date-time-rfc1123
        readOnly: true
        type: string
      failureReason:
        description: If status == failed, this string containing the reason for the failure.
        readOnly: true
        type: string
      jobId:
        description: The job identifier.
        readOnly: true
        type: string
      parentJobId:
        description: The job identifier of the parent job, if any.
        readOnly: true
        type: string
      startTimeUtc:
        description: The start time of the job.
        format: date-time-rfc1123
        readOnly: true
        type: string
      status:
        description: The status of the job.
        enum:
          - unknown
          - enqueued
          - running
          - completed
          - failed
          - cancelled
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: false
          name: JobStatus
      statusMessage:
        description: The status message for the job.
        readOnly: true
        type: string
      type:
        description: The type of the job.
        enum:
          - unknown
          - export
          - import
          - backup
          - readDeviceProperties
          - writeDeviceProperties
          - updateDeviceConfiguration
          - rebootDevice
          - factoryResetDevice
          - firmwareUpdate
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: JobType
    type: object
  JobResponseListResult:
    description: The JSON-serialized array of JobResponse objects with a next link.
    properties:
      nextLink:
        description: The next link.
        readOnly: true
        type: string
      value:
        description: The array of JobResponse objects.
        items:
          $ref: "#/definitions/JobResponse"
        type: array
    type: object
  MatchedRoute:
    description: Routes that matched
    properties:
      properties:
        $ref: "#/definitions/RouteProperties"
        description: Properties of routes that matched
    type: object
  MessagingEndpointProperties:
    description: The properties of the messaging endpoints used by this IoT hub.
    properties:
      lockDurationAsIso8601:
        description: "The lock duration. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload."
        format: duration
        type: string
      maxDeliveryCount:
        description: "The number of times the IoT hub attempts to deliver a message. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload."
        format: int32
        maximum: 100
        minimum: 1
        type: integer
      ttlAsIso8601:
        description: "The period of time for which a message is available to consume before it is expired by the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload."
        format: duration
        type: string
    type: object
  Name:
    description: Name of Iot Hub type
    properties:
      localizedValue:
        description: Localized value of name
        type: string
      value:
        description: IotHub type
        type: string
    type: object
  Operation:
    description: IoT Hub REST API operation
    properties:
      display:
        description: The object that represents the operation.
        properties:
          description:
            description: Description of the operation
            readOnly: true
            type: string
          operation:
            description: Name of the operation
            readOnly: true
            type: string
          provider:
            description: "Service provider: Microsoft Devices"
            readOnly: true
            type: string
          resource:
            description: "Resource Type: IotHubs"
            readOnly: true
            type: string
      name:
        description: "Operation name: {provider}/{resource}/{read | write | action | delete}"
        readOnly: true
        type: string
    type: object
  OperationInputs:
    description: Input values.
    properties:
      name:
        description: The name of the IoT hub to check.
        type: string
    required:
      - name
    type: object
  OperationListResult:
    description: Result of the request to list IoT Hub operations. It contains a list of operations and a URL link to get the next set of results.
    properties:
      nextLink:
        description: URL to get the next set of operation list results if there are any.
        readOnly: true
        type: string
      value:
        description: List of IoT Hub operations supported by the Microsoft.Devices resource provider.
        items:
          $ref: "#/definitions/Operation"
        readOnly: true
        type: array
  RegistryStatistics:
    description: Identity registry statistics.
    properties:
      disabledDeviceCount:
        description: The count of disabled devices in the identity registry.
        format: int64
        readOnly: true
        type: integer
      enabledDeviceCount:
        description: The count of enabled devices in the identity registry.
        format: int64
        readOnly: true
        type: integer
      totalDeviceCount:
        description: The total count of devices in the identity registry.
        format: int64
        readOnly: true
        type: integer
    type: object
  Resource:
    description: The common properties of an Azure resource.
    properties:
      id:
        description: The resource identifier.
        readOnly: true
        type: string
      location:
        description: The resource location.
        type: string
      name:
        description: The resource name.
        pattern: ^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{2,49}[a-zA-Z0-9]$
        readOnly: true
        type: string
      tags:
        additionalProperties:
          type: string
        description: The resource tags.
        type: object
      type:
        description: The resource type.
        readOnly: true
        type: string
    required:
      - location
    x-ms-azure-resource: true
  RouteCompilationError:
    description: Compilation error when evaluating route
    properties:
      location:
        $ref: "#/definitions/RouteErrorRange"
        description: Location where the route error happened
      message:
        description: Route error message
        type: string
      severity:
        description: Severity of the route error
        enum:
          - error
          - warning
        type: string
        x-ms-enum:
          modelAsString: true
          name: RouteErrorSeverity
    type: object
  RouteErrorPosition:
    description: Position where the route error happened
    properties:
      column:
        description: Column where the route error happened
        format: int32
        type: integer
      line:
        description: Line where the route error happened
        format: int32
        type: integer
    type: object
  RouteErrorRange:
    description: Range of route errors
    properties:
      end:
        $ref: "#/definitions/RouteErrorPosition"
        description: End where the route error happened
      start:
        $ref: "#/definitions/RouteErrorPosition"
        description: Start where the route error happened
    type: object
  RouteProperties:
    description: The properties of a routing rule that your IoT hub uses to route messages to endpoints.
    properties:
      condition:
        description: "The condition that is evaluated to apply the routing rule. If no condition is provided, it evaluates to true by default. For grammar, see: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-query-language"
        type: string
      endpointNames:
        description: The list of endpoints to which messages that satisfy the condition are routed. Currently only one endpoint is allowed.
        items:
          type: string
        maxItems: 1
        minItems: 1
        type: array
      isEnabled:
        description: Used to specify whether a route is enabled.
        type: boolean
      name:
        description: The name of the route. The name can only include alphanumeric characters, periods, underscores, hyphens, has a maximum length of 64 characters, and must be unique.
        pattern: ^[A-Za-z0-9-._]{1,64}$
        type: string
      source:
        description: The source that the routing rule is to be applied to, such as DeviceMessages.
        enum:
          - Invalid
          - DeviceMessages
          - TwinChangeEvents
          - DeviceLifecycleEvents
          - DeviceJobLifecycleEvents
          - DigitalTwinChangeEvents
        type: string
        x-ms-enum:
          modelAsString: true
          name: RoutingSource
    required:
      - name
      - endpointNames
      - source
      - isEnabled
    type: object
  RoutingEndpoints:
    description: The properties related to the custom endpoints to which your IoT hub routes messages based on the routing rules. A maximum of 10 custom endpoints are allowed across all endpoint types for paid hubs and only 1 custom endpoint is allowed across all endpoint types for free hubs.
    properties:
      eventHubs:
        description: The list of Event Hubs endpoints that IoT hub routes messages to, based on the routing rules. This list does not include the built-in Event Hubs endpoint.
        items:
          $ref: "#/definitions/RoutingEventHubProperties"
        type: array
      serviceBusQueues:
        description: The list of Service Bus queue endpoints that IoT hub routes the messages to, based on the routing rules.
        items:
          $ref: "#/definitions/RoutingServiceBusQueueEndpointProperties"
        type: array
      serviceBusTopics:
        description: The list of Service Bus topic endpoints that the IoT hub routes the messages to, based on the routing rules.
        items:
          $ref: "#/definitions/RoutingServiceBusTopicEndpointProperties"
        type: array
      storageContainers:
        description: The list of storage container endpoints that IoT hub routes messages to, based on the routing rules.
        items:
          $ref: "#/definitions/RoutingStorageContainerProperties"
        type: array
    type: object
  RoutingEventHubProperties:
    description: The properties related to an event hub endpoint.
    properties:
      connectionString:
        description: "The connection string of the event hub endpoint. "
        type: string
      name:
        description: "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types."
        pattern: ^[A-Za-z0-9-._]{1,64}$
        type: string
      resourceGroup:
        description: The name of the resource group of the event hub endpoint.
        type: string
      subscriptionId:
        description: The subscription identifier of the event hub endpoint.
        type: string
    required:
      - name
      - connectionString
    type: object
  RoutingMessage:
    description: Routing message
    properties:
      appProperties:
        additionalProperties:
          type: string
        description: App properties
        type: object
      body:
        description: Body of routing message
        type: string
      systemProperties:
        additionalProperties:
          type: string
        description: System properties
        type: object
    type: object
  RoutingProperties:
    description: "The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging"
    properties:
      endpoints:
        $ref: "#/definitions/RoutingEndpoints"
      enrichments:
        description: "The list of user-provided enrichments that the IoT hub applies to messages to be delivered to built-in and custom endpoints. See: https://aka.ms/iotmsgenrich"
        items:
          $ref: "#/definitions/EnrichmentProperties"
        type: array
      fallbackRoute:
        $ref: "#/definitions/FallbackRouteProperties"
        description: The properties of the route that is used as a fall-back route when none of the conditions specified in the 'routes' section are met. This is an optional parameter. When this property is not set, the messages which do not meet any of the conditions specified in the 'routes' section get routed to the built-in eventhub endpoint.
      routes:
        description: The list of user-provided routing rules that the IoT hub uses to route messages to built-in and custom endpoints. A maximum of 100 routing rules are allowed for paid hubs and a maximum of 5 routing rules are allowed for free hubs.
        items:
          $ref: "#/definitions/RouteProperties"
        type: array
    type: object
  RoutingServiceBusQueueEndpointProperties:
    description: The properties related to service bus queue endpoint types.
    properties:
      connectionString:
        description: The connection string of the service bus queue endpoint.
        type: string
      name:
        description: "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types. The name need not be the same as the actual queue name."
        pattern: ^[A-Za-z0-9-._]{1,64}$
        type: string
      resourceGroup:
        description: The name of the resource group of the service bus queue endpoint.
        type: string
      subscriptionId:
        description: The subscription identifier of the service bus queue endpoint.
        type: string
    required:
      - name
      - connectionString
    type: object
  RoutingServiceBusTopicEndpointProperties:
    description: The properties related to service bus topic endpoint types.
    properties:
      connectionString:
        description: The connection string of the service bus topic endpoint.
        type: string
      name:
        description: "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types.  The name need not be the same as the actual topic name."
        pattern: ^[A-Za-z0-9-._]{1,64}$
        type: string
      resourceGroup:
        description: The name of the resource group of the service bus topic endpoint.
        type: string
      subscriptionId:
        description: The subscription identifier of the service bus topic endpoint.
        type: string
    required:
      - name
      - connectionString
    type: object
  RoutingStorageContainerProperties:
    description: The properties related to a storage container endpoint.
    properties:
      batchFrequencyInSeconds:
        description: Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds.
        format: int32
        maximum: 720
        minimum: 60
        type: integer
      connectionString:
        description: The connection string of the storage account.
        type: string
      containerName:
        description: The name of storage container in the storage account.
        type: string
      encoding:
        description: Encoding that is used to serialize messages to blobs. Supported values are 'avro', 'avrodeflate', and 'JSON'. Default value is 'avro'.
        enum:
          - Avro
          - AvroDeflate
          - JSON
        type: string
      fileNameFormat:
        description: File name format for the blob. Default format is {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}. All parameters are mandatory but can be reordered.
        type: string
      maxChunkSizeInBytes:
        description: Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB).
        format: int32
        maximum: 524288000
        minimum: 10485760
        type: integer
      name:
        description: "The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types."
        pattern: ^[A-Za-z0-9-._]{1,64}$
        type: string
      resourceGroup:
        description: The name of the resource group of the storage account.
        type: string
      subscriptionId:
        description: The subscription identifier of the storage account.
        type: string
    required:
      - name
      - connectionString
      - containerName
    type: object
  RoutingTwin:
    description: Twin reference input parameter. This is an optional parameter
    properties:
      properties:
        properties:
          desired:
            description: Twin desired properties
            type: object
          reported:
            description: Twin desired properties
            type: object
      tags:
        description: Twin Tags
        type: object
    type: object
  SharedAccessSignatureAuthorizationRule:
    description: The properties of an IoT hub shared access policy.
    properties:
      keyName:
        description: The name of the shared access policy.
        type: string
      primaryKey:
        description: The primary key.
        type: string
      rights:
        description: The permissions assigned to the shared access policy.
        enum:
          - RegistryRead
          - RegistryWrite
          - ServiceConnect
          - DeviceConnect
          - RegistryRead, RegistryWrite
          - RegistryRead, ServiceConnect
          - RegistryRead, DeviceConnect
          - RegistryWrite, ServiceConnect
          - RegistryWrite, DeviceConnect
          - ServiceConnect, DeviceConnect
          - RegistryRead, RegistryWrite, ServiceConnect
          - RegistryRead, RegistryWrite, DeviceConnect
          - RegistryRead, ServiceConnect, DeviceConnect
          - RegistryWrite, ServiceConnect, DeviceConnect
          - RegistryRead, RegistryWrite, ServiceConnect, DeviceConnect
        type: string
        x-ms-enum:
          modelAsString: false
          name: AccessRights
      secondaryKey:
        description: The secondary key.
        type: string
    required:
      - keyName
      - rights
    type: object
  SharedAccessSignatureAuthorizationRuleListResult:
    description: The list of shared access policies with a next link.
    properties:
      nextLink:
        description: The next link.
        readOnly: true
        type: string
      value:
        description: The list of shared access policies.
        items:
          $ref: "#/definitions/SharedAccessSignatureAuthorizationRule"
        type: array
    type: object
  StorageEndpointProperties:
    description: The properties of the Azure Storage endpoint for file upload.
    properties:
      connectionString:
        description: The connection string for the Azure Storage account to which files are uploaded.
        type: string
      containerName:
        description: The name of the root container where you upload files. The container need not exist but should be creatable using the connectionString specified.
        type: string
      sasTtlAsIso8601:
        description: "The period of time for which the SAS URI generated by IoT Hub for file upload is valid. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload#file-upload-notification-configuration-options."
        format: duration
        type: string
    required:
      - connectionString
      - containerName
    type: object
  TagsResource:
    description: A container holding only the Tags for a resource, allowing the user to update the tags on an IoT Hub instance.
    properties:
      tags:
        additionalProperties:
          type: string
        description: Resource tags
  TestAllRoutesInput:
    description: Input for testing all routes
    properties:
      message:
        $ref: "#/definitions/RoutingMessage"
        description: Routing message
      routingSource:
        description: Routing source
        enum:
          - Invalid
          - DeviceMessages
          - TwinChangeEvents
          - DeviceLifecycleEvents
          - DeviceJobLifecycleEvents
          - DigitalTwinChangeEvents
        type: string
        x-ms-enum:
          modelAsString: true
          name: RoutingSource
      twin:
        $ref: "#/definitions/RoutingTwin"
        description: Routing Twin Reference
    type: object
  TestAllRoutesResult:
    description: Result of testing all routes
    properties:
      routes:
        description: JSON-serialized array of matched routes
        items:
          $ref: "#/definitions/MatchedRoute"
        type: array
    type: object
  TestRouteInput:
    description: Input for testing route
    properties:
      message:
        $ref: "#/definitions/RoutingMessage"
        description: Routing message
      route:
        $ref: "#/definitions/RouteProperties"
        description: Route properties
      twin:
        $ref: "#/definitions/RoutingTwin"
        description: Routing Twin Reference
    required:
      - route
    type: object
  TestRouteResult:
    description: Result of testing one route
    properties:
      details:
        $ref: "#/definitions/TestRouteResultDetails"
        description: Detailed result of testing route
      result:
        description: Result of testing route
        enum:
          - undefined
          - "false"
          - "true"
        type: string
        x-ms-enum:
          modelAsString: true
          name: TestResultStatus
    type: object
  TestRouteResultDetails:
    description: Detailed result of testing a route
    properties:
      compilationErrors:
        description: JSON-serialized list of route compilation errors
        items:
          $ref: "#/definitions/RouteCompilationError"
        type: array
    type: object
  UserSubscriptionQuota:
    description: User subscription quota response
    properties:
      currentValue:
        description: Current number of IotHub type
        format: int32
        type: integer
      id:
        description: IotHub type id
        type: string
      limit:
        description: Numerical limit on IotHub type
        format: int32
        type: integer
      name:
        $ref: "#/definitions/Name"
        description: IotHub type
      type:
        description: Response type
        type: string
      unit:
        description: Unit of IotHub type
        type: string
    type: object
  UserSubscriptionQuotaListResult:
    description: Json-serialized array of User subscription quota response
    properties:
      nextLink:
        readOnly: true
        type: string
      value:
        items:
          $ref: "#/definitions/UserSubscriptionQuota"
        type: array
    type: object
