# Протокол

## Оглавление

- [keyapis/telemetry_control/v1/keyapis_telemetry_control_stream_v1.proto](#keyapis_telemetry_control_v1_keyapis_telemetry_control_stream_v1-proto)
    - [StreamService](#keyapis-telemetry_control-v1-StreamService)
  
    - [PostResourceFullDuplexRequest](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest)
    - [PostResourceFullDuplexRequest.ResourceAsyncStatus](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus)
    - [PostResourceFullDuplexRequest.ResourceAsyncStatus.Error](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error)
    - [PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error-UnknownError)
    - [PostResourceFullDuplexRequest.ResourceAsyncStatus.Success](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Success)
    - [PostResourceFullDuplexResponse](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse)
    - [PostResourceFullDuplexResponse.RemoveResourceEvent](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-RemoveResourceEvent)
    - [PostResourceFullDuplexResponse.UpsertResourceEvent](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-UpsertResourceEvent)
    - [Resource](#keyapis-telemetry_control-v1-Resource)
    - [ResourceId](#keyapis-telemetry_control-v1-ResourceId)
  


## [Схема классов](/svg/protos/key/keyapis/telemetry_control/v1/keyapis_telemetry_control_stream_v1.proto.svg)
<a href="/svg/protos/key/keyapis/telemetry_control/v1/keyapis_telemetry_control_stream_v1.proto.svg"><img src="/svg/protos/key/keyapis/telemetry_control/v1/keyapis_telemetry_control_stream_v1.proto.svg" alt="/svg/protos/key/keyapis/telemetry_control/v1/keyapis_telemetry_control_stream_v1.proto.svg" style="height:100%;"></a>




<a name="keyapis_telemetry_control_v1_keyapis_telemetry_control_stream_v1-proto"></a>

## [keyapis/telemetry_control/v1/keyapis_telemetry_control_stream_v1.proto](/protos/key/keyapis/telemetry_control/v1/keyapis_telemetry_control_stream_v1.proto)
Сервис реализует поток изменений ресурсов домена Телеметрии


<a name="keyapis-telemetry_control-v1-StreamService"></a>

### StreamService
 Сервис реализует поток изменений ресурсов домена Телеметрии.
Авторизация:
  - X-Api-Key: apiKey

| Название метода | Описание | Тип запроса | Тип ответа |
| --------------- | -------- | ----------- | -----------|
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplex"></a> [PostResourceFullDuplex](#keyapis-telemetry_control-v1-PostResourceFullDuplex) | Полнодуплексный отправки статусов получения ресурсов на сервер и получения изменения ресурсов со стороны сервера. Метод доступен для: ApiKey: Без учета разрешений. С контролем привязки домов к группе | [keyapis.telemetry_control.v1.PostResourceFullDuplexRequest](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest) stream | [keyapis.telemetry_control.v1.PostResourceFullDuplexResponse](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse) stream |

 <!-- end services -->


<a name="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest"></a>


### [PostResourceFullDuplexRequest](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest)
 Запрос создания задачи с клиента на сервере


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-request_id"></a> [request_id](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-request_id) | Идентификатор запроса |    [string](#scalar-types) | <nil>|
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-resource_async_status"></a> [resource_async_status](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-resource_async_status) | Результат обработки ресурса на клиенте |  optional  [keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus) | <nil>|






<a name="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus"></a>


### [PostResourceFullDuplexRequest.ResourceAsyncStatus](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus)
 Результат обработки ресурса на клиенте


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-resource_id"></a> [resource_id](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-resource_id) | Идентификатор ресурса |    [keyapis.telemetry_control.v1.ResourceId](#keyapis-telemetry_control-v1-ResourceId) | REQUIRED|
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-data"></a> [data](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-data) | Успех |  optional  [keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Success](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Success) | <nil>|
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-error"></a> [error](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-error) | Ошибка |  optional  [keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error) | <nil>|






<a name="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error"></a>


### [PostResourceFullDuplexRequest.ResourceAsyncStatus.Error](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error)
 Ошибки обработки ресурса на клиенте


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error-unknown"></a> [unknown](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error-unknown) | Неизвестная ошибка |  optional  [keyapis.telemetry_control.v1.PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error-UnknownError) | <nil>|






<a name="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error-UnknownError"></a>


### [PostResourceFullDuplexRequest.ResourceAsyncStatus.Error.UnknownError](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error-UnknownError)
 Неизвестная ошибка на стороне клиента


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error-UnknownError-message"></a> [message](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Error-UnknownError-message) | Произвольный текст ошибки на стороне клиента. Отправляется в случае если в спецификации нет подходящей ошибки. После анализа таких ошибок в спецификацию добавляется специальный тип под эту ошибку |    [string](#scalar-types) | REQUIRED|






<a name="keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Success"></a>


### [PostResourceFullDuplexRequest.ResourceAsyncStatus.Success](#keyapis-telemetry_control-v1-PostResourceFullDuplexRequest-ResourceAsyncStatus-Success)
 Команда принята






<a name="keyapis-telemetry_control-v1-PostResourceFullDuplexResponse"></a>


### [PostResourceFullDuplexResponse](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse)
 Событие создания/изменения ресурса


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-request_id"></a> [request_id](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-request_id) | Идентификатор запроса |    [string](#scalar-types) | REQUIRED|
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-upsert_resource_event"></a> [upsert_resource_event](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-upsert_resource_event) | Событие создания/обновления ресурса |  optional  [keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.UpsertResourceEvent](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-UpsertResourceEvent) | <nil>|
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-remove_resource_event"></a> [remove_resource_event](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-remove_resource_event) | Событие удаления ресурса |  optional  [keyapis.telemetry_control.v1.PostResourceFullDuplexResponse.RemoveResourceEvent](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-RemoveResourceEvent) | <nil>|






<a name="keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-RemoveResourceEvent"></a>


### [PostResourceFullDuplexResponse.RemoveResourceEvent](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-RemoveResourceEvent)
 Событие удаления ресурса


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-RemoveResourceEvent-resource_id"></a> [resource_id](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-RemoveResourceEvent-resource_id) | Идентификатор ресурса |    [keyapis.telemetry_control.v1.ResourceId](#keyapis-telemetry_control-v1-ResourceId) | REQUIRED|






<a name="keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-UpsertResourceEvent"></a>


### [PostResourceFullDuplexResponse.UpsertResourceEvent](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-UpsertResourceEvent)
 Событие создания/обновления ресурса


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-UpsertResourceEvent-resource"></a> [resource](#keyapis-telemetry_control-v1-PostResourceFullDuplexResponse-UpsertResourceEvent-resource) | Ресурс |    [keyapis.telemetry_control.v1.Resource](#keyapis-telemetry_control-v1-Resource) | REQUIRED|






<a name="keyapis-telemetry_control-v1-Resource"></a>


### [Resource](#keyapis-telemetry_control-v1-Resource)
 Ресурс


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-telemetry_control-v1-Resource-building"></a> [building](#keyapis-telemetry_control-v1-Resource-building) | Объект строительства |  optional  [keyapis.telemetry_control.v1.Building](#keyapis-telemetry_control-v1-Building) | <nil>|
| <a id="keyapis-telemetry_control-v1-Resource-device"></a> [device](#keyapis-telemetry_control-v1-Resource-device) | Идентификатор ПУ |  optional  [keyapis.telemetry_control.v1.Device](#keyapis-telemetry_control-v1-Device) | <nil>|
| <a id="keyapis-telemetry_control-v1-Resource-metric_point"></a> [metric_point](#keyapis-telemetry_control-v1-Resource-metric_point) | Точка учета |  optional  [keyapis.telemetry_control.v1.Device.MetricPoint](#keyapis-telemetry_control-v1-Device-MetricPoint) | <nil>|
| <a id="keyapis-telemetry_control-v1-Resource-indicator"></a> [indicator](#keyapis-telemetry_control-v1-Resource-indicator) | Индикатор |  optional  [keyapis.telemetry_control.v1.Indicator](#keyapis-telemetry_control-v1-Indicator) | <nil>|
| <a id="keyapis-telemetry_control-v1-Resource-indicator_metric_point"></a> [indicator_metric_point](#keyapis-telemetry_control-v1-Resource-indicator_metric_point) | Связка индикатора и ТУ |  optional  [keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint](#keyapis-telemetry_control-v1-DeviceIndicatorMetricPoint) | <nil>|






<a name="keyapis-telemetry_control-v1-ResourceId"></a>


### [ResourceId](#keyapis-telemetry_control-v1-ResourceId)
 Идентификатор ресурса


| Поле | Описание | Тип | Признак |
| ---- | -------- | --- | ------- |
| <a id="keyapis-telemetry_control-v1-ResourceId-building_id"></a> [building_id](#keyapis-telemetry_control-v1-ResourceId-building_id) | Идентификатор объекта строительства |  optional  [int32](#scalar-types) | <nil>|
| <a id="keyapis-telemetry_control-v1-ResourceId-device_id"></a> [device_id](#keyapis-telemetry_control-v1-ResourceId-device_id) | Идентификатор ПУ |  optional  [int32](#scalar-types) | <nil>|
| <a id="keyapis-telemetry_control-v1-ResourceId-metric_point_id"></a> [metric_point_id](#keyapis-telemetry_control-v1-ResourceId-metric_point_id) | Идентификатор ТУ |  optional  [string](#scalar-types) | <nil>|
| <a id="keyapis-telemetry_control-v1-ResourceId-indicator_id"></a> [indicator_id](#keyapis-telemetry_control-v1-ResourceId-indicator_id) | Идентификатор индикатора |  optional  [int32](#scalar-types) | <nil>|
| <a id="keyapis-telemetry_control-v1-ResourceId-indicator_metric_point"></a> [indicator_metric_point](#keyapis-telemetry_control-v1-ResourceId-indicator_metric_point) | Связка индикатора и ТУ |  optional  [keyapis.telemetry_control.v1.DeviceIndicatorMetricPoint](#keyapis-telemetry_control-v1-DeviceIndicatorMetricPoint) | <nil>|





 <!-- end messages -->

 <!-- end enums -->

 <!-- end HasExtensions -->



## Скалярные типы значений
<a id="scalar-types"></a>

| .proto Type | Примечание | Python | Go | Ruby | C# | C++ | Java | PHP |
| ----------- | ---------- | ------ | -- | ---- | -- | --- | ---- | --- |
| [double](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) |  | float | float64 | Float | double | double | double | float |
| [float](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) |  | float | float32 | Float | float | float | float | float |
| [int32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| [int64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| [uint32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. | int/long | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| [uint64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. | int/long | uint64 | Bignum or Fixnum (as required) | ulong | uint64 | long | integer/string |
| [sint32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| [sint64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| [fixed32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | int | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| [fixed64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | int/long | uint64 | Bignum | ulong | uint64 | long | integer/string |
| [sfixed32](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always four bytes. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| [sfixed64](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | Always eight bytes. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| [bool](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) |  | boolean | bool | TrueClass/FalseClass | bool | bool | boolean | boolean |
| [string](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | A string must always contain UTF-8 encoded or 7-bit ASCII text. | str/unicode | string | String (UTF-8) | string | string | String | string |
| [bytes](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf/) | May contain any arbitrary sequence of bytes. | str | []byte | String (ASCII-8BIT) | ByteString | string | ByteString | string |

