Поделиться через


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, учитывает регистр и up-to 1 КБ длиной. Допустимые символы исключают символы элемента управления ЮНИКОД (сегменты C0 и C1), ".", "$" и пробелы. Требуемые значения порперти — это объекты JSON, up-to 4 КБ в длину.

reported

object

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

SymmetricKey

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

string

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

secondaryKey

string

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

X509Thumbprint

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

string

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

secondaryThumbprint

string

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