Метод CreateLease

Поддержка создания договоров аренды является необязательной . Она распространяется на партнеров, заинтересованных во внедрении этой функциональности. Пожалуйста, свяжитесь с Центром действий, чтобы узнать о возможности ее использования, прежде чем начать.

Создание договора аренды — это первый шаг при оформлении бронирования с помощью службы поддержки Lease. Партнерская система проверяет, действителен ли и доступен ли запрошенный временной интервал. Внутри системы партнер создает временную блокировку для запрошенного интервала, которая автоматически истекает по истечении времени аренды (lease_expiration_time). Бэкенд может изменять время аренды, например, если запрошенное время аренды слишком велико. Созданный договор аренды возвращается клиенту. Затем клиент запрашивает создание бронирования на основе этого договора.

Если создание договора аренды не удается из-за ошибки в бизнес-логике, в ответе должна быть указана информация об ошибке. Подробную информацию см. в разделе «Ошибка бронирования» .

Запрос

Создать запрос на аренду

Возвращаемое значение

CreateLeaseResponse

Требования:

  • Параметр lease_id должен быть создан в бэкэнде партнера и указан в объекте CreateLeaseResponse.
  • Параметр lease_expiration_time необходимо задать в методе CreateLeaseResponse.
  • Если поле resources указано в запросе CreateLeaseRequest, то оно должно быть установлено в ответе CreateLeaseResponse и соответствовать полю CreateLeaseRequest.
  • Все остальные поля в CreateLeaseResponse должны быть заданы и соответствовать полю CreateLeaseRequest.

Коды ошибок Canonical 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 {
  option features.(pb.java).nest_in_file_class = YES;

  // 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 {
  option features.(pb.java).nest_in_file_class = YES;

  // 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;
}