Bulk Registry - Update Registry

Создает, обновляет или удаляет удостоверения нескольких устройств из реестра удостоверений Центр Интернета вещей. Удостоверение устройства можно указать в списке только один раз. Разрешены различные операции (создание, обновление, удаление) на разных устройствах. Для каждого вызова можно указать не более 100 устройств. Для крупномасштабных операций используйте функцию импорта с помощью хранилища BLOB-объектов (https://docs.microsoft.com/azure/iot-hub/iot-hub-devguide-identity-registry#import-and-export-device-identities).

POST https://fully-qualified-iothubname.azure-devices.net/devices?api-version=2021-04-12

Параметры URI

Имя В Обязательно Тип Описание
api-version
query True

string

Версия API.

Текст запроса

Имя Тип Описание
devices

ExportImportDevice[]

Выполняемые операции реестра.

Ответы

Имя Тип Описание
200 OK

BulkRegistryOperationResult

Все в порядке.

400 Bad Request

BulkRegistryOperationResult

Недопустимый запрос.

Определения

Имя Описание
AuthenticationMechanism
BulkRegistryOperationResult

Результат операции массового реестра.

DeviceCapabilities

Состояние возможностей, включенных на устройстве.

DeviceRegistryOperationError

Сведения об ошибке операции реестра устройств.

DeviceRegistryOperationWarning

Сведения о предупреждении операции реестра устройств.

ExportImportDevice
PropertyContainer

Требуемые и сообщаемые свойства двойника. Максимальная глубина объекта составляет 10.

SymmetricKey
X509Thumbprint

AuthenticationMechanism

Имя Тип Описание
symmetricKey

SymmetricKey

Первичный и вторичный ключи, используемые для проверки подлинности на основе SAS.

type enum:
  • certificateAuthority
  • none
  • sas
  • selfSigned

Тип проверки подлинности, используемый для подключения к службе.

x509Thumbprint

X509Thumbprint

Первичные и вторичные отпечатки x509, используемые для проверки подлинности на основе x509.

BulkRegistryOperationResult

Результат операции массового реестра.

Имя Тип Описание
errors

DeviceRegistryOperationError[]

Ошибки операции реестра устройств.

isSuccessful

boolean

Результат операции.

warnings

DeviceRegistryOperationWarning[]

Предупреждения об операциях реестра устройств.

DeviceCapabilities

Состояние возможностей, включенных на устройстве.

Имя Тип Описание
iotEdge

boolean

Свойство, определяющее, является ли устройство пограничным устройством.

DeviceRegistryOperationError

Сведения об ошибке операции реестра устройств.

Имя Тип Описание
deviceId

string

Уникальный идентификатор устройства.

errorCode enum:
  • AmqpAddressNotFound
  • ApplyConfigurationAlreadyInProgressOnDevice
  • ArgumentInvalid
  • ArgumentNull
  • AsyncOperationNotFound
  • AzureStorageTimeout
  • AzureTableStoreError
  • AzureTableStoreNotFound
  • BackupTimedOut
  • BlobContainerValidationError
  • BulkAddDevicesNotSupported
  • BulkRegistryOperationFailure
  • CallbackSubscriptionConflict
  • CannotModifyImmutableConfigurationContent
  • CannotRegisterModuleToModule
  • CertificateAuthorityConflict
  • CertificateAuthorityNotFound
  • CertificateNotFound
  • CheckpointStoreNotFound
  • ClientClosedRequest
  • ConfigReadFailed
  • ConfigurationAlreadyExists
  • ConfigurationCountLimitExceeded
  • ConfigurationNotAvailable
  • ConfigurationNotFound
  • ConnectionForcefullyClosed
  • ConnectionForcefullyClosedOnFaultInjection
  • ConnectionForcefullyClosedOnNewConnection
  • ConnectionRejectedOnFaultInjection
  • ConnectionUnavailable
  • CustomAllocationFailed
  • CustomAllocationIotHubNotSpecified
  • CustomAllocationUnauthorizedAccess
  • DefaultStorageEndpointNotConfigured
  • DeserializationError
  • DeviceAlreadyExists
  • DeviceConnectionClosedRemotely
  • DeviceDefinedMultipleTimes
  • DeviceDisabled
  • DeviceGroupConflict
  • DeviceGroupNotFound
  • DeviceInvalidResultCount
  • DeviceJobAlreadyExists
  • DeviceLocked
  • DeviceMaximumActiveFileUploadLimitExceeded
  • DeviceMaximumQueueDepthExceeded
  • DeviceMaximumQueueSizeExceeded
  • DeviceMessageLockLost
  • DeviceModelMaxIndexablePropertiesExceeded
  • DeviceModelMaxPropertiesExceeded
  • DeviceNotFound
  • DeviceNotOnline
  • DeviceRecordConflict
  • DeviceRecordNotFound
  • DeviceRegistrationNotFound
  • DeviceStorageEntitySerializationError
  • DeviceThrottlingLimitExceeded
  • DeviceUnavailable
  • DigitalTwinInterfaceNotFound
  • DigitalTwinModelAlreadyExists
  • DigitalTwinModelCountLimitExceeded
  • DigitalTwinModelExistsWithOtherModelType
  • DigitalTwinModelNotFound
  • DocumentDbInvalidReturnValue
  • ElasticPoolNotFound
  • ElasticPoolTenantHubNotFound
  • EnrollmentConflict
  • EnrollmentGroupConflict
  • EnrollmentGroupNotFound
  • EnrollmentNotFound
  • EtagDoesNotMatch
  • EventHubLinkAlreadyClosed
  • ExpiredFileUploadCorrelationId
  • FeatureNotSupported
  • GatewayTimeout
  • GenericBadGateway
  • GenericBadRequest
  • GenericConflict
  • GenericForbidden
  • GenericGatewayTimeout
  • GenericMethodNotAllowed
  • GenericNotFound
  • GenericPreconditionFailed
  • GenericRequestEntityTooLarge
  • GenericServerError
  • GenericServiceUnavailable
  • GenericTimeout
  • GenericTooManyRequests
  • GenericUnauthorized
  • GenericUnsupportedMediaType
  • GroupNotAvailable
  • GroupNotFound
  • GroupRecordConflict
  • GroupRecordNotFound
  • HostingServiceNotAvailable
  • ImportDevicesNotSupported
  • ImportWarningExistsError
  • IncompatibleDataType
  • InflightMessagesInLink
  • InterfaceNameCompressionModelCountLimitExceeded
  • InterfaceNameModelAlreadyExists
  • InterfaceNameModelNotFound
  • InvalidBlobState
  • InvalidConfigurationContent
  • InvalidConfigurationCustomMetricsQuery
  • InvalidConfigurationTargetCondition
  • InvalidContainerReceiveLink
  • InvalidContentEncodingOrType
  • InvalidDeviceScope
  • InvalidDigitalTwinJsonPatch
  • InvalidDigitalTwinPatch
  • InvalidDigitalTwinPatchPath
  • InvalidDigitalTwinPayload
  • InvalidEndorsementKey
  • InvalidEndpointAuthenticationType
  • InvalidEnrollmentGroupId
  • InvalidErrorCode
  • InvalidFileUploadCompletionStatus
  • InvalidFileUploadCorrelationId
  • InvalidMessageExpiryTime
  • InvalidMessagingEndpoint
  • InvalidOperation
  • InvalidPartitionEpoch
  • InvalidPnPDesiredProperties
  • InvalidPnPInterfaceDefinition
  • InvalidPnPReportedProperties
  • InvalidPnPWritableReportedProperties
  • InvalidProtocolVersion
  • InvalidRegistrationId
  • InvalidResponseWhileProxying
  • InvalidRouteTestInput
  • InvalidSchemaVersion
  • InvalidSourceOnRoute
  • InvalidStorageEndpoint
  • InvalidStorageEndpointOrBlob
  • InvalidStorageEndpointProperty
  • InvalidStorageRootKey
  • InvalidThrottleParameter
  • IotDpsSuspended
  • IotDpsSuspending
  • IotHubActivationFailed
  • IotHubFailingOver
  • IotHubFormatError
  • IotHubMaxCbsTokenExceeded
  • IotHubNotFound
  • IotHubQuotaExceeded
  • IotHubRestoring
  • IotHubSuspended
  • IotHubUnauthorized
  • IotHubUnauthorizedAccess
  • JobAlreadyExists
  • JobCancelled
  • JobNotFound
  • JobQuotaExceeded
  • JobRunPreconditionFailed
  • KeyEncryptionKeyRevoked
  • LinkCreationConflict
  • LinkedHubConflict
  • LinkedHubNotFound
  • ManagedIdentityNotEnabled
  • MessageTooLarge
  • ModelAlreadyExists
  • ModelRepoEndpointError
  • ModuleAlreadyExistsOnDevice
  • ModuleNotFound
  • NullMessage
  • OperationNotAllowedInCurrentState
  • OperationNotAvailableInCurrentTier
  • OrchestrationOperationFailed
  • OrphanDiscoveryDocument
  • PartitionNotFound
  • PreconditionFailed
  • ProvisioningRecordConflict
  • ProvisioningRecordNotFound
  • ProvisioningSettingsConflict
  • ProvisioningSettingsNotFound
  • QueryStoreClusterNotFound
  • QuotaMetricNotFound
  • ReceiveLinkOpensThrottled
  • RegistrationIdDefinedMultipleTimes
  • RegistrationStatusConflict
  • ReliableBlobStoreError
  • ReliableBlobStoreTimeoutError
  • ReliableDocDbStoreStoreError
  • RequestCanceled
  • RequestTimedOut
  • ResolutionError
  • RestoreTimedOut
  • RetryAttemptsExhausted
  • RoutingEndpointResponseForbidden
  • RoutingEndpointResponseNotFound
  • RoutingNotEnabled
  • SerializationError
  • ServerBusy
  • ServerError
  • ServiceUnavailable
  • StatisticsRetrievalError
  • StreamReservationFailure
  • SystemModuleModifyUnauthorizedAccess
  • SystemPropertyNotFound
  • TenantHubRoutingNotEnabled
  • ThrottleBacklogLimitExceeded
  • ThrottlingBacklogTimeout
  • ThrottlingException
  • ThrottlingMaxActiveJobCountExceeded
  • TooManyDevices
  • TooManyEnrollments
  • TooManyModulesOnDevice
  • UnableToCompressComponentInfo
  • UnableToCompressDiscoveryInfo
  • UnableToExpandComponentInfo
  • UnableToExpandDiscoveryInfo
  • UnableToFetchCredentials
  • UnableToFetchTenantInfo
  • UnableToShareIdentity
  • UnexpectedPropertyValue
  • UnsupportedOperationOnReplica

Код ошибки.

errorStatus

string

Сведения об ошибке.

moduleId

string

Уникальный идентификатор модуля, если применимо.

operation

string

Тип операции, которая завершилась сбоем.

DeviceRegistryOperationWarning

Сведения о предупреждении операции реестра устройств.

Имя Тип Описание
deviceId

string

Уникальный идентификатор устройства.

warningCode enum:

DeviceRegisteredWithoutTwin

Код предупреждения.

warningStatus

string

Сведения о предупреждении.

ExportImportDevice

Имя Тип Описание
authentication

AuthenticationMechanism

Механизм проверки подлинности, используемый модулем. Этот параметр является необязательным и по умолчанию имеет значение SAS, если он не указан. В этом случае первичные и вторичные ключи доступа создаются автоматически.

capabilities

DeviceCapabilities

Состояние возможностей, включенных на устройстве.

deviceScope

string

Область действия устройства.

eTag

string

Строка, представляющая слабый ETag для устройства RFC7232. Значение используется только в том случае, если режим импорта — updateIfMatchETag. В этом случае операция импорта выполняется только в том случае, если этот ETag соответствует значению, поддерживаемого сервером.

id

string

Уникальный идентификатор устройства.

importMode enum:
  • create
  • delete
  • deleteIfMatchETag
  • update
  • updateIfMatchETag
  • updateTwin
  • updateTwinIfMatchETag

Тип операции реестра и параметры ETag.

moduleId

string

Уникальный идентификатор модуля, если применимо.

parentScopes

string[]

Области пограничных устройств верхнего уровня, если применимо. Доступно только для пограничных устройств.

properties

PropertyContainer

Требуемые и сообщаемые свойства для устройства.

status enum:
  • disabled
  • enabled

Состояние модуля. Если этот параметр отключен, модуль не может подключиться к службе.

statusReason

string

Строка длиной 128 символов, в которой хранится причина состояния удостоверения устройства. Разрешены все символы UTF-8.

tags

object

Документ JSON считывается и записывается с помощью внутренней части решения. Теги не видны приложениям устройств.

twinETag

string

Строка, представляющая слабый ETag для двойника устройства RFC7232. Значение используется только в том случае, если режим импорта — updateIfMatchETag. В этом случае операция импорта выполняется только в том случае, если этот ETag соответствует значению, поддерживаемого сервером.

PropertyContainer

Требуемые и сообщаемые свойства двойника. Максимальная глубина объекта составляет 10.

Имя Тип Описание
desired

object

Коллекция требуемых пар "ключ-значение" свойства. Ключи имеют кодировку UTF-8 с учетом регистра и имеют длину до 1 КБ. Допустимые символы исключают управляющие символы ЮНИКОДа (сегменты C0 и C1), ".", "$" и пробел. Требуемыми значениями porperty являются объекты JSON длиной до 4 КБ.

reported

object

Коллекция пар "ключ-значение" сообщаемого свойства. Ключи имеют кодировку UTF-8 с учетом регистра и имеют длину до 1 КБ. Допустимые символы исключают управляющие символы ЮНИКОДа (сегменты C0 и C1), ".", "$" и пробел. Сообщаемые значения свойств представляют собой объекты JSON длиной до 4 КБ.

SymmetricKey

Имя Тип Описание
primaryKey

string

Первичный ключ устройства в кодировке Base64.

secondaryKey

string

Вторичный ключ устройства в кодировке Base64.

X509Thumbprint

Имя Тип Описание
primaryThumbprint

string

Основной отпечаток сертификата клиента X509.

secondaryThumbprint

string

Вторичный отпечаток сертификата клиента X509.