Поддержка создания аренды не является обязательной . Это касается партнеров, заинтересованных во внедрении данного функционала. Прежде чем начать, свяжитесь с Центром действий, чтобы определить право на участие.
Создание аренды — это первый шаг при создании бронирования с поддержкой аренды. Серверная часть партнера проверяет, что запрошенный интервал встречи действителен и доступен. Внутренне партнер создает временное удержание для запрошенного слота, срок действия которого истекает автоматически в Lease_expiration_time. Серверной части разрешено изменять Lease_expiration_time, например, если запрошенное время аренды слишком велико. Созданная аренда возвращается клиенту. Затем клиент запрашивает создание бронирования на аренду.
Если создать аренду не удалось из-за какой-либо ошибки бизнес-логики, ошибка должна быть указана в ответе. Подробную информацию см. в разделе «Ошибка бронирования» .
Запрос
Создать запрос на аренду
Возвращаемое значение
CreateLeaseResponse
Требования:
- Lease_id должен быть создан серверной частью партнера и установлен в CreateLeaseResponse.
- Lease_expiration_time должно быть установлено в CreateLeaseResponse.
- Если поле ресурсов указано в CreateLeaseRequest, оно должно быть установлено в CreateLeaseResponse и соответствовать CreateLeaseRequest.
- Все остальные поля в CreateLeaseResponse должны быть установлены и соответствовать CreateLeaseRequest.
Канонические коды ошибок gRPC
-
INVALID_ARGUMENT
(неверный идентификатор продавца, идентификатор услуги или указание времени интервала)
// Request to create a [ext.maps.booking.partner.v2.Lease] for a slot in the // inventory. The expiration time in the returned Lease may be modified by the // backend, e.g. if the requested lease period is too long. message CreateLeaseRequest { // The lease to be created with information about the appointment slot // (required) Lease lease = 1; } // Response for the [ext.maps.booking.partner.v2.CreateLease] RPC with the // created [ext.maps.booking.partner.v2.Lease] message CreateLeaseResponse { // The created [ext.maps.booking.partner.v2.Lease] (required) Lease lease = 1; // If creating a lease fails, this field should reflect the business logic // error (e.g., slot has become unavailable) and lease field is expected to be // unset. (required if failure occurs) BookingFailure booking_failure = 2; }