CreateBooking method

Request

CreateBookingRequest

Return value

CreateBookingResponse

Side effects

CreateBooking consumes a Lease, rendering it invalid for any further bookings.

Canonical gRPC error codes

  • INVALID_ARGUMENT if the provided ClientInformation is invalid, e.g. due to missing fields
  • NOT_FOUND if the provided lease ID is not valid.
  • RESOURCE_EXHAUSTED (if the slot has become unavailable since creating the lease, e.g. due to a conflicting booking)
  • ALREADY_EXISTS (if the client already has a booking for the slot)
// Request to create a [ext.maps.booking.partner.v0.Booking] for an inventory
// slot. Consumes the lease.
message CreateBookingRequest {
  // The lease that is being confirmed to make this booking
  LeaseReference lease_ref = 1;

  // Personal information of the client making the appointment
  ClientInformation client_information = 2;

  // Information about payments. If the booking request does not succeed,
  // payment authorizations are automatically canceled.
  PaymentInformation payment_information = 3;

  // The parameters to be used if the payment is processed by the partner
  // (i.e. payment_information.payment_processed_by is equal to
  // PROCESSED_BY_PARTNER).
  PaymentProcessingParameters payment_processing_parameters = 4;
}

// Response with the created [ext.maps.booking.partner.v0.Booking] for an
// inventory slot
message CreateBookingResponse {
  // The created booking
  Booking booking = 1;

  // The updated user payment option used in this booking.
  // If a new payment option was purchased to pay for the booking, this should
  // be a newly created user payment option.
  // If an already purchased user payment option was used for this booking,
  // this should reflect an updated version of that user payment option.
  UserPaymentOption user_payment_option = 2;
}