Протокол¶
Оглавление¶
-
keyapis/multiapp/v1/keyapis_multiapp_partner_v1.proto
- DeletePartnerResponse
- DeletePartnerResponse.Error
- DeletePartnerResponse.Error.LinkedAppExists
- GetPartnerAddressOrponRequest
- GetPartnerAddressOrponResponse
- GetPartnerAddressOrponResponse.Error
- GetPartnerAddressOrponResponse.Error.PermissionDenied
- GetPartnerCountRequest
- GetPartnerCountResponse
- GetPartnerCountResponse.Error
- GetPartnerListRequest
- GetPartnerListResponse
- GetPartnerListResponse.Error
- GetPartnerRequest
- GetPartnerResponse
- GetPartnerResponse.Error
- GetPartnerTokenRequest
- GetPartnerTokenResponse
- GetPartnerTokenResponse.Error
- GetPartnerTokenResponse.Error.CodeNotFoundOrExpiredError
- GetPartnerTokenResponse.Error.PermissionDenied
- GetPartnerTokenResponse.Error.ResponseTypeIsNotSupported
- GetPartnerTokenResponse.Error.TokenGenerationError
- GetPartnerTokenResponse.Error.UserNotFoundError
- IdTokenPayload
- Partner
- Partner.SavingError
- Partner.SavingError.ApiKeyExists
- Partner.SavingError.Conflict
- Partner.SavingError.PartnerIsDeleted
- PartnerFilter
- PartnerPaging
- PostPartnerPublicKeyRequest
- PostPartnerPublicKeyResponse
- PostPartnerPublicKeyResponse.Error
- PostPartnerRequest
- PostPartnerResponse
- PostPartnerResponse.Error
- PostPartnerResponse.Error.MissingApiKeyOnCreation
- PartnerPaging.OrderByType
Схема классов¶
keyapis/multiapp/v1/keyapis_multiapp_partner_v1.proto¶
Сервис реализует функционал управления партнерами
PartnerService¶
Сервис управления партнерами для суперапа
| Название метода | Описание | Тип запроса | Тип ответа |
|---|---|---|---|
| PostPartner | Метод сохранения партнера. Поддерживает создание и обновление. Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695525. Метод доступен для: admin, manager, service | keyapis.multiapp.v1.PostPartnerRequest | keyapis.multiapp.v1.PostPartnerResponse |
| GetPartner | Метод получения партнера. Метод доступен для: admin, manager, service, ltp_first | keyapis.multiapp.v1.GetPartnerRequest | keyapis.multiapp.v1.GetPartnerResponse |
| GetPartnerList | Метод получения списка партнеров. Метод доступен для: admin, manager, service, ltp_first | keyapis.multiapp.v1.GetPartnerListRequest | keyapis.multiapp.v1.GetPartnerListResponse stream |
| GetPartnerCount | Метод получения количества партнеров. Метод доступен для: admin, manager, service, ltp_first | keyapis.multiapp.v1.GetPartnerCountRequest | keyapis.multiapp.v1.GetPartnerCountResponse |
| GetPartnerToken | Метод получения токена. Access токен возможно получить только для пользователей с типом master в статусе active, demo и new. Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695865. Не требует авторизации | keyapis.multiapp.v1.GetPartnerTokenRequest | keyapis.multiapp.v1.GetPartnerTokenResponse |
| PostPartnerPublicKey | Метод обновления публичного ключа партнёра. Поддерживает создание и обновление. Метод доступен для: partner. Требует передачи аутентификационного ключа в заголовке X-API-KEY. Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695525 | keyapis.multiapp.v1.PostPartnerPublicKeyRequest | keyapis.multiapp.v1.PostPartnerPublicKeyResponse |
| DeletePartner | Метод удаления партнёра. Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=804302306. Метод доступен для: admin, manager, service | keyapis.multiapp.v1.DeletePartnerRequest | keyapis.multiapp.v1.DeletePartnerResponse |
| GetPartnerAddressOrpon | Метод получения адреса дома по ОРПОНу. Адресная строка должны быть в формате "{Регион}, {Город}, {Улица}, {Дом}, {Строение}". Партнер может получить адрес только по доступному ему ОРПОНу. Доступные ОРПОНы для партнера может получить через привязанные app в поле app_tags и user_tags. Метод доступен для: admin, manager, service, partner. Роль partner определяется по наличию заголовка X-API-KEY вместо Authorization | keyapis.multiapp.v1.GetPartnerAddressOrponRequest | keyapis.multiapp.v1.GetPartnerAddressOrponResponse |
DeletePartnerRequest¶
Запрос на удаление партнёра
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор партнёра. # Тип: Guid | string | REQUIRED |
DeletePartnerResponse¶
Ответ на запрос удаления партнёра
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| error | Ошибка при удалении | optional keyapis.multiapp.v1.DeletePartnerResponse.Error |
DeletePartnerResponse.Error¶
Ошибка удаления партнёра
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.multiapp.v1.ValidationError | |
| linked_app_exists | У партнера есть хотя бы одно приложение | optional keyapis.multiapp.v1.DeletePartnerResponse.Error.LinkedAppExists |
DeletePartnerResponse.Error.LinkedAppExists¶
У партнера есть хотя бы одно приложение
GetPartnerAddressOrponRequest¶
Запрос получения адреса по ОРПОНу
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| orpon | ОРПОН. # Диапазон: 1..9223372036854775807 | int64 | REQUIRED |
GetPartnerAddressOrponResponse¶
Ответ на запрос получения адреса по ОРПОНу
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Адрес | optional string | |
| error | Ошибка | optional keyapis.multiapp.v1.GetPartnerAddressOrponResponse.Error |
GetPartnerAddressOrponResponse.Error¶
Ошибка
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.multiapp.v1.ValidationError | |
| permission_denied | Доступ запрещен | optional keyapis.multiapp.v1.GetPartnerAddressOrponResponse.Error.PermissionDenied |
GetPartnerAddressOrponResponse.Error.PermissionDenied¶
Доступ запрещен. Причины: - У партнера нет разрешения на переданный ОРПОН
GetPartnerCountRequest¶
Запрос получения количества партнеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Фильтр | keyapis.multiapp.v1.PartnerFilter |
GetPartnerCountResponse¶
Ответ на запрос получения количества партнеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Всего партнеров | optional int32 | |
| error | Ошибка | optional keyapis.multiapp.v1.GetPartnerCountResponse.Error |
GetPartnerCountResponse.Error¶
Ошибка запроса получения количества партнеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.multiapp.v1.ValidationError |
GetPartnerListRequest¶
Запрос получения списка партнеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Фильтр | keyapis.multiapp.v1.PartnerFilter | |
| paging | Пагинация | optional keyapis.multiapp.v1.PartnerPaging |
GetPartnerListResponse¶
Ответ на запрос получения списка партнеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Партнер | optional keyapis.multiapp.v1.Partner | |
| error | Ошибка | optional keyapis.multiapp.v1.GetPartnerListResponse.Error |
GetPartnerListResponse.Error¶
Ошибка запроса получения списка партнеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.multiapp.v1.ValidationError |
GetPartnerRequest¶
Запрос получения партнера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор партнера. # Тип: Guid | string | REQUIRED |
GetPartnerResponse¶
Ответ на запрос получения партнера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Партнер | optional keyapis.multiapp.v1.Partner | |
| error | Ошибка | optional keyapis.multiapp.v1.GetPartnerResponse.Error |
GetPartnerResponse.Error¶
Ошибка запроса получения партнера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.multiapp.v1.ValidationError |
GetPartnerTokenRequest¶
Запрос получения токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| code | Код. # Тип: Guid | string | REQUIRED |
| response | Тип ответа. # Допустимые значения: "id_token", "token", "id_token token" | string | REQUIRED |
| nonce | Ваучер | string | REQUIRED |
GetPartnerTokenResponse¶
Ответ на запрос получения токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Токен | optional keyapis.multiapp.v1.Token | |
| error | Ошибка | optional keyapis.multiapp.v1.GetPartnerTokenResponse.Error |
GetPartnerTokenResponse.Error¶
Ошибка
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.multiapp.v1.ValidationError | |
| user_not_found | Ошибка: пользователь не найден | optional keyapis.multiapp.v1.GetPartnerTokenResponse.Error.UserNotFoundError | |
| token_generation_error | Ошибка: формирования токена | optional keyapis.multiapp.v1.GetPartnerTokenResponse.Error.TokenGenerationError | |
| code_not_found_or_expired_error | Ошибка: некорректный код | optional keyapis.multiapp.v1.GetPartnerTokenResponse.Error.CodeNotFoundOrExpiredError | |
| response_type_is_not_supported | Переданный тип ответа не поддерживается | optional keyapis.multiapp.v1.GetPartnerTokenResponse.Error.ResponseTypeIsNotSupported | |
| permission_denied | Доступ запрещен | optional keyapis.multiapp.v1.GetPartnerTokenResponse.Error.PermissionDenied |
GetPartnerTokenResponse.Error.CodeNotFoundOrExpiredError¶
Некорректный код. Причины: - Передан неверный код; - Превышен допустимый временной интервал между запросом на формирование кода и запросом на получение идентификационного токена
GetPartnerTokenResponse.Error.PermissionDenied¶
Доступ запрещен. Причины: - У запрашивающего приложения нет разрешения на выбранный тип ответа
GetPartnerTokenResponse.Error.ResponseTypeIsNotSupported¶
Переданный тип ответа не поддерживается
GetPartnerTokenResponse.Error.TokenGenerationError¶
Ошибка формирования токена. Причины: - Ошибка в сервисе KMS. - Ошибка в сервисе Identity
GetPartnerTokenResponse.Error.UserNotFoundError¶
Данные пользователя для формирования идентификационного токена не найдены. Причины: - Пользователь с таким идентификатором отсутсвует в БД ключа; - Ошибка взаимодействия с сервисом Домохозяйств
IdTokenPayload¶
Идентификационный токен
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| jti | Идентификатор токена | string | REQUIRED |
| nonce | Ваучер | string | REQUIRED |
| sub | Идентификатор пользователя, для которого выдан токен | string | REQUIRED |
| role | Роль | google.protobuf.StringValue | |
| phone_number | Номер телефона | google.protobuf.StringValue | |
| Электронная почта | google.protobuf.StringValue | ||
| orpon | Идентифкатор ОРПОН | google.protobuf.StringValue | |
| room | Номер квартиры | google.protobuf.StringValue | |
| company_id | Идентифкатор компании | google.protobuf.StringValue | |
| company_name | Наименование компании | google.protobuf.StringValue | |
| auth_time | Время авторизации пользователя unix timestamp | string | REQUIRED |
| exp | Срок истечения действия токен unix timestamp | string | REQUIRED |
| iss | Сервис, выдавший токен | string | REQUIRED |
| aud | Url сервиса, для которого выпустили токен | string | REQUIRED |
| app_id | Идентификатор приложения партнёра | string | REQUIRED |
| kladr_id | КЛАДР | google.protobuf.StringValue |
Partner¶
Партнер.
Описание модели¶
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор. Если не передан создаётся сервером. # Тип: Guid | string | |
| name | Наименование. # Диапазон: 2..256 | string | REQUIRED |
| api_key | API ключ. # Тип: Guid? | google.protobuf.StringValue | INPUT_ONLY |
| public_key | Публичный ключ | google.protobuf.StringValue | OUTPUT_ONLY |
| created_at | Дата создания партнера. # Тип: DateTime | google.protobuf.Timestamp | OUTPUT_ONLY |
| changed_at | Дата обновления партнера. # Тип: DateTime | google.protobuf.Timestamp | |
| deleted_at | Дата удаления партнера. # Тип: DateTime? | google.protobuf.Timestamp | OUTPUT_ONLY |
| api_key_hash | Хэш от API ключа | google.protobuf.StringValue | OUTPUT_ONLY |
| api_key_masked | API ключ маскированный | google.protobuf.StringValue | OUTPUT_ONLY |
Partner.SavingError¶
Ошибка сохранения. Эти проверки выполняются при работе с базой данных и сторонними сервисами
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| conflict | Конфликт версий | optional keyapis.multiapp.v1.Partner.SavingError.Conflict | |
| api_key_exists | API-key уже существует | optional keyapis.multiapp.v1.Partner.SavingError.ApiKeyExists | |
| partner_is_deleted | Партнёр удалён | optional keyapis.multiapp.v1.Partner.SavingError.PartnerIsDeleted |
Partner.SavingError.ApiKeyExists¶
API-key уже существует. Может появиться только в случае создания партнера. Причины: - В базе уже хранится такой api_key, он должен быть уникален для каждого партнера
Partner.SavingError.Conflict¶
Конфликт версий. Причины: - В базе хранится другая версия строки, значения changed_at отличаются
Partner.SavingError.PartnerIsDeleted¶
Партнёр удалён. Причины: - Переданный публичный ключ принадлежит удалённому партнеру
PartnerFilter¶
Фильтр партнеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| text | По тексту. Если значение не передано то поиск по нему не производится. # Диапазон: 3..64. # Поиск производится по полям: # - Наименование | google.protobuf.StringValue | |
| begin_changed_at | От даты обновления партнера включительно (больше или равно) | google.protobuf.Timestamp | |
| end_changed_at | До даты обновления партнера (меньше) | google.protobuf.Timestamp | |
| template_ids | По идентификаторам доступных шаблонов. # Тип: Guid | repeated string | |
| is_show_deleted | Показывать удаленные | google.protobuf.BoolValue |
PartnerPaging¶
Пагинация партнеров
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| order_by_type | Тип значения сортировки. Если значение не передано, то будет взято значение по умолчанию. # По умолчанию: CHANGED_AT | keyapis.multiapp.v1.PartnerPaging.OrderByType | |
| direction_type | Тип направления сортировки. # По умолчанию: DESC | keyapis.multiapp.v1.PartnerPaging.DirectionType | |
| limit | Количество записей на страницу. Если значение 0 (не передано), то будет взято значение по умолчанию. # Диапазон: 0..100. # По умолчанию: 20 | int32 | |
| offset | Сдвиг. # Диапазон: 0..2147483647 | int32 |
PostPartnerPublicKeyRequest¶
Запрос сохранения публичного ключа партнера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| public_key | Публичный ключ | string | REQUIRED |
PostPartnerPublicKeyResponse¶
Ответ на запрос сохранения публичного ключа партнера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Партнер | optional keyapis.multiapp.v1.Partner | |
| error | Ошибка | optional keyapis.multiapp.v1.PostPartnerPublicKeyResponse.Error |
PostPartnerPublicKeyResponse.Error¶
Ошибка запроса сохранения публичного ключа партнера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.multiapp.v1.ValidationError | |
| saving | Ошибка сохранения | optional keyapis.multiapp.v1.Partner.SavingError |
PostPartnerRequest¶
Запрос сохранения партнера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Партнер | keyapis.multiapp.v1.Partner | REQUIRED |
PostPartnerResponse¶
Ответ на запрос сохранения партнера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Партнер | optional keyapis.multiapp.v1.Partner | |
| error | Ошибка | optional keyapis.multiapp.v1.PostPartnerResponse.Error |
PostPartnerResponse.Error¶
Ошибка запроса сохранения партнера
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.multiapp.v1.ValidationError | |
| saving | Ошибка сохранения | optional keyapis.multiapp.v1.Partner.SavingError | |
| missing_api_key_on_creation | Api-Key обязателен при создании партнера | optional keyapis.multiapp.v1.PostPartnerResponse.Error.MissingApiKeyOnCreation |
PostPartnerResponse.Error.MissingApiKeyOnCreation¶
Api-Key обязателен при создании партнера
Token¶
Ответ на запрос токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id_token | ID токен в формате nested JWT | string | OUTPUT_ONLY |
| access_token | Авторизационный токен | string | OUTPUT_ONLY |
| type_of_access_token | Тип авторизационного токена | string | OUTPUT_ONLY |
| refresh_token | Токен, используемый для получения нового Access Token после истечения срока действия текущего токена доступа | string | OUTPUT_ONLY |
| expires_in | Время (в секундах), через которое истечет срок действия Access Token | int32 | OUTPUT_ONLY |
PartnerPaging.DirectionType¶
Справочник типов направлений сортировки.
Тип: byte¶
| Номер | Тип | Название |
|---|---|---|
| 0 | DIRECTION_TYPE_UNKNOWN | Значение не указано |
| 1 | DESC | От большего к меньшему |
| 2 | ASC | От меньшего к большему |
PartnerPaging.OrderByType¶
Справочник типов значений сортировки.
Тип: byte¶
| Номер | Тип | Название |
|---|---|---|
| 0 | ORDER_BY_TYPE_UNKNOWN | Значение не указано |
| 1 | CHANGED_AT | Дата последнего изменения |
| 2 | CREATED_AT | Дата создания |
| 3 | RANK | По рангу для поиска по тексту. Применяется когда передано поле для поиска по тексту. В случае если текстовое поле не передано, применяется значение по умолчанию |
Скалярные типы значений¶
| .proto Type | Примечание | Python | Go | Ruby | C# | C++ | Java | PHP |
|---|---|---|---|---|---|---|---|---|
| double | float | float64 | Float | double | double | double | float | |
| float | float | float32 | Float | float | float | float | float | |
| int32 | 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 | 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 | Uses variable-length encoding. | int/long | uint32 | Bignum or Fixnum (as required) | uint | uint32 | int | integer |
| uint64 | Uses variable-length encoding. | int/long | uint64 | Bignum or Fixnum (as required) | ulong | uint64 | long | integer/string |
| sint32 | 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 | 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 | 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 | 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 | Always four bytes. | int | int32 | Bignum or Fixnum (as required) | int | int32 | int | integer |
| sfixed64 | Always eight bytes. | int/long | int64 | Bignum | long | int64 | long | integer/string |
| bool | boolean | bool | TrueClass/FalseClass | bool | bool | boolean | boolean | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | str/unicode | string | String (UTF-8) | string | string | String | string |
| bytes | May contain any arbitrary sequence of bytes. | str | []byte | String (ASCII-8BIT) | ByteString | string | ByteString | string |