AI-generated Key Takeaways
-
The
CreateBooking
API creates a booking for an inventory slot using a provided lease, client, payment, and payment processing information. -
If successful, it returns the created booking and potentially updated user payment information, consuming the initial lease.
-
Potential errors include invalid client data, invalid lease ID, slot unavailability due to conflict or if the client already has a booking for the given slot.
-
CreateBookingRequest
contains lease, client, payment, and processing details, whileCreateBookingResponse
returns the booking and user payment information.
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 fieldsNOT_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; }