diff --git a/schemas/2017-08-21-preview/Microsoft.Devices.json b/schemas/2017-08-21-preview/Microsoft.Devices.json new file mode 100644 index 0000000000..b8675614f6 --- /dev/null +++ b/schemas/2017-08-21-preview/Microsoft.Devices.json @@ -0,0 +1,342 @@ +{ + "id": "https://schema.management.azure.com/schemas/2017-08-21-preview/Microsoft.Devices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Devices", + "description": "Microsoft Devices Resource Types", + "resourceDefinitions": { + "provisioningServices": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-08-21-preview" + ] + }, + "etag": { + "type": "string", + "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." + }, + "location": { + "type": "string", + "description": "The resource location." + }, + "name": { + "type": "string", + "description": "Name of provisioning service to create or update." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/IotDpsPropertiesDescription" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/provisioningServices_certificates_childResource" + } + ] + } + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/IotDpsSkuInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of possible provisioning service SKUs." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Devices/provisioningServices" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "sku", + "type" + ], + "description": "Microsoft.Devices/provisioningServices" + }, + "provisioningServices_certificates": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-08-21-preview" + ] + }, + "certificate": { + "type": "string", + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + }, + "name": { + "type": "string", + "description": "The name of the certificate create or update." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Devices/provisioningServices/certificates" + ] + } + }, + "required": [ + "apiVersion", + "name", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/certificates" + } + }, + "definitions": { + "IotDpsPropertiesDescription": { + "type": "object", + "properties": { + "allocationPolicy": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Hashed", + "GeoLatency", + "Static" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Allocation policy to be used by this provisioning service." + }, + "authorizationPolicies": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleAccessRightsDescription" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "iotHubs": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/IotHubDefinitionDescription" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of IoT hubs associated with this provisioning service." + }, + "provisioningState": { + "type": "string", + "description": "The ARM provisioning state of the provisioning service." + }, + "state": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Activating", + "Active", + "Deleting", + "Deleted", + "ActivationFailed", + "DeletionFailed", + "Transitioning", + "Suspending", + "Suspended", + "Resuming", + "FailingOver", + "FailoverFailed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Current state of the provisioning service." + } + } + }, + "IotDpsSkuInfo": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of services of the selected tier allowed in the subscription." + }, + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "S1" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "description": "List of possible provisioning service SKUs." + }, + "IotHubDefinitionDescription": { + "type": "object", + "properties": { + "allocationWeight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "applyAllocationPolicy": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "connectionString": { + "type": "string", + "description": "Connection string og the IoT hub." + }, + "location": { + "type": "string", + "description": "ARM region of the IoT hub." + } + }, + "required": [ + "connectionString", + "location" + ], + "description": "Description of the IoT hub." + }, + "provisioningServices_certificates_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-08-21-preview" + ] + }, + "certificate": { + "type": "string", + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + }, + "name": { + "type": "string", + "description": "The name of the certificate create or update." + }, + "type": { + "type": "string", + "enum": [ + "certificates" + ] + } + }, + "required": [ + "apiVersion", + "name", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/certificates" + }, + "SharedAccessSignatureAuthorizationRuleAccessRightsDescription": { + "type": "object", + "properties": { + "keyName": { + "type": "string", + "description": "Name of the key." + }, + "primaryKey": { + "type": "string", + "description": "Primary SAS key value." + }, + "rights": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ServiceConfig", + "EnrollmentRead", + "EnrollmentWrite", + "DeviceConnect", + "RegistrationStatusRead", + "RegistrationStatusWrite" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Rights that this key has." + }, + "secondaryKey": { + "type": "string", + "description": "Secondary SAS key value." + } + }, + "required": [ + "keyName", + "rights" + ], + "description": "Description of the shared access key." + } + } +} diff --git a/schemas/2017-11-15/Microsoft.Devices.json b/schemas/2017-11-15/Microsoft.Devices.json new file mode 100644 index 0000000000..ad5f22fbe4 --- /dev/null +++ b/schemas/2017-11-15/Microsoft.Devices.json @@ -0,0 +1,348 @@ +{ + "id": "https://schema.management.azure.com/schemas/2017-11-15/Microsoft.Devices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Devices", + "description": "Microsoft Devices Resource Types", + "resourceDefinitions": { + "provisioningServices": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-11-15" + ] + }, + "etag": { + "type": "string", + "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." + }, + "location": { + "type": "string", + "description": "The resource location." + }, + "name": { + "type": "string", + "description": "Name of provisioning service to create or update." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/IotDpsPropertiesDescription" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/provisioningServices_certificates_childResource" + } + ] + } + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/IotDpsSkuInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of possible provisioning service SKUs." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Devices/provisioningServices" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "sku", + "type" + ], + "description": "Microsoft.Devices/provisioningServices" + }, + "provisioningServices_certificates": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-11-15" + ] + }, + "certificate": { + "type": "string", + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + }, + "name": { + "type": "string", + "description": "The name of the certificate create or update." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Devices/provisioningServices/certificates" + ] + } + }, + "required": [ + "apiVersion", + "name", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/certificates" + } + }, + "definitions": { + "IotDpsPropertiesDescription": { + "type": "object", + "properties": { + "allocationPolicy": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Hashed", + "GeoLatency", + "Static" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Allocation policy to be used by this provisioning service." + }, + "authorizationPolicies": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleAccessRightsDescription" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of authorization keys for a provisioning service." + }, + "iotHubs": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/IotHubDefinitionDescription" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of IoT hubs associated with this provisioning service." + }, + "provisioningState": { + "type": "string", + "description": "The ARM provisioning state of the provisioning service." + }, + "state": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Activating", + "Active", + "Deleting", + "Deleted", + "ActivationFailed", + "DeletionFailed", + "Transitioning", + "Suspending", + "Suspended", + "Resuming", + "FailingOver", + "FailoverFailed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Current state of the provisioning service." + } + }, + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" + }, + "IotDpsSkuInfo": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of units to provision" + }, + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "S1" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sku name." + } + }, + "description": "List of possible provisioning service SKUs." + }, + "IotHubDefinitionDescription": { + "type": "object", + "properties": { + "allocationWeight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Weight to apply for a given IoT hub." + }, + "applyAllocationPolicy": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Flag for applying allocationPolicy or not for a given IoT hub." + }, + "connectionString": { + "type": "string", + "description": "Connection string of the IoT hub." + }, + "location": { + "type": "string", + "description": "ARM region of the IoT hub." + } + }, + "required": [ + "connectionString", + "location" + ], + "description": "Description of the IoT hub." + }, + "provisioningServices_certificates_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2017-11-15" + ] + }, + "certificate": { + "type": "string", + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + }, + "name": { + "type": "string", + "description": "The name of the certificate create or update." + }, + "type": { + "type": "string", + "enum": [ + "certificates" + ] + } + }, + "required": [ + "apiVersion", + "name", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/certificates" + }, + "SharedAccessSignatureAuthorizationRuleAccessRightsDescription": { + "type": "object", + "properties": { + "keyName": { + "type": "string", + "description": "Name of the key." + }, + "primaryKey": { + "type": "string", + "description": "Primary SAS key value." + }, + "rights": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ServiceConfig", + "EnrollmentRead", + "EnrollmentWrite", + "DeviceConnect", + "RegistrationStatusRead", + "RegistrationStatusWrite" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Rights that this key has." + }, + "secondaryKey": { + "type": "string", + "description": "Secondary SAS key value." + } + }, + "required": [ + "keyName", + "rights" + ], + "description": "Description of the shared access key." + } + } +} diff --git a/schemas/2018-01-22/Microsoft.Devices.json b/schemas/2018-01-22/Microsoft.Devices.json index 73d64870f0..cf57d3509a 100644 --- a/schemas/2018-01-22/Microsoft.Devices.json +++ b/schemas/2018-01-22/Microsoft.Devices.json @@ -4,7 +4,7 @@ "title": "Microsoft.Devices", "description": "Microsoft Devices Resource Types", "resourceDefinitions": { - "IotHubs": { + "provisioningServices": { "type": "object", "properties": { "apiVersion": { @@ -23,25 +23,25 @@ }, "name": { "type": "string", - "description": "The name of the IoT hub." + "description": "Name of provisioning service to create or update." }, "properties": { "oneOf": [ { - "$ref": "#/definitions/IotHubProperties" + "$ref": "#/definitions/IotDpsPropertiesDescription" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The properties of an IoT hub." + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" }, "resources": { "type": "array", "items": { "oneOf": [ { - "$ref": "#/definitions/IotHubs_certificates_childResource" + "$ref": "#/definitions/provisioningServices_certificates_childResource" } ] } @@ -49,13 +49,13 @@ "sku": { "oneOf": [ { - "$ref": "#/definitions/IotHubSkuInfo" + "$ref": "#/definitions/IotDpsSkuInfo" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Information about the SKU of the IoT hub." + "description": "List of possible provisioning service SKUs." }, "tags": { "oneOf": [ @@ -75,7 +75,7 @@ "type": { "type": "string", "enum": [ - "Microsoft.Devices/IotHubs" + "Microsoft.Devices/provisioningServices" ] } }, @@ -87,9 +87,9 @@ "sku", "type" ], - "description": "Microsoft.Devices/IotHubs" + "description": "Microsoft.Devices/provisioningServices" }, - "IotHubs_certificates": { + "provisioningServices_certificates": { "type": "object", "properties": { "apiVersion": { @@ -100,424 +100,16 @@ }, "certificate": { "type": "string", - "description": "base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." }, "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The name of the certificate" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Devices/IotHubs/certificates" - ] - } - }, - "required": [ - "apiVersion", - "name", - "type" - ], - "description": "Microsoft.Devices/IotHubs/certificates" - }, - "IotHubs_eventHubEndpoints_ConsumerGroups": { - "type": "object", - "properties": { - "apiVersion": { - "type": "string", - "enum": [ - "2018-01-22" - ] - }, - "name": { - "type": "string", - "description": "The name of the consumer group to add." - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Devices/IotHubs/eventHubEndpoints/ConsumerGroups" - ] - } - }, - "required": [ - "apiVersion", - "name", - "type" - ], - "description": "Microsoft.Devices/IotHubs/eventHubEndpoints/ConsumerGroups" - } - }, - "definitions": { - "CloudToDeviceProperties": { - "type": "object", - "properties": { - "defaultTtlAsIso8601": { - "type": "string", - "format": "duration", - "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." - }, - "feedback": { - "oneOf": [ - { - "$ref": "#/definitions/FeedbackProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The properties of the feedback queue for cloud-to-device messages." - }, - "maxDeliveryCount": { - "oneOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 100 - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - } - }, - "description": "The IoT hub cloud-to-device messaging properties." - }, - "EventHubProperties": { - "type": "object", - "properties": { - "partitionCount": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "retentionTimeInDays": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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" - } - }, - "description": "The properties of the provisioned Event Hub-compatible endpoint used by the IoT hub." - }, - "FallbackRouteProperties": { - "type": "object", - "properties": { - "condition": { - "type": "string", - "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" - }, - "endpointNames": { - "oneOf": [ - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The list of endpoints to which the messages that satisfy the condition are routed to. Currently only 1 endpoint is allowed." - }, - "isEnabled": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Used to specify whether the fallback route is enabled." - }, - "name": { - "type": "string", - "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." - }, - "source": { - "oneOf": [ - { - "type": "string", - "enum": [ - "DeviceMessages", - "TwinChangeEvents", - "DeviceLifecycleEvents", - "DeviceJobLifecycleEvents" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The source to which the routing rule is to be applied to. For example, DeviceMessages." - } - }, - "required": [ - "endpointNames", - "isEnabled", - "source" - ], - "description": "The properties of the fallback route. IoT Hub uses these properties when it routes messages to the fallback endpoint." - }, - "FeedbackProperties": { - "type": "object", - "properties": { - "lockDurationAsIso8601": { - "type": "string", - "format": "duration", - "description": "The lock duration for the feedback queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages." - }, - "maxDeliveryCount": { - "oneOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 100 - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "ttlAsIso8601": { - "type": "string", - "format": "duration", - "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." - } - }, - "description": "The properties of the feedback queue for cloud-to-device messages." - }, - "IotHubProperties": { - "type": "object", - "properties": { - "authorizationPolicies": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The shared access policies you can use to secure a connection to the IoT hub." - }, - "cloudToDevice": { - "oneOf": [ - { - "$ref": "#/definitions/CloudToDeviceProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The IoT hub cloud-to-device messaging properties." - }, - "comments": { - "type": "string", - "description": "IoT hub comments." - }, - "enableFileUploadNotifications": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "If True, file upload notifications are enabled." - }, - "eventHubEndpoints": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/EventHubProperties" - }, - "properties": {} - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The Event Hub-compatible endpoint properties. The possible keys to this dictionary are events and operationsMonitoringEvents. Both of these keys have to be present in the dictionary while making create or update calls for the IoT hub." - }, - "features": { - "oneOf": [ - { - "type": "string", - "enum": [ - "None", - "DeviceManagement" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The capabilities and features enabled for the IoT hub." - }, - "ipFilterRules": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/IpFilterRule" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The IP filter rules." - }, - "messagingEndpoints": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/MessagingEndpointProperties" - }, - "properties": {} - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The messaging endpoint properties for the file upload notification queue." - }, - "operationsMonitoringProperties": { - "oneOf": [ - { - "$ref": "#/definitions/OperationsMonitoringProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The operations monitoring properties for the IoT hub. The possible keys to the dictionary are Connections, DeviceTelemetry, C2DCommands, DeviceIdentityOperations, FileUploadOperations, Routes, D2CTwinOperations, C2DTwinOperations, TwinQueries, JobsOperations, DirectMethods." - }, - "routing": { - "oneOf": [ - { - "$ref": "#/definitions/RoutingProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging" - }, - "storageEndpoints": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/StorageEndpointProperties" - }, - "properties": {} - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - } - }, - "description": "The properties of an IoT hub." - }, - "IotHubSkuInfo": { - "type": "object", - "properties": { - "capacity": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The number of provisioned IoT Hub units. See: https://docs.microsoft.com/azure/azure-subscription-service-limits#iot-hub-limits." - }, - "name": { - "oneOf": [ - { - "type": "string", - "enum": [ - "F1", - "S1", - "S2", - "S3" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The name of the SKU." - } - }, - "required": [ - "name" - ], - "description": "Information about the SKU of the IoT hub." - }, - "IotHubs_certificates_childResource": { - "type": "object", - "properties": { - "apiVersion": { - "type": "string", - "enum": [ - "2018-01-22" - ] - }, - "certificate": { "type": "string", - "description": "base-64 representation of the X509 leaf certificate .cer file or just .pem file content." - }, - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The name of the certificate" + "description": "The name of the certificate create or update." }, "type": { "type": "string", "enum": [ - "certificates" + "Microsoft.Devices/provisioningServices/certificates" ] } }, @@ -526,518 +118,231 @@ "name", "type" ], - "description": "Microsoft.Devices/IotHubs/certificates" - }, - "IpFilterRule": { + "description": "Microsoft.Devices/provisioningServices/certificates" + } + }, + "definitions": { + "IotDpsPropertiesDescription": { "type": "object", "properties": { - "action": { + "allocationPolicy": { "oneOf": [ { "type": "string", "enum": [ - "Accept", - "Reject" + "Hashed", + "GeoLatency", + "Static" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The desired action for requests captured by this rule." - }, - "filterName": { - "type": "string", - "description": "The name of the IP filter rule." - }, - "ipMask": { - "type": "string", - "description": "A string that contains the IP address range in CIDR notation for the rule." - } - }, - "required": [ - "action", - "filterName", - "ipMask" - ], - "description": "The IP filter rules for the IoT hub." - }, - "MessagingEndpointProperties": { - "type": "object", - "properties": { - "lockDurationAsIso8601": { - "type": "string", - "format": "duration", - "description": "The lock duration. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload." - }, - "maxDeliveryCount": { - "oneOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 100 - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "ttlAsIso8601": { - "type": "string", - "format": "duration", - "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." - } - }, - "description": "The properties of the messaging endpoints used by this IoT hub." - }, - "OperationsMonitoringProperties": { - "type": "object", - "properties": { - "events": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "enum": [ - "None", - "Error", - "Information", - "Error, Information" - ] - }, - "properties": {} - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ] - } - }, - "description": "The operations monitoring properties for the IoT hub. The possible keys to the dictionary are Connections, DeviceTelemetry, C2DCommands, DeviceIdentityOperations, FileUploadOperations, Routes, D2CTwinOperations, C2DTwinOperations, TwinQueries, JobsOperations, DirectMethods." - }, - "RouteProperties": { - "type": "object", - "properties": { - "condition": { - "type": "string", - "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" + "description": "Allocation policy to be used by this provisioning service." }, - "endpointNames": { + "authorizationPolicies": { "oneOf": [ { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleAccessRightsDescription" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The list of endpoints to which messages that satisfy the condition are routed. Currently only one endpoint is allowed." + "description": "List of authorization keys for a provisioning service." }, - "isEnabled": { + "iotHubs": { "oneOf": [ { - "type": "boolean" + "type": "array", + "items": { + "$ref": "#/definitions/IotHubDefinitionDescription" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Used to specify whether a route is enabled." + "description": "List of IoT hubs associated with this provisioning service." }, - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." + "provisioningState": { + "type": "string", + "description": "The ARM provisioning state of the provisioning service." }, - "source": { + "state": { "oneOf": [ { "type": "string", "enum": [ - "DeviceMessages", - "TwinChangeEvents", - "DeviceLifecycleEvents", - "DeviceJobLifecycleEvents" + "Activating", + "Active", + "Deleting", + "Deleted", + "ActivationFailed", + "DeletionFailed", + "Transitioning", + "Suspending", + "Suspended", + "Resuming", + "FailingOver", + "FailoverFailed" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The source that the routing rule is to be applied to, such as DeviceMessages." + "description": "Current state of the provisioning service." } }, - "required": [ - "endpointNames", - "isEnabled", - "name", - "source" - ], - "description": "The properties of a routing rule that your IoT hub uses to route messages to endpoints." + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" }, - "RoutingEndpoints": { + "IotDpsSkuInfo": { "type": "object", "properties": { - "eventHubs": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/RoutingEventHubProperties" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "serviceBusQueues": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/RoutingServiceBusQueueEndpointProperties" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The list of Service Bus queue endpoints that IoT hub routes the messages to, based on the routing rules." - }, - "serviceBusTopics": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/RoutingServiceBusTopicEndpointProperties" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The list of Service Bus topic endpoints that the IoT hub routes the messages to, based on the routing rules." - }, - "storageContainers": { + "capacity": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/RoutingStorageContainerProperties" - } + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The list of storage container endpoints that IoT hub routes messages to, based on the routing rules." - } - }, - "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." - }, - "RoutingEventHubProperties": { - "type": "object", - "properties": { - "connectionString": { - "type": "string", - "description": "The connection string of the event hub endpoint. " + "description": "The number of units to provision" }, "name": { "oneOf": [ { "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" + "enum": [ + "S1" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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, operationsMonitoringEvents, fileNotifications, $default. Endpoint names must be unique across endpoint types." - }, - "resourceGroup": { - "type": "string", - "description": "The name of the resource group of the event hub endpoint." - }, - "subscriptionId": { - "type": "string", - "description": "The subscription identifier of the event hub endpoint." + "description": "Sku name." } }, - "required": [ - "connectionString", - "name" - ], - "description": "The properties related to an event hub endpoint." + "description": "List of possible provisioning service SKUs." }, - "RoutingProperties": { + "IotHubDefinitionDescription": { "type": "object", "properties": { - "endpoints": { - "oneOf": [ - { - "$ref": "#/definitions/RoutingEndpoints" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "fallbackRoute": { - "oneOf": [ - { - "$ref": "#/definitions/FallbackRouteProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The properties of the fallback route. IoT Hub uses these properties when it routes messages to the fallback endpoint." - }, - "routes": { + "allocationWeight": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/RouteProperties" - } + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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." - } - }, - "description": "The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging" - }, - "RoutingServiceBusQueueEndpointProperties": { - "type": "object", - "properties": { - "connectionString": { - "type": "string", - "description": "The connection string of the service bus queue endpoint." + "description": "weight to apply for a given iot h." }, - "name": { + "applyAllocationPolicy": { "oneOf": [ { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" + "type": "boolean" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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, operationsMonitoringEvents, fileNotifications, $default. Endpoint names must be unique across endpoint types. The name need not be the same as the actual queue name." - }, - "resourceGroup": { - "type": "string", - "description": "The name of the resource group of the service bus queue endpoint." + "description": "flag for applying allocationPolicy or not for a given iot hub." }, - "subscriptionId": { - "type": "string", - "description": "The subscription identifier of the service bus queue endpoint." - } - }, - "required": [ - "connectionString", - "name" - ], - "description": "The properties related to service bus queue endpoint types." - }, - "RoutingServiceBusTopicEndpointProperties": { - "type": "object", - "properties": { "connectionString": { "type": "string", - "description": "The connection string of the service bus topic endpoint." - }, - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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, operationsMonitoringEvents, fileNotifications, $default. Endpoint names must be unique across endpoint types. The name need not be the same as the actual topic name." - }, - "resourceGroup": { - "type": "string", - "description": "The name of the resource group of the service bus topic endpoint." + "description": "Connection string og the IoT hub." }, - "subscriptionId": { + "location": { "type": "string", - "description": "The subscription identifier of the service bus topic endpoint." + "description": "ARM region of the IoT hub." } }, "required": [ "connectionString", - "name" + "location" ], - "description": "The properties related to service bus topic endpoint types." + "description": "Description of the IoT hub." }, - "RoutingStorageContainerProperties": { + "provisioningServices_certificates_childResource": { "type": "object", "properties": { - "batchFrequencyInSeconds": { - "oneOf": [ - { - "type": "integer", - "minimum": 60, - "maximum": 720 - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds." - }, - "connectionString": { - "type": "string", - "description": "The connection string of the storage account." - }, - "containerName": { - "type": "string", - "description": "The name of storage container in the storage account." - }, - "encoding": { + "apiVersion": { "type": "string", - "description": "Encoding that is used to serialize messages to blobs. Supported values are 'avro' and 'avroDeflate'. Default value is 'avro'." + "enum": [ + "2018-01-22" + ] }, - "fileNameFormat": { + "certificate": { "type": "string", - "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." - }, - "maxChunkSizeInBytes": { - "oneOf": [ - { - "type": "integer", - "minimum": 10485760, - "maximum": 524288000 - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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)." + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." }, "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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, operationsMonitoringEvents, fileNotifications, $default. Endpoint names must be unique across endpoint types." - }, - "resourceGroup": { "type": "string", - "description": "The name of the resource group of the storage account." + "description": "The name of the certificate create or update." }, - "subscriptionId": { + "type": { "type": "string", - "description": "The subscription identifier of the storage account." + "enum": [ + "certificates" + ] } }, "required": [ - "connectionString", - "containerName", - "name" + "apiVersion", + "name", + "type" ], - "description": "The properties related to a storage container endpoint." + "description": "Microsoft.Devices/provisioningServices/certificates" }, - "SharedAccessSignatureAuthorizationRule": { + "SharedAccessSignatureAuthorizationRuleAccessRightsDescription": { "type": "object", "properties": { "keyName": { "type": "string", - "description": "The name of the shared access policy." + "description": "Name of the key." }, "primaryKey": { "type": "string", - "description": "The primary key." + "description": "Primary SAS key value." }, "rights": { "oneOf": [ { "type": "string", "enum": [ - "RegistryRead", - "RegistryWrite", - "ServiceConnect", + "ServiceConfig", + "EnrollmentRead", + "EnrollmentWrite", "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" + "RegistrationStatusRead", + "RegistrationStatusWrite" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The permissions assigned to the shared access policy." + "description": "Rights that this key has." }, "secondaryKey": { "type": "string", - "description": "The secondary key." + "description": "Secondary SAS key value." } }, "required": [ "keyName", "rights" ], - "description": "The properties of an IoT hub shared access policy." - }, - "StorageEndpointProperties": { - "type": "object", - "properties": { - "connectionString": { - "type": "string", - "description": "The connection string for the Azure Storage account to which files are uploaded." - }, - "containerName": { - "type": "string", - "description": "The name of the root container where you upload files. The container need not exist but should be creatable using the connectionString specified." - }, - "sasTtlAsIso8601": { - "type": "string", - "format": "duration", - "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." - } - }, - "required": [ - "connectionString", - "containerName" - ], - "description": "The properties of the Azure Storage endpoint for file upload." + "description": "Description of the shared access key." } } -} \ No newline at end of file +} diff --git a/schemas/2020-01-01/Microsoft.Devices.json b/schemas/2020-01-01/Microsoft.Devices.json new file mode 100644 index 0000000000..c1a5f31a27 --- /dev/null +++ b/schemas/2020-01-01/Microsoft.Devices.json @@ -0,0 +1,412 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-01-01/Microsoft.Devices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Devices", + "description": "Microsoft Devices Resource Types", + "resourceDefinitions": { + "provisioningServices": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-01-01" + ] + }, + "etag": { + "type": "string", + "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." + }, + "location": { + "type": "string", + "description": "The resource location." + }, + "name": { + "type": "string", + "description": "Name of provisioning service to create or update." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/IotDpsPropertiesDescription" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/provisioningServices_certificates_childResource" + } + ] + } + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/IotDpsSkuInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of possible provisioning service SKUs." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Devices/provisioningServices" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "sku", + "type" + ], + "description": "Microsoft.Devices/provisioningServices" + }, + "provisioningServices_certificates": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-01-01" + ] + }, + "certificate": { + "type": "string", + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + }, + "name": { + "type": "string", + "description": "The name of the certificate create or update." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Devices/provisioningServices/certificates" + ] + } + }, + "required": [ + "apiVersion", + "name", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/certificates" + } + }, + "definitions": { + "IotDpsPropertiesDescription": { + "type": "object", + "properties": { + "allocationPolicy": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Hashed", + "GeoLatency", + "Static" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Allocation policy to be used by this provisioning service." + }, + "authorizationPolicies": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleAccessRightsDescription" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of authorization keys for a provisioning service." + }, + "iotHubs": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/IotHubDefinitionDescription" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of IoT hubs associated with this provisioning service." + }, + "ipFilterRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/IpFilterRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The IP filter rules." + }, + "provisioningState": { + "type": "string", + "description": "The ARM provisioning state of the provisioning service." + }, + "state": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Activating", + "Active", + "Deleting", + "Deleted", + "ActivationFailed", + "DeletionFailed", + "Transitioning", + "Suspending", + "Suspended", + "Resuming", + "FailingOver", + "FailoverFailed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Current state of the provisioning service." + } + }, + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" + }, + "IotDpsSkuInfo": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of units to provision" + }, + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "S1" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sku name." + } + }, + "description": "List of possible provisioning service SKUs." + }, + "IotHubDefinitionDescription": { + "type": "object", + "properties": { + "allocationWeight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "weight to apply for a given iot h." + }, + "applyAllocationPolicy": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "flag for applying allocationPolicy or not for a given iot hub." + }, + "connectionString": { + "type": "string", + "description": "Connection string og the IoT hub." + }, + "location": { + "type": "string", + "description": "ARM region of the IoT hub." + } + }, + "required": [ + "connectionString", + "location" + ], + "description": "Description of the IoT hub." + }, + "IpFilterRule": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Accept", + "Reject" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The desired action for requests captured by this rule." + }, + "filterName": { + "type": "string", + "description": "The name of the IP filter rule." + }, + "ipMask": { + "type": "string", + "description": "A string that contains the IP address range in CIDR notation for the rule." + }, + "target": { + "oneOf": [ + { + "type": "string", + "enum": [ + "all", + "serviceApi", + "deviceApi" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Target for requests captured by this rule." + } + }, + "required": [ + "action", + "filterName", + "ipMask" + ], + "description": "The IP filter rules for the IoT dps." + }, + "provisioningServices_certificates_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-01-01" + ] + }, + "certificate": { + "type": "string", + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + }, + "name": { + "type": "string", + "description": "The name of the certificate create or update." + }, + "type": { + "type": "string", + "enum": [ + "certificates" + ] + } + }, + "required": [ + "apiVersion", + "name", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/certificates" + }, + "SharedAccessSignatureAuthorizationRuleAccessRightsDescription": { + "type": "object", + "properties": { + "keyName": { + "type": "string", + "description": "Name of the key." + }, + "primaryKey": { + "type": "string", + "description": "Primary SAS key value." + }, + "rights": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ServiceConfig", + "EnrollmentRead", + "EnrollmentWrite", + "DeviceConnect", + "RegistrationStatusRead", + "RegistrationStatusWrite" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Rights that this key has." + }, + "secondaryKey": { + "type": "string", + "description": "Secondary SAS key value." + } + }, + "required": [ + "keyName", + "rights" + ], + "description": "Description of the shared access key." + } + } +} diff --git a/schemas/2020-03-01/Microsoft.Devices.json b/schemas/2020-03-01/Microsoft.Devices.json index 0ee82decf8..b64e817a06 100644 --- a/schemas/2020-03-01/Microsoft.Devices.json +++ b/schemas/2020-03-01/Microsoft.Devices.json @@ -4,7 +4,7 @@ "title": "Microsoft.Devices", "description": "Microsoft Devices Resource Types", "resourceDefinitions": { - "IotHubs": { + "provisioningServices": { "type": "object", "properties": { "apiVersion": { @@ -23,28 +23,28 @@ }, "name": { "type": "string", - "description": "The name of the IoT hub." + "description": "Name of provisioning service to create or update." }, "properties": { "oneOf": [ { - "$ref": "#/definitions/IotHubProperties" + "$ref": "#/definitions/IotDpsPropertiesDescription" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The properties of an IoT hub." + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" }, "resources": { "type": "array", "items": { "oneOf": [ { - "$ref": "#/definitions/IotHubs_certificates_childResource" + "$ref": "#/definitions/provisioningServices_certificates_childResource" }, { - "$ref": "#/definitions/iotHubs_privateEndpointConnections_childResource" + "$ref": "#/definitions/provisioningServices_privateEndpointConnections_childResource" } ] } @@ -52,13 +52,13 @@ "sku": { "oneOf": [ { - "$ref": "#/definitions/IotHubSkuInfo" + "$ref": "#/definitions/IotDpsSkuInfo" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Information about the SKU of the IoT hub." + "description": "List of possible provisioning service SKUs." }, "tags": { "oneOf": [ @@ -78,7 +78,7 @@ "type": { "type": "string", "enum": [ - "Microsoft.Devices/IotHubs" + "Microsoft.Devices/provisioningServices" ] } }, @@ -90,9 +90,9 @@ "sku", "type" ], - "description": "Microsoft.Devices/IotHubs" + "description": "Microsoft.Devices/provisioningServices" }, - "IotHubs_certificates": { + "provisioningServices_certificates": { "type": "object", "properties": { "apiVersion": { @@ -103,51 +103,16 @@ }, "certificate": { "type": "string", - "description": "base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." }, "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The name of the certificate" - }, - "type": { - "type": "string", - "enum": [ - "Microsoft.Devices/IotHubs/certificates" - ] - } - }, - "required": [ - "apiVersion", - "name", - "type" - ], - "description": "Microsoft.Devices/IotHubs/certificates" - }, - "IotHubs_eventHubEndpoints_ConsumerGroups": { - "type": "object", - "properties": { - "apiVersion": { "type": "string", - "enum": [ - "2020-03-01" - ] - }, - "name": { - "type": "string", - "description": "The name of the consumer group to add." + "description": "The name of the certificate create or update." }, "type": { "type": "string", "enum": [ - "Microsoft.Devices/IotHubs/eventHubEndpoints/ConsumerGroups" + "Microsoft.Devices/provisioningServices/certificates" ] } }, @@ -156,9 +121,9 @@ "name", "type" ], - "description": "Microsoft.Devices/IotHubs/eventHubEndpoints/ConsumerGroups" + "description": "Microsoft.Devices/provisioningServices/certificates" }, - "iotHubs_privateEndpointConnections": { + "provisioningServices_privateEndpointConnections": { "type": "object", "properties": { "apiVersion": { @@ -185,7 +150,7 @@ "type": { "type": "string", "enum": [ - "Microsoft.Devices/iotHubs/privateEndpointConnections" + "Microsoft.Devices/provisioningServices/privateEndpointConnections" ] } }, @@ -195,1196 +160,454 @@ "properties", "type" ], - "description": "Microsoft.Devices/iotHubs/privateEndpointConnections" + "description": "Microsoft.Devices/provisioningServices/privateEndpointConnections" } }, - "definitions": { - "CloudToDeviceProperties": { - "type": "object", - "properties": { - "defaultTtlAsIso8601": { - "type": "string", - "format": "duration", - "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." - }, - "feedback": { - "oneOf": [ - { - "$ref": "#/definitions/FeedbackProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The properties of the feedback queue for cloud-to-device messages." - }, - "maxDeliveryCount": { - "oneOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 100 - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - } - }, - "description": "The IoT hub cloud-to-device messaging properties." - }, - "EnrichmentProperties": { - "type": "object", - "properties": { - "endpointNames": { - "oneOf": [ - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The list of endpoints for which the enrichment is applied to the message." - }, - "key": { - "type": "string", - "description": "The key or name for the enrichment property." - }, - "value": { - "type": "string", - "description": "The value for the enrichment property." - } - }, - "required": [ - "endpointNames", - "key", - "value" - ], - "description": "The properties of an enrichment that your IoT hub applies to messages delivered to endpoints." - }, - "EventHubProperties": { - "type": "object", - "properties": { - "partitionCount": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "retentionTimeInDays": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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" - } - }, - "description": "The properties of the provisioned Event Hub-compatible endpoint used by the IoT hub." - }, - "FallbackRouteProperties": { - "type": "object", - "properties": { - "condition": { - "type": "string", - "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" - }, - "endpointNames": { - "oneOf": [ - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The list of endpoints to which the messages that satisfy the condition are routed to. Currently only 1 endpoint is allowed." - }, - "isEnabled": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Used to specify whether the fallback route is enabled." - }, - "name": { - "type": "string", - "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." - }, - "source": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Invalid", - "DeviceMessages", - "TwinChangeEvents", - "DeviceLifecycleEvents", - "DeviceJobLifecycleEvents" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The source to which the routing rule is to be applied to. For example, DeviceMessages." - } - }, - "required": [ - "endpointNames", - "isEnabled", - "source" - ], - "description": "The properties of the fallback route. IoT Hub uses these properties when it routes messages to the fallback endpoint." - }, - "FeedbackProperties": { - "type": "object", - "properties": { - "lockDurationAsIso8601": { - "type": "string", - "format": "duration", - "description": "The lock duration for the feedback queue. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging#cloud-to-device-messages." - }, - "maxDeliveryCount": { - "oneOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 100 - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "ttlAsIso8601": { - "type": "string", - "format": "duration", - "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." - } - }, - "description": "The properties of the feedback queue for cloud-to-device messages." - }, - "IotHubProperties": { - "type": "object", - "properties": { - "authorizationPolicies": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/SharedAccessSignatureAuthorizationRule" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The shared access policies you can use to secure a connection to the IoT hub." - }, - "cloudToDevice": { - "oneOf": [ - { - "$ref": "#/definitions/CloudToDeviceProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The IoT hub cloud-to-device messaging properties." - }, - "comments": { - "type": "string", - "description": "IoT hub comments." - }, - "enableFileUploadNotifications": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "If True, file upload notifications are enabled." - }, - "eventHubEndpoints": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/EventHubProperties" - }, - "properties": {} - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "features": { - "oneOf": [ - { - "type": "string", - "enum": [ - "None", - "DeviceManagement" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The capabilities and features enabled for the IoT hub." - }, - "ipFilterRules": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/IpFilterRule" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The IP filter rules." - }, - "messagingEndpoints": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/MessagingEndpointProperties" - }, - "properties": {} - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The messaging endpoint properties for the file upload notification queue." - }, - "minTlsVersion": { - "type": "string", - "description": "Specifies the minimum TLS version to support for this hub. Can be set to \"1.2\" to have clients that use a TLS version below 1.2 to be rejected." - }, - "privateEndpointConnections": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/PrivateEndpointConnection" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Private endpoint connections created on this IotHub" - }, - "publicNetworkAccess": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Enabled", - "Disabled" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Whether requests from Public Network are allowed." - }, - "routing": { - "oneOf": [ - { - "$ref": "#/definitions/RoutingProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging" - }, - "storageEndpoints": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/StorageEndpointProperties" - }, - "properties": {} - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - } - }, - "description": "The properties of an IoT hub." - }, - "IotHubSkuInfo": { - "type": "object", - "properties": { - "capacity": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The number of provisioned IoT Hub units. See: https://docs.microsoft.com/azure/azure-subscription-service-limits#iot-hub-limits." - }, - "name": { - "oneOf": [ - { - "type": "string", - "enum": [ - "F1", - "S1", - "S2", - "S3", - "B1", - "B2", - "B3" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The name of the SKU." - } - }, - "required": [ - "name" - ], - "description": "Information about the SKU of the IoT hub." - }, - "IotHubs_certificates_childResource": { - "type": "object", - "properties": { - "apiVersion": { - "type": "string", - "enum": [ - "2020-03-01" - ] - }, - "certificate": { - "type": "string", - "description": "base-64 representation of the X509 leaf certificate .cer file or just .pem file content." - }, - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The name of the certificate" - }, - "type": { - "type": "string", - "enum": [ - "certificates" - ] - } - }, - "required": [ - "apiVersion", - "name", - "type" - ], - "description": "Microsoft.Devices/IotHubs/certificates" - }, - "iotHubs_privateEndpointConnections_childResource": { - "type": "object", - "properties": { - "apiVersion": { - "type": "string", - "enum": [ - "2020-03-01" - ] - }, - "name": { - "type": "string", - "description": "The name of the private endpoint connection" - }, - "properties": { - "oneOf": [ - { - "$ref": "#/definitions/PrivateEndpointConnectionProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The properties of a private endpoint connection" - }, - "type": { - "type": "string", - "enum": [ - "privateEndpointConnections" - ] - } - }, - "required": [ - "apiVersion", - "name", - "properties", - "type" - ], - "description": "Microsoft.Devices/iotHubs/privateEndpointConnections" - }, - "IpFilterRule": { - "type": "object", - "properties": { - "action": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Accept", - "Reject" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The desired action for requests captured by this rule." - }, - "filterName": { - "type": "string", - "description": "The name of the IP filter rule." - }, - "ipMask": { - "type": "string", - "description": "A string that contains the IP address range in CIDR notation for the rule." - } - }, - "required": [ - "action", - "filterName", - "ipMask" - ], - "description": "The IP filter rules for the IoT hub." - }, - "MessagingEndpointProperties": { - "type": "object", - "properties": { - "lockDurationAsIso8601": { - "type": "string", - "format": "duration", - "description": "The lock duration. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-file-upload." - }, - "maxDeliveryCount": { - "oneOf": [ - { - "type": "integer", - "minimum": 1, - "maximum": 100 - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "ttlAsIso8601": { - "type": "string", - "format": "duration", - "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." - } - }, - "description": "The properties of the messaging endpoints used by this IoT hub." - }, - "PrivateEndpoint": { - "type": "object", - "properties": {}, - "description": "The private endpoint property of a private endpoint connection" - }, - "PrivateEndpointConnection": { - "type": "object", - "properties": { - "properties": { - "oneOf": [ - { - "$ref": "#/definitions/PrivateEndpointConnectionProperties" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The properties of a private endpoint connection" - } - }, - "required": [ - "properties" - ], - "description": "The private endpoint connection of an IotHub" - }, - "PrivateEndpointConnectionProperties": { - "type": "object", - "properties": { - "privateEndpoint": { - "oneOf": [ - { - "$ref": "#/definitions/PrivateEndpoint" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The private endpoint property of a private endpoint connection" - }, - "privateLinkServiceConnectionState": { - "oneOf": [ - { - "$ref": "#/definitions/PrivateLinkServiceConnectionState" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The current state of a private endpoint connection" - } - }, - "required": [ - "privateLinkServiceConnectionState" - ], - "description": "The properties of a private endpoint connection" - }, - "PrivateLinkServiceConnectionState": { - "type": "object", - "properties": { - "actionsRequired": { - "type": "string", - "description": "Actions required for a private endpoint connection" - }, - "description": { - "type": "string", - "description": "The description for the current state of a private endpoint connection" - }, - "status": { - "oneOf": [ - { - "type": "string", - "enum": [ - "Pending", - "Approved", - "Rejected", - "Disconnected" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The status of a private endpoint connection." - } - }, - "required": [ - "description", - "status" - ], - "description": "The current state of a private endpoint connection" - }, - "RouteProperties": { - "type": "object", - "properties": { - "condition": { - "type": "string", - "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" - }, - "endpointNames": { - "oneOf": [ - { - "type": "array", - "items": { - "type": "string" - } - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "The list of endpoints to which messages that satisfy the condition are routed. Currently only one endpoint is allowed." - }, - "isEnabled": { - "oneOf": [ - { - "type": "boolean" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Used to specify whether a route is enabled." - }, - "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "source": { + "definitions": { + "IotDpsPropertiesDescription": { + "type": "object", + "properties": { + "allocationPolicy": { "oneOf": [ { "type": "string", "enum": [ - "Invalid", - "DeviceMessages", - "TwinChangeEvents", - "DeviceLifecycleEvents", - "DeviceJobLifecycleEvents" + "Hashed", + "GeoLatency", + "Static" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The source that the routing rule is to be applied to, such as DeviceMessages." - } - }, - "required": [ - "endpointNames", - "isEnabled", - "name", - "source" - ], - "description": "The properties of a routing rule that your IoT hub uses to route messages to endpoints." - }, - "RoutingEndpoints": { - "type": "object", - "properties": { - "eventHubs": { + "description": "Allocation policy to be used by this provisioning service." + }, + "authorizationPolicies": { "oneOf": [ { "type": "array", "items": { - "$ref": "#/definitions/RoutingEventHubProperties" + "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleAccessRightsDescription" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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." + "description": "List of authorization keys for a provisioning service." }, - "serviceBusQueues": { + "iotHubs": { "oneOf": [ { "type": "array", "items": { - "$ref": "#/definitions/RoutingServiceBusQueueEndpointProperties" + "$ref": "#/definitions/IotHubDefinitionDescription" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The list of Service Bus queue endpoints that IoT hub routes the messages to, based on the routing rules." + "description": "List of IoT hubs associated with this provisioning service." }, - "serviceBusTopics": { + "ipFilterRules": { "oneOf": [ { "type": "array", "items": { - "$ref": "#/definitions/RoutingServiceBusTopicEndpointProperties" + "$ref": "#/definitions/IpFilterRule" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The list of Service Bus topic endpoints that the IoT hub routes the messages to, based on the routing rules." + "description": "The IP filter rules." }, - "storageContainers": { + "privateEndpointConnections": { "oneOf": [ { "type": "array", "items": { - "$ref": "#/definitions/RoutingStorageContainerProperties" + "$ref": "#/definitions/PrivateEndpointConnection" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The list of storage container endpoints that IoT hub routes messages to, based on the routing rules." - } - }, - "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." - }, - "RoutingEventHubProperties": { - "type": "object", - "properties": { - "authenticationType": { + "description": "Private endpoint connections created on this IotHub" + }, + "provisioningState": { + "type": "string", + "description": "The ARM provisioning state of the provisioning service." + }, + "publicNetworkAccess": { "oneOf": [ { "type": "string", "enum": [ - "keyBased", - "identityBased" + "Enabled", + "Disabled" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Method used to authenticate against the event hub endpoint." - }, - "connectionString": { - "type": "string", - "description": "The connection string of the event hub endpoint. " - }, - "endpointUri": { - "type": "string", - "description": "The url of the event hub endpoint. It must include the protocol sb://" - }, - "entityPath": { - "type": "string", - "description": "Event hub name on the event hub namespace" - }, - "id": { - "type": "string", - "description": "Id of the event hub endpoint" + "description": "Whether requests from Public Network are allowed." }, - "name": { + "state": { "oneOf": [ { "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" + "enum": [ + "Activating", + "Active", + "Deleting", + "Deleted", + "ActivationFailed", + "DeletionFailed", + "Transitioning", + "Suspending", + "Suspended", + "Resuming", + "FailingOver", + "FailoverFailed" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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." - }, - "resourceGroup": { - "type": "string", - "description": "The name of the resource group of the event hub endpoint." - }, - "subscriptionId": { - "type": "string", - "description": "The subscription identifier of the event hub endpoint." + "description": "Current state of the provisioning service." } }, - "required": [ - "name" - ], - "description": "The properties related to an event hub endpoint." + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" }, - "RoutingProperties": { + "IotDpsSkuInfo": { "type": "object", "properties": { - "endpoints": { + "capacity": { "oneOf": [ { - "$ref": "#/definitions/RoutingEndpoints" + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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." + "description": "The number of units to provision" }, - "enrichments": { + "name": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/EnrichmentProperties" - } + "type": "string", + "enum": [ + "S1" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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/telemetryoneventgrid" - }, - "fallbackRoute": { + "description": "Sku name." + } + }, + "description": "List of possible provisioning service SKUs." + }, + "IotHubDefinitionDescription": { + "type": "object", + "properties": { + "allocationWeight": { "oneOf": [ { - "$ref": "#/definitions/FallbackRouteProperties" + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The properties of the fallback route. IoT Hub uses these properties when it routes messages to the fallback endpoint." + "description": "weight to apply for a given iot h." }, - "routes": { + "applyAllocationPolicy": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/RouteProperties" - } + "type": "boolean" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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." + "description": "flag for applying allocationPolicy or not for a given iot hub." + }, + "connectionString": { + "type": "string", + "description": "Connection string of the IoT hub." + }, + "location": { + "type": "string", + "description": "ARM region of the IoT hub." } }, - "description": "The routing related properties of the IoT hub. See: https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-messaging" + "required": [ + "connectionString", + "location" + ], + "description": "Description of the IoT hub." }, - "RoutingServiceBusQueueEndpointProperties": { + "IpFilterRule": { "type": "object", "properties": { - "authenticationType": { + "action": { "oneOf": [ { "type": "string", "enum": [ - "keyBased", - "identityBased" + "Accept", + "Reject" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Method used to authenticate against the service bus queue endpoint." - }, - "connectionString": { - "type": "string", - "description": "The connection string of the service bus queue endpoint." - }, - "endpointUri": { - "type": "string", - "description": "The url of the service bus queue endpoint. It must include the protocol sb://" + "description": "The desired action for requests captured by this rule." }, - "entityPath": { + "filterName": { "type": "string", - "description": "Queue name on the service bus namespace" + "description": "The name of the IP filter rule." }, - "id": { + "ipMask": { "type": "string", - "description": "Id of the service bus queue endpoint" + "description": "A string that contains the IP address range in CIDR notation for the rule." }, - "name": { + "target": { "oneOf": [ { "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" + "enum": [ + "all", + "serviceApi", + "deviceApi" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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." - }, - "resourceGroup": { - "type": "string", - "description": "The name of the resource group of the service bus queue endpoint." - }, - "subscriptionId": { - "type": "string", - "description": "The subscription identifier of the service bus queue endpoint." + "description": "Target for requests captured by this rule." } }, "required": [ - "name" + "action", + "filterName", + "ipMask" ], - "description": "The properties related to service bus queue endpoint types." + "description": "The IP filter rules for a provisioning Service." + }, + "PrivateEndpoint": { + "type": "object", + "properties": {}, + "description": "The private endpoint property of a private endpoint connection" }, - "RoutingServiceBusTopicEndpointProperties": { + "PrivateEndpointConnection": { "type": "object", "properties": { - "authenticationType": { - "oneOf": [ - { - "type": "string", - "enum": [ - "keyBased", - "identityBased" - ] - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Method used to authenticate against the service bus topic endpoint." - }, - "connectionString": { - "type": "string", - "description": "The connection string of the service bus topic endpoint." - }, - "endpointUri": { - "type": "string", - "description": "The url of the service bus topic endpoint. It must include the protocol sb://" - }, - "entityPath": { - "type": "string", - "description": "Queue name on the service bus topic" - }, - "id": { - "type": "string", - "description": "Id of the service bus topic endpoint" - }, - "name": { + "properties": { "oneOf": [ { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" + "$ref": "#/definitions/PrivateEndpointConnectionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "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." - }, - "resourceGroup": { - "type": "string", - "description": "The name of the resource group of the service bus topic endpoint." - }, - "subscriptionId": { - "type": "string", - "description": "The subscription identifier of the service bus topic endpoint." + "description": "The properties of a private endpoint connection" } }, "required": [ - "name" + "properties" ], - "description": "The properties related to service bus topic endpoint types." + "description": "The private endpoint connection of a provisioning service" }, - "RoutingStorageContainerProperties": { + "PrivateEndpointConnectionProperties": { "type": "object", "properties": { - "authenticationType": { + "privateEndpoint": { "oneOf": [ { - "type": "string", - "enum": [ - "keyBased", - "identityBased" - ] + "$ref": "#/definitions/PrivateEndpoint" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Method used to authenticate against the storage endpoint." + "description": "The private endpoint property of a private endpoint connection" }, - "batchFrequencyInSeconds": { + "privateLinkServiceConnectionState": { "oneOf": [ { - "type": "integer", - "minimum": 60, - "maximum": 720 + "$ref": "#/definitions/PrivateLinkServiceConnectionState" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds." - }, - "connectionString": { + "description": "The current state of a private endpoint connection" + } + }, + "required": [ + "privateLinkServiceConnectionState" + ], + "description": "The properties of a private endpoint connection" + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "properties": { + "actionsRequired": { "type": "string", - "description": "The connection string of the storage account." + "description": "Actions required for a private endpoint connection" }, - "containerName": { + "description": { "type": "string", - "description": "The name of storage container in the storage account." + "description": "The description for the current state of a private endpoint connection" }, - "encoding": { + "status": { "oneOf": [ { "type": "string", "enum": [ - "Avro", - "AvroDeflate", - "JSON" + "Pending", + "Approved", + "Rejected", + "Disconnected" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Encoding that is used to serialize messages to blobs. Supported values are 'avro', 'avrodeflate', and 'JSON'. Default value is 'avro'." - }, - "endpointUri": { - "type": "string", - "description": "The url of the storage endpoint. It must include the protocol https://" - }, - "fileNameFormat": { + "description": "The status of a private endpoint connection." + } + }, + "required": [ + "description", + "status" + ], + "description": "The current state of a private endpoint connection" + }, + "provisioningServices_certificates_childResource": { + "type": "object", + "properties": { + "apiVersion": { "type": "string", - "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." + "enum": [ + "2020-03-01" + ] }, - "id": { + "certificate": { "type": "string", - "description": "Id of the storage container endpoint" - }, - "maxChunkSizeInBytes": { - "oneOf": [ - { - "type": "integer", - "minimum": 10485760, - "maximum": 524288000 - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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)." + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." }, "name": { - "oneOf": [ - { - "type": "string", - "pattern": "^[A-Za-z0-9-._]{1,64}$" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "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." - }, - "resourceGroup": { "type": "string", - "description": "The name of the resource group of the storage account." + "description": "The name of the certificate create or update." }, - "subscriptionId": { + "type": { "type": "string", - "description": "The subscription identifier of the storage account." + "enum": [ + "certificates" + ] } }, "required": [ - "containerName", - "name" + "apiVersion", + "name", + "type" ], - "description": "The properties related to a storage container endpoint." + "description": "Microsoft.Devices/provisioningServices/certificates" }, - "SharedAccessSignatureAuthorizationRule": { + "provisioningServices_privateEndpointConnections_childResource": { "type": "object", "properties": { - "keyName": { + "apiVersion": { "type": "string", - "description": "The name of the shared access policy." + "enum": [ + "2020-03-01" + ] }, - "primaryKey": { + "name": { "type": "string", - "description": "The primary key." + "description": "The name of the private endpoint connection" }, - "rights": { + "properties": { "oneOf": [ { - "type": "string", - "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" - ] + "$ref": "#/definitions/PrivateEndpointConnectionProperties" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The permissions assigned to the shared access policy." + "description": "The properties of a private endpoint connection" }, - "secondaryKey": { + "type": { "type": "string", - "description": "The secondary key." + "enum": [ + "privateEndpointConnections" + ] } }, "required": [ - "keyName", - "rights" + "apiVersion", + "name", + "properties", + "type" ], - "description": "The properties of an IoT hub shared access policy." + "description": "Microsoft.Devices/provisioningServices/privateEndpointConnections" }, - "StorageEndpointProperties": { + "SharedAccessSignatureAuthorizationRuleAccessRightsDescription": { "type": "object", "properties": { - "authenticationType": { + "keyName": { + "type": "string", + "description": "Name of the key." + }, + "primaryKey": { + "type": "string", + "description": "Primary SAS key value." + }, + "rights": { "oneOf": [ { "type": "string", "enum": [ - "keyBased", - "identityBased" + "ServiceConfig", + "EnrollmentRead", + "EnrollmentWrite", + "DeviceConnect", + "RegistrationStatusRead", + "RegistrationStatusWrite" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Specifies authentication type being used for connecting to the storage account." - }, - "connectionString": { - "type": "string", - "description": "The connection string for the Azure Storage account to which files are uploaded." - }, - "containerName": { - "type": "string", - "description": "The name of the root container where you upload files. The container need not exist but should be creatable using the connectionString specified." + "description": "Rights that this key has." }, - "sasTtlAsIso8601": { + "secondaryKey": { "type": "string", - "format": "duration", - "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." + "description": "Secondary SAS key value." } }, "required": [ - "connectionString", - "containerName" + "keyName", + "rights" ], - "description": "The properties of the Azure Storage endpoint for file upload." + "description": "Description of the shared access key." } } -} \ No newline at end of file +} diff --git a/schemas/2020-09-01-preview/Microsoft.Devices.json b/schemas/2020-09-01-preview/Microsoft.Devices.json new file mode 100644 index 0000000000..dd849381df --- /dev/null +++ b/schemas/2020-09-01-preview/Microsoft.Devices.json @@ -0,0 +1,720 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-09-01-preview/Microsoft.Devices.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.Devices", + "description": "Microsoft Devices Resource Types", + "resourceDefinitions": { + "provisioningServices": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-01-preview" + ] + }, + "etag": { + "type": "string", + "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." + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/ArmIdentity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The set of ARM identities associated with the IoT DPS resource." + }, + "location": { + "type": "string", + "description": "The resource location." + }, + "name": { + "type": "string", + "description": "Name of provisioning service to create or update." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/IotDpsPropertiesDescription" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" + }, + "resources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/definitions/provisioningServices_certificates_childResource" + }, + { + "$ref": "#/definitions/provisioningServices_privateEndpointConnections_childResource" + } + ] + } + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/IotDpsSkuInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of possible provisioning service SKUs." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The resource tags." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Devices/provisioningServices" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "sku", + "type" + ], + "description": "Microsoft.Devices/provisioningServices" + }, + "provisioningServices_certificates": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-01-preview" + ] + }, + "certificate": { + "type": "string", + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + }, + "name": { + "type": "string", + "description": "The name of the certificate create or update." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Devices/provisioningServices/certificates" + ] + } + }, + "required": [ + "apiVersion", + "name", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/certificates" + }, + "provisioningServices_privateEndpointConnections": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the private endpoint connection" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpointConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a private endpoint connection" + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.Devices/provisioningServices/privateEndpointConnections" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/privateEndpointConnections" + } + }, + "definitions": { + "ArmIdentity": { + "type": "object", + "properties": { + "identityType": { + "type": "string", + "description": "Identity type. Only allowed values are SystemAssigned and UserAssigned. Comma separated if both for ex: SystemAssigned,UserAssigned." + }, + "userAssignedIdentities": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ArmUserIdentity" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The set of UserAssigned identities associated with the IoT DPS resource." + } + }, + "description": "The set of ARM identities associated with the IoT DPS resource." + }, + "ArmUserIdentity": { + "type": "object", + "properties": {}, + "description": "The ARM UserAssigned identity information" + }, + "EncryptionKeyIdentity": { + "type": "object", + "properties": { + "userAssignedIdentity": { + "type": "string", + "description": "The user assigned identity." + } + }, + "description": "The properties of the identity used to access the key encryption key in KeyVault." + }, + "EncryptionPropertiesDescription": { + "type": "object", + "properties": { + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/EncryptionKeyIdentity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the identity used to access the key encryption key in KeyVault." + }, + "keySource": { + "type": "string", + "description": "The source of the encryption key. Typically, Microsoft.KeyVault" + }, + "keyVaultProperties": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/KeyVaultKeyProperties" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of the encryption key configured in KeyVault." + } + }, + "description": "The customer-managed encryption key (CMK) properties for the IoT DPS instance." + }, + "IotDpsPropertiesDescription": { + "type": "object", + "properties": { + "allocationPolicy": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Hashed", + "GeoLatency", + "Static" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Allocation policy to be used by this provisioning service." + }, + "authorizationPolicies": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/SharedAccessSignatureAuthorizationRuleAccessRightsDescription" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of authorization keys for a provisioning service." + }, + "encryption": { + "oneOf": [ + { + "$ref": "#/definitions/EncryptionPropertiesDescription" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The customer-managed encryption key (CMK) properties for the IoT DPS instance." + }, + "iotHubs": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/IotHubDefinitionDescription" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of IoT hubs associated with this provisioning service." + }, + "ipFilterRules": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/IpFilterRule" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The IP filter rules." + }, + "privateEndpointConnections": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Private endpoint connections created on this IotHub" + }, + "provisioningState": { + "type": "string", + "description": "The ARM provisioning state of the provisioning service." + }, + "publicNetworkAccess": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Whether requests from Public Network are allowed." + }, + "state": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Activating", + "Active", + "Deleting", + "Deleted", + "ActivationFailed", + "DeletionFailed", + "Transitioning", + "Suspending", + "Suspended", + "Resuming", + "FailingOver", + "FailoverFailed" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Current state of the provisioning service." + } + }, + "description": "the service specific properties of a provisioning service, including keys, linked iot hubs, current state, and system generated properties such as hostname and idScope" + }, + "IotDpsSkuInfo": { + "type": "object", + "properties": { + "capacity": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The number of units to provision" + }, + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "S1" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Sku name." + } + }, + "description": "List of possible provisioning service SKUs." + }, + "IotHubDefinitionDescription": { + "type": "object", + "properties": { + "allocationWeight": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "weight to apply for a given iot h." + }, + "applyAllocationPolicy": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "flag for applying allocationPolicy or not for a given iot hub." + }, + "connectionString": { + "type": "string", + "description": "Connection string of the IoT hub." + }, + "location": { + "type": "string", + "description": "ARM region of the IoT hub." + } + }, + "required": [ + "connectionString", + "location" + ], + "description": "Description of the IoT hub." + }, + "IpFilterRule": { + "type": "object", + "properties": { + "action": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Accept", + "Reject" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The desired action for requests captured by this rule." + }, + "filterName": { + "type": "string", + "description": "The name of the IP filter rule." + }, + "ipMask": { + "type": "string", + "description": "A string that contains the IP address range in CIDR notation for the rule." + }, + "target": { + "oneOf": [ + { + "type": "string", + "enum": [ + "all", + "serviceApi", + "deviceApi" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Target for requests captured by this rule." + } + }, + "required": [ + "action", + "filterName", + "ipMask" + ], + "description": "The IP filter rules for a provisioning Service." + }, + "KeyVaultKeyProperties": { + "type": "object", + "properties": { + "keyIdentifier": { + "type": "string", + "description": "The identifier of the key." + } + }, + "description": "The properties of the KeyVault key." + }, + "PrivateEndpoint": { + "type": "object", + "properties": {}, + "description": "The private endpoint property of a private endpoint connection" + }, + "PrivateEndpointConnection": { + "type": "object", + "properties": { + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpointConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a private endpoint connection" + } + }, + "required": [ + "properties" + ], + "description": "The private endpoint connection of a provisioning service" + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "properties": { + "privateEndpoint": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpoint" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The private endpoint property of a private endpoint connection" + }, + "privateLinkServiceConnectionState": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateLinkServiceConnectionState" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The current state of a private endpoint connection" + } + }, + "required": [ + "privateLinkServiceConnectionState" + ], + "description": "The properties of a private endpoint connection" + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "properties": { + "actionsRequired": { + "type": "string", + "description": "Actions required for a private endpoint connection" + }, + "description": { + "type": "string", + "description": "The description for the current state of a private endpoint connection" + }, + "status": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Pending", + "Approved", + "Rejected", + "Disconnected" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The status of a private endpoint connection." + } + }, + "required": [ + "description", + "status" + ], + "description": "The current state of a private endpoint connection" + }, + "provisioningServices_certificates_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-01-preview" + ] + }, + "certificate": { + "type": "string", + "description": "Base-64 representation of the X509 leaf certificate .cer file or just .pem file content." + }, + "name": { + "type": "string", + "description": "The name of the certificate create or update." + }, + "type": { + "type": "string", + "enum": [ + "certificates" + ] + } + }, + "required": [ + "apiVersion", + "name", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/certificates" + }, + "provisioningServices_privateEndpointConnections_childResource": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-09-01-preview" + ] + }, + "name": { + "type": "string", + "description": "The name of the private endpoint connection" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateEndpointConnectionProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a private endpoint connection" + }, + "type": { + "type": "string", + "enum": [ + "privateEndpointConnections" + ] + } + }, + "required": [ + "apiVersion", + "name", + "properties", + "type" + ], + "description": "Microsoft.Devices/provisioningServices/privateEndpointConnections" + }, + "SharedAccessSignatureAuthorizationRuleAccessRightsDescription": { + "type": "object", + "properties": { + "keyName": { + "type": "string", + "description": "Name of the key." + }, + "primaryKey": { + "type": "string", + "description": "Primary SAS key value." + }, + "rights": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ServiceConfig", + "EnrollmentRead", + "EnrollmentWrite", + "DeviceConnect", + "RegistrationStatusRead", + "RegistrationStatusWrite" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Rights that this key has." + }, + "secondaryKey": { + "type": "string", + "description": "Secondary SAS key value." + } + }, + "required": [ + "keyName", + "rights" + ], + "description": "Description of the shared access key." + } + } +}