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=2020-05-31-preview

Параметры 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
  • 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

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

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.