Updated test client names and switched to external facing proto definitions
diff --git a/api/api.go b/api/api.go
index 317690d..ac99b79 100644
--- a/api/api.go
+++ b/api/api.go
@@ -544,7 +544,7 @@
// UserId check first.
reqPB := &mpb.ListOrdersRequest{
- UserId: userID,
+ Ids: &mpb.ListOrdersRequest_UserId{userID},
}
respUser, err := sendListOrdersRequest(reqPB, conn)
if err != nil {
@@ -556,9 +556,12 @@
// Still here? OrderId check.
reqPB.Reset()
+ var orderIDs mpb.ListOrdersRequest_OrderIds
for _, order := range orders {
- reqPB.OrderId = append(reqPB.OrderId, order.GetOrderId())
+ orderIDs.OrderId = append(orderIDs.OrderId, order.GetOrderId())
}
+ reqPB.Ids = &mpb.ListOrdersRequest_OrderIds_{&orderIDs}
+
respOrder, err := sendListOrdersRequest(reqPB, conn)
if err != nil {
return err
diff --git a/proto/v3.proto b/proto/v3.proto
index 1c217bb..c443878 100644
--- a/proto/v3.proto
+++ b/proto/v3.proto
@@ -1,274 +1,219 @@
+// API v3 public interface declaration
syntax = "proto3";
-package v3;
+package ext.maps.booking.partner.v3;
-// [START postaladdr_definition]
-// The postal address for a merchant.
-message PostalAddress {
- // The country, e.g. "USA". (required)
- string country = 1;
- // The locality/city, e.g. "Mountain View". (required)
- string locality = 2;
- // The region/state/province, e.g. "CA". (required)
- string region = 3;
- // The postal code, e.g. "94043". (required)
- string postal_code = 4;
- // The street address, e.g. "1600 Amphitheatre Pkwy". (required)
- string street_address = 5;
-}
-// [END postaladdr_definition]
+// +------+------------------------------+----------------------------------+
+// | Verb | HTTP Path | Request/Response Body |
+// +------+------------------------------+----------------------------------+
+// | GET | /v3/HealthCheck | - |
+// | | | - |
+// +------+------------------------------+----------------------------------+
+// | POST | /v3/CheckAvailability | CheckAvailabilityRequest |
+// | | | CheckAvailabilityResponse |
+// +------+------------------------------+----------------------------------+
+// | POST | /v3/CreateBooking | CreateBookingRequest |
+// | | | CreateBookingResponse |
+// +------+------------------------------+----------------------------------+
+// | POST | /v3/UpdateBooking | UpdateBookingRequest |
+// | | | UpdateBookingResponse |
+// +------+------------------------------+----------------------------------+
+// | POST | /v3/GetBookingStatus | GetBookingStatusRequest |
+// | | | GetBookingStatusResponse |
+// +------+------------------------------+----------------------------------+
+// | POST | /v3/ListBookings | ListBookingsRequest |
+// | | | ListBookingsResponse |
+// +------+------------------------------+----------------------------------+
+// | POST | /v3/CheckOrderFulfillability | CheckOrderFulfillabilityRequest |
+// | | | CheckOrderFulfillabilityResponse |
+// +------+------------------------------+----------------------------------+
+// | POST | /v3/CreateOrder | CreateOrderRequest |
+// | | | CreateOrderResponse |
+// +------+------------------------------+----------------------------------+
+// | POST | /v3/ListOrders | ListOrdersRequest |
+// | | | ListOrdersResponse |
+// +------+------------------------------+----------------------------------+
-// [START geocoord_definition]
-// The Geo data of a location, including latitude, longitude, and address.
-message GeoCoordinates {
- double latitude = 1; // In degrees. (optional)
- double longitude = 2; // In degrees. (optional)
- PostalAddress address = 3; // (required)
-}
-// [END geocoord_definition]
+// CheckAvailability method
-// [START price_definition]
-// The price of a service or a fee.
-message Price {
- // The price in micro-units of the currency.
- // Fractions of smallest currency unit will be rounded using nearest even
- // rounding. (e.g. For USD 2.5 cents rounded to 2 cents, 3.5 cents rounded to
- // 4 cents, 0.5 cents rounded to 0 cents, 2.51 cents rounded to 3 cents).
- // (required)
- int64 price_micros = 1;
- // The currency of the price that is defined in ISO 4217. (required)
- string currency_code = 2;
- // An optional and opaque string that identifies the pricing option that is
- // associated with the extended price. (optional)
- string pricing_option_tag = 3;
-}
-// [END price_definition]
-
-// [START taxrate_definition]
-// A tax rate applied when charging the user for a service, and which can be set
-// on either a per merchant, or per service basis.
-message TaxRate {
- // A tax rate in millionths of one percent, effectively giving 6 decimals of
- // precision. For example, if the tax rate is 7.253%, this field should be set
- // to 7253000.
- //
- // If this field is left unset or set to 0, the total price charged to a user
- // for any service provided by this merchant is the exact price specified by
- // Service.price. The service price is assumed to be exempt from or already
- // inclusive of applicable taxes. Taxes will not be shown to the user as a
- // separate line item.
- //
- // If this field is set to any nonzero value, the total price charged to a
- // user for any service provided by this merchant will include the service
- // price plus the tax assessed using the tax rate provided here. Fractions of
- // the smallest currency unit (for example, fractions of one cent) will be
- // rounded using nearest even rounding. Taxes will be shown to the user as a
- // separate line item. (required)
- int32 micro_percent = 1;
-}
-// [END taxrate_definition]
-
-// [START schedulingrules_definition]
-// The scheduling rules for a service.
-message SchedulingRules {
- // The minimum advance notice in seconds required to book an appointment.
- // (optional)
- int64 min_advance_booking = 1;
-
- // The minimum advance notice in seconds required to cancel a booked
- // appointment online. (optional)
- int64 min_advance_online_canceling = 2;
-
- // The fee for canceling within the minimum advance notice period.
- Price late_cancellation_fee = 3 [deprecated = true];
-
- // The fee for no-show without canceling.
- Price noshow_fee = 4 [deprecated = true];
-}
-// [END schedulingrules_definition]
-
-// This defines the ingestion source type.
-enum IngestionSource {
- SOURCE_UNKNOWN = 0;
-
- // This ingestion is from an uploaded feed file.
- SOURCE_FEED = 1;
-
- // This ingestion is from an API call.
- SOURCE_API = 2;
+// Request to check availability for a Slot.
+message CheckAvailabilityRequest {
+ // The appointment slot that is being checked (required)
+ Slot slot = 1;
}
-// An empty boilplate proto for the Ingestion Queue in Spanner.
-message IngestionQueuePayload {
-}
+// Response for the CheckAvailability RPC with the availability of the
+// appointment slot.
+message CheckAvailabilityResponse {
+ // The requested slot. (required)
+ Slot slot = 1;
+ // Number of available spots.
+ // 0 indicates that the appointment slot is not available. (required)
+ int32 count_available = 2;
+ // This enum indicates what requirements exist for the user to acknowledge or
+ // view the requested slots duration/end time.
+ enum DurationRequirement {
+ // The handling of the end time is not specified. This is the default.
+ DURATION_REQUIREMENT_UNSPECIFIED = 0;
-// The types of content that we can ingest through feeds or APIs.
-enum ContentType {
- CONTENT_UNKNOWN = 0;
- CONTENT_MERCHANT = 1;
- CONTENT_SERVICE = 2;
- CONTENT_AVAILABILITY = 3;
- CONTENT_PAYMENT_OPTION = 4;
- CONTENT_PAYMENT_OPTION_SERVICE = 5;
-}
+ // The end time is not shown to the user.
+ DO_NOT_SHOW_DURATION = 1;
-message IngestionStatus {
- // The status code of an Ingestion event: a feed upload or an API call.
- // Only used for logging the ingestion status in the IngestionMetadata
- // table, do NOT use it in the code's control flow.
- enum Code {
- // An unknown status for Ingestion, shouldn't use it.
- STATUS_UNKNOWN = 0;
-
- // 1-99 for Feed upload.
- // A feed has been uploaded.
- STATUS_FEED_UPLOADED = 1;
- // A feed has been added to the Ingestion Queue.
- STATUS_FEED_ENQUEUED = 2;
- // A feed has been picked up from the queue and started processing.
- STATUS_FEED_PROCESSING_STARTED = 3;
- // A feed has been processed successfully.
- STATUS_FEED_PROCESSING_SUCCEEDED = 4;
- // A feed has failed the processing.
- STATUS_FEED_PROCESSING_FAILED = 5;
- // A feed duplicate was uploaded.
- STATUS_FEED_DUPLICATED = 6;
-
- // 101-199 for API.
- // An API has been called.
- STATUS_API_CALLED = 101;
- // An API has been processed successfully.
- STATUS_API_PROCESSING_SUCCEEDED = 102;
- // An API has failed the processing.
- STATUS_API_PROCESSING_FAILED = 103;
+ // The end time has to be shown to the user before an appointment can be
+ // made.
+ MUST_SHOW_DURATION = 2;
}
+ // The requirement to show the slots duration and/or endtime. This field will
+ // be ignored if the slot is unavailable. (optional)
+ DurationRequirement duration_requirement = 3;
- // The code of the status.
- Code code = 1;
-
- // Microseconds since epoch when the ingestion updates its status code.
- int64 timestamp_micros = 2;
-
- // A human description of the error if any.
- string internal_error_details = 3;
- string partner_visible_error_details = 4;
+ // Optionally, the partner can return additional updated information about the
+ // availability for this merchant if this information is present when
+ // responding to the CheckAvailabilityRequest and if there is no negative
+ // impact on the CheckAvailability request latency.
+ // For instance an entire day of merchant availability for a superset of
+ // resources can be returned here.
+ AvailabilityUpdate availability_update = 4;
}
-// [START timerange_definition]
-// A closed-open time range, i.e. [begin_sec, end_sec)
-message TimeRange {
- // Seconds of UTC time since Unix epoch (required)
- int64 begin_sec = 1;
- // Seconds of UTC time since Unix epoch (required)
- int64 end_sec = 2;
+// An update to one ore more slots indicating that the availability for the
+// associated time has potentially changed.
+message AvailabilityUpdate {
+ repeated SlotAvailability slot_availability = 1;
}
-// [END timerange_definition]
-// [START pricetype_definition]
-// Defines how a total price is determined from an availability.
-enum PriceType {
- // The price is for a fixed amount. This is the default value if the field is
- // not set.
- FIXED_RATE_DEFAULT = 0;
- // The price specified is per person, and the total price is calculated
- // according to the party size specified in Resources as
- // price_micros * party_size. A PER_PERSON price must be accompanied by a
- // party size in the availability resources. If it is not, a party size of one
- // is used.
- PER_PERSON = 1;
+// An inventory slot and associated count of open spots.
+message SlotAvailability {
+ Slot slot = 1;
+ // Number of available spots.
+ // 0 indicates that the appointment slot is not available. (required)
+ int32 count_available = 2;
}
-// [END pricetype_definition]
-// [START noshowfee_definition]
-// A fee that a user may be charged if they have made a booking but do not
-// show up.
-message NoShowFee {
- // The amount the user may be charged if they do not show up for their
- // reservation.
- Price fee = 1;
+// CheckOrderFulfillability method
- // Defines how the fee is determined from the availability.
- PriceType fee_type = 3;
-}
-// [END noshowfee_definition]
-
-// [START deposit_definition]
-// A deposit that the user may be charged or have a hold on their credit card
-// for.
-message Deposit {
- // Deposit amount.
- Price deposit = 1;
-
- // Minimum advance cancellation for the deposit.
- int64 min_advance_cancellation_sec = 2;
-
- // Defines how the deposit is determined from the availability.
- PriceType deposit_type = 3;
-}
-// [END deposit_definition]
-
-// [START RequireCreditCard_definition]
-// Defines whether a credit card is required in order to book an appointment.
-enum RequireCreditCard {
- // The credit card requirement is not explicitly specified and the
- // behaviour is identical to the one specified for CONDITIONAL.
- REQUIRE_CREDIT_CARD_UNSPECIFIED = 0;
-
- // Google will require a credit card for the booking if any of the following
- // conditions are met:
- // * the availability has a price and the prepayment_type is REQUIRED
- // * the no_show_fee is set
- // * the deposit field is set.
- REQUIRE_CREDIT_CARD_CONDITIONAL = 1;
-
- // A credit card is always required in order to book this availability
- // regardless of other field values.
- REQUIRE_CREDIT_CARD_ALWAYS = 2;
-}
-// [END RequireCreditCard_definition]
-
-// [START ActionLink_definition]
-// An action URL with associated language and list of countries restricted to.
-message ActionLink {
- // The entry point URL for this action link.
- string url = 1;
-
- // The BCP-47 language tag identifying the language in which the content
- // from this URI is available.
- string language = 2;
-
- // ISO 3166-1 alpha-2 country code. Leave empty for unrestricted visibility.
- repeated string restricted_country = 3;
-}
-// [END ActionLink_definition]
-
-// [START message_slot]
-// An inventory slot
-message Slot {
- // ID of the merchant for the slot (required)
+// Request to check the fulfillability of an order.
+message CheckOrderFulfillabilityRequest {
+ // The merchant that this order is intended for. (required)
string merchant_id = 1;
- // ID of the merchant service (required)
- string service_id = 2;
-
- // Start time of the appointment slot in seconds of UTC time since Unix epoch.
- // (required)
- int64 start_sec = 3;
-
- // Duration of the appointment slot (required)
- int64 duration_sec = 4;
-
- // Opaque tag that identifies the availability slot and matches the value
- // provided in the availability feed (optional)
- string availability_tag = 5;
-
- // The set of resources that disambiguates the appointment slot, e.g. by
- // indicating the staff member and room selected by the user (optional)
- ResourceIds resources = 6;
+ // The line items in this order. All services requested must belong to the
+ // specified merchant. (required)
+ repeated LineItem item = 2;
}
-// [END message_slot]
-// [START message_lease]
+// Response for the CheckOrderfulfillabilityRequest.
+message CheckOrderFulfillabilityResponse {
+ // Fulfillability status of the order, potentially contains updated
+ // availabilities and prices of the requested line item. (required)
+ OrderFulfillability fulfillability = 1;
+
+ // Total processing fees & taxes that need to be paid for this order.
+ // (required)
+ Price fees_and_taxes = 2;
+}
+
+// GetBookingStatus method
+
+// Request to get booking status and prepayment status for a Booking.
+message GetBookingStatusRequest {
+ // ID of the existing booking (required)
+ string booking_id = 1;
+}
+
+// Response for the GetBookingStatus RPC with booking status and prepayment
+// status.
+message GetBookingStatusResponse {
+ // ID of the booking (required)
+ string booking_id = 1;
+
+ // Status of the booking (required)
+ BookingStatus booking_status = 2;
+
+ // Prepayment status of the booking (required)
+ PrepaymentStatus prepayment_status = 3;
+}
+
+// CreateBooking method
+
+// Request to create a Booking for an inventory slot. Consumes the lease if
+// provided.
+message CreateBookingRequest {
+ // The inventory slot that is being requested to make this booking.
+ // If lease_ref is provided, slot must match the lease; slot is provided for
+ // the partner to verify the lease information.
+ // If lease_ref is absent, then create the booking for the slot. (required)
+ Slot slot = 1;
+
+ // The lease that is being confirmed to make this booking.
+ // If lease_ref is provided, then create the booking using the lease.
+ // (optional)
+ LeaseReference lease_ref = 2;
+
+ // Personal information of the user making the appointment (required)
+ UserInformation user_information = 3;
+
+ // Information about payments. When payment authorizations are handled by
+ // Google, if the booking request does not succeed, payment authorizations are
+ // automatically canceled. (optional)
+ PaymentInformation payment_information = 4;
+
+ // 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). (optional)
+ PaymentProcessingParameters payment_processing_parameters =
+ 5;
+
+ // Idempotency token for CreateBooking requests. (required)
+ string idempotency_token = 6;
+
+ // A string from the user which contains any special requests or additional
+ // information that they would like to notify the merchant about. (optional)
+ string additional_request = 7;
+}
+
+// Response with the created Booking for an inventory slot.
+message CreateBookingResponse {
+ // The created booking (required)
+ 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.
+ // (optional)
+ UserPaymentOption user_payment_option = 2;
+
+ // If creating a booking fails, this field should reflect the business logic
+ // error (e.g., slot has become unavailable) and all other fields in the
+ // CreateBookingResponse message are expected to be unset. (required if
+ // failure occurs)
+ BookingFailure booking_failure = 3;
+}
+
+// CreateLease method
+
+// Request to create a 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 CreateLease RPC with the created Lease.
+message CreateLeaseResponse {
+ // The created 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;
+}
+
// Temporary lease for an inventory slot
message Lease {
// ID of the lease.
@@ -292,9 +237,111 @@
// Lease ID (required)
string lease_id = 1;
}
-// [END message_lease]
-// [START message_booking]
+// CreateOrder method
+
+// Request to create an order.
+message CreateOrderRequest {
+ // The order to create. (required)
+ Order order = 1;
+
+ // The parameters to be used if the payment is processed by the partner
+ // (i.e. order.payment_information.payment_processed_by is equal to
+ // PROCESSED_BY_PARTNER). (required if payment is processed by the partner)
+ PaymentProcessingParameters payment_processing_parameters = 2;
+
+ // Idempotency token for CreateOrder requests. (required)
+ string idempotency_token = 3;
+}
+
+// Response for the CreateOrderRequest.
+message CreateOrderResponse {
+ // All line items in an order either fail or succeed together.
+ // This means that if some of the items cannot be fulfilled, the entire
+ // order must fail, the booking must not be made for any item, and the user
+ // must not be charged.
+ oneof result {
+ // The order created.
+ Order order = 1;
+
+ // If creating an order fails, this field should reflect the business logic
+ // error (e.g., slot has become unavailable or price has changed).
+ OrderFailure order_failure = 2;
+ }
+}
+
+// ListBookings method
+
+// Request to list all bookings for a user
+message ListBookingsRequest {
+ // ID of the user (required)
+ string user_id = 1;
+}
+
+// Response for the ListBookings RPC with all bookings for the requested user.
+message ListBookingsResponse {
+ // All bookings of the user (required)
+ repeated Booking bookings = 1;
+}
+
+// ListOrders method
+
+// Request to list orders.
+message ListOrdersRequest {
+ message OrderIds {
+ repeated string order_id = 1;
+ }
+
+ // Request of orders either by user ID, or by order ID.
+ oneof ids {
+ // If set, return all orders belong to the user.
+ string user_id = 1;
+
+ // If set, return the specified orders.
+ OrderIds order_ids = 2;
+ }
+}
+
+// Response for the ListOrders RPC.
+message ListOrdersResponse {
+ // All requested orders (required)
+ repeated Order order = 1;
+}
+
+// UpdateBooking method
+
+// Request to update a Booking.
+message UpdateBookingRequest {
+ // The booking to be updated
+ // The following fields can be set in a booking:
+ // - status, to cancel a booking.
+ // - start_time and duration in the slot, to reschedule a booking. (required)
+ Booking booking = 1;
+}
+
+// Response with the updated Booking.
+message UpdateBookingResponse {
+ // The updated booking (required)
+ Booking booking = 1;
+
+ // The updated user payment option originally used to pay for this booking.
+ // This should be set if the UpdateBookingRequest results in a change to
+ // the UserPaymentOption.
+ // For instance, if the booking is canceled, the UserPaymentOption should
+ // reflect an additional credit to the user. In the case of a multi-use
+ // payment option, the current_count should be increased by one to
+ // allow the user to create another booking with this payment option. In the
+ // case of a single-use payment option, a new single-use user payment option
+ // should be returned. (required if altered in update)
+ UserPaymentOption user_payment_option = 2;
+
+ // If updating a booking fails, this field should reflect the business logic
+ // error (e.g., booking is not cancellable) (required if failure occurs)
+ BookingFailure booking_failure = 3;
+}
+
+// Booking specification
+
// A booking for an inventory slot
message Booking {
// ID of this booking (required)
@@ -313,33 +360,286 @@
// (optional)
PaymentInformation payment_information = 5;
}
-// [END message_booking]
-// [START user_definition]
-// Personal information about the person making a booking
-message UserInformation {
- // Unique ID of the user to the partner, chosen by Reserve with Google.
- // (required)
- string user_id = 1;
+// BookingStatus specification
- // Given name of the user (required)
- string given_name = 2;
-
- // Family name of the user (required)
- string family_name = 3;
-
- // Address of the user (optional)
- PostalAddress address = 4;
-
- // Phone number of the user (required)
- string telephone = 5;
-
- // Email address of the user (required)
- string email = 6;
+// Status of a booking.
+//
+// Updating booking status does not change the status of the associated payment.
+// Prepayment status updates should be done using the PrepaymentStatus enum.
+//
+// nextID: 6
+enum BookingStatus {
+ // Not specified.
+ BOOKING_STATUS_UNSPECIFIED = 0;
+ // Booking has been confirmed
+ CONFIRMED = 1;
+ // Booking is awaiting confirmation by the merchant before it can transition
+ // into CONFIRMED status
+ PENDING_MERCHANT_CONFIRMATION = 2;
+ // Booking has been canceled on behalf of the user.
+ // The merchant can still trigger a manual refund.
+ CANCELED = 3;
+ // User did not show for the appointment
+ NO_SHOW = 4;
+ // User did not show for the appointment in violation of the cancellation
+ // policy.
+ NO_SHOW_PENALIZED = 5;
}
-// [END user_definition]
-// [START paymentprocessing_definition]
+// BookingFailure specification
+
+// Status data that conveys why (1) creating a lease or (2) creating or updating
+// a booking fails.
+// BookingFailure is intended to primarily capture business logic errors.
+message BookingFailure {
+ enum Cause {
+ // Default value: Don't use; amounts to an "unknown error"
+ CAUSE_UNSPECIFIED = 0;
+ // The referenced availability slot is not available any longer.
+ SLOT_UNAVAILABLE = 1;
+ // The user has already booked an appointment for the referenced
+ // availability slot.
+ SLOT_ALREADY_BOOKED_BY_USER = 2;
+ // The lease (if provided) has expired and cannot be used any longer to
+ // complete the requested booking.
+ LEASE_EXPIRED = 3;
+ // The requested cancellation cannot be performed at the current time due
+ // to time restrictions in the merchant's cancellation policy.
+ OUTSIDE_CANCELLATION_WINDOW = 4;
+ // An error was encountered while processing the payment because the
+ // provided credit card type was not accepted by the merchant. The credit
+ // card type must be supplied in rejected_card_type.
+ PAYMENT_ERROR_CARD_TYPE_REJECTED = 5;
+ // An error was encountered while processing the payment because the
+ // provided credit card was declined.
+ PAYMENT_ERROR_CARD_DECLINED = 6;
+ // An error was encountered with the pack/membership used to pay for the
+ // booking. There could be no valid uses left, it could have expired, etc.
+ PAYMENT_OPTION_NOT_VALID = 7;
+ // An error was encountered while processing the payment for this booking.
+ // Use this value to indicate a general payment related error, only if the
+ // error does not match to a specific payment error above.
+ PAYMENT_ERROR = 8;
+ // User cannot use the given payment option (e.g. user trying to use a
+ // first time price for the second time).
+ USER_CANNOT_USE_PAYMENT_OPTION = 9;
+ // A booking that the user tried to cancel has already been cancelled.
+ BOOKING_ALREADY_CANCELLED = 10;
+ // A booking that the user tried to cancel is not cancellable.
+ BOOKING_NOT_CANCELLABLE = 11;
+ // User has an existing reservation too close to this time.
+ OVERLAPPING_RESERVATION = 12;
+ }
+ // The reason why the booking failed. (required)
+ Cause cause = 1;
+
+ // (required only if cause is PAYMENT_ERROR_CARD_TYPE_REJECTED)
+ CreditCardType rejected_card_type = 2;
+
+ // This optional field is used for the partner to include additional
+ // information for debugging purpose only. (optional)
+ string description = 3;
+}
+
+// Used when booking/order failure cause is PAYMENT_ERROR_CARD_TYPE_REJECTED to
+// indicate the type of credit card that was rejected.
+enum CreditCardType {
+ // Default value. Used if credit card type does not match to one below.
+ CREDIT_CARD_TYPE_UNSPECIFIED = 0;
+ VISA = 1;
+ MASTERCARD = 2;
+ AMERICAN_EXPRESS = 3;
+ DISCOVER = 4;
+}
+
+// Order specification
+
+// An order for service appointments with a merchant.
+message Order {
+ // ID of this Order, chosen by the booking partner who handles the order
+ // (required in CreateOrderResponse and ListOrdersResponse, must not be set in
+ // CreateOrderRequest)
+ string order_id = 1;
+ // Personal information of the user making the order (required)
+ UserInformation user_information = 2;
+ // Information about payment transactions that relate to the Order.
+ // (optional)
+ PaymentInformation payment_information = 3;
+ // The merchant that all services in this Order belong to.
+ string merchant_id = 4;
+ // Line items in this order.
+ repeated LineItem item = 5;
+}
+
+// A single item in an Order--the booking of a single service in a single time
+// slot.
+message LineItem {
+ // ID of the merchant Service. (required)
+ string service_id = 1;
+ // Start time of the appointment slot in seconds of UTC time since Unix epoch.
+ // (required)
+ int64 start_sec = 2;
+ // Duration of the appointment slot in seconds. (required)
+ int64 duration_sec = 3;
+
+ message OrderedTickets {
+ string ticket_id = 1;
+ int32 count = 2;
+ }
+ // Number of tickets ordered by Ticket Type.
+ repeated OrderedTickets tickets = 4;
+
+ // In handling CreateOrderRequest and CheckOrderFulfillabilityRequest,
+ // the total price (excluding taxes) of the item must be verified to guard
+ // against price changes. In CreateOrderResponse and
+ // CheckOrderFulfillabilityResponse, the price should be updated to the
+ // correct value if the value from the request was incorrect or outdated.
+ // (reqired)
+ Price price = 5;
+
+ // Status of the Line Item. (required in CreateOrderResponse and
+ // ListOrdersResponse; should not be set in requests)
+ BookingStatus status = 6;
+}
+
+// Status data that conveys why creating an order fails.
+// OrderFailure is intended to primarily capture business logic errors.
+message OrderFailure {
+ enum Cause {
+ // Default value: Don't use; amounts to an "unknown error"
+ CAUSE_UNSPECIFIED = 0;
+ // The order is no longer fulfillable.
+ ORDER_UNFULFILLABLE = 1;
+ // An error was encountered while processing the payment because the
+ // provided credit card type was not accepted by the merchant. The credit
+ // card type must be supplied in rejected_card_type.
+ PAYMENT_ERROR_CARD_TYPE_REJECTED = 2;
+ // An error was encountered while processing the payment because the
+ // provided credit card was declined.
+ PAYMENT_ERROR_CARD_DECLINED = 3;
+ // An error was encountered while processing the payment for this order.
+ // Use this value to indicate a general payment related error, only if the
+ // error does not match to a specific payment error above.
+ PAYMENT_ERROR = 4;
+ }
+ // The reason why the order failed. (required)
+ Cause cause = 1;
+
+ // (required only if cause is ORDER_UNFULFILLABLE)
+ OrderFulfillability fulfillability = 2;
+
+ // (required only if cause is PAYMENT_ERROR_CARD_TYPE_REJECTED)
+ CreditCardType rejected_card_type = 3;
+
+ // This optional field is used for the partner to include additional
+ // information for debugging purpose only. (optional)
+ string description = 4;
+}
+
+// OrderFulfillability specification
+
+message OrderFulfillability {
+ // The result of an order fulfillability check.
+ enum OrderFulfillabilityResult {
+ // Default value: Don't use.
+ ORDER_FULFILLABILITY_RESULT_UNSPECIFIED = 0;
+ // The order can be fulfilled.
+ CAN_FULFILL = 1;
+ // The order cannot be fulfilled due to one or more unfulfillable line
+ // item(s).
+ UNFULFILLABLE_LINE_ITEM = 2;
+ // The combination of the line items requested cannot be fulfilled.
+ UNFULFILLABLE_SERVICE_COMBINATION = 3;
+ // The order cannot be fulfilled due to reasons that do not fall into the
+ // categories above.
+ ORDER_UNFULFILLABLE_OTHER_REASON = 4;
+ }
+
+ OrderFulfillabilityResult result = 1;
+ // Fulfillability results of all line items in this order (required).
+ repeated LineItemFulfillability item_fulfillability = 2;
+ // Additional description of the reason if the item is unfulfillable.
+ // (optional)
+ string unfulfillable_reason = 3;
+}
+
+// Fulfillability of a line item.
+message LineItemFulfillability {
+ // The line item of question. (required)
+ LineItem item = 1;
+
+ // The result of a line item fulfillability check.
+ enum ItemFulfillabilityResult {
+ // Default value: Don't use.
+ ITEM_FULFILLABILITY_RESULT_UNSPECIFIED = 0;
+ // This line item can be fulfilled.
+ CAN_FULFILL = 1;
+ // No adequate availability for the slot requested.
+ SLOT_UNAVAILABLE = 2;
+ // The combination of ticket types requested cannot be fulfilled.
+ UNFULFILLABLE_TICKET_COMBINATION = 3;
+ // The total price of this line item is not correct.
+ INCORRECT_PRICE = 4;
+ // The line item cannot be fulfilled for reasons that do not fall into
+ // the categories above.
+ ITEM_UNFULFILLABLE_OTHER_REASON = 5;
+ }
+ // (required)
+ ItemFulfillabilityResult result = 2;
+ // Additional description of the reason if the item is unfulfillable.
+ // (optional)
+ string unfulfillable_reason = 3;
+ // Updated availability for this slot can be piggybacked in
+ // CheckOrderFulfillabilityResponse.
+ message UpdatedAvailability {
+ // Number of available spots for the given slot. 0 indicates no
+ // availability. (required)
+ int32 spots_open = 1;
+ }
+ // (optional)
+ UpdatedAvailability availability = 4;
+ // Updated ticket types can be piggybacked in
+ // CheckOrderFulfillabilityResponse. If non-empty, all available ticket types
+ // for this slot with up-to-date prices should be listed without omitting any.
+ // (optional)
+ repeated TicketType ticket_type = 5;
+}
+
+// TicketType is used to differentiate among tickets (where a ticket can be a
+// spot on a raft trip, an admission to a museum, etc.) with different prices
+// and/or availabilities due to different user types or different service
+// attributes.
+message TicketType {
+ // The ticket id is used to differentiate among different ticket types of the
+ // same service, and is only expected to be unique within a service.
+ string ticket_type_id = 1;
+
+ // This can be user visible, e.g., “adult”, "child", “veteran”, “Row J”, etc.
+ string short_description = 2;
+
+ // The price of a single ticket of this type, exclusive of any taxes. The tax
+ // rate of Service is applied to its tickets.
+ Price price = 3;
+}
+
+// Other specifications
+
+// Resource specification that disambiguates an appointment slot
+message ResourceIds {
+ // The staff ID as provided in the feed or empty if not applicable or no staff
+ // was selected. (optional)
+ string staff_id = 1;
+ // The room ID as provided in the feed or empty if not applicable or no room
+ // was selected. (optional)
+ string room_id = 2;
+ // For Dining Reservations only: the number of seats requested in the booking.
+ // (optional)
+ int32 party_size = 3;
+}
+
+// Payment specification
+
message PaymentProcessingParameters {
enum PaymentProcessor {
PAYMENT_PROCESSOR_UNSPECIFIED = 0;
@@ -386,18 +686,14 @@
// (required)
string payment_processor = 4;
}
-// [END paymentprocessing_definition]
-// [START paymentoption_definition]
enum PaymentOptionType {
PAYMENT_OPTION_TYPE_UNSPECIFIED = 0;
PAYMENT_OPTION_SINGLE_USE = 1;
PAYMENT_OPTION_MULTI_USE = 2;
PAYMENT_OPTION_UNLIMITED_USE = 3;
}
-// [END paymentoption_definition]
-// [START userpaymentoption_definition]
// This describes a payment option, such as a pack, membership, or
// single-session pass after it has been purchased by a user. It includes an
// identifier for the user payment option, as well as some information about
@@ -426,9 +722,7 @@
// payment option. (required)
string payment_option_id = 7;
}
-// [END userpaymentoption_definition]
-// [START paymentinfo_definition]
// Payment details that are sent when creating a new booking.
message PaymentInformation {
// Prepayment status of the booking.
@@ -441,7 +735,10 @@
PrepaymentStatus prepayment_status = 1;
// Unique identifier for a payment transaction associated with the booking.
- // Empty if not applicable. (required)
+ // If the payment is PROCESSED_BY_GOOGLE, this field will be set by Google.
+ // If the payment is PROCESSED_BY_PARTNER, this field will be left empty in
+ // Google's CreateBooking or CreateOrder requests to the partner, and it must
+ // be set by the partner in their responses.
string payment_transaction_id = 2;
// These fields must match the service price (specified in the Services feed)
@@ -505,101 +802,7 @@
// CreateOrder method). (optional)
Price fees_and_taxes = 10;
}
-// [END paymentinfo_definition]
-// [START bookingstatus_definition]
-// Status of a booking.
-//
-// Updating booking status does not change the status of the associated payment.
-// Prepayment status updates should be done using the PrepaymentStatus enum.
-//
-// nextID: 6
-enum BookingStatus {
- // Not specified.
- BOOKING_STATUS_UNSPECIFIED = 0;
- // Booking has been confirmed
- CONFIRMED = 1;
- // Booking is awaiting confirmation by the merchant before it can transition
- // into CONFIRMED status
- PENDING_MERCHANT_CONFIRMATION = 2;
- // Booking has been canceled on behalf of the user.
- // The merchant can still trigger a manual refund.
- CANCELED = 3;
- // User did not show for the appointment
- NO_SHOW = 4;
- // User did not show for the appointment in violation of the cancellation
- // policy.
- NO_SHOW_PENALIZED = 5;
-}
-// [END bookingstatus_definition]
-
-// [START creditcardtype_definition]
-// Used when booking/order failure cause is PAYMENT_ERROR_CARD_TYPE_REJECTED to
-// indicate the type of credit card that was rejected.
-enum CreditCardType {
- // Default value. Used if credit card type does not match to one below.
- CREDIT_CARD_TYPE_UNSPECIFIED = 0;
- VISA = 1;
- MASTERCARD = 2;
- AMERICAN_EXPRESS = 3;
- DISCOVER = 4;
-}
-// [END creditcardtype_definition]
-
-// [START bookingfailure_definition]
-// Status data that conveys why (1) creating a lease or (2) creating or updating
-// a booking fails.
-// BookingFailure is intended to primarily capture business logic errors.
-message BookingFailure {
- enum Cause {
- // Default value: Don't use; amounts to an "unknown error"
- CAUSE_UNSPECIFIED = 0;
- // The referenced availability slot is not available any longer.
- SLOT_UNAVAILABLE = 1;
- // The user has already booked an appointment for the referenced
- // availability slot.
- SLOT_ALREADY_BOOKED_BY_USER = 2;
- // The lease (if provided) has expired and cannot be used any longer to
- // complete the requested booking.
- LEASE_EXPIRED = 3;
- // The requested cancellation cannot be performed at the current time due
- // to time restrictions in the merchant's cancellation policy.
- OUTSIDE_CANCELLATION_WINDOW = 4;
- // An error was encountered while processing the payment because the
- // provided credit card type was not accepted by the merchant. The credit
- // card type must be supplied in rejected_card_type.
- PAYMENT_ERROR_CARD_TYPE_REJECTED = 5;
- // An error was encountered while processing the payment because the
- // provided credit card was declined.
- PAYMENT_ERROR_CARD_DECLINED = 6;
- // An error was encountered with the pack/membership used to pay for the
- // booking. There could be no valid uses left, it could have expired, etc.
- PAYMENT_OPTION_NOT_VALID = 7;
- // An error was encountered while processing the payment for this booking.
- // Use this value to indicate a general payment related error, only if the
- // error does not match to a specific payment error above.
- PAYMENT_ERROR = 8;
- // User cannot use the given payment option (e.g. user trying to use a
- // first time price for the second time).
- USER_CANNOT_USE_PAYMENT_OPTION = 9;
- // A booking that the user tried to cancel has already been cancelled.
- BOOKING_ALREADY_CANCELLED = 10;
- // A booking that the user tried to cancel is not cancellable.
- BOOKING_NOT_CANCELLABLE = 11;
- }
- // The reason why the booking failed. (required)
- Cause cause = 1;
-
- // (required only if cause is PAYMENT_ERROR_CARD_TYPE_REJECTED)
- CreditCardType rejected_card_type = 2;
-
- // This optional field is used for the partner to include additional
- // information for debugging purpose only. (optional)
- string description = 3;
-}
-// [END bookingfailure_definition]
-
-// [START prepaymentstatus_definition]
// Prepayment status of a booking.
// Updating payment status will trigger an update on the payment status of the
// associated booking (if applicable).
@@ -621,465 +824,119 @@
// UserPaymentOption.
PREPAYMENT_CREDITED = 4;
}
-// [END prepaymentstatus_definition]
-// [START message_slot_availability]
-// An inventory slot and associated count of open spots.
-message SlotAvailability {
- Slot slot = 1;
- // Number of available spots.
- // 0 indicates that the appointment slot is not available. (required)
- int32 count_available = 2;
-}
-// [END message_slot_availability]
-
-// [START message_availability_update]
-// An update to one ore more slots indicating that the availability for the
-// associated time has potentially changed.
-message AvailabilityUpdate {
- repeated SlotAvailability slot_availability = 1;
-}
-// [END message_availability_update]
-
-// [START resources_definition]
-// Resource specification that disambiguates an appointment slot
-message ResourceIds {
- // The staff ID as provided in the feed or empty if not applicable or no staff
- // was selected. (optional)
- string staff_id = 1;
- // The room ID as provided in the feed or empty if not applicable or no room
- // was selected. (optional)
- string room_id = 2;
- // For Dining Reservations only: the number of seats requested in the booking.
- // (optional)
- int32 party_size = 3;
-}
-// [END resources_definition]
-
-// [START tickettype_definition]
-// TicketType is used to differentiate among tickets (where a ticket can be a
-// spot on a raft trip, an admission to a museum, etc.) with different prices
-// and/or availabilities due to different user types or different service
-// attributes.
-message TicketType {
- // The ticket id is used to differentiate among different ticket types of the
- // same service, and is only expected to be unique within a service.
- string ticket_type_id = 1;
-
- // This can be user visible, e.g., “adult”, "child", “veteran”, “Row J”, etc.
- string short_description = 2;
-
- // The price of a single ticket of this type, exclusive of any taxes. The tax
- // rate of Service is applied to its tickets.
- Price price = 3;
-}
-// [END tickettype_definition]
-
-// [START lineitem_definition]
-// A single item in an order--the booking of a single service in a single time
-// slot.
-message LineItem {
- // ID of the merchant service. (required)
- string service_id = 1;
- // Start time of the appointment slot in seconds of UTC time since Unix epoch.
+// The price of a service or a fee.
+message Price {
+ // The price in micro-units of the currency.
+ // Fractions of smallest currency unit will be rounded using nearest even
+ // rounding. (e.g. For USD 2.5 cents rounded to 2 cents, 3.5 cents rounded to
+ // 4 cents, 0.5 cents rounded to 0 cents, 2.51 cents rounded to 3 cents).
// (required)
- int64 start_sec = 2;
- // Duration of the appointment slot in seconds. (required)
- int64 duration_sec = 3;
-
- message OrderedTickets {
- string ticket_id = 1;
- int32 count = 2;
- }
- // Number of tickets ordered by type.
- repeated OrderedTickets tickets = 4;
-
- // In handling CreateOrderRequest and CheckOrderFulfillabilityRequest,
- // the total price (excluding taxes) of the item must be verified to guard
- // against price changes. In CreateOrderResponse and
- // CheckOrderFulfillabilityResponse, the price should be updated to the
- // correct value if the value from the request was incorrect or outdated.
- // (reqired)
- Price price = 5;
-
- // Status of the line item. (required in CreateOrderResponse and
- // ListOrdersResponse; should not be set in requests)
- BookingStatus status = 6;
-}
-// [END lineitem_definition]
-
-// [START lineitemfulfillability_definition]
-// Fulfillability of a line item.
-message LineItemFulfillability {
- // The line item of question. (required)
- LineItem item = 1;
-
- // The result of a line item fulfillability check.
- enum ItemFulfillabilityResult {
- // Default value: Don't use.
- ITEM_FULFILLABILITY_RESULT_UNSPECIFIED = 0;
- // This line item can be fulfilled.
- CAN_FULFILL = 1;
- // No adequate availability for the slot requested.
- SLOT_UNAVAILABLE = 2;
- // The combination of ticket types requested cannot be fulfilled.
- UNFULFILLABLE_TICKET_COMBINATION = 3;
- // The total price of this line item is not incorrect.
- INCORRECT_PRICE = 4;
- // The line item cannot be fulfilled for reasons that do not fall into
- // the categories above.
- ITEM_UNFULFILLABLE_OTHER_REASON = 5;
- }
- // (required)
- ItemFulfillabilityResult result = 2;
- // Additional description of the reason if the item is unfulfillable.
- // (optional)
- string unfulfillable_reason = 3;
- // Updated availability for this slot can be piggybacked in
- // CheckOrderFulfillabilityResponse. (optional)
- int32 spots_open = 4;
- // Updated ticket types can be piggybacked in
- // CheckOrderFulfillabilityResponse. If non-empty, all available ticket types
- // for this slot with up-to-date prices should be listed without omitting any.
- // (optional)
- repeated TicketType ticket_type = 5;
-}
-// [END lineitemfulfillability_definition]
-
-// [START orderfulfillability_definition]
-message OrderFulfillability {
- // The result of an order fulfillability check.
- enum OrderFulfillabilityResult {
- // Default value: Don't use.
- ORDER_FULFILLABILITY_RESULT_UNSPECIFIED = 0;
- // The order can be fulfilled.
- CAN_FULFILL = 1;
- // The order cannot be fulfilled due to one or more unfulfillable line
- // item(s).
- UNFULFILLABLE_LINE_ITEM = 2;
- // The combination of the line items requested cannot be fulfilled.
- UNFULFILLABLE_SERVICE_COMBINATION = 3;
- // The order cannot be fulfilled due to reasons that do not fall into the
- // categories above.
- ORDER_UNFULFILLABLE_OTHER_REASON = 4;
- }
-
- OrderFulfillabilityResult result = 1;
- // Fulfillability results of all line items in this order (required).
- repeated LineItemFulfillability item_fulfillability = 2;
- // Additional description of the reason if the item is unfulfillable.
- // (optional)
- string unfulfillable_reason = 3;
-}
-// [END orderfulfillability_definition]
-
-// [START order_definition]
-// An order for service appointments with a merchant.
-message Order {
- // ID of this order, chosen by the booking partner who handles the order
- // (required in CreateOrderResponse and ListOrdersResponse, must not be set in
- // CreateOrderRequest)
- string order_id = 1;
- // Personal information of the user making the order (required)
- UserInformation user_information = 2;
- // Information about payment transactions that relate to the order.
- // (optional)
- PaymentInformation payment_information = 3;
- // The merchant that all services in this order belong to.
- string merchant_id = 4;
- // Line items in this order.
- repeated LineItem item = 5;
-}
-// [END order_definition]
-
-// [START orderfailure_definition]
-// Status data that conveys why creating an order fails.
-// OrderFailure is intended to primarily capture business logic errors.
-message OrderFailure {
- enum Cause {
- // Default value: Don't use; amounts to an "unknown error"
- CAUSE_UNSPECIFIED = 0;
- // The order is no longer fulfillable.
- ORDER_UNFULFILLABLE = 1;
- // An error was encountered while processing the payment because the
- // provided credit card type was not accepted by the merchant. The credit
- // card type must be supplied in rejected_card_type.
- PAYMENT_ERROR_CARD_TYPE_REJECTED = 2;
- // An error was encountered while processing the payment because the
- // provided credit card was declined.
- PAYMENT_ERROR_CARD_DECLINED = 3;
- // An error was encountered while processing the payment for this order.
- // Use this value to indicate a general payment related error, only if the
- // error does not match to a specific payment error above.
- PAYMENT_ERROR = 4;
- }
- // The reason why the order failed. (required)
- Cause cause = 1;
-
- // (required only if cause is ORDER_UNFULFILLABLE)
- OrderFulfillability fulfillability = 2;
-
- // (required only if cause is PAYMENT_ERROR_CARD_TYPE_REJECTED)
- CreditCardType rejected_card_type = 3;
-
- // This optional field is used for the partner to include additional
- // information for debugging purpose only. (optional)
- string description = 4;
-}
-// [END orderfailure_definition]
-
-// [START method_check_availability]
-// Request to check availability for a Slot.
-message CheckAvailabilityRequest {
- // The appointment slot that is being checked (required)
- Slot slot = 1;
+ int64 price_micros = 1;
+ // The currency of the price that is defined in ISO 4217. (required)
+ string currency_code = 2;
+ // An optional and opaque string that identifies the pricing option that is
+ // associated with the extended price. (optional)
+ string pricing_option_tag = 3;
}
-// Response for the CheckAvailability RPC with the availability of the
-// appointment slot.
-message CheckAvailabilityResponse {
- // The requested slot. (required)
- Slot slot = 1;
- // Number of available spots.
- // 0 indicates that the appointment slot is not available. (required)
- int32 count_available = 2;
- // This enum indicates what requirements exist for the user to acknowledge or
- // view the requested slots duration/end time.
- enum DurationRequirement {
- // The handling of the end time is not specified. This is the default.
- DURATION_REQUIREMENT_UNSPECIFIED = 0;
-
- // The end time is not shown to the user.
- DO_NOT_SHOW_DURATION = 1;
-
- // The end time has to be shown to the user before an appointment can be
- // made.
- MUST_SHOW_DURATION = 2;
- }
- // The requirement to show the slots duration and/or endtime. This field will
- // be ignored if the slot is unavailable. (optional)
- DurationRequirement duration_requirement = 3;
-
- // Optionally, the partner can return additional updated information about the
- // availability for this merchant if this information is present when
- // responding to the CheckAvailabilityRequest and if there is no negative
- // impact on the CheckAvailability request latency.
- // For instance an entire day of merchant availability for a superset of
- // resources can be returned here.
- AvailabilityUpdate availability_update = 4;
-}
-// [END method_check_availability]
-
-// [START method_get_booking_status]
-// Request to get booking status and prepayment status for a Booking.
-message GetBookingStatusRequest {
- // ID of the existing booking (required)
- string booking_id = 1;
+// Defines how a total price is determined from an availability.
+enum PriceType {
+ // The price is for a fixed amount. This is the default value if the field is
+ // not set.
+ FIXED_RATE_DEFAULT = 0;
+ // The price specified is per person, and the total price is calculated
+ // according to the party size specified in Resources as
+ // price_micros * party_size. A PER_PERSON price must be accompanied by a
+ // party size in the availability resources. If it is not, a party size of one
+ // is used.
+ PER_PERSON = 1;
}
-// Response for the GetBookingStatus RPC with booking status and prepayment
-// status.
-message GetBookingStatusResponse {
- // ID of the booking (required)
- string booking_id = 1;
+// A fee that a user may be charged if they have made a booking but do not
+// show up.
+message NoShowFee {
+ // The amount the user may be charged if they do not show up for their
+ // reservation.
+ Price fee = 1;
- // Status of the booking (required)
- BookingStatus booking_status = 2;
-
- // Prepayment status of the booking (required)
- PrepaymentStatus prepayment_status = 3;
+ // Defines how the fee is determined from the availability.
+ PriceType fee_type = 3;
}
-// [END method_get_booking_status]
-// [START method_check_order_fulfillability]
-// Request to check the fulfillability of an order.
-message CheckOrderFulfillabilityRequest {
- // The merchant that this order is intended for. (required)
+// A deposit that the user may be charged or have a hold on their credit card
+// for.
+message Deposit {
+ // Deposit amount.
+ Price deposit = 1;
+
+ // Minimum advance cancellation for the deposit.
+ int64 min_advance_cancellation_sec = 2;
+
+ // Defines how the deposit is determined from the availability.
+ PriceType deposit_type = 3;
+}
+
+// Slot specification
+
+// An inventory slot
+message Slot {
+ // ID of the merchant for the slot (required)
string merchant_id = 1;
- // The line items in this order. All services requested must belong to the
- // specified merchant. (required)
- repeated LineItem item = 2;
-}
+ // ID of the merchant Service (required)
+ string service_id = 2;
-// Response for the CheckOrderfulfillabilityRequest.
-message CheckOrderFulfillabilityResponse {
- // Fulfillability status of the order, potentially contains updated
- // availabilities and prices of the requested line item. (required)
- OrderFulfillability fulfillability = 1;
-
- // Total processing fees & taxes that need to be paid for this order.
+ // Start time of the appointment slot in seconds of UTC time since Unix epoch.
// (required)
- Price fees_and_taxes = 2;
-}
-// [END method_check_order_fulfillability]
+ int64 start_sec = 3;
-// [START method_create_booking]
-// Request to create a Booking for an inventory slot. Consumes the lease if
-// provided.
-message CreateBookingRequest {
- // The inventory slot that is being requested to make this booking.
- // If lease_ref is provided, slot must match the lease; slot is provided for
- // the partner to verify the lease information.
- // If lease_ref is absent, then create the booking for the slot. (required)
- Slot slot = 1;
+ // Duration of the appointment slot (required)
+ int64 duration_sec = 4;
- // The lease that is being confirmed to make this booking.
- // If lease_ref is provided, then create the booking using the lease.
- // (optional)
- LeaseReference lease_ref = 2;
+ // Opaque tag that identifies the availability slot and matches the value
+ // provided in the availability feed (optional)
+ string availability_tag = 5;
- // Personal information of the user making the appointment (required)
- UserInformation user_information = 3;
-
- // Information about payments. When payment authorizations are handled by
- // Google, if the booking request does not succeed, payment authorizations are
- // automatically canceled. (optional)
- PaymentInformation payment_information = 4;
-
- // 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). (optional)
- PaymentProcessingParameters payment_processing_parameters = 5;
-
- // Idempotency token for CreateBooking requests. (required)
- string idempotency_token = 6;
-
- // A string from the user which contains any special requests or additional
- // information that they would like to notify the merchant about. (optional)
- string additional_request = 7;
+ // The set of resources that disambiguates the appointment slot, e.g. by
+ // indicating the staff member and room selected by the user (optional)
+ ResourceIds resources = 6;
}
-// Response with the created Booking for an inventory slot.
-message CreateBookingResponse {
- // The created booking (required)
- Booking booking = 1;
+// User specification
- // 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.
- // (optional)
- UserPaymentOption user_payment_option = 2;
-
- // If creating a booking fails, this field should reflect the business logic
- // error (e.g., slot has become unavailable) and all other fields in the
- // CreateBookingResponse message are expected to be unset. (required if
- // failure occurs)
- BookingFailure booking_failure = 3;
-}
-// [END method_create_booking]
-
-// [START method_create_order]
-// Request to create an order.
-message CreateOrderRequest {
- // The order to create. (required)
- Order order = 1;
-
- // The parameters to be used if the payment is processed by the partner
- // (i.e. order.payment_information.payment_processed_by is equal to
- // PROCESSED_BY_PARTNER). (required if payment is processed by the partner)
- PaymentProcessingParameters payment_processing_parameters = 2;
-
- // Idempotency token for CreateOrder requests. (required)
- string idempotency_token = 3;
-}
-
-// Response for the CreateOrderRequest.
-message CreateOrderResponse {
- // The order created. (required)
- Order order = 1;
-
- // If creating an order fails, this field should reflect the business logic
- // error (e.g., slot has become unavailable or price has changed) and all
- // other fields in the CreateOrderResponse are expected to be unset. (required
- // if failure occurs)
- OrderFailure order_failure = 2;
-}
-// [END method_create_order]
-
-// [START method_create_lease]
-// Request to create a Leaese 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
+// Personal information about the person making a booking
+message UserInformation {
+ // Unique ID of the user to the partner, chosen by Reserve with Google.
// (required)
- Lease lease = 1;
-}
-
-// Response for the CreateLease RPC with the created Lease.
-message CreateLeaseResponse {
- // The created 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;
-}
-// [END method_create_lease]
-
-// [START method_list_bookings]
-// Request to list all bookings for a user
-message ListBookingsRequest {
- // ID of the user (required)
string user_id = 1;
+
+ // Given name of the user (maximum 40 characters) (required)
+ string given_name = 2;
+
+ // Family name of the user (maximum 40 characters) (required)
+ string family_name = 3;
+
+ // Address of the user (optional)
+ PostalAddress address = 4;
+
+ // Phone number of the user (required)
+ string telephone = 5;
+
+ // Email address of the user (required)
+ string email = 6;
}
-// Response for the ListBookings RPC with all bookings for the requested user.
-message ListBookingsResponse {
- // All bookings of the user (required)
- repeated Booking bookings = 1;
-}
-// [END method_list_bookings]
-
-// [START method_list_orders]
-// Request to list orders.
-message ListOrdersRequest {
- // ID of the user (required only if order_id is not set).
- string user_id = 1;
- // If set, return only the specified orders; otherwise, return all orders of
- // the user. (required only if user_id is not set).
- repeated string order_id = 2;
-}
-
-// Response for the ListOrders RPC.
-message ListOrdersResponse {
- // All requested orders (required)
- repeated Order order = 1;
-}
-// [END method_list_orders]
-
-// [START method_update_booking]
-// Request to update a Booking.
-message UpdateBookingRequest {
- // The booking to be updated
- // The following fields can be set in a booking:
- // - status, to cancel a booking.
- // - start_time and duration in the slot, to reschedule a booking. (required)
- Booking booking = 1;
-}
-
-// Response with the updated Booking.
-message UpdateBookingResponse {
- // The updated booking (required)
- Booking booking = 1;
-
- // The updated user payment option originally used to pay for this booking.
- // This should be set if the UpdateBookingRequest results in a change to
- // the UserPaymentOption.
- // For instance, if the booking is canceled, the UserPaymentOption should
- // reflect an additional credit to the user. In the case of a multi-use
- // payment option, the current_count should be increased by one to
- // allow the user to create another booking with this payment option. In the
- // case of a single-use payment option, a new single-use user payment option
- // should be returned. (required if altered in update)
- UserPaymentOption user_payment_option = 2;
-
- // If updating a booking fails, this field should reflect the business logic
- // error (e.g., booking is not cancellable) (required if failure occurs)
- BookingFailure booking_failure = 3;
-}
-// [END method_update_booking]
+// The postal address for a merchant.
+message PostalAddress {
+ // The country, e.g. "USA". (required)
+ string country = 1;
+ // The locality/city, e.g. "Mountain View". (required)
+ string locality = 2;
+ // The region/state/province, e.g. "CA". (required)
+ string region = 3;
+ // The postal code, e.g. "94043". (required)
+ string postal_code = 4;
+ // The street address, e.g. "1600 Amphitheatre Pkwy". (required)
+ string street_address = 5;
+}
\ No newline at end of file
diff --git a/testclient/bookingBasedTestClient.go b/testclient/bookingClient.go
similarity index 100%
rename from testclient/bookingBasedTestClient.go
rename to testclient/bookingClient.go
diff --git a/testclient/orderBasedTestClient.go b/testclient/orderClient.go
similarity index 100%
rename from testclient/orderBasedTestClient.go
rename to testclient/orderClient.go
diff --git a/v3/v3.pb.go b/v3/v3.pb.go
index 2df1389..3db0270 100644
--- a/v3/v3.pb.go
+++ b/v3/v3.pb.go
@@ -1,62 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: v3.proto
-/*
-Package v3 is a generated protocol buffer package.
-
-It is generated from these files:
- v3.proto
-
-It has these top-level messages:
- PostalAddress
- GeoCoordinates
- Price
- TaxRate
- SchedulingRules
- IngestionQueuePayload
- IngestionStatus
- TimeRange
- NoShowFee
- Deposit
- ActionLink
- Slot
- Lease
- LeaseReference
- Booking
- UserInformation
- PaymentProcessingParameters
- UserPaymentOption
- PaymentInformation
- BookingFailure
- SlotAvailability
- AvailabilityUpdate
- ResourceIds
- TicketType
- LineItem
- LineItemFulfillability
- OrderFulfillability
- Order
- OrderFailure
- CheckAvailabilityRequest
- CheckAvailabilityResponse
- GetBookingStatusRequest
- GetBookingStatusResponse
- CheckOrderFulfillabilityRequest
- CheckOrderFulfillabilityResponse
- CreateBookingRequest
- CreateBookingResponse
- CreateOrderRequest
- CreateOrderResponse
- CreateLeaseRequest
- CreateLeaseResponse
- ListBookingsRequest
- ListBookingsResponse
- ListOrdersRequest
- ListOrdersResponse
- UpdateBookingRequest
- UpdateBookingResponse
-*/
-package v3
+package ext_maps_booking_partner_v3
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
@@ -73,161 +18,6 @@
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
-// This defines the ingestion source type.
-type IngestionSource int32
-
-const (
- IngestionSource_SOURCE_UNKNOWN IngestionSource = 0
- // This ingestion is from an uploaded feed file.
- IngestionSource_SOURCE_FEED IngestionSource = 1
- // This ingestion is from an API call.
- IngestionSource_SOURCE_API IngestionSource = 2
-)
-
-var IngestionSource_name = map[int32]string{
- 0: "SOURCE_UNKNOWN",
- 1: "SOURCE_FEED",
- 2: "SOURCE_API",
-}
-var IngestionSource_value = map[string]int32{
- "SOURCE_UNKNOWN": 0,
- "SOURCE_FEED": 1,
- "SOURCE_API": 2,
-}
-
-func (x IngestionSource) String() string {
- return proto.EnumName(IngestionSource_name, int32(x))
-}
-func (IngestionSource) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
-
-// The types of content that we can ingest through feeds or APIs.
-type ContentType int32
-
-const (
- ContentType_CONTENT_UNKNOWN ContentType = 0
- ContentType_CONTENT_MERCHANT ContentType = 1
- ContentType_CONTENT_SERVICE ContentType = 2
- ContentType_CONTENT_AVAILABILITY ContentType = 3
- ContentType_CONTENT_PAYMENT_OPTION ContentType = 4
- ContentType_CONTENT_PAYMENT_OPTION_SERVICE ContentType = 5
-)
-
-var ContentType_name = map[int32]string{
- 0: "CONTENT_UNKNOWN",
- 1: "CONTENT_MERCHANT",
- 2: "CONTENT_SERVICE",
- 3: "CONTENT_AVAILABILITY",
- 4: "CONTENT_PAYMENT_OPTION",
- 5: "CONTENT_PAYMENT_OPTION_SERVICE",
-}
-var ContentType_value = map[string]int32{
- "CONTENT_UNKNOWN": 0,
- "CONTENT_MERCHANT": 1,
- "CONTENT_SERVICE": 2,
- "CONTENT_AVAILABILITY": 3,
- "CONTENT_PAYMENT_OPTION": 4,
- "CONTENT_PAYMENT_OPTION_SERVICE": 5,
-}
-
-func (x ContentType) String() string {
- return proto.EnumName(ContentType_name, int32(x))
-}
-func (ContentType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
-
-// [START pricetype_definition]
-// Defines how a total price is determined from an availability.
-type PriceType int32
-
-const (
- // The price is for a fixed amount. This is the default value if the field is
- // not set.
- PriceType_FIXED_RATE_DEFAULT PriceType = 0
- // The price specified is per person, and the total price is calculated
- // according to the party size specified in Resources as
- // price_micros * party_size. A PER_PERSON price must be accompanied by a
- // party size in the availability resources. If it is not, a party size of one
- // is used.
- PriceType_PER_PERSON PriceType = 1
-)
-
-var PriceType_name = map[int32]string{
- 0: "FIXED_RATE_DEFAULT",
- 1: "PER_PERSON",
-}
-var PriceType_value = map[string]int32{
- "FIXED_RATE_DEFAULT": 0,
- "PER_PERSON": 1,
-}
-
-func (x PriceType) String() string {
- return proto.EnumName(PriceType_name, int32(x))
-}
-func (PriceType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
-
-// [START RequireCreditCard_definition]
-// Defines whether a credit card is required in order to book an appointment.
-type RequireCreditCard int32
-
-const (
- // The credit card requirement is not explicitly specified and the
- // behaviour is identical to the one specified for CONDITIONAL.
- RequireCreditCard_REQUIRE_CREDIT_CARD_UNSPECIFIED RequireCreditCard = 0
- // Google will require a credit card for the booking if any of the following
- // conditions are met:
- // * the availability has a price and the prepayment_type is REQUIRED
- // * the no_show_fee is set
- // * the deposit field is set.
- RequireCreditCard_REQUIRE_CREDIT_CARD_CONDITIONAL RequireCreditCard = 1
- // A credit card is always required in order to book this availability
- // regardless of other field values.
- RequireCreditCard_REQUIRE_CREDIT_CARD_ALWAYS RequireCreditCard = 2
-)
-
-var RequireCreditCard_name = map[int32]string{
- 0: "REQUIRE_CREDIT_CARD_UNSPECIFIED",
- 1: "REQUIRE_CREDIT_CARD_CONDITIONAL",
- 2: "REQUIRE_CREDIT_CARD_ALWAYS",
-}
-var RequireCreditCard_value = map[string]int32{
- "REQUIRE_CREDIT_CARD_UNSPECIFIED": 0,
- "REQUIRE_CREDIT_CARD_CONDITIONAL": 1,
- "REQUIRE_CREDIT_CARD_ALWAYS": 2,
-}
-
-func (x RequireCreditCard) String() string {
- return proto.EnumName(RequireCreditCard_name, int32(x))
-}
-func (RequireCreditCard) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
-
-// [START paymentoption_definition]
-type PaymentOptionType int32
-
-const (
- PaymentOptionType_PAYMENT_OPTION_TYPE_UNSPECIFIED PaymentOptionType = 0
- PaymentOptionType_PAYMENT_OPTION_SINGLE_USE PaymentOptionType = 1
- PaymentOptionType_PAYMENT_OPTION_MULTI_USE PaymentOptionType = 2
- PaymentOptionType_PAYMENT_OPTION_UNLIMITED_USE PaymentOptionType = 3
-)
-
-var PaymentOptionType_name = map[int32]string{
- 0: "PAYMENT_OPTION_TYPE_UNSPECIFIED",
- 1: "PAYMENT_OPTION_SINGLE_USE",
- 2: "PAYMENT_OPTION_MULTI_USE",
- 3: "PAYMENT_OPTION_UNLIMITED_USE",
-}
-var PaymentOptionType_value = map[string]int32{
- "PAYMENT_OPTION_TYPE_UNSPECIFIED": 0,
- "PAYMENT_OPTION_SINGLE_USE": 1,
- "PAYMENT_OPTION_MULTI_USE": 2,
- "PAYMENT_OPTION_UNLIMITED_USE": 3,
-}
-
-func (x PaymentOptionType) String() string {
- return proto.EnumName(PaymentOptionType_name, int32(x))
-}
-func (PaymentOptionType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
-
-// [START bookingstatus_definition]
// Status of a booking.
//
// Updating booking status does not change the status of the associated payment.
@@ -274,9 +64,10 @@
func (x BookingStatus) String() string {
return proto.EnumName(BookingStatus_name, int32(x))
}
-func (BookingStatus) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
+func (BookingStatus) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{0}
+}
-// [START creditcardtype_definition]
// Used when booking/order failure cause is PAYMENT_ERROR_CARD_TYPE_REJECTED to
// indicate the type of credit card that was rejected.
type CreditCardType int32
@@ -308,9 +99,39 @@
func (x CreditCardType) String() string {
return proto.EnumName(CreditCardType_name, int32(x))
}
-func (CreditCardType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
+func (CreditCardType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{1}
+}
-// [START prepaymentstatus_definition]
+type PaymentOptionType int32
+
+const (
+ PaymentOptionType_PAYMENT_OPTION_TYPE_UNSPECIFIED PaymentOptionType = 0
+ PaymentOptionType_PAYMENT_OPTION_SINGLE_USE PaymentOptionType = 1
+ PaymentOptionType_PAYMENT_OPTION_MULTI_USE PaymentOptionType = 2
+ PaymentOptionType_PAYMENT_OPTION_UNLIMITED_USE PaymentOptionType = 3
+)
+
+var PaymentOptionType_name = map[int32]string{
+ 0: "PAYMENT_OPTION_TYPE_UNSPECIFIED",
+ 1: "PAYMENT_OPTION_SINGLE_USE",
+ 2: "PAYMENT_OPTION_MULTI_USE",
+ 3: "PAYMENT_OPTION_UNLIMITED_USE",
+}
+var PaymentOptionType_value = map[string]int32{
+ "PAYMENT_OPTION_TYPE_UNSPECIFIED": 0,
+ "PAYMENT_OPTION_SINGLE_USE": 1,
+ "PAYMENT_OPTION_MULTI_USE": 2,
+ "PAYMENT_OPTION_UNLIMITED_USE": 3,
+}
+
+func (x PaymentOptionType) String() string {
+ return proto.EnumName(PaymentOptionType_name, int32(x))
+}
+func (PaymentOptionType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{2}
+}
+
// Prepayment status of a booking.
// Updating payment status will trigger an update on the payment status of the
// associated booking (if applicable).
@@ -353,122 +174,71 @@
func (x PrepaymentStatus) String() string {
return proto.EnumName(PrepaymentStatus_name, int32(x))
}
-func (PrepaymentStatus) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
+func (PrepaymentStatus) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{3}
+}
-// The status code of an Ingestion event: a feed upload or an API call.
-// Only used for logging the ingestion status in the IngestionMetadata
-// table, do NOT use it in the code's control flow.
-type IngestionStatus_Code int32
+// Defines how a total price is determined from an availability.
+type PriceType int32
const (
- // An unknown status for Ingestion, shouldn't use it.
- IngestionStatus_STATUS_UNKNOWN IngestionStatus_Code = 0
- // 1-99 for Feed upload.
- // A feed has been uploaded.
- IngestionStatus_STATUS_FEED_UPLOADED IngestionStatus_Code = 1
- // A feed has been added to the Ingestion Queue.
- IngestionStatus_STATUS_FEED_ENQUEUED IngestionStatus_Code = 2
- // A feed has been picked up from the queue and started processing.
- IngestionStatus_STATUS_FEED_PROCESSING_STARTED IngestionStatus_Code = 3
- // A feed has been processed successfully.
- IngestionStatus_STATUS_FEED_PROCESSING_SUCCEEDED IngestionStatus_Code = 4
- // A feed has failed the processing.
- IngestionStatus_STATUS_FEED_PROCESSING_FAILED IngestionStatus_Code = 5
- // A feed duplicate was uploaded.
- IngestionStatus_STATUS_FEED_DUPLICATED IngestionStatus_Code = 6
- // 101-199 for API.
- // An API has been called.
- IngestionStatus_STATUS_API_CALLED IngestionStatus_Code = 101
- // An API has been processed successfully.
- IngestionStatus_STATUS_API_PROCESSING_SUCCEEDED IngestionStatus_Code = 102
- // An API has failed the processing.
- IngestionStatus_STATUS_API_PROCESSING_FAILED IngestionStatus_Code = 103
+ // The price is for a fixed amount. This is the default value if the field is
+ // not set.
+ PriceType_FIXED_RATE_DEFAULT PriceType = 0
+ // The price specified is per person, and the total price is calculated
+ // according to the party size specified in Resources as
+ // price_micros * party_size. A PER_PERSON price must be accompanied by a
+ // party size in the availability resources. If it is not, a party size of one
+ // is used.
+ PriceType_PER_PERSON PriceType = 1
)
-var IngestionStatus_Code_name = map[int32]string{
- 0: "STATUS_UNKNOWN",
- 1: "STATUS_FEED_UPLOADED",
- 2: "STATUS_FEED_ENQUEUED",
- 3: "STATUS_FEED_PROCESSING_STARTED",
- 4: "STATUS_FEED_PROCESSING_SUCCEEDED",
- 5: "STATUS_FEED_PROCESSING_FAILED",
- 6: "STATUS_FEED_DUPLICATED",
- 101: "STATUS_API_CALLED",
- 102: "STATUS_API_PROCESSING_SUCCEEDED",
- 103: "STATUS_API_PROCESSING_FAILED",
+var PriceType_name = map[int32]string{
+ 0: "FIXED_RATE_DEFAULT",
+ 1: "PER_PERSON",
}
-var IngestionStatus_Code_value = map[string]int32{
- "STATUS_UNKNOWN": 0,
- "STATUS_FEED_UPLOADED": 1,
- "STATUS_FEED_ENQUEUED": 2,
- "STATUS_FEED_PROCESSING_STARTED": 3,
- "STATUS_FEED_PROCESSING_SUCCEEDED": 4,
- "STATUS_FEED_PROCESSING_FAILED": 5,
- "STATUS_FEED_DUPLICATED": 6,
- "STATUS_API_CALLED": 101,
- "STATUS_API_PROCESSING_SUCCEEDED": 102,
- "STATUS_API_PROCESSING_FAILED": 103,
+var PriceType_value = map[string]int32{
+ "FIXED_RATE_DEFAULT": 0,
+ "PER_PERSON": 1,
}
-func (x IngestionStatus_Code) String() string {
- return proto.EnumName(IngestionStatus_Code_name, int32(x))
+func (x PriceType) String() string {
+ return proto.EnumName(PriceType_name, int32(x))
}
-func (IngestionStatus_Code) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{6, 0} }
+func (PriceType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{4}
+}
-type PaymentProcessingParameters_PaymentProcessor int32
+// This enum indicates what requirements exist for the user to acknowledge or
+// view the requested slots duration/end time.
+type CheckAvailabilityResponse_DurationRequirement int32
const (
- PaymentProcessingParameters_PAYMENT_PROCESSOR_UNSPECIFIED PaymentProcessingParameters_PaymentProcessor = 0
- PaymentProcessingParameters_PROCESSOR_STRIPE PaymentProcessingParameters_PaymentProcessor = 1
- PaymentProcessingParameters_PROCESSOR_BRAINTREE PaymentProcessingParameters_PaymentProcessor = 2
+ // The handling of the end time is not specified. This is the default.
+ CheckAvailabilityResponse_DURATION_REQUIREMENT_UNSPECIFIED CheckAvailabilityResponse_DurationRequirement = 0
+ // The end time is not shown to the user.
+ CheckAvailabilityResponse_DO_NOT_SHOW_DURATION CheckAvailabilityResponse_DurationRequirement = 1
+ // The end time has to be shown to the user before an appointment can be
+ // made.
+ CheckAvailabilityResponse_MUST_SHOW_DURATION CheckAvailabilityResponse_DurationRequirement = 2
)
-var PaymentProcessingParameters_PaymentProcessor_name = map[int32]string{
- 0: "PAYMENT_PROCESSOR_UNSPECIFIED",
- 1: "PROCESSOR_STRIPE",
- 2: "PROCESSOR_BRAINTREE",
+var CheckAvailabilityResponse_DurationRequirement_name = map[int32]string{
+ 0: "DURATION_REQUIREMENT_UNSPECIFIED",
+ 1: "DO_NOT_SHOW_DURATION",
+ 2: "MUST_SHOW_DURATION",
}
-var PaymentProcessingParameters_PaymentProcessor_value = map[string]int32{
- "PAYMENT_PROCESSOR_UNSPECIFIED": 0,
- "PROCESSOR_STRIPE": 1,
- "PROCESSOR_BRAINTREE": 2,
+var CheckAvailabilityResponse_DurationRequirement_value = map[string]int32{
+ "DURATION_REQUIREMENT_UNSPECIFIED": 0,
+ "DO_NOT_SHOW_DURATION": 1,
+ "MUST_SHOW_DURATION": 2,
}
-func (x PaymentProcessingParameters_PaymentProcessor) String() string {
- return proto.EnumName(PaymentProcessingParameters_PaymentProcessor_name, int32(x))
+func (x CheckAvailabilityResponse_DurationRequirement) String() string {
+ return proto.EnumName(CheckAvailabilityResponse_DurationRequirement_name, int32(x))
}
-func (PaymentProcessingParameters_PaymentProcessor) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor0, []int{16, 0}
-}
-
-// Who handles payment processing?
-// If payment is processed by the partner, CreateBooking request will
-// include additional parameters (PaymentProcessingParameters) indicating
-// the payment method to be used to process the payment.
-type PaymentInformation_PaymentProcessedBy int32
-
-const (
- PaymentInformation_PAYMENT_PROCESSED_BY_UNSPECIFIED PaymentInformation_PaymentProcessedBy = 0
- PaymentInformation_PROCESSED_BY_GOOGLE PaymentInformation_PaymentProcessedBy = 1
- PaymentInformation_PROCESSED_BY_PARTNER PaymentInformation_PaymentProcessedBy = 2
-)
-
-var PaymentInformation_PaymentProcessedBy_name = map[int32]string{
- 0: "PAYMENT_PROCESSED_BY_UNSPECIFIED",
- 1: "PROCESSED_BY_GOOGLE",
- 2: "PROCESSED_BY_PARTNER",
-}
-var PaymentInformation_PaymentProcessedBy_value = map[string]int32{
- "PAYMENT_PROCESSED_BY_UNSPECIFIED": 0,
- "PROCESSED_BY_GOOGLE": 1,
- "PROCESSED_BY_PARTNER": 2,
-}
-
-func (x PaymentInformation_PaymentProcessedBy) String() string {
- return proto.EnumName(PaymentInformation_PaymentProcessedBy_name, int32(x))
-}
-func (PaymentInformation_PaymentProcessedBy) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor0, []int{18, 0}
+func (CheckAvailabilityResponse_DurationRequirement) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{1, 0}
}
type BookingFailure_Cause int32
@@ -508,6 +278,8 @@
BookingFailure_BOOKING_ALREADY_CANCELLED BookingFailure_Cause = 10
// A booking that the user tried to cancel is not cancellable.
BookingFailure_BOOKING_NOT_CANCELLABLE BookingFailure_Cause = 11
+ // User has an existing reservation too close to this time.
+ BookingFailure_OVERLAPPING_RESERVATION BookingFailure_Cause = 12
)
var BookingFailure_Cause_name = map[int32]string{
@@ -523,6 +295,7 @@
9: "USER_CANNOT_USE_PAYMENT_OPTION",
10: "BOOKING_ALREADY_CANCELLED",
11: "BOOKING_NOT_CANCELLABLE",
+ 12: "OVERLAPPING_RESERVATION",
}
var BookingFailure_Cause_value = map[string]int32{
"CAUSE_UNSPECIFIED": 0,
@@ -537,94 +310,14 @@
"USER_CANNOT_USE_PAYMENT_OPTION": 9,
"BOOKING_ALREADY_CANCELLED": 10,
"BOOKING_NOT_CANCELLABLE": 11,
+ "OVERLAPPING_RESERVATION": 12,
}
func (x BookingFailure_Cause) String() string {
return proto.EnumName(BookingFailure_Cause_name, int32(x))
}
-func (BookingFailure_Cause) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} }
-
-// The result of a line item fulfillability check.
-type LineItemFulfillability_ItemFulfillabilityResult int32
-
-const (
- // Default value: Don't use.
- LineItemFulfillability_ITEM_FULFILLABILITY_RESULT_UNSPECIFIED LineItemFulfillability_ItemFulfillabilityResult = 0
- // This line item can be fulfilled.
- LineItemFulfillability_CAN_FULFILL LineItemFulfillability_ItemFulfillabilityResult = 1
- // No adequate availability for the slot requested.
- LineItemFulfillability_SLOT_UNAVAILABLE LineItemFulfillability_ItemFulfillabilityResult = 2
- // The combination of ticket types requested cannot be fulfilled.
- LineItemFulfillability_UNFULFILLABLE_TICKET_COMBINATION LineItemFulfillability_ItemFulfillabilityResult = 3
- // The total price of this line item is not incorrect.
- LineItemFulfillability_INCORRECT_PRICE LineItemFulfillability_ItemFulfillabilityResult = 4
- // The line item cannot be fulfilled for reasons that do not fall into
- // the categories above.
- LineItemFulfillability_ITEM_UNFULFILLABLE_OTHER_REASON LineItemFulfillability_ItemFulfillabilityResult = 5
-)
-
-var LineItemFulfillability_ItemFulfillabilityResult_name = map[int32]string{
- 0: "ITEM_FULFILLABILITY_RESULT_UNSPECIFIED",
- 1: "CAN_FULFILL",
- 2: "SLOT_UNAVAILABLE",
- 3: "UNFULFILLABLE_TICKET_COMBINATION",
- 4: "INCORRECT_PRICE",
- 5: "ITEM_UNFULFILLABLE_OTHER_REASON",
-}
-var LineItemFulfillability_ItemFulfillabilityResult_value = map[string]int32{
- "ITEM_FULFILLABILITY_RESULT_UNSPECIFIED": 0,
- "CAN_FULFILL": 1,
- "SLOT_UNAVAILABLE": 2,
- "UNFULFILLABLE_TICKET_COMBINATION": 3,
- "INCORRECT_PRICE": 4,
- "ITEM_UNFULFILLABLE_OTHER_REASON": 5,
-}
-
-func (x LineItemFulfillability_ItemFulfillabilityResult) String() string {
- return proto.EnumName(LineItemFulfillability_ItemFulfillabilityResult_name, int32(x))
-}
-func (LineItemFulfillability_ItemFulfillabilityResult) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor0, []int{25, 0}
-}
-
-// The result of an order fulfillability check.
-type OrderFulfillability_OrderFulfillabilityResult int32
-
-const (
- // Default value: Don't use.
- OrderFulfillability_ORDER_FULFILLABILITY_RESULT_UNSPECIFIED OrderFulfillability_OrderFulfillabilityResult = 0
- // The order can be fulfilled.
- OrderFulfillability_CAN_FULFILL OrderFulfillability_OrderFulfillabilityResult = 1
- // The order cannot be fulfilled due to one or more unfulfillable line
- // item(s).
- OrderFulfillability_UNFULFILLABLE_LINE_ITEM OrderFulfillability_OrderFulfillabilityResult = 2
- // The combination of the line items requested cannot be fulfilled.
- OrderFulfillability_UNFULFILLABLE_SERVICE_COMBINATION OrderFulfillability_OrderFulfillabilityResult = 3
- // The order cannot be fulfilled due to reasons that do not fall into the
- // categories above.
- OrderFulfillability_ORDER_UNFULFILLABLE_OTHER_REASON OrderFulfillability_OrderFulfillabilityResult = 4
-)
-
-var OrderFulfillability_OrderFulfillabilityResult_name = map[int32]string{
- 0: "ORDER_FULFILLABILITY_RESULT_UNSPECIFIED",
- 1: "CAN_FULFILL",
- 2: "UNFULFILLABLE_LINE_ITEM",
- 3: "UNFULFILLABLE_SERVICE_COMBINATION",
- 4: "ORDER_UNFULFILLABLE_OTHER_REASON",
-}
-var OrderFulfillability_OrderFulfillabilityResult_value = map[string]int32{
- "ORDER_FULFILLABILITY_RESULT_UNSPECIFIED": 0,
- "CAN_FULFILL": 1,
- "UNFULFILLABLE_LINE_ITEM": 2,
- "UNFULFILLABLE_SERVICE_COMBINATION": 3,
- "ORDER_UNFULFILLABLE_OTHER_REASON": 4,
-}
-
-func (x OrderFulfillability_OrderFulfillabilityResult) String() string {
- return proto.EnumName(OrderFulfillability_OrderFulfillabilityResult_name, int32(x))
-}
-func (OrderFulfillability_OrderFulfillabilityResult) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor0, []int{26, 0}
+func (BookingFailure_Cause) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{23, 0}
}
type OrderFailure_Cause int32
@@ -665,527 +358,859 @@
func (x OrderFailure_Cause) String() string {
return proto.EnumName(OrderFailure_Cause_name, int32(x))
}
-func (OrderFailure_Cause) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{28, 0} }
+func (OrderFailure_Cause) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{26, 0}
+}
-// This enum indicates what requirements exist for the user to acknowledge or
-// view the requested slots duration/end time.
-type CheckAvailabilityResponse_DurationRequirement int32
+// The result of an order fulfillability check.
+type OrderFulfillability_OrderFulfillabilityResult int32
const (
- // The handling of the end time is not specified. This is the default.
- CheckAvailabilityResponse_DURATION_REQUIREMENT_UNSPECIFIED CheckAvailabilityResponse_DurationRequirement = 0
- // The end time is not shown to the user.
- CheckAvailabilityResponse_DO_NOT_SHOW_DURATION CheckAvailabilityResponse_DurationRequirement = 1
- // The end time has to be shown to the user before an appointment can be
- // made.
- CheckAvailabilityResponse_MUST_SHOW_DURATION CheckAvailabilityResponse_DurationRequirement = 2
+ // Default value: Don't use.
+ OrderFulfillability_ORDER_FULFILLABILITY_RESULT_UNSPECIFIED OrderFulfillability_OrderFulfillabilityResult = 0
+ // The order can be fulfilled.
+ OrderFulfillability_CAN_FULFILL OrderFulfillability_OrderFulfillabilityResult = 1
+ // The order cannot be fulfilled due to one or more unfulfillable line
+ // item(s).
+ OrderFulfillability_UNFULFILLABLE_LINE_ITEM OrderFulfillability_OrderFulfillabilityResult = 2
+ // The combination of the line items requested cannot be fulfilled.
+ OrderFulfillability_UNFULFILLABLE_SERVICE_COMBINATION OrderFulfillability_OrderFulfillabilityResult = 3
+ // The order cannot be fulfilled due to reasons that do not fall into the
+ // categories above.
+ OrderFulfillability_ORDER_UNFULFILLABLE_OTHER_REASON OrderFulfillability_OrderFulfillabilityResult = 4
)
-var CheckAvailabilityResponse_DurationRequirement_name = map[int32]string{
- 0: "DURATION_REQUIREMENT_UNSPECIFIED",
- 1: "DO_NOT_SHOW_DURATION",
- 2: "MUST_SHOW_DURATION",
+var OrderFulfillability_OrderFulfillabilityResult_name = map[int32]string{
+ 0: "ORDER_FULFILLABILITY_RESULT_UNSPECIFIED",
+ 1: "CAN_FULFILL",
+ 2: "UNFULFILLABLE_LINE_ITEM",
+ 3: "UNFULFILLABLE_SERVICE_COMBINATION",
+ 4: "ORDER_UNFULFILLABLE_OTHER_REASON",
}
-var CheckAvailabilityResponse_DurationRequirement_value = map[string]int32{
- "DURATION_REQUIREMENT_UNSPECIFIED": 0,
- "DO_NOT_SHOW_DURATION": 1,
- "MUST_SHOW_DURATION": 2,
+var OrderFulfillability_OrderFulfillabilityResult_value = map[string]int32{
+ "ORDER_FULFILLABILITY_RESULT_UNSPECIFIED": 0,
+ "CAN_FULFILL": 1,
+ "UNFULFILLABLE_LINE_ITEM": 2,
+ "UNFULFILLABLE_SERVICE_COMBINATION": 3,
+ "ORDER_UNFULFILLABLE_OTHER_REASON": 4,
}
-func (x CheckAvailabilityResponse_DurationRequirement) String() string {
- return proto.EnumName(CheckAvailabilityResponse_DurationRequirement_name, int32(x))
+func (x OrderFulfillability_OrderFulfillabilityResult) String() string {
+ return proto.EnumName(OrderFulfillability_OrderFulfillabilityResult_name, int32(x))
}
-func (CheckAvailabilityResponse_DurationRequirement) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor0, []int{30, 0}
+func (OrderFulfillability_OrderFulfillabilityResult) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{27, 0}
}
-// [START postaladdr_definition]
-// The postal address for a merchant.
-type PostalAddress struct {
- // The country, e.g. "USA". (required)
- Country string `protobuf:"bytes,1,opt,name=country" json:"country,omitempty"`
- // The locality/city, e.g. "Mountain View". (required)
- Locality string `protobuf:"bytes,2,opt,name=locality" json:"locality,omitempty"`
- // The region/state/province, e.g. "CA". (required)
- Region string `protobuf:"bytes,3,opt,name=region" json:"region,omitempty"`
- // The postal code, e.g. "94043". (required)
- PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode" json:"postal_code,omitempty"`
- // The street address, e.g. "1600 Amphitheatre Pkwy". (required)
- StreetAddress string `protobuf:"bytes,5,opt,name=street_address,json=streetAddress" json:"street_address,omitempty"`
+// The result of a line item fulfillability check.
+type LineItemFulfillability_ItemFulfillabilityResult int32
+
+const (
+ // Default value: Don't use.
+ LineItemFulfillability_ITEM_FULFILLABILITY_RESULT_UNSPECIFIED LineItemFulfillability_ItemFulfillabilityResult = 0
+ // This line item can be fulfilled.
+ LineItemFulfillability_CAN_FULFILL LineItemFulfillability_ItemFulfillabilityResult = 1
+ // No adequate availability for the slot requested.
+ LineItemFulfillability_SLOT_UNAVAILABLE LineItemFulfillability_ItemFulfillabilityResult = 2
+ // The combination of ticket types requested cannot be fulfilled.
+ LineItemFulfillability_UNFULFILLABLE_TICKET_COMBINATION LineItemFulfillability_ItemFulfillabilityResult = 3
+ // The total price of this line item is not correct.
+ LineItemFulfillability_INCORRECT_PRICE LineItemFulfillability_ItemFulfillabilityResult = 4
+ // The line item cannot be fulfilled for reasons that do not fall into
+ // the categories above.
+ LineItemFulfillability_ITEM_UNFULFILLABLE_OTHER_REASON LineItemFulfillability_ItemFulfillabilityResult = 5
+)
+
+var LineItemFulfillability_ItemFulfillabilityResult_name = map[int32]string{
+ 0: "ITEM_FULFILLABILITY_RESULT_UNSPECIFIED",
+ 1: "CAN_FULFILL",
+ 2: "SLOT_UNAVAILABLE",
+ 3: "UNFULFILLABLE_TICKET_COMBINATION",
+ 4: "INCORRECT_PRICE",
+ 5: "ITEM_UNFULFILLABLE_OTHER_REASON",
+}
+var LineItemFulfillability_ItemFulfillabilityResult_value = map[string]int32{
+ "ITEM_FULFILLABILITY_RESULT_UNSPECIFIED": 0,
+ "CAN_FULFILL": 1,
+ "SLOT_UNAVAILABLE": 2,
+ "UNFULFILLABLE_TICKET_COMBINATION": 3,
+ "INCORRECT_PRICE": 4,
+ "ITEM_UNFULFILLABLE_OTHER_REASON": 5,
}
-func (m *PostalAddress) Reset() { *m = PostalAddress{} }
-func (m *PostalAddress) String() string { return proto.CompactTextString(m) }
-func (*PostalAddress) ProtoMessage() {}
-func (*PostalAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+func (x LineItemFulfillability_ItemFulfillabilityResult) String() string {
+ return proto.EnumName(LineItemFulfillability_ItemFulfillabilityResult_name, int32(x))
+}
+func (LineItemFulfillability_ItemFulfillabilityResult) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{28, 0}
+}
-func (m *PostalAddress) GetCountry() string {
+type PaymentProcessingParameters_PaymentProcessor int32
+
+const (
+ PaymentProcessingParameters_PAYMENT_PROCESSOR_UNSPECIFIED PaymentProcessingParameters_PaymentProcessor = 0
+ PaymentProcessingParameters_PROCESSOR_STRIPE PaymentProcessingParameters_PaymentProcessor = 1
+ PaymentProcessingParameters_PROCESSOR_BRAINTREE PaymentProcessingParameters_PaymentProcessor = 2
+)
+
+var PaymentProcessingParameters_PaymentProcessor_name = map[int32]string{
+ 0: "PAYMENT_PROCESSOR_UNSPECIFIED",
+ 1: "PROCESSOR_STRIPE",
+ 2: "PROCESSOR_BRAINTREE",
+}
+var PaymentProcessingParameters_PaymentProcessor_value = map[string]int32{
+ "PAYMENT_PROCESSOR_UNSPECIFIED": 0,
+ "PROCESSOR_STRIPE": 1,
+ "PROCESSOR_BRAINTREE": 2,
+}
+
+func (x PaymentProcessingParameters_PaymentProcessor) String() string {
+ return proto.EnumName(PaymentProcessingParameters_PaymentProcessor_name, int32(x))
+}
+func (PaymentProcessingParameters_PaymentProcessor) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{31, 0}
+}
+
+// Who handles payment processing?
+// If payment is processed by the partner, CreateBooking request will
+// include additional parameters (PaymentProcessingParameters) indicating
+// the payment method to be used to process the payment.
+type PaymentInformation_PaymentProcessedBy int32
+
+const (
+ PaymentInformation_PAYMENT_PROCESSED_BY_UNSPECIFIED PaymentInformation_PaymentProcessedBy = 0
+ PaymentInformation_PROCESSED_BY_GOOGLE PaymentInformation_PaymentProcessedBy = 1
+ PaymentInformation_PROCESSED_BY_PARTNER PaymentInformation_PaymentProcessedBy = 2
+)
+
+var PaymentInformation_PaymentProcessedBy_name = map[int32]string{
+ 0: "PAYMENT_PROCESSED_BY_UNSPECIFIED",
+ 1: "PROCESSED_BY_GOOGLE",
+ 2: "PROCESSED_BY_PARTNER",
+}
+var PaymentInformation_PaymentProcessedBy_value = map[string]int32{
+ "PAYMENT_PROCESSED_BY_UNSPECIFIED": 0,
+ "PROCESSED_BY_GOOGLE": 1,
+ "PROCESSED_BY_PARTNER": 2,
+}
+
+func (x PaymentInformation_PaymentProcessedBy) String() string {
+ return proto.EnumName(PaymentInformation_PaymentProcessedBy_name, int32(x))
+}
+func (PaymentInformation_PaymentProcessedBy) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{33, 0}
+}
+
+// Request to check availability for a Slot.
+type CheckAvailabilityRequest struct {
+ // The appointment slot that is being checked (required)
+ Slot *Slot `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CheckAvailabilityRequest) Reset() { *m = CheckAvailabilityRequest{} }
+func (m *CheckAvailabilityRequest) String() string { return proto.CompactTextString(m) }
+func (*CheckAvailabilityRequest) ProtoMessage() {}
+func (*CheckAvailabilityRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{0}
+}
+func (m *CheckAvailabilityRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CheckAvailabilityRequest.Unmarshal(m, b)
+}
+func (m *CheckAvailabilityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CheckAvailabilityRequest.Marshal(b, m, deterministic)
+}
+func (dst *CheckAvailabilityRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CheckAvailabilityRequest.Merge(dst, src)
+}
+func (m *CheckAvailabilityRequest) XXX_Size() int {
+ return xxx_messageInfo_CheckAvailabilityRequest.Size(m)
+}
+func (m *CheckAvailabilityRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_CheckAvailabilityRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CheckAvailabilityRequest proto.InternalMessageInfo
+
+func (m *CheckAvailabilityRequest) GetSlot() *Slot {
if m != nil {
- return m.Country
- }
- return ""
-}
-
-func (m *PostalAddress) GetLocality() string {
- if m != nil {
- return m.Locality
- }
- return ""
-}
-
-func (m *PostalAddress) GetRegion() string {
- if m != nil {
- return m.Region
- }
- return ""
-}
-
-func (m *PostalAddress) GetPostalCode() string {
- if m != nil {
- return m.PostalCode
- }
- return ""
-}
-
-func (m *PostalAddress) GetStreetAddress() string {
- if m != nil {
- return m.StreetAddress
- }
- return ""
-}
-
-// [START geocoord_definition]
-// The Geo data of a location, including latitude, longitude, and address.
-type GeoCoordinates struct {
- Latitude float64 `protobuf:"fixed64,1,opt,name=latitude" json:"latitude,omitempty"`
- Longitude float64 `protobuf:"fixed64,2,opt,name=longitude" json:"longitude,omitempty"`
- Address *PostalAddress `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
-}
-
-func (m *GeoCoordinates) Reset() { *m = GeoCoordinates{} }
-func (m *GeoCoordinates) String() string { return proto.CompactTextString(m) }
-func (*GeoCoordinates) ProtoMessage() {}
-func (*GeoCoordinates) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
-
-func (m *GeoCoordinates) GetLatitude() float64 {
- if m != nil {
- return m.Latitude
- }
- return 0
-}
-
-func (m *GeoCoordinates) GetLongitude() float64 {
- if m != nil {
- return m.Longitude
- }
- return 0
-}
-
-func (m *GeoCoordinates) GetAddress() *PostalAddress {
- if m != nil {
- return m.Address
+ return m.Slot
}
return nil
}
-// [START price_definition]
-// The price of a service or a fee.
-type Price struct {
- // The price in micro-units of the currency.
- // Fractions of smallest currency unit will be rounded using nearest even
- // rounding. (e.g. For USD 2.5 cents rounded to 2 cents, 3.5 cents rounded to
- // 4 cents, 0.5 cents rounded to 0 cents, 2.51 cents rounded to 3 cents).
- // (required)
- PriceMicros int64 `protobuf:"varint,1,opt,name=price_micros,json=priceMicros" json:"price_micros,omitempty"`
- // The currency of the price that is defined in ISO 4217. (required)
- CurrencyCode string `protobuf:"bytes,2,opt,name=currency_code,json=currencyCode" json:"currency_code,omitempty"`
- // An optional and opaque string that identifies the pricing option that is
- // associated with the extended price. (optional)
- PricingOptionTag string `protobuf:"bytes,3,opt,name=pricing_option_tag,json=pricingOptionTag" json:"pricing_option_tag,omitempty"`
+// Response for the CheckAvailability RPC with the availability of the
+// appointment slot.
+type CheckAvailabilityResponse struct {
+ // The requested slot. (required)
+ Slot *Slot `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"`
+ // Number of available spots.
+ // 0 indicates that the appointment slot is not available. (required)
+ CountAvailable int32 `protobuf:"varint,2,opt,name=count_available,json=countAvailable,proto3" json:"count_available,omitempty"`
+ // The requirement to show the slots duration and/or endtime. This field will
+ // be ignored if the slot is unavailable. (optional)
+ DurationRequirement CheckAvailabilityResponse_DurationRequirement `protobuf:"varint,3,opt,name=duration_requirement,json=durationRequirement,proto3,enum=ext.maps.booking.partner.v3.CheckAvailabilityResponse_DurationRequirement" json:"duration_requirement,omitempty"`
+ // Optionally, the partner can return additional updated information about the
+ // availability for this merchant if this information is present when
+ // responding to the CheckAvailabilityRequest and if there is no negative
+ // impact on the CheckAvailability request latency.
+ // For instance an entire day of merchant availability for a superset of
+ // resources can be returned here.
+ AvailabilityUpdate *AvailabilityUpdate `protobuf:"bytes,4,opt,name=availability_update,json=availabilityUpdate,proto3" json:"availability_update,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *Price) Reset() { *m = Price{} }
-func (m *Price) String() string { return proto.CompactTextString(m) }
-func (*Price) ProtoMessage() {}
-func (*Price) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
+func (m *CheckAvailabilityResponse) Reset() { *m = CheckAvailabilityResponse{} }
+func (m *CheckAvailabilityResponse) String() string { return proto.CompactTextString(m) }
+func (*CheckAvailabilityResponse) ProtoMessage() {}
+func (*CheckAvailabilityResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{1}
+}
+func (m *CheckAvailabilityResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CheckAvailabilityResponse.Unmarshal(m, b)
+}
+func (m *CheckAvailabilityResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CheckAvailabilityResponse.Marshal(b, m, deterministic)
+}
+func (dst *CheckAvailabilityResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CheckAvailabilityResponse.Merge(dst, src)
+}
+func (m *CheckAvailabilityResponse) XXX_Size() int {
+ return xxx_messageInfo_CheckAvailabilityResponse.Size(m)
+}
+func (m *CheckAvailabilityResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_CheckAvailabilityResponse.DiscardUnknown(m)
+}
-func (m *Price) GetPriceMicros() int64 {
+var xxx_messageInfo_CheckAvailabilityResponse proto.InternalMessageInfo
+
+func (m *CheckAvailabilityResponse) GetSlot() *Slot {
if m != nil {
- return m.PriceMicros
- }
- return 0
-}
-
-func (m *Price) GetCurrencyCode() string {
- if m != nil {
- return m.CurrencyCode
- }
- return ""
-}
-
-func (m *Price) GetPricingOptionTag() string {
- if m != nil {
- return m.PricingOptionTag
- }
- return ""
-}
-
-// [START taxrate_definition]
-// A tax rate applied when charging the user for a service, and which can be set
-// on either a per merchant, or per service basis.
-type TaxRate struct {
- // A tax rate in millionths of one percent, effectively giving 6 decimals of
- // precision. For example, if the tax rate is 7.253%, this field should be set
- // to 7253000.
- //
- // If this field is left unset or set to 0, the total price charged to a user
- // for any service provided by this merchant is the exact price specified by
- // Service.price. The service price is assumed to be exempt from or already
- // inclusive of applicable taxes. Taxes will not be shown to the user as a
- // separate line item.
- //
- // If this field is set to any nonzero value, the total price charged to a
- // user for any service provided by this merchant will include the service
- // price plus the tax assessed using the tax rate provided here. Fractions of
- // the smallest currency unit (for example, fractions of one cent) will be
- // rounded using nearest even rounding. Taxes will be shown to the user as a
- // separate line item. (required)
- MicroPercent int32 `protobuf:"varint,1,opt,name=micro_percent,json=microPercent" json:"micro_percent,omitempty"`
-}
-
-func (m *TaxRate) Reset() { *m = TaxRate{} }
-func (m *TaxRate) String() string { return proto.CompactTextString(m) }
-func (*TaxRate) ProtoMessage() {}
-func (*TaxRate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
-
-func (m *TaxRate) GetMicroPercent() int32 {
- if m != nil {
- return m.MicroPercent
- }
- return 0
-}
-
-// [START schedulingrules_definition]
-// The scheduling rules for a service.
-type SchedulingRules struct {
- // The minimum advance notice in seconds required to book an appointment.
- // (optional)
- MinAdvanceBooking int64 `protobuf:"varint,1,opt,name=min_advance_booking,json=minAdvanceBooking" json:"min_advance_booking,omitempty"`
- // The minimum advance notice in seconds required to cancel a booked
- // appointment online. (optional)
- MinAdvanceOnlineCanceling int64 `protobuf:"varint,2,opt,name=min_advance_online_canceling,json=minAdvanceOnlineCanceling" json:"min_advance_online_canceling,omitempty"`
- // The fee for canceling within the minimum advance notice period.
- LateCancellationFee *Price `protobuf:"bytes,3,opt,name=late_cancellation_fee,json=lateCancellationFee" json:"late_cancellation_fee,omitempty"`
- // The fee for no-show without canceling.
- NoshowFee *Price `protobuf:"bytes,4,opt,name=noshow_fee,json=noshowFee" json:"noshow_fee,omitempty"`
-}
-
-func (m *SchedulingRules) Reset() { *m = SchedulingRules{} }
-func (m *SchedulingRules) String() string { return proto.CompactTextString(m) }
-func (*SchedulingRules) ProtoMessage() {}
-func (*SchedulingRules) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
-
-func (m *SchedulingRules) GetMinAdvanceBooking() int64 {
- if m != nil {
- return m.MinAdvanceBooking
- }
- return 0
-}
-
-func (m *SchedulingRules) GetMinAdvanceOnlineCanceling() int64 {
- if m != nil {
- return m.MinAdvanceOnlineCanceling
- }
- return 0
-}
-
-func (m *SchedulingRules) GetLateCancellationFee() *Price {
- if m != nil {
- return m.LateCancellationFee
+ return m.Slot
}
return nil
}
-func (m *SchedulingRules) GetNoshowFee() *Price {
+func (m *CheckAvailabilityResponse) GetCountAvailable() int32 {
if m != nil {
- return m.NoshowFee
- }
- return nil
-}
-
-// An empty boilplate proto for the Ingestion Queue in Spanner.
-type IngestionQueuePayload struct {
-}
-
-func (m *IngestionQueuePayload) Reset() { *m = IngestionQueuePayload{} }
-func (m *IngestionQueuePayload) String() string { return proto.CompactTextString(m) }
-func (*IngestionQueuePayload) ProtoMessage() {}
-func (*IngestionQueuePayload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
-
-type IngestionStatus struct {
- // The code of the status.
- Code IngestionStatus_Code `protobuf:"varint,1,opt,name=code,enum=v3.IngestionStatus_Code" json:"code,omitempty"`
- // Microseconds since epoch when the ingestion updates its status code.
- TimestampMicros int64 `protobuf:"varint,2,opt,name=timestamp_micros,json=timestampMicros" json:"timestamp_micros,omitempty"`
- // A human description of the error if any.
- InternalErrorDetails string `protobuf:"bytes,3,opt,name=internal_error_details,json=internalErrorDetails" json:"internal_error_details,omitempty"`
- PartnerVisibleErrorDetails string `protobuf:"bytes,4,opt,name=partner_visible_error_details,json=partnerVisibleErrorDetails" json:"partner_visible_error_details,omitempty"`
-}
-
-func (m *IngestionStatus) Reset() { *m = IngestionStatus{} }
-func (m *IngestionStatus) String() string { return proto.CompactTextString(m) }
-func (*IngestionStatus) ProtoMessage() {}
-func (*IngestionStatus) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
-
-func (m *IngestionStatus) GetCode() IngestionStatus_Code {
- if m != nil {
- return m.Code
- }
- return IngestionStatus_STATUS_UNKNOWN
-}
-
-func (m *IngestionStatus) GetTimestampMicros() int64 {
- if m != nil {
- return m.TimestampMicros
+ return m.CountAvailable
}
return 0
}
-func (m *IngestionStatus) GetInternalErrorDetails() string {
+func (m *CheckAvailabilityResponse) GetDurationRequirement() CheckAvailabilityResponse_DurationRequirement {
if m != nil {
- return m.InternalErrorDetails
+ return m.DurationRequirement
}
- return ""
+ return CheckAvailabilityResponse_DURATION_REQUIREMENT_UNSPECIFIED
}
-func (m *IngestionStatus) GetPartnerVisibleErrorDetails() string {
+func (m *CheckAvailabilityResponse) GetAvailabilityUpdate() *AvailabilityUpdate {
if m != nil {
- return m.PartnerVisibleErrorDetails
- }
- return ""
-}
-
-// [START timerange_definition]
-// A closed-open time range, i.e. [begin_sec, end_sec)
-type TimeRange struct {
- // Seconds of UTC time since Unix epoch (required)
- BeginSec int64 `protobuf:"varint,1,opt,name=begin_sec,json=beginSec" json:"begin_sec,omitempty"`
- // Seconds of UTC time since Unix epoch (required)
- EndSec int64 `protobuf:"varint,2,opt,name=end_sec,json=endSec" json:"end_sec,omitempty"`
-}
-
-func (m *TimeRange) Reset() { *m = TimeRange{} }
-func (m *TimeRange) String() string { return proto.CompactTextString(m) }
-func (*TimeRange) ProtoMessage() {}
-func (*TimeRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
-
-func (m *TimeRange) GetBeginSec() int64 {
- if m != nil {
- return m.BeginSec
- }
- return 0
-}
-
-func (m *TimeRange) GetEndSec() int64 {
- if m != nil {
- return m.EndSec
- }
- return 0
-}
-
-// [START noshowfee_definition]
-// A fee that a user may be charged if they have made a booking but do not
-// show up.
-type NoShowFee struct {
- // The amount the user may be charged if they do not show up for their
- // reservation.
- Fee *Price `protobuf:"bytes,1,opt,name=fee" json:"fee,omitempty"`
- // Defines how the fee is determined from the availability.
- FeeType PriceType `protobuf:"varint,3,opt,name=fee_type,json=feeType,enum=v3.PriceType" json:"fee_type,omitempty"`
-}
-
-func (m *NoShowFee) Reset() { *m = NoShowFee{} }
-func (m *NoShowFee) String() string { return proto.CompactTextString(m) }
-func (*NoShowFee) ProtoMessage() {}
-func (*NoShowFee) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
-
-func (m *NoShowFee) GetFee() *Price {
- if m != nil {
- return m.Fee
+ return m.AvailabilityUpdate
}
return nil
}
-func (m *NoShowFee) GetFeeType() PriceType {
- if m != nil {
- return m.FeeType
- }
- return PriceType_FIXED_RATE_DEFAULT
+// An update to one ore more slots indicating that the availability for the
+// associated time has potentially changed.
+type AvailabilityUpdate struct {
+ SlotAvailability []*SlotAvailability `protobuf:"bytes,1,rep,name=slot_availability,json=slotAvailability,proto3" json:"slot_availability,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-// [START deposit_definition]
-// A deposit that the user may be charged or have a hold on their credit card
-// for.
-type Deposit struct {
- // Deposit amount.
- Deposit *Price `protobuf:"bytes,1,opt,name=deposit" json:"deposit,omitempty"`
- // Minimum advance cancellation for the deposit.
- MinAdvanceCancellationSec int64 `protobuf:"varint,2,opt,name=min_advance_cancellation_sec,json=minAdvanceCancellationSec" json:"min_advance_cancellation_sec,omitempty"`
- // Defines how the deposit is determined from the availability.
- DepositType PriceType `protobuf:"varint,3,opt,name=deposit_type,json=depositType,enum=v3.PriceType" json:"deposit_type,omitempty"`
+func (m *AvailabilityUpdate) Reset() { *m = AvailabilityUpdate{} }
+func (m *AvailabilityUpdate) String() string { return proto.CompactTextString(m) }
+func (*AvailabilityUpdate) ProtoMessage() {}
+func (*AvailabilityUpdate) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{2}
+}
+func (m *AvailabilityUpdate) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_AvailabilityUpdate.Unmarshal(m, b)
+}
+func (m *AvailabilityUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_AvailabilityUpdate.Marshal(b, m, deterministic)
+}
+func (dst *AvailabilityUpdate) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_AvailabilityUpdate.Merge(dst, src)
+}
+func (m *AvailabilityUpdate) XXX_Size() int {
+ return xxx_messageInfo_AvailabilityUpdate.Size(m)
+}
+func (m *AvailabilityUpdate) XXX_DiscardUnknown() {
+ xxx_messageInfo_AvailabilityUpdate.DiscardUnknown(m)
}
-func (m *Deposit) Reset() { *m = Deposit{} }
-func (m *Deposit) String() string { return proto.CompactTextString(m) }
-func (*Deposit) ProtoMessage() {}
-func (*Deposit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
+var xxx_messageInfo_AvailabilityUpdate proto.InternalMessageInfo
-func (m *Deposit) GetDeposit() *Price {
+func (m *AvailabilityUpdate) GetSlotAvailability() []*SlotAvailability {
if m != nil {
- return m.Deposit
+ return m.SlotAvailability
}
return nil
}
-func (m *Deposit) GetMinAdvanceCancellationSec() int64 {
+// An inventory slot and associated count of open spots.
+type SlotAvailability struct {
+ Slot *Slot `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"`
+ // Number of available spots.
+ // 0 indicates that the appointment slot is not available. (required)
+ CountAvailable int32 `protobuf:"varint,2,opt,name=count_available,json=countAvailable,proto3" json:"count_available,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SlotAvailability) Reset() { *m = SlotAvailability{} }
+func (m *SlotAvailability) String() string { return proto.CompactTextString(m) }
+func (*SlotAvailability) ProtoMessage() {}
+func (*SlotAvailability) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{3}
+}
+func (m *SlotAvailability) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_SlotAvailability.Unmarshal(m, b)
+}
+func (m *SlotAvailability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_SlotAvailability.Marshal(b, m, deterministic)
+}
+func (dst *SlotAvailability) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SlotAvailability.Merge(dst, src)
+}
+func (m *SlotAvailability) XXX_Size() int {
+ return xxx_messageInfo_SlotAvailability.Size(m)
+}
+func (m *SlotAvailability) XXX_DiscardUnknown() {
+ xxx_messageInfo_SlotAvailability.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SlotAvailability proto.InternalMessageInfo
+
+func (m *SlotAvailability) GetSlot() *Slot {
if m != nil {
- return m.MinAdvanceCancellationSec
+ return m.Slot
+ }
+ return nil
+}
+
+func (m *SlotAvailability) GetCountAvailable() int32 {
+ if m != nil {
+ return m.CountAvailable
}
return 0
}
-func (m *Deposit) GetDepositType() PriceType {
- if m != nil {
- return m.DepositType
- }
- return PriceType_FIXED_RATE_DEFAULT
+// Request to check the fulfillability of an order.
+type CheckOrderFulfillabilityRequest struct {
+ // The merchant that this order is intended for. (required)
+ MerchantId string `protobuf:"bytes,1,opt,name=merchant_id,json=merchantId,proto3" json:"merchant_id,omitempty"`
+ // The line items in this order. All services requested must belong to the
+ // specified merchant. (required)
+ Item []*LineItem `protobuf:"bytes,2,rep,name=item,proto3" json:"item,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-// [START ActionLink_definition]
-// An action URL with associated language and list of countries restricted to.
-type ActionLink struct {
- // The entry point URL for this action link.
- Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
- // The BCP-47 language tag identifying the language in which the content
- // from this URI is available.
- Language string `protobuf:"bytes,2,opt,name=language" json:"language,omitempty"`
- // ISO 3166-1 alpha-2 country code. Leave empty for unrestricted visibility.
- RestrictedCountry []string `protobuf:"bytes,3,rep,name=restricted_country,json=restrictedCountry" json:"restricted_country,omitempty"`
+func (m *CheckOrderFulfillabilityRequest) Reset() { *m = CheckOrderFulfillabilityRequest{} }
+func (m *CheckOrderFulfillabilityRequest) String() string { return proto.CompactTextString(m) }
+func (*CheckOrderFulfillabilityRequest) ProtoMessage() {}
+func (*CheckOrderFulfillabilityRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{4}
+}
+func (m *CheckOrderFulfillabilityRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CheckOrderFulfillabilityRequest.Unmarshal(m, b)
+}
+func (m *CheckOrderFulfillabilityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CheckOrderFulfillabilityRequest.Marshal(b, m, deterministic)
+}
+func (dst *CheckOrderFulfillabilityRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CheckOrderFulfillabilityRequest.Merge(dst, src)
+}
+func (m *CheckOrderFulfillabilityRequest) XXX_Size() int {
+ return xxx_messageInfo_CheckOrderFulfillabilityRequest.Size(m)
+}
+func (m *CheckOrderFulfillabilityRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_CheckOrderFulfillabilityRequest.DiscardUnknown(m)
}
-func (m *ActionLink) Reset() { *m = ActionLink{} }
-func (m *ActionLink) String() string { return proto.CompactTextString(m) }
-func (*ActionLink) ProtoMessage() {}
-func (*ActionLink) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
+var xxx_messageInfo_CheckOrderFulfillabilityRequest proto.InternalMessageInfo
-func (m *ActionLink) GetUrl() string {
- if m != nil {
- return m.Url
- }
- return ""
-}
-
-func (m *ActionLink) GetLanguage() string {
- if m != nil {
- return m.Language
- }
- return ""
-}
-
-func (m *ActionLink) GetRestrictedCountry() []string {
- if m != nil {
- return m.RestrictedCountry
- }
- return nil
-}
-
-// [START message_slot]
-// An inventory slot
-type Slot struct {
- // ID of the merchant for the slot (required)
- MerchantId string `protobuf:"bytes,1,opt,name=merchant_id,json=merchantId" json:"merchant_id,omitempty"`
- // ID of the merchant service (required)
- ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId" json:"service_id,omitempty"`
- // Start time of the appointment slot in seconds of UTC time since Unix epoch.
- // (required)
- StartSec int64 `protobuf:"varint,3,opt,name=start_sec,json=startSec" json:"start_sec,omitempty"`
- // Duration of the appointment slot (required)
- DurationSec int64 `protobuf:"varint,4,opt,name=duration_sec,json=durationSec" json:"duration_sec,omitempty"`
- // Opaque tag that identifies the availability slot and matches the value
- // provided in the availability feed (optional)
- AvailabilityTag string `protobuf:"bytes,5,opt,name=availability_tag,json=availabilityTag" json:"availability_tag,omitempty"`
- // The set of resources that disambiguates the appointment slot, e.g. by
- // indicating the staff member and room selected by the user (optional)
- Resources *ResourceIds `protobuf:"bytes,6,opt,name=resources" json:"resources,omitempty"`
-}
-
-func (m *Slot) Reset() { *m = Slot{} }
-func (m *Slot) String() string { return proto.CompactTextString(m) }
-func (*Slot) ProtoMessage() {}
-func (*Slot) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
-
-func (m *Slot) GetMerchantId() string {
+func (m *CheckOrderFulfillabilityRequest) GetMerchantId() string {
if m != nil {
return m.MerchantId
}
return ""
}
-func (m *Slot) GetServiceId() string {
+func (m *CheckOrderFulfillabilityRequest) GetItem() []*LineItem {
if m != nil {
- return m.ServiceId
- }
- return ""
-}
-
-func (m *Slot) GetStartSec() int64 {
- if m != nil {
- return m.StartSec
- }
- return 0
-}
-
-func (m *Slot) GetDurationSec() int64 {
- if m != nil {
- return m.DurationSec
- }
- return 0
-}
-
-func (m *Slot) GetAvailabilityTag() string {
- if m != nil {
- return m.AvailabilityTag
- }
- return ""
-}
-
-func (m *Slot) GetResources() *ResourceIds {
- if m != nil {
- return m.Resources
+ return m.Item
}
return nil
}
-// [START message_lease]
+// Response for the CheckOrderfulfillabilityRequest.
+type CheckOrderFulfillabilityResponse struct {
+ // Fulfillability status of the order, potentially contains updated
+ // availabilities and prices of the requested line item. (required)
+ Fulfillability *OrderFulfillability `protobuf:"bytes,1,opt,name=fulfillability,proto3" json:"fulfillability,omitempty"`
+ // Total processing fees & taxes that need to be paid for this order.
+ // (required)
+ FeesAndTaxes *Price `protobuf:"bytes,2,opt,name=fees_and_taxes,json=feesAndTaxes,proto3" json:"fees_and_taxes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CheckOrderFulfillabilityResponse) Reset() { *m = CheckOrderFulfillabilityResponse{} }
+func (m *CheckOrderFulfillabilityResponse) String() string { return proto.CompactTextString(m) }
+func (*CheckOrderFulfillabilityResponse) ProtoMessage() {}
+func (*CheckOrderFulfillabilityResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{5}
+}
+func (m *CheckOrderFulfillabilityResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CheckOrderFulfillabilityResponse.Unmarshal(m, b)
+}
+func (m *CheckOrderFulfillabilityResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CheckOrderFulfillabilityResponse.Marshal(b, m, deterministic)
+}
+func (dst *CheckOrderFulfillabilityResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CheckOrderFulfillabilityResponse.Merge(dst, src)
+}
+func (m *CheckOrderFulfillabilityResponse) XXX_Size() int {
+ return xxx_messageInfo_CheckOrderFulfillabilityResponse.Size(m)
+}
+func (m *CheckOrderFulfillabilityResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_CheckOrderFulfillabilityResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CheckOrderFulfillabilityResponse proto.InternalMessageInfo
+
+func (m *CheckOrderFulfillabilityResponse) GetFulfillability() *OrderFulfillability {
+ if m != nil {
+ return m.Fulfillability
+ }
+ return nil
+}
+
+func (m *CheckOrderFulfillabilityResponse) GetFeesAndTaxes() *Price {
+ if m != nil {
+ return m.FeesAndTaxes
+ }
+ return nil
+}
+
+// Request to get booking status and prepayment status for a Booking.
+type GetBookingStatusRequest struct {
+ // ID of the existing booking (required)
+ BookingId string `protobuf:"bytes,1,opt,name=booking_id,json=bookingId,proto3" json:"booking_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetBookingStatusRequest) Reset() { *m = GetBookingStatusRequest{} }
+func (m *GetBookingStatusRequest) String() string { return proto.CompactTextString(m) }
+func (*GetBookingStatusRequest) ProtoMessage() {}
+func (*GetBookingStatusRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{6}
+}
+func (m *GetBookingStatusRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetBookingStatusRequest.Unmarshal(m, b)
+}
+func (m *GetBookingStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetBookingStatusRequest.Marshal(b, m, deterministic)
+}
+func (dst *GetBookingStatusRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetBookingStatusRequest.Merge(dst, src)
+}
+func (m *GetBookingStatusRequest) XXX_Size() int {
+ return xxx_messageInfo_GetBookingStatusRequest.Size(m)
+}
+func (m *GetBookingStatusRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetBookingStatusRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetBookingStatusRequest proto.InternalMessageInfo
+
+func (m *GetBookingStatusRequest) GetBookingId() string {
+ if m != nil {
+ return m.BookingId
+ }
+ return ""
+}
+
+// Response for the GetBookingStatus RPC with booking status and prepayment
+// status.
+type GetBookingStatusResponse struct {
+ // ID of the booking (required)
+ BookingId string `protobuf:"bytes,1,opt,name=booking_id,json=bookingId,proto3" json:"booking_id,omitempty"`
+ // Status of the booking (required)
+ BookingStatus BookingStatus `protobuf:"varint,2,opt,name=booking_status,json=bookingStatus,proto3,enum=ext.maps.booking.partner.v3.BookingStatus" json:"booking_status,omitempty"`
+ // Prepayment status of the booking (required)
+ PrepaymentStatus PrepaymentStatus `protobuf:"varint,3,opt,name=prepayment_status,json=prepaymentStatus,proto3,enum=ext.maps.booking.partner.v3.PrepaymentStatus" json:"prepayment_status,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GetBookingStatusResponse) Reset() { *m = GetBookingStatusResponse{} }
+func (m *GetBookingStatusResponse) String() string { return proto.CompactTextString(m) }
+func (*GetBookingStatusResponse) ProtoMessage() {}
+func (*GetBookingStatusResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{7}
+}
+func (m *GetBookingStatusResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GetBookingStatusResponse.Unmarshal(m, b)
+}
+func (m *GetBookingStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GetBookingStatusResponse.Marshal(b, m, deterministic)
+}
+func (dst *GetBookingStatusResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GetBookingStatusResponse.Merge(dst, src)
+}
+func (m *GetBookingStatusResponse) XXX_Size() int {
+ return xxx_messageInfo_GetBookingStatusResponse.Size(m)
+}
+func (m *GetBookingStatusResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_GetBookingStatusResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetBookingStatusResponse proto.InternalMessageInfo
+
+func (m *GetBookingStatusResponse) GetBookingId() string {
+ if m != nil {
+ return m.BookingId
+ }
+ return ""
+}
+
+func (m *GetBookingStatusResponse) GetBookingStatus() BookingStatus {
+ if m != nil {
+ return m.BookingStatus
+ }
+ return BookingStatus_BOOKING_STATUS_UNSPECIFIED
+}
+
+func (m *GetBookingStatusResponse) GetPrepaymentStatus() PrepaymentStatus {
+ if m != nil {
+ return m.PrepaymentStatus
+ }
+ return PrepaymentStatus_PREPAYMENT_STATUS_UNSPECIFIED
+}
+
+// Request to create a Booking for an inventory slot. Consumes the lease if
+// provided.
+type CreateBookingRequest struct {
+ // The inventory slot that is being requested to make this booking.
+ // If lease_ref is provided, slot must match the lease; slot is provided for
+ // the partner to verify the lease information.
+ // If lease_ref is absent, then create the booking for the slot. (required)
+ Slot *Slot `protobuf:"bytes,1,opt,name=slot,proto3" json:"slot,omitempty"`
+ // The lease that is being confirmed to make this booking.
+ // If lease_ref is provided, then create the booking using the lease.
+ // (optional)
+ LeaseRef *LeaseReference `protobuf:"bytes,2,opt,name=lease_ref,json=leaseRef,proto3" json:"lease_ref,omitempty"`
+ // Personal information of the user making the appointment (required)
+ UserInformation *UserInformation `protobuf:"bytes,3,opt,name=user_information,json=userInformation,proto3" json:"user_information,omitempty"`
+ // Information about payments. When payment authorizations are handled by
+ // Google, if the booking request does not succeed, payment authorizations are
+ // automatically canceled. (optional)
+ PaymentInformation *PaymentInformation `protobuf:"bytes,4,opt,name=payment_information,json=paymentInformation,proto3" json:"payment_information,omitempty"`
+ // 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). (optional)
+ PaymentProcessingParameters *PaymentProcessingParameters `protobuf:"bytes,5,opt,name=payment_processing_parameters,json=paymentProcessingParameters,proto3" json:"payment_processing_parameters,omitempty"`
+ // Idempotency token for CreateBooking requests. (required)
+ IdempotencyToken string `protobuf:"bytes,6,opt,name=idempotency_token,json=idempotencyToken,proto3" json:"idempotency_token,omitempty"`
+ // A string from the user which contains any special requests or additional
+ // information that they would like to notify the merchant about. (optional)
+ AdditionalRequest string `protobuf:"bytes,7,opt,name=additional_request,json=additionalRequest,proto3" json:"additional_request,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CreateBookingRequest) Reset() { *m = CreateBookingRequest{} }
+func (m *CreateBookingRequest) String() string { return proto.CompactTextString(m) }
+func (*CreateBookingRequest) ProtoMessage() {}
+func (*CreateBookingRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{8}
+}
+func (m *CreateBookingRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CreateBookingRequest.Unmarshal(m, b)
+}
+func (m *CreateBookingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CreateBookingRequest.Marshal(b, m, deterministic)
+}
+func (dst *CreateBookingRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CreateBookingRequest.Merge(dst, src)
+}
+func (m *CreateBookingRequest) XXX_Size() int {
+ return xxx_messageInfo_CreateBookingRequest.Size(m)
+}
+func (m *CreateBookingRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_CreateBookingRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CreateBookingRequest proto.InternalMessageInfo
+
+func (m *CreateBookingRequest) GetSlot() *Slot {
+ if m != nil {
+ return m.Slot
+ }
+ return nil
+}
+
+func (m *CreateBookingRequest) GetLeaseRef() *LeaseReference {
+ if m != nil {
+ return m.LeaseRef
+ }
+ return nil
+}
+
+func (m *CreateBookingRequest) GetUserInformation() *UserInformation {
+ if m != nil {
+ return m.UserInformation
+ }
+ return nil
+}
+
+func (m *CreateBookingRequest) GetPaymentInformation() *PaymentInformation {
+ if m != nil {
+ return m.PaymentInformation
+ }
+ return nil
+}
+
+func (m *CreateBookingRequest) GetPaymentProcessingParameters() *PaymentProcessingParameters {
+ if m != nil {
+ return m.PaymentProcessingParameters
+ }
+ return nil
+}
+
+func (m *CreateBookingRequest) GetIdempotencyToken() string {
+ if m != nil {
+ return m.IdempotencyToken
+ }
+ return ""
+}
+
+func (m *CreateBookingRequest) GetAdditionalRequest() string {
+ if m != nil {
+ return m.AdditionalRequest
+ }
+ return ""
+}
+
+// Response with the created Booking for an inventory slot.
+type CreateBookingResponse struct {
+ // The created booking (required)
+ Booking *Booking `protobuf:"bytes,1,opt,name=booking,proto3" json:"booking,omitempty"`
+ // 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.
+ // (optional)
+ UserPaymentOption *UserPaymentOption `protobuf:"bytes,2,opt,name=user_payment_option,json=userPaymentOption,proto3" json:"user_payment_option,omitempty"`
+ // If creating a booking fails, this field should reflect the business logic
+ // error (e.g., slot has become unavailable) and all other fields in the
+ // CreateBookingResponse message are expected to be unset. (required if
+ // failure occurs)
+ BookingFailure *BookingFailure `protobuf:"bytes,3,opt,name=booking_failure,json=bookingFailure,proto3" json:"booking_failure,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CreateBookingResponse) Reset() { *m = CreateBookingResponse{} }
+func (m *CreateBookingResponse) String() string { return proto.CompactTextString(m) }
+func (*CreateBookingResponse) ProtoMessage() {}
+func (*CreateBookingResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{9}
+}
+func (m *CreateBookingResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CreateBookingResponse.Unmarshal(m, b)
+}
+func (m *CreateBookingResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CreateBookingResponse.Marshal(b, m, deterministic)
+}
+func (dst *CreateBookingResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CreateBookingResponse.Merge(dst, src)
+}
+func (m *CreateBookingResponse) XXX_Size() int {
+ return xxx_messageInfo_CreateBookingResponse.Size(m)
+}
+func (m *CreateBookingResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_CreateBookingResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CreateBookingResponse proto.InternalMessageInfo
+
+func (m *CreateBookingResponse) GetBooking() *Booking {
+ if m != nil {
+ return m.Booking
+ }
+ return nil
+}
+
+func (m *CreateBookingResponse) GetUserPaymentOption() *UserPaymentOption {
+ if m != nil {
+ return m.UserPaymentOption
+ }
+ return nil
+}
+
+func (m *CreateBookingResponse) GetBookingFailure() *BookingFailure {
+ if m != nil {
+ return m.BookingFailure
+ }
+ return nil
+}
+
+// Request to create a 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.
+type CreateLeaseRequest struct {
+ // The lease to be created with information about the appointment slot
+ // (required)
+ Lease *Lease `protobuf:"bytes,1,opt,name=lease,proto3" json:"lease,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CreateLeaseRequest) Reset() { *m = CreateLeaseRequest{} }
+func (m *CreateLeaseRequest) String() string { return proto.CompactTextString(m) }
+func (*CreateLeaseRequest) ProtoMessage() {}
+func (*CreateLeaseRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{10}
+}
+func (m *CreateLeaseRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CreateLeaseRequest.Unmarshal(m, b)
+}
+func (m *CreateLeaseRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CreateLeaseRequest.Marshal(b, m, deterministic)
+}
+func (dst *CreateLeaseRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CreateLeaseRequest.Merge(dst, src)
+}
+func (m *CreateLeaseRequest) XXX_Size() int {
+ return xxx_messageInfo_CreateLeaseRequest.Size(m)
+}
+func (m *CreateLeaseRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_CreateLeaseRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CreateLeaseRequest proto.InternalMessageInfo
+
+func (m *CreateLeaseRequest) GetLease() *Lease {
+ if m != nil {
+ return m.Lease
+ }
+ return nil
+}
+
+// Response for the CreateLease RPC with the created Lease.
+type CreateLeaseResponse struct {
+ // The created Lease (required)
+ Lease *Lease `protobuf:"bytes,1,opt,name=lease,proto3" json:"lease,omitempty"`
+ // 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 *BookingFailure `protobuf:"bytes,2,opt,name=booking_failure,json=bookingFailure,proto3" json:"booking_failure,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CreateLeaseResponse) Reset() { *m = CreateLeaseResponse{} }
+func (m *CreateLeaseResponse) String() string { return proto.CompactTextString(m) }
+func (*CreateLeaseResponse) ProtoMessage() {}
+func (*CreateLeaseResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{11}
+}
+func (m *CreateLeaseResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CreateLeaseResponse.Unmarshal(m, b)
+}
+func (m *CreateLeaseResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CreateLeaseResponse.Marshal(b, m, deterministic)
+}
+func (dst *CreateLeaseResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CreateLeaseResponse.Merge(dst, src)
+}
+func (m *CreateLeaseResponse) XXX_Size() int {
+ return xxx_messageInfo_CreateLeaseResponse.Size(m)
+}
+func (m *CreateLeaseResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_CreateLeaseResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CreateLeaseResponse proto.InternalMessageInfo
+
+func (m *CreateLeaseResponse) GetLease() *Lease {
+ if m != nil {
+ return m.Lease
+ }
+ return nil
+}
+
+func (m *CreateLeaseResponse) GetBookingFailure() *BookingFailure {
+ if m != nil {
+ return m.BookingFailure
+ }
+ return nil
+}
+
// Temporary lease for an inventory slot
type Lease struct {
// ID of the lease.
// Not populated in CreateLeaseRequest. The value is chosen by the partner and
// has to be returned in the response of CreateLease. (required)
- LeaseId string `protobuf:"bytes,1,opt,name=lease_id,json=leaseId" json:"lease_id,omitempty"`
+ LeaseId string `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
// The appointment slot that the lease is created for. (required)
- Slot *Slot `protobuf:"bytes,2,opt,name=slot" json:"slot,omitempty"`
+ Slot *Slot `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"`
// Unique identifier for this lease, chosen by Reserve with Google. Serves as
// an idempotency token for CreateLease requests. (required)
- UserReference string `protobuf:"bytes,3,opt,name=user_reference,json=userReference" json:"user_reference,omitempty"`
+ UserReference string `protobuf:"bytes,3,opt,name=user_reference,json=userReference,proto3" json:"user_reference,omitempty"`
// Expiration time of the lease in UTC Timestamp (required)
- LeaseExpirationTimeSec int64 `protobuf:"varint,4,opt,name=lease_expiration_time_sec,json=leaseExpirationTimeSec" json:"lease_expiration_time_sec,omitempty"`
+ LeaseExpirationTimeSec int64 `protobuf:"varint,4,opt,name=lease_expiration_time_sec,json=leaseExpirationTimeSec,proto3" json:"lease_expiration_time_sec,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *Lease) Reset() { *m = Lease{} }
-func (m *Lease) String() string { return proto.CompactTextString(m) }
-func (*Lease) ProtoMessage() {}
-func (*Lease) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
+func (m *Lease) Reset() { *m = Lease{} }
+func (m *Lease) String() string { return proto.CompactTextString(m) }
+func (*Lease) ProtoMessage() {}
+func (*Lease) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{12}
+}
+func (m *Lease) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Lease.Unmarshal(m, b)
+}
+func (m *Lease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Lease.Marshal(b, m, deterministic)
+}
+func (dst *Lease) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Lease.Merge(dst, src)
+}
+func (m *Lease) XXX_Size() int {
+ return xxx_messageInfo_Lease.Size(m)
+}
+func (m *Lease) XXX_DiscardUnknown() {
+ xxx_messageInfo_Lease.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Lease proto.InternalMessageInfo
func (m *Lease) GetLeaseId() string {
if m != nil {
@@ -1218,13 +1243,35 @@
// Reference to a Lease that has been created via CreateLease.
type LeaseReference struct {
// Lease ID (required)
- LeaseId string `protobuf:"bytes,1,opt,name=lease_id,json=leaseId" json:"lease_id,omitempty"`
+ LeaseId string `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *LeaseReference) Reset() { *m = LeaseReference{} }
-func (m *LeaseReference) String() string { return proto.CompactTextString(m) }
-func (*LeaseReference) ProtoMessage() {}
-func (*LeaseReference) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
+func (m *LeaseReference) Reset() { *m = LeaseReference{} }
+func (m *LeaseReference) String() string { return proto.CompactTextString(m) }
+func (*LeaseReference) ProtoMessage() {}
+func (*LeaseReference) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{13}
+}
+func (m *LeaseReference) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_LeaseReference.Unmarshal(m, b)
+}
+func (m *LeaseReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_LeaseReference.Marshal(b, m, deterministic)
+}
+func (dst *LeaseReference) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LeaseReference.Merge(dst, src)
+}
+func (m *LeaseReference) XXX_Size() int {
+ return xxx_messageInfo_LeaseReference.Size(m)
+}
+func (m *LeaseReference) XXX_DiscardUnknown() {
+ xxx_messageInfo_LeaseReference.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LeaseReference proto.InternalMessageInfo
func (m *LeaseReference) GetLeaseId() string {
if m != nil {
@@ -1233,26 +1280,666 @@
return ""
}
-// [START message_booking]
+// Request to create an order.
+type CreateOrderRequest struct {
+ // The order to create. (required)
+ Order *Order `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"`
+ // The parameters to be used if the payment is processed by the partner
+ // (i.e. order.payment_information.payment_processed_by is equal to
+ // PROCESSED_BY_PARTNER). (required if payment is processed by the partner)
+ PaymentProcessingParameters *PaymentProcessingParameters `protobuf:"bytes,2,opt,name=payment_processing_parameters,json=paymentProcessingParameters,proto3" json:"payment_processing_parameters,omitempty"`
+ // Idempotency token for CreateOrder requests. (required)
+ IdempotencyToken string `protobuf:"bytes,3,opt,name=idempotency_token,json=idempotencyToken,proto3" json:"idempotency_token,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CreateOrderRequest) Reset() { *m = CreateOrderRequest{} }
+func (m *CreateOrderRequest) String() string { return proto.CompactTextString(m) }
+func (*CreateOrderRequest) ProtoMessage() {}
+func (*CreateOrderRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{14}
+}
+func (m *CreateOrderRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CreateOrderRequest.Unmarshal(m, b)
+}
+func (m *CreateOrderRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CreateOrderRequest.Marshal(b, m, deterministic)
+}
+func (dst *CreateOrderRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CreateOrderRequest.Merge(dst, src)
+}
+func (m *CreateOrderRequest) XXX_Size() int {
+ return xxx_messageInfo_CreateOrderRequest.Size(m)
+}
+func (m *CreateOrderRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_CreateOrderRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CreateOrderRequest proto.InternalMessageInfo
+
+func (m *CreateOrderRequest) GetOrder() *Order {
+ if m != nil {
+ return m.Order
+ }
+ return nil
+}
+
+func (m *CreateOrderRequest) GetPaymentProcessingParameters() *PaymentProcessingParameters {
+ if m != nil {
+ return m.PaymentProcessingParameters
+ }
+ return nil
+}
+
+func (m *CreateOrderRequest) GetIdempotencyToken() string {
+ if m != nil {
+ return m.IdempotencyToken
+ }
+ return ""
+}
+
+// Response for the CreateOrderRequest.
+type CreateOrderResponse struct {
+ // All line items in an order either fail or succeed together.
+ // This means that if some of the items cannot be fulfilled, the entire
+ // order must fail, the booking must not be made for any item, and the user
+ // must not be charged.
+ //
+ // Types that are valid to be assigned to Result:
+ // *CreateOrderResponse_Order
+ // *CreateOrderResponse_OrderFailure
+ Result isCreateOrderResponse_Result `protobuf_oneof:"result"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CreateOrderResponse) Reset() { *m = CreateOrderResponse{} }
+func (m *CreateOrderResponse) String() string { return proto.CompactTextString(m) }
+func (*CreateOrderResponse) ProtoMessage() {}
+func (*CreateOrderResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{15}
+}
+func (m *CreateOrderResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CreateOrderResponse.Unmarshal(m, b)
+}
+func (m *CreateOrderResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CreateOrderResponse.Marshal(b, m, deterministic)
+}
+func (dst *CreateOrderResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CreateOrderResponse.Merge(dst, src)
+}
+func (m *CreateOrderResponse) XXX_Size() int {
+ return xxx_messageInfo_CreateOrderResponse.Size(m)
+}
+func (m *CreateOrderResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_CreateOrderResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CreateOrderResponse proto.InternalMessageInfo
+
+type isCreateOrderResponse_Result interface {
+ isCreateOrderResponse_Result()
+}
+
+type CreateOrderResponse_Order struct {
+ Order *Order `protobuf:"bytes,1,opt,name=order,proto3,oneof"`
+}
+type CreateOrderResponse_OrderFailure struct {
+ OrderFailure *OrderFailure `protobuf:"bytes,2,opt,name=order_failure,json=orderFailure,proto3,oneof"`
+}
+
+func (*CreateOrderResponse_Order) isCreateOrderResponse_Result() {}
+func (*CreateOrderResponse_OrderFailure) isCreateOrderResponse_Result() {}
+
+func (m *CreateOrderResponse) GetResult() isCreateOrderResponse_Result {
+ if m != nil {
+ return m.Result
+ }
+ return nil
+}
+
+func (m *CreateOrderResponse) GetOrder() *Order {
+ if x, ok := m.GetResult().(*CreateOrderResponse_Order); ok {
+ return x.Order
+ }
+ return nil
+}
+
+func (m *CreateOrderResponse) GetOrderFailure() *OrderFailure {
+ if x, ok := m.GetResult().(*CreateOrderResponse_OrderFailure); ok {
+ return x.OrderFailure
+ }
+ return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*CreateOrderResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+ return _CreateOrderResponse_OneofMarshaler, _CreateOrderResponse_OneofUnmarshaler, _CreateOrderResponse_OneofSizer, []interface{}{
+ (*CreateOrderResponse_Order)(nil),
+ (*CreateOrderResponse_OrderFailure)(nil),
+ }
+}
+
+func _CreateOrderResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+ m := msg.(*CreateOrderResponse)
+ // result
+ switch x := m.Result.(type) {
+ case *CreateOrderResponse_Order:
+ b.EncodeVarint(1<<3 | proto.WireBytes)
+ if err := b.EncodeMessage(x.Order); err != nil {
+ return err
+ }
+ case *CreateOrderResponse_OrderFailure:
+ b.EncodeVarint(2<<3 | proto.WireBytes)
+ if err := b.EncodeMessage(x.OrderFailure); err != nil {
+ return err
+ }
+ case nil:
+ default:
+ return fmt.Errorf("CreateOrderResponse.Result has unexpected type %T", x)
+ }
+ return nil
+}
+
+func _CreateOrderResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+ m := msg.(*CreateOrderResponse)
+ switch tag {
+ case 1: // result.order
+ if wire != proto.WireBytes {
+ return true, proto.ErrInternalBadWireType
+ }
+ msg := new(Order)
+ err := b.DecodeMessage(msg)
+ m.Result = &CreateOrderResponse_Order{msg}
+ return true, err
+ case 2: // result.order_failure
+ if wire != proto.WireBytes {
+ return true, proto.ErrInternalBadWireType
+ }
+ msg := new(OrderFailure)
+ err := b.DecodeMessage(msg)
+ m.Result = &CreateOrderResponse_OrderFailure{msg}
+ return true, err
+ default:
+ return false, nil
+ }
+}
+
+func _CreateOrderResponse_OneofSizer(msg proto.Message) (n int) {
+ m := msg.(*CreateOrderResponse)
+ // result
+ switch x := m.Result.(type) {
+ case *CreateOrderResponse_Order:
+ s := proto.Size(x.Order)
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(s))
+ n += s
+ case *CreateOrderResponse_OrderFailure:
+ s := proto.Size(x.OrderFailure)
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(s))
+ n += s
+ case nil:
+ default:
+ panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+ }
+ return n
+}
+
+// Request to list all bookings for a user
+type ListBookingsRequest struct {
+ // ID of the user (required)
+ UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ListBookingsRequest) Reset() { *m = ListBookingsRequest{} }
+func (m *ListBookingsRequest) String() string { return proto.CompactTextString(m) }
+func (*ListBookingsRequest) ProtoMessage() {}
+func (*ListBookingsRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{16}
+}
+func (m *ListBookingsRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ListBookingsRequest.Unmarshal(m, b)
+}
+func (m *ListBookingsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ListBookingsRequest.Marshal(b, m, deterministic)
+}
+func (dst *ListBookingsRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ListBookingsRequest.Merge(dst, src)
+}
+func (m *ListBookingsRequest) XXX_Size() int {
+ return xxx_messageInfo_ListBookingsRequest.Size(m)
+}
+func (m *ListBookingsRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_ListBookingsRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListBookingsRequest proto.InternalMessageInfo
+
+func (m *ListBookingsRequest) GetUserId() string {
+ if m != nil {
+ return m.UserId
+ }
+ return ""
+}
+
+// Response for the ListBookings RPC with all bookings for the requested user.
+type ListBookingsResponse struct {
+ // All bookings of the user (required)
+ Bookings []*Booking `protobuf:"bytes,1,rep,name=bookings,proto3" json:"bookings,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ListBookingsResponse) Reset() { *m = ListBookingsResponse{} }
+func (m *ListBookingsResponse) String() string { return proto.CompactTextString(m) }
+func (*ListBookingsResponse) ProtoMessage() {}
+func (*ListBookingsResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{17}
+}
+func (m *ListBookingsResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ListBookingsResponse.Unmarshal(m, b)
+}
+func (m *ListBookingsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ListBookingsResponse.Marshal(b, m, deterministic)
+}
+func (dst *ListBookingsResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ListBookingsResponse.Merge(dst, src)
+}
+func (m *ListBookingsResponse) XXX_Size() int {
+ return xxx_messageInfo_ListBookingsResponse.Size(m)
+}
+func (m *ListBookingsResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_ListBookingsResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListBookingsResponse proto.InternalMessageInfo
+
+func (m *ListBookingsResponse) GetBookings() []*Booking {
+ if m != nil {
+ return m.Bookings
+ }
+ return nil
+}
+
+// Request to list orders.
+type ListOrdersRequest struct {
+ // Request of orders either by user ID, or by order ID.
+ //
+ // Types that are valid to be assigned to Ids:
+ // *ListOrdersRequest_UserId
+ // *ListOrdersRequest_OrderIds_
+ Ids isListOrdersRequest_Ids `protobuf_oneof:"ids"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ListOrdersRequest) Reset() { *m = ListOrdersRequest{} }
+func (m *ListOrdersRequest) String() string { return proto.CompactTextString(m) }
+func (*ListOrdersRequest) ProtoMessage() {}
+func (*ListOrdersRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{18}
+}
+func (m *ListOrdersRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ListOrdersRequest.Unmarshal(m, b)
+}
+func (m *ListOrdersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ListOrdersRequest.Marshal(b, m, deterministic)
+}
+func (dst *ListOrdersRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ListOrdersRequest.Merge(dst, src)
+}
+func (m *ListOrdersRequest) XXX_Size() int {
+ return xxx_messageInfo_ListOrdersRequest.Size(m)
+}
+func (m *ListOrdersRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_ListOrdersRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListOrdersRequest proto.InternalMessageInfo
+
+type isListOrdersRequest_Ids interface {
+ isListOrdersRequest_Ids()
+}
+
+type ListOrdersRequest_UserId struct {
+ UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3,oneof"`
+}
+type ListOrdersRequest_OrderIds_ struct {
+ OrderIds *ListOrdersRequest_OrderIds `protobuf:"bytes,2,opt,name=order_ids,json=orderIds,proto3,oneof"`
+}
+
+func (*ListOrdersRequest_UserId) isListOrdersRequest_Ids() {}
+func (*ListOrdersRequest_OrderIds_) isListOrdersRequest_Ids() {}
+
+func (m *ListOrdersRequest) GetIds() isListOrdersRequest_Ids {
+ if m != nil {
+ return m.Ids
+ }
+ return nil
+}
+
+func (m *ListOrdersRequest) GetUserId() string {
+ if x, ok := m.GetIds().(*ListOrdersRequest_UserId); ok {
+ return x.UserId
+ }
+ return ""
+}
+
+func (m *ListOrdersRequest) GetOrderIds() *ListOrdersRequest_OrderIds {
+ if x, ok := m.GetIds().(*ListOrdersRequest_OrderIds_); ok {
+ return x.OrderIds
+ }
+ return nil
+}
+
+// XXX_OneofFuncs is for the internal use of the proto package.
+func (*ListOrdersRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
+ return _ListOrdersRequest_OneofMarshaler, _ListOrdersRequest_OneofUnmarshaler, _ListOrdersRequest_OneofSizer, []interface{}{
+ (*ListOrdersRequest_UserId)(nil),
+ (*ListOrdersRequest_OrderIds_)(nil),
+ }
+}
+
+func _ListOrdersRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
+ m := msg.(*ListOrdersRequest)
+ // ids
+ switch x := m.Ids.(type) {
+ case *ListOrdersRequest_UserId:
+ b.EncodeVarint(1<<3 | proto.WireBytes)
+ b.EncodeStringBytes(x.UserId)
+ case *ListOrdersRequest_OrderIds_:
+ b.EncodeVarint(2<<3 | proto.WireBytes)
+ if err := b.EncodeMessage(x.OrderIds); err != nil {
+ return err
+ }
+ case nil:
+ default:
+ return fmt.Errorf("ListOrdersRequest.Ids has unexpected type %T", x)
+ }
+ return nil
+}
+
+func _ListOrdersRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
+ m := msg.(*ListOrdersRequest)
+ switch tag {
+ case 1: // ids.user_id
+ if wire != proto.WireBytes {
+ return true, proto.ErrInternalBadWireType
+ }
+ x, err := b.DecodeStringBytes()
+ m.Ids = &ListOrdersRequest_UserId{x}
+ return true, err
+ case 2: // ids.order_ids
+ if wire != proto.WireBytes {
+ return true, proto.ErrInternalBadWireType
+ }
+ msg := new(ListOrdersRequest_OrderIds)
+ err := b.DecodeMessage(msg)
+ m.Ids = &ListOrdersRequest_OrderIds_{msg}
+ return true, err
+ default:
+ return false, nil
+ }
+}
+
+func _ListOrdersRequest_OneofSizer(msg proto.Message) (n int) {
+ m := msg.(*ListOrdersRequest)
+ // ids
+ switch x := m.Ids.(type) {
+ case *ListOrdersRequest_UserId:
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(len(x.UserId)))
+ n += len(x.UserId)
+ case *ListOrdersRequest_OrderIds_:
+ s := proto.Size(x.OrderIds)
+ n += 1 // tag and wire
+ n += proto.SizeVarint(uint64(s))
+ n += s
+ case nil:
+ default:
+ panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
+ }
+ return n
+}
+
+type ListOrdersRequest_OrderIds struct {
+ OrderId []string `protobuf:"bytes,1,rep,name=order_id,json=orderId,proto3" json:"order_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ListOrdersRequest_OrderIds) Reset() { *m = ListOrdersRequest_OrderIds{} }
+func (m *ListOrdersRequest_OrderIds) String() string { return proto.CompactTextString(m) }
+func (*ListOrdersRequest_OrderIds) ProtoMessage() {}
+func (*ListOrdersRequest_OrderIds) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{18, 0}
+}
+func (m *ListOrdersRequest_OrderIds) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ListOrdersRequest_OrderIds.Unmarshal(m, b)
+}
+func (m *ListOrdersRequest_OrderIds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ListOrdersRequest_OrderIds.Marshal(b, m, deterministic)
+}
+func (dst *ListOrdersRequest_OrderIds) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ListOrdersRequest_OrderIds.Merge(dst, src)
+}
+func (m *ListOrdersRequest_OrderIds) XXX_Size() int {
+ return xxx_messageInfo_ListOrdersRequest_OrderIds.Size(m)
+}
+func (m *ListOrdersRequest_OrderIds) XXX_DiscardUnknown() {
+ xxx_messageInfo_ListOrdersRequest_OrderIds.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListOrdersRequest_OrderIds proto.InternalMessageInfo
+
+func (m *ListOrdersRequest_OrderIds) GetOrderId() []string {
+ if m != nil {
+ return m.OrderId
+ }
+ return nil
+}
+
+// Response for the ListOrders RPC.
+type ListOrdersResponse struct {
+ // All requested orders (required)
+ Order []*Order `protobuf:"bytes,1,rep,name=order,proto3" json:"order,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ListOrdersResponse) Reset() { *m = ListOrdersResponse{} }
+func (m *ListOrdersResponse) String() string { return proto.CompactTextString(m) }
+func (*ListOrdersResponse) ProtoMessage() {}
+func (*ListOrdersResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{19}
+}
+func (m *ListOrdersResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ListOrdersResponse.Unmarshal(m, b)
+}
+func (m *ListOrdersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ListOrdersResponse.Marshal(b, m, deterministic)
+}
+func (dst *ListOrdersResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ListOrdersResponse.Merge(dst, src)
+}
+func (m *ListOrdersResponse) XXX_Size() int {
+ return xxx_messageInfo_ListOrdersResponse.Size(m)
+}
+func (m *ListOrdersResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_ListOrdersResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ListOrdersResponse proto.InternalMessageInfo
+
+func (m *ListOrdersResponse) GetOrder() []*Order {
+ if m != nil {
+ return m.Order
+ }
+ return nil
+}
+
+// Request to update a Booking.
+type UpdateBookingRequest struct {
+ // The booking to be updated
+ // The following fields can be set in a booking:
+ // - status, to cancel a booking.
+ // - start_time and duration in the slot, to reschedule a booking. (required)
+ Booking *Booking `protobuf:"bytes,1,opt,name=booking,proto3" json:"booking,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *UpdateBookingRequest) Reset() { *m = UpdateBookingRequest{} }
+func (m *UpdateBookingRequest) String() string { return proto.CompactTextString(m) }
+func (*UpdateBookingRequest) ProtoMessage() {}
+func (*UpdateBookingRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{20}
+}
+func (m *UpdateBookingRequest) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UpdateBookingRequest.Unmarshal(m, b)
+}
+func (m *UpdateBookingRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UpdateBookingRequest.Marshal(b, m, deterministic)
+}
+func (dst *UpdateBookingRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UpdateBookingRequest.Merge(dst, src)
+}
+func (m *UpdateBookingRequest) XXX_Size() int {
+ return xxx_messageInfo_UpdateBookingRequest.Size(m)
+}
+func (m *UpdateBookingRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_UpdateBookingRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UpdateBookingRequest proto.InternalMessageInfo
+
+func (m *UpdateBookingRequest) GetBooking() *Booking {
+ if m != nil {
+ return m.Booking
+ }
+ return nil
+}
+
+// Response with the updated Booking.
+type UpdateBookingResponse struct {
+ // The updated booking (required)
+ Booking *Booking `protobuf:"bytes,1,opt,name=booking,proto3" json:"booking,omitempty"`
+ // The updated user payment option originally used to pay for this booking.
+ // This should be set if the UpdateBookingRequest results in a change to
+ // the UserPaymentOption.
+ // For instance, if the booking is canceled, the UserPaymentOption should
+ // reflect an additional credit to the user. In the case of a multi-use
+ // payment option, the current_count should be increased by one to
+ // allow the user to create another booking with this payment option. In the
+ // case of a single-use payment option, a new single-use user payment option
+ // should be returned. (required if altered in update)
+ UserPaymentOption *UserPaymentOption `protobuf:"bytes,2,opt,name=user_payment_option,json=userPaymentOption,proto3" json:"user_payment_option,omitempty"`
+ // If updating a booking fails, this field should reflect the business logic
+ // error (e.g., booking is not cancellable) (required if failure occurs)
+ BookingFailure *BookingFailure `protobuf:"bytes,3,opt,name=booking_failure,json=bookingFailure,proto3" json:"booking_failure,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *UpdateBookingResponse) Reset() { *m = UpdateBookingResponse{} }
+func (m *UpdateBookingResponse) String() string { return proto.CompactTextString(m) }
+func (*UpdateBookingResponse) ProtoMessage() {}
+func (*UpdateBookingResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{21}
+}
+func (m *UpdateBookingResponse) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UpdateBookingResponse.Unmarshal(m, b)
+}
+func (m *UpdateBookingResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UpdateBookingResponse.Marshal(b, m, deterministic)
+}
+func (dst *UpdateBookingResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UpdateBookingResponse.Merge(dst, src)
+}
+func (m *UpdateBookingResponse) XXX_Size() int {
+ return xxx_messageInfo_UpdateBookingResponse.Size(m)
+}
+func (m *UpdateBookingResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_UpdateBookingResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UpdateBookingResponse proto.InternalMessageInfo
+
+func (m *UpdateBookingResponse) GetBooking() *Booking {
+ if m != nil {
+ return m.Booking
+ }
+ return nil
+}
+
+func (m *UpdateBookingResponse) GetUserPaymentOption() *UserPaymentOption {
+ if m != nil {
+ return m.UserPaymentOption
+ }
+ return nil
+}
+
+func (m *UpdateBookingResponse) GetBookingFailure() *BookingFailure {
+ if m != nil {
+ return m.BookingFailure
+ }
+ return nil
+}
+
// A booking for an inventory slot
type Booking struct {
// ID of this booking (required)
- BookingId string `protobuf:"bytes,1,opt,name=booking_id,json=bookingId" json:"booking_id,omitempty"`
+ BookingId string `protobuf:"bytes,1,opt,name=booking_id,json=bookingId,proto3" json:"booking_id,omitempty"`
// The appointment slot of this booking (required)
- Slot *Slot `protobuf:"bytes,2,opt,name=slot" json:"slot,omitempty"`
+ Slot *Slot `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"`
// Personal information of the user making the appointment (required)
- UserInformation *UserInformation `protobuf:"bytes,3,opt,name=user_information,json=userInformation" json:"user_information,omitempty"`
+ UserInformation *UserInformation `protobuf:"bytes,3,opt,name=user_information,json=userInformation,proto3" json:"user_information,omitempty"`
// Status of the booking (required)
- Status BookingStatus `protobuf:"varint,4,opt,name=status,enum=v3.BookingStatus" json:"status,omitempty"`
+ Status BookingStatus `protobuf:"varint,4,opt,name=status,proto3,enum=ext.maps.booking.partner.v3.BookingStatus" json:"status,omitempty"`
// Information about payment transactions that relate to the booking.
// (optional)
- PaymentInformation *PaymentInformation `protobuf:"bytes,5,opt,name=payment_information,json=paymentInformation" json:"payment_information,omitempty"`
+ PaymentInformation *PaymentInformation `protobuf:"bytes,5,opt,name=payment_information,json=paymentInformation,proto3" json:"payment_information,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *Booking) Reset() { *m = Booking{} }
-func (m *Booking) String() string { return proto.CompactTextString(m) }
-func (*Booking) ProtoMessage() {}
-func (*Booking) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
+func (m *Booking) Reset() { *m = Booking{} }
+func (m *Booking) String() string { return proto.CompactTextString(m) }
+func (*Booking) ProtoMessage() {}
+func (*Booking) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{22}
+}
+func (m *Booking) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Booking.Unmarshal(m, b)
+}
+func (m *Booking) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Booking.Marshal(b, m, deterministic)
+}
+func (dst *Booking) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Booking.Merge(dst, src)
+}
+func (m *Booking) XXX_Size() int {
+ return xxx_messageInfo_Booking.Size(m)
+}
+func (m *Booking) XXX_DiscardUnknown() {
+ xxx_messageInfo_Booking.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Booking proto.InternalMessageInfo
func (m *Booking) GetBookingId() string {
if m != nil {
@@ -1289,78 +1976,667 @@
return nil
}
-// [START user_definition]
-// Personal information about the person making a booking
-type UserInformation struct {
- // Unique ID of the user to the partner, chosen by Reserve with Google.
- // (required)
- UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"`
- // Given name of the user (required)
- GivenName string `protobuf:"bytes,2,opt,name=given_name,json=givenName" json:"given_name,omitempty"`
- // Family name of the user (required)
- FamilyName string `protobuf:"bytes,3,opt,name=family_name,json=familyName" json:"family_name,omitempty"`
- // Address of the user (optional)
- Address *PostalAddress `protobuf:"bytes,4,opt,name=address" json:"address,omitempty"`
- // Phone number of the user (required)
- Telephone string `protobuf:"bytes,5,opt,name=telephone" json:"telephone,omitempty"`
- // Email address of the user (required)
- Email string `protobuf:"bytes,6,opt,name=email" json:"email,omitempty"`
+// Status data that conveys why (1) creating a lease or (2) creating or updating
+// a booking fails.
+// BookingFailure is intended to primarily capture business logic errors.
+type BookingFailure struct {
+ // The reason why the booking failed. (required)
+ Cause BookingFailure_Cause `protobuf:"varint,1,opt,name=cause,proto3,enum=ext.maps.booking.partner.v3.BookingFailure_Cause" json:"cause,omitempty"`
+ // (required only if cause is PAYMENT_ERROR_CARD_TYPE_REJECTED)
+ RejectedCardType CreditCardType `protobuf:"varint,2,opt,name=rejected_card_type,json=rejectedCardType,proto3,enum=ext.maps.booking.partner.v3.CreditCardType" json:"rejected_card_type,omitempty"`
+ // This optional field is used for the partner to include additional
+ // information for debugging purpose only. (optional)
+ Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *UserInformation) Reset() { *m = UserInformation{} }
-func (m *UserInformation) String() string { return proto.CompactTextString(m) }
-func (*UserInformation) ProtoMessage() {}
-func (*UserInformation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
+func (m *BookingFailure) Reset() { *m = BookingFailure{} }
+func (m *BookingFailure) String() string { return proto.CompactTextString(m) }
+func (*BookingFailure) ProtoMessage() {}
+func (*BookingFailure) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{23}
+}
+func (m *BookingFailure) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_BookingFailure.Unmarshal(m, b)
+}
+func (m *BookingFailure) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_BookingFailure.Marshal(b, m, deterministic)
+}
+func (dst *BookingFailure) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_BookingFailure.Merge(dst, src)
+}
+func (m *BookingFailure) XXX_Size() int {
+ return xxx_messageInfo_BookingFailure.Size(m)
+}
+func (m *BookingFailure) XXX_DiscardUnknown() {
+ xxx_messageInfo_BookingFailure.DiscardUnknown(m)
+}
-func (m *UserInformation) GetUserId() string {
+var xxx_messageInfo_BookingFailure proto.InternalMessageInfo
+
+func (m *BookingFailure) GetCause() BookingFailure_Cause {
if m != nil {
- return m.UserId
+ return m.Cause
+ }
+ return BookingFailure_CAUSE_UNSPECIFIED
+}
+
+func (m *BookingFailure) GetRejectedCardType() CreditCardType {
+ if m != nil {
+ return m.RejectedCardType
+ }
+ return CreditCardType_CREDIT_CARD_TYPE_UNSPECIFIED
+}
+
+func (m *BookingFailure) GetDescription() string {
+ if m != nil {
+ return m.Description
}
return ""
}
-func (m *UserInformation) GetGivenName() string {
+// An order for service appointments with a merchant.
+type Order struct {
+ // ID of this Order, chosen by the booking partner who handles the order
+ // (required in CreateOrderResponse and ListOrdersResponse, must not be set in
+ // CreateOrderRequest)
+ OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId,proto3" json:"order_id,omitempty"`
+ // Personal information of the user making the order (required)
+ UserInformation *UserInformation `protobuf:"bytes,2,opt,name=user_information,json=userInformation,proto3" json:"user_information,omitempty"`
+ // Information about payment transactions that relate to the Order.
+ // (optional)
+ PaymentInformation *PaymentInformation `protobuf:"bytes,3,opt,name=payment_information,json=paymentInformation,proto3" json:"payment_information,omitempty"`
+ // The merchant that all services in this Order belong to.
+ MerchantId string `protobuf:"bytes,4,opt,name=merchant_id,json=merchantId,proto3" json:"merchant_id,omitempty"`
+ // Line items in this order.
+ Item []*LineItem `protobuf:"bytes,5,rep,name=item,proto3" json:"item,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Order) Reset() { *m = Order{} }
+func (m *Order) String() string { return proto.CompactTextString(m) }
+func (*Order) ProtoMessage() {}
+func (*Order) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{24}
+}
+func (m *Order) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Order.Unmarshal(m, b)
+}
+func (m *Order) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Order.Marshal(b, m, deterministic)
+}
+func (dst *Order) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Order.Merge(dst, src)
+}
+func (m *Order) XXX_Size() int {
+ return xxx_messageInfo_Order.Size(m)
+}
+func (m *Order) XXX_DiscardUnknown() {
+ xxx_messageInfo_Order.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Order proto.InternalMessageInfo
+
+func (m *Order) GetOrderId() string {
if m != nil {
- return m.GivenName
+ return m.OrderId
}
return ""
}
-func (m *UserInformation) GetFamilyName() string {
+func (m *Order) GetUserInformation() *UserInformation {
if m != nil {
- return m.FamilyName
- }
- return ""
-}
-
-func (m *UserInformation) GetAddress() *PostalAddress {
- if m != nil {
- return m.Address
+ return m.UserInformation
}
return nil
}
-func (m *UserInformation) GetTelephone() string {
+func (m *Order) GetPaymentInformation() *PaymentInformation {
if m != nil {
- return m.Telephone
+ return m.PaymentInformation
+ }
+ return nil
+}
+
+func (m *Order) GetMerchantId() string {
+ if m != nil {
+ return m.MerchantId
}
return ""
}
-func (m *UserInformation) GetEmail() string {
+func (m *Order) GetItem() []*LineItem {
if m != nil {
- return m.Email
+ return m.Item
+ }
+ return nil
+}
+
+// A single item in an Order--the booking of a single service in a single time
+// slot.
+type LineItem struct {
+ // ID of the merchant Service. (required)
+ ServiceId string `protobuf:"bytes,1,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"`
+ // Start time of the appointment slot in seconds of UTC time since Unix epoch.
+ // (required)
+ StartSec int64 `protobuf:"varint,2,opt,name=start_sec,json=startSec,proto3" json:"start_sec,omitempty"`
+ // Duration of the appointment slot in seconds. (required)
+ DurationSec int64 `protobuf:"varint,3,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`
+ // Number of tickets ordered by Ticket Type.
+ Tickets []*LineItem_OrderedTickets `protobuf:"bytes,4,rep,name=tickets,proto3" json:"tickets,omitempty"`
+ // In handling CreateOrderRequest and CheckOrderFulfillabilityRequest,
+ // the total price (excluding taxes) of the item must be verified to guard
+ // against price changes. In CreateOrderResponse and
+ // CheckOrderFulfillabilityResponse, the price should be updated to the
+ // correct value if the value from the request was incorrect or outdated.
+ // (reqired)
+ Price *Price `protobuf:"bytes,5,opt,name=price,proto3" json:"price,omitempty"`
+ // Status of the Line Item. (required in CreateOrderResponse and
+ // ListOrdersResponse; should not be set in requests)
+ Status BookingStatus `protobuf:"varint,6,opt,name=status,proto3,enum=ext.maps.booking.partner.v3.BookingStatus" json:"status,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *LineItem) Reset() { *m = LineItem{} }
+func (m *LineItem) String() string { return proto.CompactTextString(m) }
+func (*LineItem) ProtoMessage() {}
+func (*LineItem) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{25}
+}
+func (m *LineItem) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_LineItem.Unmarshal(m, b)
+}
+func (m *LineItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_LineItem.Marshal(b, m, deterministic)
+}
+func (dst *LineItem) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LineItem.Merge(dst, src)
+}
+func (m *LineItem) XXX_Size() int {
+ return xxx_messageInfo_LineItem.Size(m)
+}
+func (m *LineItem) XXX_DiscardUnknown() {
+ xxx_messageInfo_LineItem.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LineItem proto.InternalMessageInfo
+
+func (m *LineItem) GetServiceId() string {
+ if m != nil {
+ return m.ServiceId
}
return ""
}
-// [START paymentprocessing_definition]
+func (m *LineItem) GetStartSec() int64 {
+ if m != nil {
+ return m.StartSec
+ }
+ return 0
+}
+
+func (m *LineItem) GetDurationSec() int64 {
+ if m != nil {
+ return m.DurationSec
+ }
+ return 0
+}
+
+func (m *LineItem) GetTickets() []*LineItem_OrderedTickets {
+ if m != nil {
+ return m.Tickets
+ }
+ return nil
+}
+
+func (m *LineItem) GetPrice() *Price {
+ if m != nil {
+ return m.Price
+ }
+ return nil
+}
+
+func (m *LineItem) GetStatus() BookingStatus {
+ if m != nil {
+ return m.Status
+ }
+ return BookingStatus_BOOKING_STATUS_UNSPECIFIED
+}
+
+type LineItem_OrderedTickets struct {
+ TicketId string `protobuf:"bytes,1,opt,name=ticket_id,json=ticketId,proto3" json:"ticket_id,omitempty"`
+ Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *LineItem_OrderedTickets) Reset() { *m = LineItem_OrderedTickets{} }
+func (m *LineItem_OrderedTickets) String() string { return proto.CompactTextString(m) }
+func (*LineItem_OrderedTickets) ProtoMessage() {}
+func (*LineItem_OrderedTickets) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{25, 0}
+}
+func (m *LineItem_OrderedTickets) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_LineItem_OrderedTickets.Unmarshal(m, b)
+}
+func (m *LineItem_OrderedTickets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_LineItem_OrderedTickets.Marshal(b, m, deterministic)
+}
+func (dst *LineItem_OrderedTickets) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LineItem_OrderedTickets.Merge(dst, src)
+}
+func (m *LineItem_OrderedTickets) XXX_Size() int {
+ return xxx_messageInfo_LineItem_OrderedTickets.Size(m)
+}
+func (m *LineItem_OrderedTickets) XXX_DiscardUnknown() {
+ xxx_messageInfo_LineItem_OrderedTickets.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LineItem_OrderedTickets proto.InternalMessageInfo
+
+func (m *LineItem_OrderedTickets) GetTicketId() string {
+ if m != nil {
+ return m.TicketId
+ }
+ return ""
+}
+
+func (m *LineItem_OrderedTickets) GetCount() int32 {
+ if m != nil {
+ return m.Count
+ }
+ return 0
+}
+
+// Status data that conveys why creating an order fails.
+// OrderFailure is intended to primarily capture business logic errors.
+type OrderFailure struct {
+ // The reason why the order failed. (required)
+ Cause OrderFailure_Cause `protobuf:"varint,1,opt,name=cause,proto3,enum=ext.maps.booking.partner.v3.OrderFailure_Cause" json:"cause,omitempty"`
+ // (required only if cause is ORDER_UNFULFILLABLE)
+ Fulfillability *OrderFulfillability `protobuf:"bytes,2,opt,name=fulfillability,proto3" json:"fulfillability,omitempty"`
+ // (required only if cause is PAYMENT_ERROR_CARD_TYPE_REJECTED)
+ RejectedCardType CreditCardType `protobuf:"varint,3,opt,name=rejected_card_type,json=rejectedCardType,proto3,enum=ext.maps.booking.partner.v3.CreditCardType" json:"rejected_card_type,omitempty"`
+ // This optional field is used for the partner to include additional
+ // information for debugging purpose only. (optional)
+ Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *OrderFailure) Reset() { *m = OrderFailure{} }
+func (m *OrderFailure) String() string { return proto.CompactTextString(m) }
+func (*OrderFailure) ProtoMessage() {}
+func (*OrderFailure) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{26}
+}
+func (m *OrderFailure) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_OrderFailure.Unmarshal(m, b)
+}
+func (m *OrderFailure) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_OrderFailure.Marshal(b, m, deterministic)
+}
+func (dst *OrderFailure) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrderFailure.Merge(dst, src)
+}
+func (m *OrderFailure) XXX_Size() int {
+ return xxx_messageInfo_OrderFailure.Size(m)
+}
+func (m *OrderFailure) XXX_DiscardUnknown() {
+ xxx_messageInfo_OrderFailure.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OrderFailure proto.InternalMessageInfo
+
+func (m *OrderFailure) GetCause() OrderFailure_Cause {
+ if m != nil {
+ return m.Cause
+ }
+ return OrderFailure_CAUSE_UNSPECIFIED
+}
+
+func (m *OrderFailure) GetFulfillability() *OrderFulfillability {
+ if m != nil {
+ return m.Fulfillability
+ }
+ return nil
+}
+
+func (m *OrderFailure) GetRejectedCardType() CreditCardType {
+ if m != nil {
+ return m.RejectedCardType
+ }
+ return CreditCardType_CREDIT_CARD_TYPE_UNSPECIFIED
+}
+
+func (m *OrderFailure) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
+type OrderFulfillability struct {
+ Result OrderFulfillability_OrderFulfillabilityResult `protobuf:"varint,1,opt,name=result,proto3,enum=ext.maps.booking.partner.v3.OrderFulfillability_OrderFulfillabilityResult" json:"result,omitempty"`
+ // Fulfillability results of all line items in this order (required).
+ ItemFulfillability []*LineItemFulfillability `protobuf:"bytes,2,rep,name=item_fulfillability,json=itemFulfillability,proto3" json:"item_fulfillability,omitempty"`
+ // Additional description of the reason if the item is unfulfillable.
+ // (optional)
+ UnfulfillableReason string `protobuf:"bytes,3,opt,name=unfulfillable_reason,json=unfulfillableReason,proto3" json:"unfulfillable_reason,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *OrderFulfillability) Reset() { *m = OrderFulfillability{} }
+func (m *OrderFulfillability) String() string { return proto.CompactTextString(m) }
+func (*OrderFulfillability) ProtoMessage() {}
+func (*OrderFulfillability) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{27}
+}
+func (m *OrderFulfillability) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_OrderFulfillability.Unmarshal(m, b)
+}
+func (m *OrderFulfillability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_OrderFulfillability.Marshal(b, m, deterministic)
+}
+func (dst *OrderFulfillability) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_OrderFulfillability.Merge(dst, src)
+}
+func (m *OrderFulfillability) XXX_Size() int {
+ return xxx_messageInfo_OrderFulfillability.Size(m)
+}
+func (m *OrderFulfillability) XXX_DiscardUnknown() {
+ xxx_messageInfo_OrderFulfillability.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_OrderFulfillability proto.InternalMessageInfo
+
+func (m *OrderFulfillability) GetResult() OrderFulfillability_OrderFulfillabilityResult {
+ if m != nil {
+ return m.Result
+ }
+ return OrderFulfillability_ORDER_FULFILLABILITY_RESULT_UNSPECIFIED
+}
+
+func (m *OrderFulfillability) GetItemFulfillability() []*LineItemFulfillability {
+ if m != nil {
+ return m.ItemFulfillability
+ }
+ return nil
+}
+
+func (m *OrderFulfillability) GetUnfulfillableReason() string {
+ if m != nil {
+ return m.UnfulfillableReason
+ }
+ return ""
+}
+
+// Fulfillability of a line item.
+type LineItemFulfillability struct {
+ // The line item of question. (required)
+ Item *LineItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
+ // (required)
+ Result LineItemFulfillability_ItemFulfillabilityResult `protobuf:"varint,2,opt,name=result,proto3,enum=ext.maps.booking.partner.v3.LineItemFulfillability_ItemFulfillabilityResult" json:"result,omitempty"`
+ // Additional description of the reason if the item is unfulfillable.
+ // (optional)
+ UnfulfillableReason string `protobuf:"bytes,3,opt,name=unfulfillable_reason,json=unfulfillableReason,proto3" json:"unfulfillable_reason,omitempty"`
+ // (optional)
+ Availability *LineItemFulfillability_UpdatedAvailability `protobuf:"bytes,4,opt,name=availability,proto3" json:"availability,omitempty"`
+ // Updated ticket types can be piggybacked in
+ // CheckOrderFulfillabilityResponse. If non-empty, all available ticket types
+ // for this slot with up-to-date prices should be listed without omitting any.
+ // (optional)
+ TicketType []*TicketType `protobuf:"bytes,5,rep,name=ticket_type,json=ticketType,proto3" json:"ticket_type,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *LineItemFulfillability) Reset() { *m = LineItemFulfillability{} }
+func (m *LineItemFulfillability) String() string { return proto.CompactTextString(m) }
+func (*LineItemFulfillability) ProtoMessage() {}
+func (*LineItemFulfillability) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{28}
+}
+func (m *LineItemFulfillability) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_LineItemFulfillability.Unmarshal(m, b)
+}
+func (m *LineItemFulfillability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_LineItemFulfillability.Marshal(b, m, deterministic)
+}
+func (dst *LineItemFulfillability) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LineItemFulfillability.Merge(dst, src)
+}
+func (m *LineItemFulfillability) XXX_Size() int {
+ return xxx_messageInfo_LineItemFulfillability.Size(m)
+}
+func (m *LineItemFulfillability) XXX_DiscardUnknown() {
+ xxx_messageInfo_LineItemFulfillability.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LineItemFulfillability proto.InternalMessageInfo
+
+func (m *LineItemFulfillability) GetItem() *LineItem {
+ if m != nil {
+ return m.Item
+ }
+ return nil
+}
+
+func (m *LineItemFulfillability) GetResult() LineItemFulfillability_ItemFulfillabilityResult {
+ if m != nil {
+ return m.Result
+ }
+ return LineItemFulfillability_ITEM_FULFILLABILITY_RESULT_UNSPECIFIED
+}
+
+func (m *LineItemFulfillability) GetUnfulfillableReason() string {
+ if m != nil {
+ return m.UnfulfillableReason
+ }
+ return ""
+}
+
+func (m *LineItemFulfillability) GetAvailability() *LineItemFulfillability_UpdatedAvailability {
+ if m != nil {
+ return m.Availability
+ }
+ return nil
+}
+
+func (m *LineItemFulfillability) GetTicketType() []*TicketType {
+ if m != nil {
+ return m.TicketType
+ }
+ return nil
+}
+
+// Updated availability for this slot can be piggybacked in
+// CheckOrderFulfillabilityResponse.
+type LineItemFulfillability_UpdatedAvailability struct {
+ // Number of available spots for the given slot. 0 indicates no
+ // availability. (required)
+ SpotsOpen int32 `protobuf:"varint,1,opt,name=spots_open,json=spotsOpen,proto3" json:"spots_open,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *LineItemFulfillability_UpdatedAvailability) Reset() {
+ *m = LineItemFulfillability_UpdatedAvailability{}
+}
+func (m *LineItemFulfillability_UpdatedAvailability) String() string {
+ return proto.CompactTextString(m)
+}
+func (*LineItemFulfillability_UpdatedAvailability) ProtoMessage() {}
+func (*LineItemFulfillability_UpdatedAvailability) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{28, 0}
+}
+func (m *LineItemFulfillability_UpdatedAvailability) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_LineItemFulfillability_UpdatedAvailability.Unmarshal(m, b)
+}
+func (m *LineItemFulfillability_UpdatedAvailability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_LineItemFulfillability_UpdatedAvailability.Marshal(b, m, deterministic)
+}
+func (dst *LineItemFulfillability_UpdatedAvailability) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_LineItemFulfillability_UpdatedAvailability.Merge(dst, src)
+}
+func (m *LineItemFulfillability_UpdatedAvailability) XXX_Size() int {
+ return xxx_messageInfo_LineItemFulfillability_UpdatedAvailability.Size(m)
+}
+func (m *LineItemFulfillability_UpdatedAvailability) XXX_DiscardUnknown() {
+ xxx_messageInfo_LineItemFulfillability_UpdatedAvailability.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_LineItemFulfillability_UpdatedAvailability proto.InternalMessageInfo
+
+func (m *LineItemFulfillability_UpdatedAvailability) GetSpotsOpen() int32 {
+ if m != nil {
+ return m.SpotsOpen
+ }
+ return 0
+}
+
+// TicketType is used to differentiate among tickets (where a ticket can be a
+// spot on a raft trip, an admission to a museum, etc.) with different prices
+// and/or availabilities due to different user types or different service
+// attributes.
+type TicketType struct {
+ // The ticket id is used to differentiate among different ticket types of the
+ // same service, and is only expected to be unique within a service.
+ TicketTypeId string `protobuf:"bytes,1,opt,name=ticket_type_id,json=ticketTypeId,proto3" json:"ticket_type_id,omitempty"`
+ // This can be user visible, e.g., “adult”, "child", “veteran”, “Row J”, etc.
+ ShortDescription string `protobuf:"bytes,2,opt,name=short_description,json=shortDescription,proto3" json:"short_description,omitempty"`
+ // The price of a single ticket of this type, exclusive of any taxes. The tax
+ // rate of Service is applied to its tickets.
+ Price *Price `protobuf:"bytes,3,opt,name=price,proto3" json:"price,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *TicketType) Reset() { *m = TicketType{} }
+func (m *TicketType) String() string { return proto.CompactTextString(m) }
+func (*TicketType) ProtoMessage() {}
+func (*TicketType) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{29}
+}
+func (m *TicketType) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_TicketType.Unmarshal(m, b)
+}
+func (m *TicketType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_TicketType.Marshal(b, m, deterministic)
+}
+func (dst *TicketType) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_TicketType.Merge(dst, src)
+}
+func (m *TicketType) XXX_Size() int {
+ return xxx_messageInfo_TicketType.Size(m)
+}
+func (m *TicketType) XXX_DiscardUnknown() {
+ xxx_messageInfo_TicketType.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TicketType proto.InternalMessageInfo
+
+func (m *TicketType) GetTicketTypeId() string {
+ if m != nil {
+ return m.TicketTypeId
+ }
+ return ""
+}
+
+func (m *TicketType) GetShortDescription() string {
+ if m != nil {
+ return m.ShortDescription
+ }
+ return ""
+}
+
+func (m *TicketType) GetPrice() *Price {
+ if m != nil {
+ return m.Price
+ }
+ return nil
+}
+
+// Resource specification that disambiguates an appointment slot
+type ResourceIds struct {
+ // The staff ID as provided in the feed or empty if not applicable or no staff
+ // was selected. (optional)
+ StaffId string `protobuf:"bytes,1,opt,name=staff_id,json=staffId,proto3" json:"staff_id,omitempty"`
+ // The room ID as provided in the feed or empty if not applicable or no room
+ // was selected. (optional)
+ RoomId string `protobuf:"bytes,2,opt,name=room_id,json=roomId,proto3" json:"room_id,omitempty"`
+ // For Dining Reservations only: the number of seats requested in the booking.
+ // (optional)
+ PartySize int32 `protobuf:"varint,3,opt,name=party_size,json=partySize,proto3" json:"party_size,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *ResourceIds) Reset() { *m = ResourceIds{} }
+func (m *ResourceIds) String() string { return proto.CompactTextString(m) }
+func (*ResourceIds) ProtoMessage() {}
+func (*ResourceIds) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{30}
+}
+func (m *ResourceIds) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_ResourceIds.Unmarshal(m, b)
+}
+func (m *ResourceIds) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_ResourceIds.Marshal(b, m, deterministic)
+}
+func (dst *ResourceIds) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ResourceIds.Merge(dst, src)
+}
+func (m *ResourceIds) XXX_Size() int {
+ return xxx_messageInfo_ResourceIds.Size(m)
+}
+func (m *ResourceIds) XXX_DiscardUnknown() {
+ xxx_messageInfo_ResourceIds.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ResourceIds proto.InternalMessageInfo
+
+func (m *ResourceIds) GetStaffId() string {
+ if m != nil {
+ return m.StaffId
+ }
+ return ""
+}
+
+func (m *ResourceIds) GetRoomId() string {
+ if m != nil {
+ return m.RoomId
+ }
+ return ""
+}
+
+func (m *ResourceIds) GetPartySize() int32 {
+ if m != nil {
+ return m.PartySize
+ }
+ return 0
+}
+
type PaymentProcessingParameters struct {
// The payment processor used to process payment for a given booking.
// (required)
//
// Replaced by the payment_processor field.
- Processor PaymentProcessingParameters_PaymentProcessor `protobuf:"varint,1,opt,name=processor,enum=v3.PaymentProcessingParameters_PaymentProcessor" json:"processor,omitempty"`
+ Processor PaymentProcessingParameters_PaymentProcessor `protobuf:"varint,1,opt,name=processor,proto3,enum=ext.maps.booking.partner.v3.PaymentProcessingParameters_PaymentProcessor" json:"processor,omitempty"` // Deprecated: Do not use.
// The token representing the payment method that will be used to pay
// for this booking. This token can be only used once. This token can be
// only used for the merchant associated with this booking.
@@ -1373,7 +2649,7 @@
// For example, for Stripe, unparsed_payment_method_token is a serialized
// JSON object documented at https://stripe.com/docs/api#token_object.
// payment_method_token is the 'id' field parsed out of that.
- PaymentMethodToken string `protobuf:"bytes,2,opt,name=payment_method_token,json=paymentMethodToken" json:"payment_method_token,omitempty"`
+ PaymentMethodToken string `protobuf:"bytes,2,opt,name=payment_method_token,json=paymentMethodToken,proto3" json:"payment_method_token,omitempty"` // Deprecated: Do not use.
// The full token received from Google Payments. This is typically a
// serialized JSON object. See documentation from Google Payments and your
// payment processor for the JSON format of the token for your processor.
@@ -1381,23 +2657,46 @@
//
// This token can only be used once, and only for the merchant associated with
// this booking.
- UnparsedPaymentMethodToken string `protobuf:"bytes,5,opt,name=unparsed_payment_method_token,json=unparsedPaymentMethodToken" json:"unparsed_payment_method_token,omitempty"`
+ UnparsedPaymentMethodToken string `protobuf:"bytes,5,opt,name=unparsed_payment_method_token,json=unparsedPaymentMethodToken,proto3" json:"unparsed_payment_method_token,omitempty"`
// The payment processor API version that the given payment token is valid
// for.
//
// Each processor may choose its own format for this field.
// Stripe uses a date (e.g. "2017-06-15"). (required)
- Version string `protobuf:"bytes,3,opt,name=version" json:"version,omitempty"`
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
// The payment processor whose configuration was used to generate this token.
// (required)
- PaymentProcessor string `protobuf:"bytes,4,opt,name=payment_processor,json=paymentProcessor" json:"payment_processor,omitempty"`
+ PaymentProcessor string `protobuf:"bytes,4,opt,name=payment_processor,json=paymentProcessor,proto3" json:"payment_processor,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *PaymentProcessingParameters) Reset() { *m = PaymentProcessingParameters{} }
-func (m *PaymentProcessingParameters) String() string { return proto.CompactTextString(m) }
-func (*PaymentProcessingParameters) ProtoMessage() {}
-func (*PaymentProcessingParameters) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
+func (m *PaymentProcessingParameters) Reset() { *m = PaymentProcessingParameters{} }
+func (m *PaymentProcessingParameters) String() string { return proto.CompactTextString(m) }
+func (*PaymentProcessingParameters) ProtoMessage() {}
+func (*PaymentProcessingParameters) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{31}
+}
+func (m *PaymentProcessingParameters) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PaymentProcessingParameters.Unmarshal(m, b)
+}
+func (m *PaymentProcessingParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PaymentProcessingParameters.Marshal(b, m, deterministic)
+}
+func (dst *PaymentProcessingParameters) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PaymentProcessingParameters.Merge(dst, src)
+}
+func (m *PaymentProcessingParameters) XXX_Size() int {
+ return xxx_messageInfo_PaymentProcessingParameters.Size(m)
+}
+func (m *PaymentProcessingParameters) XXX_DiscardUnknown() {
+ xxx_messageInfo_PaymentProcessingParameters.DiscardUnknown(m)
+}
+var xxx_messageInfo_PaymentProcessingParameters proto.InternalMessageInfo
+
+// Deprecated: Do not use.
func (m *PaymentProcessingParameters) GetProcessor() PaymentProcessingParameters_PaymentProcessor {
if m != nil {
return m.Processor
@@ -1405,6 +2704,7 @@
return PaymentProcessingParameters_PAYMENT_PROCESSOR_UNSPECIFIED
}
+// Deprecated: Do not use.
func (m *PaymentProcessingParameters) GetPaymentMethodToken() string {
if m != nil {
return m.PaymentMethodToken
@@ -1433,7 +2733,6 @@
return ""
}
-// [START userpaymentoption_definition]
// This describes a payment option, such as a pack, membership, or
// single-session pass after it has been purchased by a user. It includes an
// identifier for the user payment option, as well as some information about
@@ -1441,32 +2740,54 @@
type UserPaymentOption struct {
// A unique identifier for the user payment option. This Id MUST be unique
// for all UserPaymentOptions across all merchants and users. (required)
- UserPaymentOptionId string `protobuf:"bytes,1,opt,name=user_payment_option_id,json=userPaymentOptionId" json:"user_payment_option_id,omitempty"`
+ UserPaymentOptionId string `protobuf:"bytes,1,opt,name=user_payment_option_id,json=userPaymentOptionId,proto3" json:"user_payment_option_id,omitempty"`
// The user payment option will be valid (usable) between start_time and
// end_time set in UTC. Attempts to use a user payment option to make a
// booking outside of this interval will fail. (both optional)
- ValidStartTimeSec int64 `protobuf:"varint,2,opt,name=valid_start_time_sec,json=validStartTimeSec" json:"valid_start_time_sec,omitempty"`
- ValidEndTimeSec int64 `protobuf:"varint,3,opt,name=valid_end_time_sec,json=validEndTimeSec" json:"valid_end_time_sec,omitempty"`
+ ValidStartTimeSec int64 `protobuf:"varint,2,opt,name=valid_start_time_sec,json=validStartTimeSec,proto3" json:"valid_start_time_sec,omitempty"`
+ ValidEndTimeSec int64 `protobuf:"varint,3,opt,name=valid_end_time_sec,json=validEndTimeSec,proto3" json:"valid_end_time_sec,omitempty"`
// The type of the payment option associated with this user payment option.
// This can be unlimited for a membership or subscription, multi-use for a
// pack, or single-use. (required)
- Type PaymentOptionType `protobuf:"varint,4,opt,name=type,enum=v3.PaymentOptionType" json:"type,omitempty"`
+ Type PaymentOptionType `protobuf:"varint,4,opt,name=type,proto3,enum=ext.maps.booking.partner.v3.PaymentOptionType" json:"type,omitempty"`
// The original number of uses for this user payment option when it was
// purchased. This value is ignored for unlimited payment options. (required)
- OriginalCount int32 `protobuf:"varint,5,opt,name=original_count,json=originalCount" json:"original_count,omitempty"`
+ OriginalCount int32 `protobuf:"varint,5,opt,name=original_count,json=originalCount,proto3" json:"original_count,omitempty"`
// The number of uses remaining for this user payment option. If this number
// is 0 for a pack, attempts to use this payment option to make a booking will
// fail. (required)
- CurrentCount int32 `protobuf:"varint,6,opt,name=current_count,json=currentCount" json:"current_count,omitempty"`
+ CurrentCount int32 `protobuf:"varint,6,opt,name=current_count,json=currentCount,proto3" json:"current_count,omitempty"`
// The id of the payment option that has been used to purchase this user
// payment option. (required)
- PaymentOptionId string `protobuf:"bytes,7,opt,name=payment_option_id,json=paymentOptionId" json:"payment_option_id,omitempty"`
+ PaymentOptionId string `protobuf:"bytes,7,opt,name=payment_option_id,json=paymentOptionId,proto3" json:"payment_option_id,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *UserPaymentOption) Reset() { *m = UserPaymentOption{} }
-func (m *UserPaymentOption) String() string { return proto.CompactTextString(m) }
-func (*UserPaymentOption) ProtoMessage() {}
-func (*UserPaymentOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
+func (m *UserPaymentOption) Reset() { *m = UserPaymentOption{} }
+func (m *UserPaymentOption) String() string { return proto.CompactTextString(m) }
+func (*UserPaymentOption) ProtoMessage() {}
+func (*UserPaymentOption) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{32}
+}
+func (m *UserPaymentOption) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UserPaymentOption.Unmarshal(m, b)
+}
+func (m *UserPaymentOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UserPaymentOption.Marshal(b, m, deterministic)
+}
+func (dst *UserPaymentOption) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UserPaymentOption.Merge(dst, src)
+}
+func (m *UserPaymentOption) XXX_Size() int {
+ return xxx_messageInfo_UserPaymentOption.Size(m)
+}
+func (m *UserPaymentOption) XXX_DiscardUnknown() {
+ xxx_messageInfo_UserPaymentOption.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserPaymentOption proto.InternalMessageInfo
func (m *UserPaymentOption) GetUserPaymentOptionId() string {
if m != nil {
@@ -1517,7 +2838,6 @@
return ""
}
-// [START paymentinfo_definition]
// Payment details that are sent when creating a new booking.
type PaymentInformation struct {
// Prepayment status of the booking.
@@ -1527,10 +2847,13 @@
// If the prepayment status is PREPAYMENT_REFUNDED, then
// payment_transaction_id contains the associated unique transaction id for
// the refund. (required)
- PrepaymentStatus PrepaymentStatus `protobuf:"varint,1,opt,name=prepayment_status,json=prepaymentStatus,enum=v3.PrepaymentStatus" json:"prepayment_status,omitempty"`
+ PrepaymentStatus PrepaymentStatus `protobuf:"varint,1,opt,name=prepayment_status,json=prepaymentStatus,proto3,enum=ext.maps.booking.partner.v3.PrepaymentStatus" json:"prepayment_status,omitempty"`
// Unique identifier for a payment transaction associated with the booking.
- // Empty if not applicable. (required)
- PaymentTransactionId string `protobuf:"bytes,2,opt,name=payment_transaction_id,json=paymentTransactionId" json:"payment_transaction_id,omitempty"`
+ // If the payment is PROCESSED_BY_GOOGLE, this field will be set by Google.
+ // If the payment is PROCESSED_BY_PARTNER, this field will be left empty in
+ // Google's CreateBooking or CreateOrder requests to the partner, and it must
+ // be set by the partner in their responses.
+ PaymentTransactionId string `protobuf:"bytes,2,opt,name=payment_transaction_id,json=paymentTransactionId,proto3" json:"payment_transaction_id,omitempty"`
// These fields must match the service price (specified in the Services feed)
// or the PaymentOption corresponding with this service.
// They are included in the booking request and response to verify that
@@ -1540,15 +2863,15 @@
// The price of the booking or order, exclusive of any taxes.
// Existence of price or taxes does not imply that they have been paid,
// prepayment_state should be used for that purpose. (required)
- Price *Price `protobuf:"bytes,3,opt,name=price" json:"price,omitempty"`
+ Price *Price `protobuf:"bytes,3,opt,name=price,proto3" json:"price,omitempty"`
// Taxes that are calculated to be paid for this booking.
// This field can only be absent in one of the following cases:
// (1) the price is exempt from or already inclusive of applicable taxes; or
// (2) the break down between taxes and fees is not available.
// (required when neither of the above holds)
- TaxAmount *Price `protobuf:"bytes,4,opt,name=tax_amount,json=taxAmount" json:"tax_amount,omitempty"`
+ TaxAmount *Price `protobuf:"bytes,4,opt,name=tax_amount,json=taxAmount,proto3" json:"tax_amount,omitempty"`
// Whether the partner or Google processed the payment. (required)
- PaymentProcessedBy PaymentInformation_PaymentProcessedBy `protobuf:"varint,5,opt,name=payment_processed_by,json=paymentProcessedBy,enum=v3.PaymentInformation_PaymentProcessedBy" json:"payment_processed_by,omitempty"`
+ PaymentProcessedBy PaymentInformation_PaymentProcessedBy `protobuf:"varint,5,opt,name=payment_processed_by,json=paymentProcessedBy,proto3,enum=ext.maps.booking.partner.v3.PaymentInformation_PaymentProcessedBy" json:"payment_processed_by,omitempty"`
// The id of the payment option or user payment option associated with the
// booking.
// If a payment option is purchased as part of a booking, payment_option_id
@@ -1567,30 +2890,52 @@
PaymentId isPaymentInformation_PaymentId `protobuf_oneof:"payment_id"`
// Defines how a deposit may be charged to the user. If there is a deposit,
// this field should be set. (optional)
- Deposit *Deposit `protobuf:"bytes,8,opt,name=deposit" json:"deposit,omitempty"`
+ Deposit *Deposit `protobuf:"bytes,8,opt,name=deposit,proto3" json:"deposit,omitempty"`
// Defines a no show fee that may be charged to the user. If the user can be
// charged a no show fee, this field should be set. (optional)
- NoShowFee *NoShowFee `protobuf:"bytes,9,opt,name=no_show_fee,json=noShowFee" json:"no_show_fee,omitempty"`
+ NoShowFee *NoShowFee `protobuf:"bytes,9,opt,name=no_show_fee,json=noShowFee,proto3" json:"no_show_fee,omitempty"`
// Total processing fees & taxes that the user needs to pay for the order;
// only applicable to partners that handle order based booking (e.g., with
// CreateOrder method). (optional)
- FeesAndTaxes *Price `protobuf:"bytes,10,opt,name=fees_and_taxes,json=feesAndTaxes" json:"fees_and_taxes,omitempty"`
+ FeesAndTaxes *Price `protobuf:"bytes,10,opt,name=fees_and_taxes,json=feesAndTaxes,proto3" json:"fees_and_taxes,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *PaymentInformation) Reset() { *m = PaymentInformation{} }
-func (m *PaymentInformation) String() string { return proto.CompactTextString(m) }
-func (*PaymentInformation) ProtoMessage() {}
-func (*PaymentInformation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
+func (m *PaymentInformation) Reset() { *m = PaymentInformation{} }
+func (m *PaymentInformation) String() string { return proto.CompactTextString(m) }
+func (*PaymentInformation) ProtoMessage() {}
+func (*PaymentInformation) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{33}
+}
+func (m *PaymentInformation) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PaymentInformation.Unmarshal(m, b)
+}
+func (m *PaymentInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PaymentInformation.Marshal(b, m, deterministic)
+}
+func (dst *PaymentInformation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PaymentInformation.Merge(dst, src)
+}
+func (m *PaymentInformation) XXX_Size() int {
+ return xxx_messageInfo_PaymentInformation.Size(m)
+}
+func (m *PaymentInformation) XXX_DiscardUnknown() {
+ xxx_messageInfo_PaymentInformation.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PaymentInformation proto.InternalMessageInfo
type isPaymentInformation_PaymentId interface {
isPaymentInformation_PaymentId()
}
type PaymentInformation_PaymentOptionId struct {
- PaymentOptionId string `protobuf:"bytes,6,opt,name=payment_option_id,json=paymentOptionId,oneof"`
+ PaymentOptionId string `protobuf:"bytes,6,opt,name=payment_option_id,json=paymentOptionId,proto3,oneof"`
}
type PaymentInformation_UserPaymentOptionId struct {
- UserPaymentOptionId string `protobuf:"bytes,7,opt,name=user_payment_option_id,json=userPaymentOptionId,oneof"`
+ UserPaymentOptionId string `protobuf:"bytes,7,opt,name=user_payment_option_id,json=userPaymentOptionId,proto3,oneof"`
}
func (*PaymentInformation_PaymentOptionId) isPaymentInformation_PaymentId() {}
@@ -1725,11 +3070,11 @@
// payment_id
switch x := m.PaymentId.(type) {
case *PaymentInformation_PaymentOptionId:
- n += proto.SizeVarint(6<<3 | proto.WireBytes)
+ n += 1 // tag and wire
n += proto.SizeVarint(uint64(len(x.PaymentOptionId)))
n += len(x.PaymentOptionId)
case *PaymentInformation_UserPaymentOptionId:
- n += proto.SizeVarint(7<<3 | proto.WireBytes)
+ n += 1 // tag and wire
n += proto.SizeVarint(uint64(len(x.UserPaymentOptionId)))
n += len(x.UserPaymentOptionId)
case nil:
@@ -1739,1365 +3084,694 @@
return n
}
-// [START bookingfailure_definition]
-// Status data that conveys why (1) creating a lease or (2) creating or updating
-// a booking fails.
-// BookingFailure is intended to primarily capture business logic errors.
-type BookingFailure struct {
- // The reason why the booking failed. (required)
- Cause BookingFailure_Cause `protobuf:"varint,1,opt,name=cause,enum=v3.BookingFailure_Cause" json:"cause,omitempty"`
- // (required only if cause is PAYMENT_ERROR_CARD_TYPE_REJECTED)
- RejectedCardType CreditCardType `protobuf:"varint,2,opt,name=rejected_card_type,json=rejectedCardType,enum=v3.CreditCardType" json:"rejected_card_type,omitempty"`
- // This optional field is used for the partner to include additional
- // information for debugging purpose only. (optional)
- Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+// The price of a service or a fee.
+type Price struct {
+ // The price in micro-units of the currency.
+ // Fractions of smallest currency unit will be rounded using nearest even
+ // rounding. (e.g. For USD 2.5 cents rounded to 2 cents, 3.5 cents rounded to
+ // 4 cents, 0.5 cents rounded to 0 cents, 2.51 cents rounded to 3 cents).
+ // (required)
+ PriceMicros int64 `protobuf:"varint,1,opt,name=price_micros,json=priceMicros,proto3" json:"price_micros,omitempty"`
+ // The currency of the price that is defined in ISO 4217. (required)
+ CurrencyCode string `protobuf:"bytes,2,opt,name=currency_code,json=currencyCode,proto3" json:"currency_code,omitempty"`
+ // An optional and opaque string that identifies the pricing option that is
+ // associated with the extended price. (optional)
+ PricingOptionTag string `protobuf:"bytes,3,opt,name=pricing_option_tag,json=pricingOptionTag,proto3" json:"pricing_option_tag,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *BookingFailure) Reset() { *m = BookingFailure{} }
-func (m *BookingFailure) String() string { return proto.CompactTextString(m) }
-func (*BookingFailure) ProtoMessage() {}
-func (*BookingFailure) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
+func (m *Price) Reset() { *m = Price{} }
+func (m *Price) String() string { return proto.CompactTextString(m) }
+func (*Price) ProtoMessage() {}
+func (*Price) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{34}
+}
+func (m *Price) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Price.Unmarshal(m, b)
+}
+func (m *Price) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Price.Marshal(b, m, deterministic)
+}
+func (dst *Price) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Price.Merge(dst, src)
+}
+func (m *Price) XXX_Size() int {
+ return xxx_messageInfo_Price.Size(m)
+}
+func (m *Price) XXX_DiscardUnknown() {
+ xxx_messageInfo_Price.DiscardUnknown(m)
+}
-func (m *BookingFailure) GetCause() BookingFailure_Cause {
+var xxx_messageInfo_Price proto.InternalMessageInfo
+
+func (m *Price) GetPriceMicros() int64 {
if m != nil {
- return m.Cause
- }
- return BookingFailure_CAUSE_UNSPECIFIED
-}
-
-func (m *BookingFailure) GetRejectedCardType() CreditCardType {
- if m != nil {
- return m.RejectedCardType
- }
- return CreditCardType_CREDIT_CARD_TYPE_UNSPECIFIED
-}
-
-func (m *BookingFailure) GetDescription() string {
- if m != nil {
- return m.Description
- }
- return ""
-}
-
-// [START message_slot_availability]
-// An inventory slot and associated count of open spots.
-type SlotAvailability struct {
- Slot *Slot `protobuf:"bytes,1,opt,name=slot" json:"slot,omitempty"`
- // Number of available spots.
- // 0 indicates that the appointment slot is not available. (required)
- CountAvailable int32 `protobuf:"varint,2,opt,name=count_available,json=countAvailable" json:"count_available,omitempty"`
-}
-
-func (m *SlotAvailability) Reset() { *m = SlotAvailability{} }
-func (m *SlotAvailability) String() string { return proto.CompactTextString(m) }
-func (*SlotAvailability) ProtoMessage() {}
-func (*SlotAvailability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
-
-func (m *SlotAvailability) GetSlot() *Slot {
- if m != nil {
- return m.Slot
- }
- return nil
-}
-
-func (m *SlotAvailability) GetCountAvailable() int32 {
- if m != nil {
- return m.CountAvailable
+ return m.PriceMicros
}
return 0
}
-// [START message_availability_update]
-// An update to one ore more slots indicating that the availability for the
-// associated time has potentially changed.
-type AvailabilityUpdate struct {
- SlotAvailability []*SlotAvailability `protobuf:"bytes,1,rep,name=slot_availability,json=slotAvailability" json:"slot_availability,omitempty"`
+func (m *Price) GetCurrencyCode() string {
+ if m != nil {
+ return m.CurrencyCode
+ }
+ return ""
}
-func (m *AvailabilityUpdate) Reset() { *m = AvailabilityUpdate{} }
-func (m *AvailabilityUpdate) String() string { return proto.CompactTextString(m) }
-func (*AvailabilityUpdate) ProtoMessage() {}
-func (*AvailabilityUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
-
-func (m *AvailabilityUpdate) GetSlotAvailability() []*SlotAvailability {
+func (m *Price) GetPricingOptionTag() string {
if m != nil {
- return m.SlotAvailability
+ return m.PricingOptionTag
+ }
+ return ""
+}
+
+// A fee that a user may be charged if they have made a booking but do not
+// show up.
+type NoShowFee struct {
+ // The amount the user may be charged if they do not show up for their
+ // reservation.
+ Fee *Price `protobuf:"bytes,1,opt,name=fee,proto3" json:"fee,omitempty"`
+ // Defines how the fee is determined from the availability.
+ FeeType PriceType `protobuf:"varint,3,opt,name=fee_type,json=feeType,proto3,enum=ext.maps.booking.partner.v3.PriceType" json:"fee_type,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *NoShowFee) Reset() { *m = NoShowFee{} }
+func (m *NoShowFee) String() string { return proto.CompactTextString(m) }
+func (*NoShowFee) ProtoMessage() {}
+func (*NoShowFee) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{35}
+}
+func (m *NoShowFee) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_NoShowFee.Unmarshal(m, b)
+}
+func (m *NoShowFee) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_NoShowFee.Marshal(b, m, deterministic)
+}
+func (dst *NoShowFee) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_NoShowFee.Merge(dst, src)
+}
+func (m *NoShowFee) XXX_Size() int {
+ return xxx_messageInfo_NoShowFee.Size(m)
+}
+func (m *NoShowFee) XXX_DiscardUnknown() {
+ xxx_messageInfo_NoShowFee.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_NoShowFee proto.InternalMessageInfo
+
+func (m *NoShowFee) GetFee() *Price {
+ if m != nil {
+ return m.Fee
}
return nil
}
-// [START resources_definition]
-// Resource specification that disambiguates an appointment slot
-type ResourceIds struct {
- // The staff ID as provided in the feed or empty if not applicable or no staff
- // was selected. (optional)
- StaffId string `protobuf:"bytes,1,opt,name=staff_id,json=staffId" json:"staff_id,omitempty"`
- // The room ID as provided in the feed or empty if not applicable or no room
- // was selected. (optional)
- RoomId string `protobuf:"bytes,2,opt,name=room_id,json=roomId" json:"room_id,omitempty"`
- // For Dining Reservations only: the number of seats requested in the booking.
- // (optional)
- PartySize int32 `protobuf:"varint,3,opt,name=party_size,json=partySize" json:"party_size,omitempty"`
-}
-
-func (m *ResourceIds) Reset() { *m = ResourceIds{} }
-func (m *ResourceIds) String() string { return proto.CompactTextString(m) }
-func (*ResourceIds) ProtoMessage() {}
-func (*ResourceIds) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
-
-func (m *ResourceIds) GetStaffId() string {
+func (m *NoShowFee) GetFeeType() PriceType {
if m != nil {
- return m.StaffId
+ return m.FeeType
}
- return ""
+ return PriceType_FIXED_RATE_DEFAULT
}
-func (m *ResourceIds) GetRoomId() string {
+// A deposit that the user may be charged or have a hold on their credit card
+// for.
+type Deposit struct {
+ // Deposit amount.
+ Deposit *Price `protobuf:"bytes,1,opt,name=deposit,proto3" json:"deposit,omitempty"`
+ // Minimum advance cancellation for the deposit.
+ MinAdvanceCancellationSec int64 `protobuf:"varint,2,opt,name=min_advance_cancellation_sec,json=minAdvanceCancellationSec,proto3" json:"min_advance_cancellation_sec,omitempty"`
+ // Defines how the deposit is determined from the availability.
+ DepositType PriceType `protobuf:"varint,3,opt,name=deposit_type,json=depositType,proto3,enum=ext.maps.booking.partner.v3.PriceType" json:"deposit_type,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *Deposit) Reset() { *m = Deposit{} }
+func (m *Deposit) String() string { return proto.CompactTextString(m) }
+func (*Deposit) ProtoMessage() {}
+func (*Deposit) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{36}
+}
+func (m *Deposit) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Deposit.Unmarshal(m, b)
+}
+func (m *Deposit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Deposit.Marshal(b, m, deterministic)
+}
+func (dst *Deposit) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Deposit.Merge(dst, src)
+}
+func (m *Deposit) XXX_Size() int {
+ return xxx_messageInfo_Deposit.Size(m)
+}
+func (m *Deposit) XXX_DiscardUnknown() {
+ xxx_messageInfo_Deposit.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_Deposit proto.InternalMessageInfo
+
+func (m *Deposit) GetDeposit() *Price {
if m != nil {
- return m.RoomId
+ return m.Deposit
}
- return ""
+ return nil
}
-func (m *ResourceIds) GetPartySize() int32 {
+func (m *Deposit) GetMinAdvanceCancellationSec() int64 {
if m != nil {
- return m.PartySize
+ return m.MinAdvanceCancellationSec
}
return 0
}
-// [START tickettype_definition]
-// TicketType is used to differentiate among tickets (where a ticket can be a
-// spot on a raft trip, an admission to a museum, etc.) with different prices
-// and/or availabilities due to different user types or different service
-// attributes.
-type TicketType struct {
- // The ticket id is used to differentiate among different ticket types of the
- // same service, and is only expected to be unique within a service.
- TicketTypeId string `protobuf:"bytes,1,opt,name=ticket_type_id,json=ticketTypeId" json:"ticket_type_id,omitempty"`
- // This can be user visible, e.g., “adult”, "child", “veteran”, “Row J”, etc.
- ShortDescription string `protobuf:"bytes,2,opt,name=short_description,json=shortDescription" json:"short_description,omitempty"`
- // The price of a single ticket of this type, exclusive of any taxes. The tax
- // rate of Service is applied to its tickets.
- Price *Price `protobuf:"bytes,3,opt,name=price" json:"price,omitempty"`
-}
-
-func (m *TicketType) Reset() { *m = TicketType{} }
-func (m *TicketType) String() string { return proto.CompactTextString(m) }
-func (*TicketType) ProtoMessage() {}
-func (*TicketType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
-
-func (m *TicketType) GetTicketTypeId() string {
+func (m *Deposit) GetDepositType() PriceType {
if m != nil {
- return m.TicketTypeId
+ return m.DepositType
}
- return ""
+ return PriceType_FIXED_RATE_DEFAULT
}
-func (m *TicketType) GetShortDescription() string {
- if m != nil {
- return m.ShortDescription
- }
- return ""
-}
-
-func (m *TicketType) GetPrice() *Price {
- if m != nil {
- return m.Price
- }
- return nil
-}
-
-// [START lineitem_definition]
-// A single item in an order--the booking of a single service in a single time
-// slot.
-type LineItem struct {
- // ID of the merchant service. (required)
- ServiceId string `protobuf:"bytes,1,opt,name=service_id,json=serviceId" json:"service_id,omitempty"`
+// An inventory slot
+type Slot struct {
+ // ID of the merchant for the slot (required)
+ MerchantId string `protobuf:"bytes,1,opt,name=merchant_id,json=merchantId,proto3" json:"merchant_id,omitempty"`
+ // ID of the merchant Service (required)
+ ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"`
// Start time of the appointment slot in seconds of UTC time since Unix epoch.
// (required)
- StartSec int64 `protobuf:"varint,2,opt,name=start_sec,json=startSec" json:"start_sec,omitempty"`
- // Duration of the appointment slot in seconds. (required)
- DurationSec int64 `protobuf:"varint,3,opt,name=duration_sec,json=durationSec" json:"duration_sec,omitempty"`
- // Number of tickets ordered by type.
- Tickets []*LineItem_OrderedTickets `protobuf:"bytes,4,rep,name=tickets" json:"tickets,omitempty"`
- // In handling CreateOrderRequest and CheckOrderFulfillabilityRequest,
- // the total price (excluding taxes) of the item must be verified to guard
- // against price changes. In CreateOrderResponse and
- // CheckOrderFulfillabilityResponse, the price should be updated to the
- // correct value if the value from the request was incorrect or outdated.
- // (reqired)
- Price *Price `protobuf:"bytes,5,opt,name=price" json:"price,omitempty"`
- // Status of the line item. (required in CreateOrderResponse and
- // ListOrdersResponse; should not be set in requests)
- Status BookingStatus `protobuf:"varint,6,opt,name=status,enum=v3.BookingStatus" json:"status,omitempty"`
+ StartSec int64 `protobuf:"varint,3,opt,name=start_sec,json=startSec,proto3" json:"start_sec,omitempty"`
+ // Duration of the appointment slot (required)
+ DurationSec int64 `protobuf:"varint,4,opt,name=duration_sec,json=durationSec,proto3" json:"duration_sec,omitempty"`
+ // Opaque tag that identifies the availability slot and matches the value
+ // provided in the availability feed (optional)
+ AvailabilityTag string `protobuf:"bytes,5,opt,name=availability_tag,json=availabilityTag,proto3" json:"availability_tag,omitempty"`
+ // The set of resources that disambiguates the appointment slot, e.g. by
+ // indicating the staff member and room selected by the user (optional)
+ Resources *ResourceIds `protobuf:"bytes,6,opt,name=resources,proto3" json:"resources,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *LineItem) Reset() { *m = LineItem{} }
-func (m *LineItem) String() string { return proto.CompactTextString(m) }
-func (*LineItem) ProtoMessage() {}
-func (*LineItem) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
+func (m *Slot) Reset() { *m = Slot{} }
+func (m *Slot) String() string { return proto.CompactTextString(m) }
+func (*Slot) ProtoMessage() {}
+func (*Slot) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{37}
+}
+func (m *Slot) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_Slot.Unmarshal(m, b)
+}
+func (m *Slot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_Slot.Marshal(b, m, deterministic)
+}
+func (dst *Slot) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_Slot.Merge(dst, src)
+}
+func (m *Slot) XXX_Size() int {
+ return xxx_messageInfo_Slot.Size(m)
+}
+func (m *Slot) XXX_DiscardUnknown() {
+ xxx_messageInfo_Slot.DiscardUnknown(m)
+}
-func (m *LineItem) GetServiceId() string {
+var xxx_messageInfo_Slot proto.InternalMessageInfo
+
+func (m *Slot) GetMerchantId() string {
+ if m != nil {
+ return m.MerchantId
+ }
+ return ""
+}
+
+func (m *Slot) GetServiceId() string {
if m != nil {
return m.ServiceId
}
return ""
}
-func (m *LineItem) GetStartSec() int64 {
+func (m *Slot) GetStartSec() int64 {
if m != nil {
return m.StartSec
}
return 0
}
-func (m *LineItem) GetDurationSec() int64 {
+func (m *Slot) GetDurationSec() int64 {
if m != nil {
return m.DurationSec
}
return 0
}
-func (m *LineItem) GetTickets() []*LineItem_OrderedTickets {
+func (m *Slot) GetAvailabilityTag() string {
if m != nil {
- return m.Tickets
- }
- return nil
-}
-
-func (m *LineItem) GetPrice() *Price {
- if m != nil {
- return m.Price
- }
- return nil
-}
-
-func (m *LineItem) GetStatus() BookingStatus {
- if m != nil {
- return m.Status
- }
- return BookingStatus_BOOKING_STATUS_UNSPECIFIED
-}
-
-type LineItem_OrderedTickets struct {
- TicketId string `protobuf:"bytes,1,opt,name=ticket_id,json=ticketId" json:"ticket_id,omitempty"`
- Count int32 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"`
-}
-
-func (m *LineItem_OrderedTickets) Reset() { *m = LineItem_OrderedTickets{} }
-func (m *LineItem_OrderedTickets) String() string { return proto.CompactTextString(m) }
-func (*LineItem_OrderedTickets) ProtoMessage() {}
-func (*LineItem_OrderedTickets) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24, 0} }
-
-func (m *LineItem_OrderedTickets) GetTicketId() string {
- if m != nil {
- return m.TicketId
+ return m.AvailabilityTag
}
return ""
}
-func (m *LineItem_OrderedTickets) GetCount() int32 {
+func (m *Slot) GetResources() *ResourceIds {
if m != nil {
- return m.Count
+ return m.Resources
}
- return 0
+ return nil
}
-// [START lineitemfulfillability_definition]
-// Fulfillability of a line item.
-type LineItemFulfillability struct {
- // The line item of question. (required)
- Item *LineItem `protobuf:"bytes,1,opt,name=item" json:"item,omitempty"`
+// Personal information about the person making a booking
+type UserInformation struct {
+ // Unique ID of the user to the partner, chosen by Reserve with Google.
// (required)
- Result LineItemFulfillability_ItemFulfillabilityResult `protobuf:"varint,2,opt,name=result,enum=v3.LineItemFulfillability_ItemFulfillabilityResult" json:"result,omitempty"`
- // Additional description of the reason if the item is unfulfillable.
- // (optional)
- UnfulfillableReason string `protobuf:"bytes,3,opt,name=unfulfillable_reason,json=unfulfillableReason" json:"unfulfillable_reason,omitempty"`
- // Updated availability for this slot can be piggybacked in
- // CheckOrderFulfillabilityResponse. (optional)
- SpotsOpen int32 `protobuf:"varint,4,opt,name=spots_open,json=spotsOpen" json:"spots_open,omitempty"`
- // Updated ticket types can be piggybacked in
- // CheckOrderFulfillabilityResponse. If non-empty, all available ticket types
- // for this slot with up-to-date prices should be listed without omitting any.
- // (optional)
- TicketType []*TicketType `protobuf:"bytes,5,rep,name=ticket_type,json=ticketType" json:"ticket_type,omitempty"`
+ UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+ // Given name of the user (maximum 40 characters) (required)
+ GivenName string `protobuf:"bytes,2,opt,name=given_name,json=givenName,proto3" json:"given_name,omitempty"`
+ // Family name of the user (maximum 40 characters) (required)
+ FamilyName string `protobuf:"bytes,3,opt,name=family_name,json=familyName,proto3" json:"family_name,omitempty"`
+ // Address of the user (optional)
+ Address *PostalAddress `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"`
+ // Phone number of the user (required)
+ Telephone string `protobuf:"bytes,5,opt,name=telephone,proto3" json:"telephone,omitempty"`
+ // Email address of the user (required)
+ Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *LineItemFulfillability) Reset() { *m = LineItemFulfillability{} }
-func (m *LineItemFulfillability) String() string { return proto.CompactTextString(m) }
-func (*LineItemFulfillability) ProtoMessage() {}
-func (*LineItemFulfillability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
-
-func (m *LineItemFulfillability) GetItem() *LineItem {
- if m != nil {
- return m.Item
- }
- return nil
+func (m *UserInformation) Reset() { *m = UserInformation{} }
+func (m *UserInformation) String() string { return proto.CompactTextString(m) }
+func (*UserInformation) ProtoMessage() {}
+func (*UserInformation) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{38}
}
-
-func (m *LineItemFulfillability) GetResult() LineItemFulfillability_ItemFulfillabilityResult {
- if m != nil {
- return m.Result
- }
- return LineItemFulfillability_ITEM_FULFILLABILITY_RESULT_UNSPECIFIED
+func (m *UserInformation) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_UserInformation.Unmarshal(m, b)
}
-
-func (m *LineItemFulfillability) GetUnfulfillableReason() string {
- if m != nil {
- return m.UnfulfillableReason
- }
- return ""
+func (m *UserInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_UserInformation.Marshal(b, m, deterministic)
}
-
-func (m *LineItemFulfillability) GetSpotsOpen() int32 {
- if m != nil {
- return m.SpotsOpen
- }
- return 0
+func (dst *UserInformation) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_UserInformation.Merge(dst, src)
}
-
-func (m *LineItemFulfillability) GetTicketType() []*TicketType {
- if m != nil {
- return m.TicketType
- }
- return nil
+func (m *UserInformation) XXX_Size() int {
+ return xxx_messageInfo_UserInformation.Size(m)
}
-
-// [START orderfulfillability_definition]
-type OrderFulfillability struct {
- Result OrderFulfillability_OrderFulfillabilityResult `protobuf:"varint,1,opt,name=result,enum=v3.OrderFulfillability_OrderFulfillabilityResult" json:"result,omitempty"`
- // Fulfillability results of all line items in this order (required).
- ItemFulfillability []*LineItemFulfillability `protobuf:"bytes,2,rep,name=item_fulfillability,json=itemFulfillability" json:"item_fulfillability,omitempty"`
- // Additional description of the reason if the item is unfulfillable.
- // (optional)
- UnfulfillableReason string `protobuf:"bytes,3,opt,name=unfulfillable_reason,json=unfulfillableReason" json:"unfulfillable_reason,omitempty"`
+func (m *UserInformation) XXX_DiscardUnknown() {
+ xxx_messageInfo_UserInformation.DiscardUnknown(m)
}
-func (m *OrderFulfillability) Reset() { *m = OrderFulfillability{} }
-func (m *OrderFulfillability) String() string { return proto.CompactTextString(m) }
-func (*OrderFulfillability) ProtoMessage() {}
-func (*OrderFulfillability) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
+var xxx_messageInfo_UserInformation proto.InternalMessageInfo
-func (m *OrderFulfillability) GetResult() OrderFulfillability_OrderFulfillabilityResult {
- if m != nil {
- return m.Result
- }
- return OrderFulfillability_ORDER_FULFILLABILITY_RESULT_UNSPECIFIED
-}
-
-func (m *OrderFulfillability) GetItemFulfillability() []*LineItemFulfillability {
- if m != nil {
- return m.ItemFulfillability
- }
- return nil
-}
-
-func (m *OrderFulfillability) GetUnfulfillableReason() string {
- if m != nil {
- return m.UnfulfillableReason
- }
- return ""
-}
-
-// [START order_definition]
-// An order for service appointments with a merchant.
-type Order struct {
- // ID of this order, chosen by the booking partner who handles the order
- // (required in CreateOrderResponse and ListOrdersResponse, must not be set in
- // CreateOrderRequest)
- OrderId string `protobuf:"bytes,1,opt,name=order_id,json=orderId" json:"order_id,omitempty"`
- // Personal information of the user making the order (required)
- UserInformation *UserInformation `protobuf:"bytes,2,opt,name=user_information,json=userInformation" json:"user_information,omitempty"`
- // Information about payment transactions that relate to the order.
- // (optional)
- PaymentInformation *PaymentInformation `protobuf:"bytes,3,opt,name=payment_information,json=paymentInformation" json:"payment_information,omitempty"`
- // The merchant that all services in this order belong to.
- MerchantId string `protobuf:"bytes,4,opt,name=merchant_id,json=merchantId" json:"merchant_id,omitempty"`
- // Line items in this order.
- Item []*LineItem `protobuf:"bytes,5,rep,name=item" json:"item,omitempty"`
-}
-
-func (m *Order) Reset() { *m = Order{} }
-func (m *Order) String() string { return proto.CompactTextString(m) }
-func (*Order) ProtoMessage() {}
-func (*Order) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
-
-func (m *Order) GetOrderId() string {
- if m != nil {
- return m.OrderId
- }
- return ""
-}
-
-func (m *Order) GetUserInformation() *UserInformation {
- if m != nil {
- return m.UserInformation
- }
- return nil
-}
-
-func (m *Order) GetPaymentInformation() *PaymentInformation {
- if m != nil {
- return m.PaymentInformation
- }
- return nil
-}
-
-func (m *Order) GetMerchantId() string {
- if m != nil {
- return m.MerchantId
- }
- return ""
-}
-
-func (m *Order) GetItem() []*LineItem {
- if m != nil {
- return m.Item
- }
- return nil
-}
-
-// [START orderfailure_definition]
-// Status data that conveys why creating an order fails.
-// OrderFailure is intended to primarily capture business logic errors.
-type OrderFailure struct {
- // The reason why the order failed. (required)
- Cause OrderFailure_Cause `protobuf:"varint,1,opt,name=cause,enum=v3.OrderFailure_Cause" json:"cause,omitempty"`
- // (required only if cause is ORDER_UNFULFILLABLE)
- Fulfillability *OrderFulfillability `protobuf:"bytes,2,opt,name=fulfillability" json:"fulfillability,omitempty"`
- // (required only if cause is PAYMENT_ERROR_CARD_TYPE_REJECTED)
- RejectedCardType CreditCardType `protobuf:"varint,3,opt,name=rejected_card_type,json=rejectedCardType,enum=v3.CreditCardType" json:"rejected_card_type,omitempty"`
- // This optional field is used for the partner to include additional
- // information for debugging purpose only. (optional)
- Description string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
-}
-
-func (m *OrderFailure) Reset() { *m = OrderFailure{} }
-func (m *OrderFailure) String() string { return proto.CompactTextString(m) }
-func (*OrderFailure) ProtoMessage() {}
-func (*OrderFailure) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
-
-func (m *OrderFailure) GetCause() OrderFailure_Cause {
- if m != nil {
- return m.Cause
- }
- return OrderFailure_CAUSE_UNSPECIFIED
-}
-
-func (m *OrderFailure) GetFulfillability() *OrderFulfillability {
- if m != nil {
- return m.Fulfillability
- }
- return nil
-}
-
-func (m *OrderFailure) GetRejectedCardType() CreditCardType {
- if m != nil {
- return m.RejectedCardType
- }
- return CreditCardType_CREDIT_CARD_TYPE_UNSPECIFIED
-}
-
-func (m *OrderFailure) GetDescription() string {
- if m != nil {
- return m.Description
- }
- return ""
-}
-
-// [START method_check_availability]
-// Request to check availability for a Slot.
-type CheckAvailabilityRequest struct {
- // The appointment slot that is being checked (required)
- Slot *Slot `protobuf:"bytes,1,opt,name=slot" json:"slot,omitempty"`
-}
-
-func (m *CheckAvailabilityRequest) Reset() { *m = CheckAvailabilityRequest{} }
-func (m *CheckAvailabilityRequest) String() string { return proto.CompactTextString(m) }
-func (*CheckAvailabilityRequest) ProtoMessage() {}
-func (*CheckAvailabilityRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
-
-func (m *CheckAvailabilityRequest) GetSlot() *Slot {
- if m != nil {
- return m.Slot
- }
- return nil
-}
-
-// Response for the CheckAvailability RPC with the availability of the
-// appointment slot.
-type CheckAvailabilityResponse struct {
- // The requested slot. (required)
- Slot *Slot `protobuf:"bytes,1,opt,name=slot" json:"slot,omitempty"`
- // Number of available spots.
- // 0 indicates that the appointment slot is not available. (required)
- CountAvailable int32 `protobuf:"varint,2,opt,name=count_available,json=countAvailable" json:"count_available,omitempty"`
- // The requirement to show the slots duration and/or endtime. This field will
- // be ignored if the slot is unavailable. (optional)
- DurationRequirement CheckAvailabilityResponse_DurationRequirement `protobuf:"varint,3,opt,name=duration_requirement,json=durationRequirement,enum=v3.CheckAvailabilityResponse_DurationRequirement" json:"duration_requirement,omitempty"`
- // Optionally, the partner can return additional updated information about the
- // availability for this merchant if this information is present when
- // responding to the CheckAvailabilityRequest and if there is no negative
- // impact on the CheckAvailability request latency.
- // For instance an entire day of merchant availability for a superset of
- // resources can be returned here.
- AvailabilityUpdate *AvailabilityUpdate `protobuf:"bytes,4,opt,name=availability_update,json=availabilityUpdate" json:"availability_update,omitempty"`
-}
-
-func (m *CheckAvailabilityResponse) Reset() { *m = CheckAvailabilityResponse{} }
-func (m *CheckAvailabilityResponse) String() string { return proto.CompactTextString(m) }
-func (*CheckAvailabilityResponse) ProtoMessage() {}
-func (*CheckAvailabilityResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
-
-func (m *CheckAvailabilityResponse) GetSlot() *Slot {
- if m != nil {
- return m.Slot
- }
- return nil
-}
-
-func (m *CheckAvailabilityResponse) GetCountAvailable() int32 {
- if m != nil {
- return m.CountAvailable
- }
- return 0
-}
-
-func (m *CheckAvailabilityResponse) GetDurationRequirement() CheckAvailabilityResponse_DurationRequirement {
- if m != nil {
- return m.DurationRequirement
- }
- return CheckAvailabilityResponse_DURATION_REQUIREMENT_UNSPECIFIED
-}
-
-func (m *CheckAvailabilityResponse) GetAvailabilityUpdate() *AvailabilityUpdate {
- if m != nil {
- return m.AvailabilityUpdate
- }
- return nil
-}
-
-// [START method_get_booking_status]
-// Request to get booking status and prepayment status for a Booking.
-type GetBookingStatusRequest struct {
- // ID of the existing booking (required)
- BookingId string `protobuf:"bytes,1,opt,name=booking_id,json=bookingId" json:"booking_id,omitempty"`
-}
-
-func (m *GetBookingStatusRequest) Reset() { *m = GetBookingStatusRequest{} }
-func (m *GetBookingStatusRequest) String() string { return proto.CompactTextString(m) }
-func (*GetBookingStatusRequest) ProtoMessage() {}
-func (*GetBookingStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
-
-func (m *GetBookingStatusRequest) GetBookingId() string {
- if m != nil {
- return m.BookingId
- }
- return ""
-}
-
-// Response for the GetBookingStatus RPC with booking status and prepayment
-// status.
-type GetBookingStatusResponse struct {
- // ID of the booking (required)
- BookingId string `protobuf:"bytes,1,opt,name=booking_id,json=bookingId" json:"booking_id,omitempty"`
- // Status of the booking (required)
- BookingStatus BookingStatus `protobuf:"varint,2,opt,name=booking_status,json=bookingStatus,enum=v3.BookingStatus" json:"booking_status,omitempty"`
- // Prepayment status of the booking (required)
- PrepaymentStatus PrepaymentStatus `protobuf:"varint,3,opt,name=prepayment_status,json=prepaymentStatus,enum=v3.PrepaymentStatus" json:"prepayment_status,omitempty"`
-}
-
-func (m *GetBookingStatusResponse) Reset() { *m = GetBookingStatusResponse{} }
-func (m *GetBookingStatusResponse) String() string { return proto.CompactTextString(m) }
-func (*GetBookingStatusResponse) ProtoMessage() {}
-func (*GetBookingStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
-
-func (m *GetBookingStatusResponse) GetBookingId() string {
- if m != nil {
- return m.BookingId
- }
- return ""
-}
-
-func (m *GetBookingStatusResponse) GetBookingStatus() BookingStatus {
- if m != nil {
- return m.BookingStatus
- }
- return BookingStatus_BOOKING_STATUS_UNSPECIFIED
-}
-
-func (m *GetBookingStatusResponse) GetPrepaymentStatus() PrepaymentStatus {
- if m != nil {
- return m.PrepaymentStatus
- }
- return PrepaymentStatus_PREPAYMENT_STATUS_UNSPECIFIED
-}
-
-// [START method_check_order_fulfillability]
-// Request to check the fulfillability of an order.
-type CheckOrderFulfillabilityRequest struct {
- // The merchant that this order is intended for. (required)
- MerchantId string `protobuf:"bytes,1,opt,name=merchant_id,json=merchantId" json:"merchant_id,omitempty"`
- // The line items in this order. All services requested must belong to the
- // specified merchant. (required)
- Item []*LineItem `protobuf:"bytes,2,rep,name=item" json:"item,omitempty"`
-}
-
-func (m *CheckOrderFulfillabilityRequest) Reset() { *m = CheckOrderFulfillabilityRequest{} }
-func (m *CheckOrderFulfillabilityRequest) String() string { return proto.CompactTextString(m) }
-func (*CheckOrderFulfillabilityRequest) ProtoMessage() {}
-func (*CheckOrderFulfillabilityRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor0, []int{33}
-}
-
-func (m *CheckOrderFulfillabilityRequest) GetMerchantId() string {
- if m != nil {
- return m.MerchantId
- }
- return ""
-}
-
-func (m *CheckOrderFulfillabilityRequest) GetItem() []*LineItem {
- if m != nil {
- return m.Item
- }
- return nil
-}
-
-// Response for the CheckOrderfulfillabilityRequest.
-type CheckOrderFulfillabilityResponse struct {
- // Fulfillability status of the order, potentially contains updated
- // availabilities and prices of the requested line item. (required)
- Fulfillability *OrderFulfillability `protobuf:"bytes,1,opt,name=fulfillability" json:"fulfillability,omitempty"`
- // Total processing fees & taxes that need to be paid for this order.
- // (required)
- FeesAndTaxes *Price `protobuf:"bytes,2,opt,name=fees_and_taxes,json=feesAndTaxes" json:"fees_and_taxes,omitempty"`
-}
-
-func (m *CheckOrderFulfillabilityResponse) Reset() { *m = CheckOrderFulfillabilityResponse{} }
-func (m *CheckOrderFulfillabilityResponse) String() string { return proto.CompactTextString(m) }
-func (*CheckOrderFulfillabilityResponse) ProtoMessage() {}
-func (*CheckOrderFulfillabilityResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor0, []int{34}
-}
-
-func (m *CheckOrderFulfillabilityResponse) GetFulfillability() *OrderFulfillability {
- if m != nil {
- return m.Fulfillability
- }
- return nil
-}
-
-func (m *CheckOrderFulfillabilityResponse) GetFeesAndTaxes() *Price {
- if m != nil {
- return m.FeesAndTaxes
- }
- return nil
-}
-
-// [START method_create_booking]
-// Request to create a Booking for an inventory slot. Consumes the lease if
-// provided.
-type CreateBookingRequest struct {
- // The inventory slot that is being requested to make this booking.
- // If lease_ref is provided, slot must match the lease; slot is provided for
- // the partner to verify the lease information.
- // If lease_ref is absent, then create the booking for the slot. (required)
- Slot *Slot `protobuf:"bytes,1,opt,name=slot" json:"slot,omitempty"`
- // The lease that is being confirmed to make this booking.
- // If lease_ref is provided, then create the booking using the lease.
- // (optional)
- LeaseRef *LeaseReference `protobuf:"bytes,2,opt,name=lease_ref,json=leaseRef" json:"lease_ref,omitempty"`
- // Personal information of the user making the appointment (required)
- UserInformation *UserInformation `protobuf:"bytes,3,opt,name=user_information,json=userInformation" json:"user_information,omitempty"`
- // Information about payments. When payment authorizations are handled by
- // Google, if the booking request does not succeed, payment authorizations are
- // automatically canceled. (optional)
- PaymentInformation *PaymentInformation `protobuf:"bytes,4,opt,name=payment_information,json=paymentInformation" json:"payment_information,omitempty"`
- // 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). (optional)
- PaymentProcessingParameters *PaymentProcessingParameters `protobuf:"bytes,5,opt,name=payment_processing_parameters,json=paymentProcessingParameters" json:"payment_processing_parameters,omitempty"`
- // Idempotency token for CreateBooking requests. (required)
- IdempotencyToken string `protobuf:"bytes,6,opt,name=idempotency_token,json=idempotencyToken" json:"idempotency_token,omitempty"`
- // A string from the user which contains any special requests or additional
- // information that they would like to notify the merchant about. (optional)
- AdditionalRequest string `protobuf:"bytes,7,opt,name=additional_request,json=additionalRequest" json:"additional_request,omitempty"`
-}
-
-func (m *CreateBookingRequest) Reset() { *m = CreateBookingRequest{} }
-func (m *CreateBookingRequest) String() string { return proto.CompactTextString(m) }
-func (*CreateBookingRequest) ProtoMessage() {}
-func (*CreateBookingRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }
-
-func (m *CreateBookingRequest) GetSlot() *Slot {
- if m != nil {
- return m.Slot
- }
- return nil
-}
-
-func (m *CreateBookingRequest) GetLeaseRef() *LeaseReference {
- if m != nil {
- return m.LeaseRef
- }
- return nil
-}
-
-func (m *CreateBookingRequest) GetUserInformation() *UserInformation {
- if m != nil {
- return m.UserInformation
- }
- return nil
-}
-
-func (m *CreateBookingRequest) GetPaymentInformation() *PaymentInformation {
- if m != nil {
- return m.PaymentInformation
- }
- return nil
-}
-
-func (m *CreateBookingRequest) GetPaymentProcessingParameters() *PaymentProcessingParameters {
- if m != nil {
- return m.PaymentProcessingParameters
- }
- return nil
-}
-
-func (m *CreateBookingRequest) GetIdempotencyToken() string {
- if m != nil {
- return m.IdempotencyToken
- }
- return ""
-}
-
-func (m *CreateBookingRequest) GetAdditionalRequest() string {
- if m != nil {
- return m.AdditionalRequest
- }
- return ""
-}
-
-// Response with the created Booking for an inventory slot.
-type CreateBookingResponse struct {
- // The created booking (required)
- Booking *Booking `protobuf:"bytes,1,opt,name=booking" json:"booking,omitempty"`
- // 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.
- // (optional)
- UserPaymentOption *UserPaymentOption `protobuf:"bytes,2,opt,name=user_payment_option,json=userPaymentOption" json:"user_payment_option,omitempty"`
- // If creating a booking fails, this field should reflect the business logic
- // error (e.g., slot has become unavailable) and all other fields in the
- // CreateBookingResponse message are expected to be unset. (required if
- // failure occurs)
- BookingFailure *BookingFailure `protobuf:"bytes,3,opt,name=booking_failure,json=bookingFailure" json:"booking_failure,omitempty"`
-}
-
-func (m *CreateBookingResponse) Reset() { *m = CreateBookingResponse{} }
-func (m *CreateBookingResponse) String() string { return proto.CompactTextString(m) }
-func (*CreateBookingResponse) ProtoMessage() {}
-func (*CreateBookingResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
-
-func (m *CreateBookingResponse) GetBooking() *Booking {
- if m != nil {
- return m.Booking
- }
- return nil
-}
-
-func (m *CreateBookingResponse) GetUserPaymentOption() *UserPaymentOption {
- if m != nil {
- return m.UserPaymentOption
- }
- return nil
-}
-
-func (m *CreateBookingResponse) GetBookingFailure() *BookingFailure {
- if m != nil {
- return m.BookingFailure
- }
- return nil
-}
-
-// [START method_create_order]
-// Request to create an order.
-type CreateOrderRequest struct {
- // The order to create. (required)
- Order *Order `protobuf:"bytes,1,opt,name=order" json:"order,omitempty"`
- // The parameters to be used if the payment is processed by the partner
- // (i.e. order.payment_information.payment_processed_by is equal to
- // PROCESSED_BY_PARTNER). (required if payment is processed by the partner)
- PaymentProcessingParameters *PaymentProcessingParameters `protobuf:"bytes,2,opt,name=payment_processing_parameters,json=paymentProcessingParameters" json:"payment_processing_parameters,omitempty"`
- // Idempotency token for CreateOrder requests. (required)
- IdempotencyToken string `protobuf:"bytes,3,opt,name=idempotency_token,json=idempotencyToken" json:"idempotency_token,omitempty"`
-}
-
-func (m *CreateOrderRequest) Reset() { *m = CreateOrderRequest{} }
-func (m *CreateOrderRequest) String() string { return proto.CompactTextString(m) }
-func (*CreateOrderRequest) ProtoMessage() {}
-func (*CreateOrderRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
-
-func (m *CreateOrderRequest) GetOrder() *Order {
- if m != nil {
- return m.Order
- }
- return nil
-}
-
-func (m *CreateOrderRequest) GetPaymentProcessingParameters() *PaymentProcessingParameters {
- if m != nil {
- return m.PaymentProcessingParameters
- }
- return nil
-}
-
-func (m *CreateOrderRequest) GetIdempotencyToken() string {
- if m != nil {
- return m.IdempotencyToken
- }
- return ""
-}
-
-// Response for the CreateOrderRequest.
-type CreateOrderResponse struct {
- // The order created. (required)
- Order *Order `protobuf:"bytes,1,opt,name=order" json:"order,omitempty"`
- // If creating an order fails, this field should reflect the business logic
- // error (e.g., slot has become unavailable or price has changed) and all
- // other fields in the CreateOrderResponse are expected to be unset. (required
- // if failure occurs)
- OrderFailure *OrderFailure `protobuf:"bytes,2,opt,name=order_failure,json=orderFailure" json:"order_failure,omitempty"`
-}
-
-func (m *CreateOrderResponse) Reset() { *m = CreateOrderResponse{} }
-func (m *CreateOrderResponse) String() string { return proto.CompactTextString(m) }
-func (*CreateOrderResponse) ProtoMessage() {}
-func (*CreateOrderResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
-
-func (m *CreateOrderResponse) GetOrder() *Order {
- if m != nil {
- return m.Order
- }
- return nil
-}
-
-func (m *CreateOrderResponse) GetOrderFailure() *OrderFailure {
- if m != nil {
- return m.OrderFailure
- }
- return nil
-}
-
-// [START method_create_lease]
-// Request to create a Leaese 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.
-type CreateLeaseRequest struct {
- // The lease to be created with information about the appointment slot
- // (required)
- Lease *Lease `protobuf:"bytes,1,opt,name=lease" json:"lease,omitempty"`
-}
-
-func (m *CreateLeaseRequest) Reset() { *m = CreateLeaseRequest{} }
-func (m *CreateLeaseRequest) String() string { return proto.CompactTextString(m) }
-func (*CreateLeaseRequest) ProtoMessage() {}
-func (*CreateLeaseRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
-
-func (m *CreateLeaseRequest) GetLease() *Lease {
- if m != nil {
- return m.Lease
- }
- return nil
-}
-
-// Response for the CreateLease RPC with the created Lease.
-type CreateLeaseResponse struct {
- // The created Lease (required)
- Lease *Lease `protobuf:"bytes,1,opt,name=lease" json:"lease,omitempty"`
- // 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 *BookingFailure `protobuf:"bytes,2,opt,name=booking_failure,json=bookingFailure" json:"booking_failure,omitempty"`
-}
-
-func (m *CreateLeaseResponse) Reset() { *m = CreateLeaseResponse{} }
-func (m *CreateLeaseResponse) String() string { return proto.CompactTextString(m) }
-func (*CreateLeaseResponse) ProtoMessage() {}
-func (*CreateLeaseResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
-
-func (m *CreateLeaseResponse) GetLease() *Lease {
- if m != nil {
- return m.Lease
- }
- return nil
-}
-
-func (m *CreateLeaseResponse) GetBookingFailure() *BookingFailure {
- if m != nil {
- return m.BookingFailure
- }
- return nil
-}
-
-// [START method_list_bookings]
-// Request to list all bookings for a user
-type ListBookingsRequest struct {
- // ID of the user (required)
- UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"`
-}
-
-func (m *ListBookingsRequest) Reset() { *m = ListBookingsRequest{} }
-func (m *ListBookingsRequest) String() string { return proto.CompactTextString(m) }
-func (*ListBookingsRequest) ProtoMessage() {}
-func (*ListBookingsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
-
-func (m *ListBookingsRequest) GetUserId() string {
+func (m *UserInformation) GetUserId() string {
if m != nil {
return m.UserId
}
return ""
}
-// Response for the ListBookings RPC with all bookings for the requested user.
-type ListBookingsResponse struct {
- // All bookings of the user (required)
- Bookings []*Booking `protobuf:"bytes,1,rep,name=bookings" json:"bookings,omitempty"`
-}
-
-func (m *ListBookingsResponse) Reset() { *m = ListBookingsResponse{} }
-func (m *ListBookingsResponse) String() string { return proto.CompactTextString(m) }
-func (*ListBookingsResponse) ProtoMessage() {}
-func (*ListBookingsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
-
-func (m *ListBookingsResponse) GetBookings() []*Booking {
+func (m *UserInformation) GetGivenName() string {
if m != nil {
- return m.Bookings
- }
- return nil
-}
-
-// [START method_list_orders]
-// Request to list orders.
-type ListOrdersRequest struct {
- // ID of the user (required only if order_id is not set).
- UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"`
- // If set, return only the specified orders; otherwise, return all orders of
- // the user. (required only if user_id is not set).
- OrderId []string `protobuf:"bytes,2,rep,name=order_id,json=orderId" json:"order_id,omitempty"`
-}
-
-func (m *ListOrdersRequest) Reset() { *m = ListOrdersRequest{} }
-func (m *ListOrdersRequest) String() string { return proto.CompactTextString(m) }
-func (*ListOrdersRequest) ProtoMessage() {}
-func (*ListOrdersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
-
-func (m *ListOrdersRequest) GetUserId() string {
- if m != nil {
- return m.UserId
+ return m.GivenName
}
return ""
}
-func (m *ListOrdersRequest) GetOrderId() []string {
+func (m *UserInformation) GetFamilyName() string {
if m != nil {
- return m.OrderId
+ return m.FamilyName
+ }
+ return ""
+}
+
+func (m *UserInformation) GetAddress() *PostalAddress {
+ if m != nil {
+ return m.Address
}
return nil
}
-// Response for the ListOrders RPC.
-type ListOrdersResponse struct {
- // All requested orders (required)
- Order []*Order `protobuf:"bytes,1,rep,name=order" json:"order,omitempty"`
-}
-
-func (m *ListOrdersResponse) Reset() { *m = ListOrdersResponse{} }
-func (m *ListOrdersResponse) String() string { return proto.CompactTextString(m) }
-func (*ListOrdersResponse) ProtoMessage() {}
-func (*ListOrdersResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
-
-func (m *ListOrdersResponse) GetOrder() []*Order {
+func (m *UserInformation) GetTelephone() string {
if m != nil {
- return m.Order
+ return m.Telephone
}
- return nil
+ return ""
}
-// [START method_update_booking]
-// Request to update a Booking.
-type UpdateBookingRequest struct {
- // The booking to be updated
- // The following fields can be set in a booking:
- // - status, to cancel a booking.
- // - start_time and duration in the slot, to reschedule a booking. (required)
- Booking *Booking `protobuf:"bytes,1,opt,name=booking" json:"booking,omitempty"`
-}
-
-func (m *UpdateBookingRequest) Reset() { *m = UpdateBookingRequest{} }
-func (m *UpdateBookingRequest) String() string { return proto.CompactTextString(m) }
-func (*UpdateBookingRequest) ProtoMessage() {}
-func (*UpdateBookingRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
-
-func (m *UpdateBookingRequest) GetBooking() *Booking {
+func (m *UserInformation) GetEmail() string {
if m != nil {
- return m.Booking
+ return m.Email
}
- return nil
+ return ""
}
-// Response with the updated Booking.
-type UpdateBookingResponse struct {
- // The updated booking (required)
- Booking *Booking `protobuf:"bytes,1,opt,name=booking" json:"booking,omitempty"`
- // The updated user payment option originally used to pay for this booking.
- // This should be set if the UpdateBookingRequest results in a change to
- // the UserPaymentOption.
- // For instance, if the booking is canceled, the UserPaymentOption should
- // reflect an additional credit to the user. In the case of a multi-use
- // payment option, the current_count should be increased by one to
- // allow the user to create another booking with this payment option. In the
- // case of a single-use payment option, a new single-use user payment option
- // should be returned. (required if altered in update)
- UserPaymentOption *UserPaymentOption `protobuf:"bytes,2,opt,name=user_payment_option,json=userPaymentOption" json:"user_payment_option,omitempty"`
- // If updating a booking fails, this field should reflect the business logic
- // error (e.g., booking is not cancellable) (required if failure occurs)
- BookingFailure *BookingFailure `protobuf:"bytes,3,opt,name=booking_failure,json=bookingFailure" json:"booking_failure,omitempty"`
+// The postal address for a merchant.
+type PostalAddress struct {
+ // The country, e.g. "USA". (required)
+ Country string `protobuf:"bytes,1,opt,name=country,proto3" json:"country,omitempty"`
+ // The locality/city, e.g. "Mountain View". (required)
+ Locality string `protobuf:"bytes,2,opt,name=locality,proto3" json:"locality,omitempty"`
+ // The region/state/province, e.g. "CA". (required)
+ Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
+ // The postal code, e.g. "94043". (required)
+ PostalCode string `protobuf:"bytes,4,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"`
+ // The street address, e.g. "1600 Amphitheatre Pkwy". (required)
+ StreetAddress string `protobuf:"bytes,5,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
}
-func (m *UpdateBookingResponse) Reset() { *m = UpdateBookingResponse{} }
-func (m *UpdateBookingResponse) String() string { return proto.CompactTextString(m) }
-func (*UpdateBookingResponse) ProtoMessage() {}
-func (*UpdateBookingResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
+func (m *PostalAddress) Reset() { *m = PostalAddress{} }
+func (m *PostalAddress) String() string { return proto.CompactTextString(m) }
+func (*PostalAddress) ProtoMessage() {}
+func (*PostalAddress) Descriptor() ([]byte, []int) {
+ return fileDescriptor_v3_e164fdd8b81531d4, []int{39}
+}
+func (m *PostalAddress) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_PostalAddress.Unmarshal(m, b)
+}
+func (m *PostalAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_PostalAddress.Marshal(b, m, deterministic)
+}
+func (dst *PostalAddress) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_PostalAddress.Merge(dst, src)
+}
+func (m *PostalAddress) XXX_Size() int {
+ return xxx_messageInfo_PostalAddress.Size(m)
+}
+func (m *PostalAddress) XXX_DiscardUnknown() {
+ xxx_messageInfo_PostalAddress.DiscardUnknown(m)
+}
-func (m *UpdateBookingResponse) GetBooking() *Booking {
+var xxx_messageInfo_PostalAddress proto.InternalMessageInfo
+
+func (m *PostalAddress) GetCountry() string {
if m != nil {
- return m.Booking
+ return m.Country
}
- return nil
+ return ""
}
-func (m *UpdateBookingResponse) GetUserPaymentOption() *UserPaymentOption {
+func (m *PostalAddress) GetLocality() string {
if m != nil {
- return m.UserPaymentOption
+ return m.Locality
}
- return nil
+ return ""
}
-func (m *UpdateBookingResponse) GetBookingFailure() *BookingFailure {
+func (m *PostalAddress) GetRegion() string {
if m != nil {
- return m.BookingFailure
+ return m.Region
}
- return nil
+ return ""
+}
+
+func (m *PostalAddress) GetPostalCode() string {
+ if m != nil {
+ return m.PostalCode
+ }
+ return ""
+}
+
+func (m *PostalAddress) GetStreetAddress() string {
+ if m != nil {
+ return m.StreetAddress
+ }
+ return ""
}
func init() {
- proto.RegisterType((*PostalAddress)(nil), "v3.PostalAddress")
- proto.RegisterType((*GeoCoordinates)(nil), "v3.GeoCoordinates")
- proto.RegisterType((*Price)(nil), "v3.Price")
- proto.RegisterType((*TaxRate)(nil), "v3.TaxRate")
- proto.RegisterType((*SchedulingRules)(nil), "v3.SchedulingRules")
- proto.RegisterType((*IngestionQueuePayload)(nil), "v3.IngestionQueuePayload")
- proto.RegisterType((*IngestionStatus)(nil), "v3.IngestionStatus")
- proto.RegisterType((*TimeRange)(nil), "v3.TimeRange")
- proto.RegisterType((*NoShowFee)(nil), "v3.NoShowFee")
- proto.RegisterType((*Deposit)(nil), "v3.Deposit")
- proto.RegisterType((*ActionLink)(nil), "v3.ActionLink")
- proto.RegisterType((*Slot)(nil), "v3.Slot")
- proto.RegisterType((*Lease)(nil), "v3.Lease")
- proto.RegisterType((*LeaseReference)(nil), "v3.LeaseReference")
- proto.RegisterType((*Booking)(nil), "v3.Booking")
- proto.RegisterType((*UserInformation)(nil), "v3.UserInformation")
- proto.RegisterType((*PaymentProcessingParameters)(nil), "v3.PaymentProcessingParameters")
- proto.RegisterType((*UserPaymentOption)(nil), "v3.UserPaymentOption")
- proto.RegisterType((*PaymentInformation)(nil), "v3.PaymentInformation")
- proto.RegisterType((*BookingFailure)(nil), "v3.BookingFailure")
- proto.RegisterType((*SlotAvailability)(nil), "v3.SlotAvailability")
- proto.RegisterType((*AvailabilityUpdate)(nil), "v3.AvailabilityUpdate")
- proto.RegisterType((*ResourceIds)(nil), "v3.ResourceIds")
- proto.RegisterType((*TicketType)(nil), "v3.TicketType")
- proto.RegisterType((*LineItem)(nil), "v3.LineItem")
- proto.RegisterType((*LineItem_OrderedTickets)(nil), "v3.LineItem.OrderedTickets")
- proto.RegisterType((*LineItemFulfillability)(nil), "v3.LineItemFulfillability")
- proto.RegisterType((*OrderFulfillability)(nil), "v3.OrderFulfillability")
- proto.RegisterType((*Order)(nil), "v3.Order")
- proto.RegisterType((*OrderFailure)(nil), "v3.OrderFailure")
- proto.RegisterType((*CheckAvailabilityRequest)(nil), "v3.CheckAvailabilityRequest")
- proto.RegisterType((*CheckAvailabilityResponse)(nil), "v3.CheckAvailabilityResponse")
- proto.RegisterType((*GetBookingStatusRequest)(nil), "v3.GetBookingStatusRequest")
- proto.RegisterType((*GetBookingStatusResponse)(nil), "v3.GetBookingStatusResponse")
- proto.RegisterType((*CheckOrderFulfillabilityRequest)(nil), "v3.CheckOrderFulfillabilityRequest")
- proto.RegisterType((*CheckOrderFulfillabilityResponse)(nil), "v3.CheckOrderFulfillabilityResponse")
- proto.RegisterType((*CreateBookingRequest)(nil), "v3.CreateBookingRequest")
- proto.RegisterType((*CreateBookingResponse)(nil), "v3.CreateBookingResponse")
- proto.RegisterType((*CreateOrderRequest)(nil), "v3.CreateOrderRequest")
- proto.RegisterType((*CreateOrderResponse)(nil), "v3.CreateOrderResponse")
- proto.RegisterType((*CreateLeaseRequest)(nil), "v3.CreateLeaseRequest")
- proto.RegisterType((*CreateLeaseResponse)(nil), "v3.CreateLeaseResponse")
- proto.RegisterType((*ListBookingsRequest)(nil), "v3.ListBookingsRequest")
- proto.RegisterType((*ListBookingsResponse)(nil), "v3.ListBookingsResponse")
- proto.RegisterType((*ListOrdersRequest)(nil), "v3.ListOrdersRequest")
- proto.RegisterType((*ListOrdersResponse)(nil), "v3.ListOrdersResponse")
- proto.RegisterType((*UpdateBookingRequest)(nil), "v3.UpdateBookingRequest")
- proto.RegisterType((*UpdateBookingResponse)(nil), "v3.UpdateBookingResponse")
- proto.RegisterEnum("v3.IngestionSource", IngestionSource_name, IngestionSource_value)
- proto.RegisterEnum("v3.ContentType", ContentType_name, ContentType_value)
- proto.RegisterEnum("v3.PriceType", PriceType_name, PriceType_value)
- proto.RegisterEnum("v3.RequireCreditCard", RequireCreditCard_name, RequireCreditCard_value)
- proto.RegisterEnum("v3.PaymentOptionType", PaymentOptionType_name, PaymentOptionType_value)
- proto.RegisterEnum("v3.BookingStatus", BookingStatus_name, BookingStatus_value)
- proto.RegisterEnum("v3.CreditCardType", CreditCardType_name, CreditCardType_value)
- proto.RegisterEnum("v3.PrepaymentStatus", PrepaymentStatus_name, PrepaymentStatus_value)
- proto.RegisterEnum("v3.IngestionStatus_Code", IngestionStatus_Code_name, IngestionStatus_Code_value)
- proto.RegisterEnum("v3.PaymentProcessingParameters_PaymentProcessor", PaymentProcessingParameters_PaymentProcessor_name, PaymentProcessingParameters_PaymentProcessor_value)
- proto.RegisterEnum("v3.PaymentInformation_PaymentProcessedBy", PaymentInformation_PaymentProcessedBy_name, PaymentInformation_PaymentProcessedBy_value)
- proto.RegisterEnum("v3.BookingFailure_Cause", BookingFailure_Cause_name, BookingFailure_Cause_value)
- proto.RegisterEnum("v3.LineItemFulfillability_ItemFulfillabilityResult", LineItemFulfillability_ItemFulfillabilityResult_name, LineItemFulfillability_ItemFulfillabilityResult_value)
- proto.RegisterEnum("v3.OrderFulfillability_OrderFulfillabilityResult", OrderFulfillability_OrderFulfillabilityResult_name, OrderFulfillability_OrderFulfillabilityResult_value)
- proto.RegisterEnum("v3.OrderFailure_Cause", OrderFailure_Cause_name, OrderFailure_Cause_value)
- proto.RegisterEnum("v3.CheckAvailabilityResponse_DurationRequirement", CheckAvailabilityResponse_DurationRequirement_name, CheckAvailabilityResponse_DurationRequirement_value)
+ proto.RegisterType((*CheckAvailabilityRequest)(nil), "ext.maps.booking.partner.v3.CheckAvailabilityRequest")
+ proto.RegisterType((*CheckAvailabilityResponse)(nil), "ext.maps.booking.partner.v3.CheckAvailabilityResponse")
+ proto.RegisterType((*AvailabilityUpdate)(nil), "ext.maps.booking.partner.v3.AvailabilityUpdate")
+ proto.RegisterType((*SlotAvailability)(nil), "ext.maps.booking.partner.v3.SlotAvailability")
+ proto.RegisterType((*CheckOrderFulfillabilityRequest)(nil), "ext.maps.booking.partner.v3.CheckOrderFulfillabilityRequest")
+ proto.RegisterType((*CheckOrderFulfillabilityResponse)(nil), "ext.maps.booking.partner.v3.CheckOrderFulfillabilityResponse")
+ proto.RegisterType((*GetBookingStatusRequest)(nil), "ext.maps.booking.partner.v3.GetBookingStatusRequest")
+ proto.RegisterType((*GetBookingStatusResponse)(nil), "ext.maps.booking.partner.v3.GetBookingStatusResponse")
+ proto.RegisterType((*CreateBookingRequest)(nil), "ext.maps.booking.partner.v3.CreateBookingRequest")
+ proto.RegisterType((*CreateBookingResponse)(nil), "ext.maps.booking.partner.v3.CreateBookingResponse")
+ proto.RegisterType((*CreateLeaseRequest)(nil), "ext.maps.booking.partner.v3.CreateLeaseRequest")
+ proto.RegisterType((*CreateLeaseResponse)(nil), "ext.maps.booking.partner.v3.CreateLeaseResponse")
+ proto.RegisterType((*Lease)(nil), "ext.maps.booking.partner.v3.Lease")
+ proto.RegisterType((*LeaseReference)(nil), "ext.maps.booking.partner.v3.LeaseReference")
+ proto.RegisterType((*CreateOrderRequest)(nil), "ext.maps.booking.partner.v3.CreateOrderRequest")
+ proto.RegisterType((*CreateOrderResponse)(nil), "ext.maps.booking.partner.v3.CreateOrderResponse")
+ proto.RegisterType((*ListBookingsRequest)(nil), "ext.maps.booking.partner.v3.ListBookingsRequest")
+ proto.RegisterType((*ListBookingsResponse)(nil), "ext.maps.booking.partner.v3.ListBookingsResponse")
+ proto.RegisterType((*ListOrdersRequest)(nil), "ext.maps.booking.partner.v3.ListOrdersRequest")
+ proto.RegisterType((*ListOrdersRequest_OrderIds)(nil), "ext.maps.booking.partner.v3.ListOrdersRequest.OrderIds")
+ proto.RegisterType((*ListOrdersResponse)(nil), "ext.maps.booking.partner.v3.ListOrdersResponse")
+ proto.RegisterType((*UpdateBookingRequest)(nil), "ext.maps.booking.partner.v3.UpdateBookingRequest")
+ proto.RegisterType((*UpdateBookingResponse)(nil), "ext.maps.booking.partner.v3.UpdateBookingResponse")
+ proto.RegisterType((*Booking)(nil), "ext.maps.booking.partner.v3.Booking")
+ proto.RegisterType((*BookingFailure)(nil), "ext.maps.booking.partner.v3.BookingFailure")
+ proto.RegisterType((*Order)(nil), "ext.maps.booking.partner.v3.Order")
+ proto.RegisterType((*LineItem)(nil), "ext.maps.booking.partner.v3.LineItem")
+ proto.RegisterType((*LineItem_OrderedTickets)(nil), "ext.maps.booking.partner.v3.LineItem.OrderedTickets")
+ proto.RegisterType((*OrderFailure)(nil), "ext.maps.booking.partner.v3.OrderFailure")
+ proto.RegisterType((*OrderFulfillability)(nil), "ext.maps.booking.partner.v3.OrderFulfillability")
+ proto.RegisterType((*LineItemFulfillability)(nil), "ext.maps.booking.partner.v3.LineItemFulfillability")
+ proto.RegisterType((*LineItemFulfillability_UpdatedAvailability)(nil), "ext.maps.booking.partner.v3.LineItemFulfillability.UpdatedAvailability")
+ proto.RegisterType((*TicketType)(nil), "ext.maps.booking.partner.v3.TicketType")
+ proto.RegisterType((*ResourceIds)(nil), "ext.maps.booking.partner.v3.ResourceIds")
+ proto.RegisterType((*PaymentProcessingParameters)(nil), "ext.maps.booking.partner.v3.PaymentProcessingParameters")
+ proto.RegisterType((*UserPaymentOption)(nil), "ext.maps.booking.partner.v3.UserPaymentOption")
+ proto.RegisterType((*PaymentInformation)(nil), "ext.maps.booking.partner.v3.PaymentInformation")
+ proto.RegisterType((*Price)(nil), "ext.maps.booking.partner.v3.Price")
+ proto.RegisterType((*NoShowFee)(nil), "ext.maps.booking.partner.v3.NoShowFee")
+ proto.RegisterType((*Deposit)(nil), "ext.maps.booking.partner.v3.Deposit")
+ proto.RegisterType((*Slot)(nil), "ext.maps.booking.partner.v3.Slot")
+ proto.RegisterType((*UserInformation)(nil), "ext.maps.booking.partner.v3.UserInformation")
+ proto.RegisterType((*PostalAddress)(nil), "ext.maps.booking.partner.v3.PostalAddress")
+ proto.RegisterEnum("ext.maps.booking.partner.v3.BookingStatus", BookingStatus_name, BookingStatus_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.CreditCardType", CreditCardType_name, CreditCardType_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.PaymentOptionType", PaymentOptionType_name, PaymentOptionType_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.PrepaymentStatus", PrepaymentStatus_name, PrepaymentStatus_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.PriceType", PriceType_name, PriceType_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.CheckAvailabilityResponse_DurationRequirement", CheckAvailabilityResponse_DurationRequirement_name, CheckAvailabilityResponse_DurationRequirement_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.BookingFailure_Cause", BookingFailure_Cause_name, BookingFailure_Cause_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.OrderFailure_Cause", OrderFailure_Cause_name, OrderFailure_Cause_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.OrderFulfillability_OrderFulfillabilityResult", OrderFulfillability_OrderFulfillabilityResult_name, OrderFulfillability_OrderFulfillabilityResult_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.LineItemFulfillability_ItemFulfillabilityResult", LineItemFulfillability_ItemFulfillabilityResult_name, LineItemFulfillability_ItemFulfillabilityResult_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.PaymentProcessingParameters_PaymentProcessor", PaymentProcessingParameters_PaymentProcessor_name, PaymentProcessingParameters_PaymentProcessor_value)
+ proto.RegisterEnum("ext.maps.booking.partner.v3.PaymentInformation_PaymentProcessedBy", PaymentInformation_PaymentProcessedBy_name, PaymentInformation_PaymentProcessedBy_value)
}
-func init() { proto.RegisterFile("v3.proto", fileDescriptor0) }
+func init() { proto.RegisterFile("v3.proto", fileDescriptor_v3_e164fdd8b81531d4) }
-var fileDescriptor0 = []byte{
- // 3731 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5a, 0xcd, 0x73, 0x1b, 0xd9,
- 0x56, 0x9f, 0xd6, 0x87, 0x6d, 0x1d, 0xdb, 0x72, 0xfb, 0xda, 0xb1, 0x95, 0x38, 0x19, 0x3b, 0x3d,
- 0x33, 0x4c, 0xe2, 0xcc, 0x78, 0xde, 0x4b, 0xde, 0x54, 0x0d, 0x45, 0xc1, 0xd0, 0x6e, 0x5d, 0x67,
- 0x9a, 0xc8, 0x2d, 0xcd, 0x55, 0x2b, 0x99, 0xc0, 0xa2, 0xe9, 0xa8, 0xaf, 0x95, 0x26, 0x52, 0xb7,
- 0x5e, 0x77, 0xcb, 0x2f, 0x7e, 0x55, 0xaf, 0xea, 0x2d, 0xd9, 0x52, 0x50, 0xf5, 0x16, 0x14, 0x54,
- 0x41, 0x15, 0xb0, 0xa4, 0x58, 0xc0, 0x1f, 0x00, 0x0b, 0x8a, 0xa2, 0xf8, 0x07, 0x58, 0xc1, 0x3f,
- 0xc0, 0x86, 0x62, 0xc3, 0x8a, 0xba, 0x1f, 0xad, 0x6e, 0xb5, 0x24, 0x3b, 0x19, 0x60, 0xf1, 0x76,
- 0xba, 0xe7, 0x9c, 0xfb, 0x71, 0x3e, 0xee, 0x39, 0xbf, 0x73, 0x5b, 0xb0, 0x76, 0xf9, 0xe4, 0x64,
- 0x1c, 0x85, 0x49, 0x88, 0x4a, 0x97, 0x4f, 0xb4, 0xbf, 0x50, 0x60, 0xb3, 0x13, 0xc6, 0x89, 0x3b,
- 0xd4, 0x3d, 0x2f, 0xa2, 0x71, 0x8c, 0x1a, 0xb0, 0xda, 0x0f, 0x27, 0x41, 0x12, 0x5d, 0x35, 0x94,
- 0x23, 0xe5, 0x41, 0x8d, 0xa4, 0x43, 0x74, 0x07, 0xd6, 0x86, 0x61, 0xdf, 0x1d, 0xfa, 0xc9, 0x55,
- 0xa3, 0xc4, 0x59, 0xd3, 0x31, 0xda, 0x83, 0x95, 0x88, 0x0e, 0xfc, 0x30, 0x68, 0x94, 0x39, 0x47,
- 0x8e, 0xd0, 0x21, 0xac, 0x8f, 0xf9, 0xf2, 0x4e, 0x3f, 0xf4, 0x68, 0xa3, 0xc2, 0x99, 0x20, 0x48,
- 0x46, 0xe8, 0x51, 0xf4, 0x09, 0xd4, 0xe3, 0x24, 0xa2, 0x34, 0x71, 0x5c, 0x71, 0x80, 0x46, 0x95,
- 0xcb, 0x6c, 0x0a, 0xaa, 0x3c, 0x95, 0xf6, 0x13, 0xa8, 0x3f, 0xa5, 0xa1, 0x11, 0x86, 0x91, 0xe7,
- 0x07, 0x6e, 0x42, 0x63, 0x7e, 0x1a, 0x37, 0xf1, 0x93, 0x89, 0x47, 0xf9, 0x41, 0x15, 0x32, 0x1d,
- 0xa3, 0xbb, 0x50, 0x1b, 0x86, 0xc1, 0x40, 0x30, 0x4b, 0x9c, 0x99, 0x11, 0xd0, 0x23, 0x58, 0x4d,
- 0xf7, 0x62, 0x87, 0x5d, 0x7f, 0xbc, 0x7d, 0x72, 0xf9, 0xe4, 0x64, 0xc6, 0x0a, 0x24, 0x95, 0xd0,
- 0x7e, 0x06, 0xd5, 0x4e, 0xe4, 0xf7, 0x29, 0xba, 0x0f, 0x1b, 0x63, 0xf6, 0xc3, 0x19, 0xf9, 0xfd,
- 0x28, 0x8c, 0xf9, 0x9e, 0x65, 0xb2, 0xce, 0x69, 0xe7, 0x9c, 0x84, 0x3e, 0x82, 0xcd, 0xfe, 0x24,
- 0x8a, 0x68, 0xd0, 0xbf, 0x12, 0xea, 0x0a, 0x2b, 0x6d, 0xa4, 0x44, 0xae, 0xf0, 0x67, 0x80, 0xd8,
- 0x1c, 0x3f, 0x18, 0x38, 0xe1, 0x38, 0xf1, 0xc3, 0xc0, 0x49, 0xdc, 0x81, 0xb4, 0x9a, 0x2a, 0x39,
- 0x6d, 0xce, 0xb0, 0xdd, 0x81, 0x76, 0x02, 0xab, 0xb6, 0xfb, 0x96, 0xb8, 0x09, 0x65, 0xab, 0xf3,
- 0xad, 0x9d, 0x31, 0x8d, 0xfa, 0x34, 0x48, 0xf8, 0x09, 0xaa, 0x64, 0x83, 0x13, 0x3b, 0x82, 0xa6,
- 0xfd, 0xa7, 0x02, 0x5b, 0xdd, 0xfe, 0x6b, 0xea, 0x4d, 0x86, 0x7e, 0x30, 0x20, 0x93, 0x21, 0x8d,
- 0xd1, 0x09, 0xec, 0x8c, 0xfc, 0xc0, 0x71, 0xbd, 0x4b, 0x37, 0xe8, 0x53, 0xe7, 0x55, 0x18, 0xbe,
- 0xf1, 0x83, 0x81, 0x54, 0x60, 0x7b, 0xe4, 0x07, 0xba, 0xe0, 0x9c, 0x0a, 0x06, 0xfa, 0x1a, 0xee,
- 0xe6, 0xe5, 0xc3, 0x60, 0xe8, 0x07, 0xd4, 0xe9, 0xb3, 0x01, 0x5b, 0x94, 0x6b, 0x55, 0x26, 0xb7,
- 0xb3, 0x89, 0x6d, 0x2e, 0x61, 0xa4, 0x02, 0x48, 0x87, 0x5b, 0x43, 0x37, 0x49, 0xa7, 0x30, 0xaf,
- 0x84, 0x81, 0x73, 0x41, 0xa9, 0x34, 0x77, 0x8d, 0x9b, 0x9b, 0xd9, 0xed, 0xb4, 0xd4, 0x50, 0xc8,
- 0x0e, 0x93, 0x35, 0x72, 0xa2, 0x67, 0x94, 0x59, 0x09, 0x82, 0x30, 0x7e, 0x1d, 0xfe, 0x84, 0xcf,
- 0xab, 0x2c, 0x9a, 0x57, 0x13, 0x02, 0x67, 0x94, 0x6a, 0xfb, 0x70, 0xcb, 0x0c, 0x06, 0x34, 0x66,
- 0xb3, 0xbf, 0x9d, 0xd0, 0x09, 0xed, 0xb8, 0x57, 0xc3, 0xd0, 0xf5, 0xb4, 0x3f, 0xae, 0xc0, 0xd6,
- 0x94, 0xd3, 0x4d, 0xdc, 0x64, 0x12, 0xa3, 0xcf, 0xa0, 0xc2, 0x9d, 0xc3, 0xf4, 0xaf, 0x3f, 0x6e,
- 0xb0, 0x45, 0x0b, 0x22, 0x27, 0xcc, 0x51, 0x84, 0x4b, 0xa1, 0x87, 0xa0, 0x26, 0xfe, 0x88, 0xc6,
- 0x89, 0x3b, 0x1a, 0xa7, 0xae, 0x17, 0x06, 0xd8, 0x9a, 0xd2, 0xa5, 0xfb, 0x7f, 0x04, 0x7b, 0x7e,
- 0x90, 0xd0, 0x28, 0x70, 0x87, 0x0e, 0x8d, 0xa2, 0x30, 0x72, 0x3c, 0x9a, 0xb8, 0xfe, 0x30, 0x96,
- 0xde, 0xdd, 0x4d, 0xb9, 0x98, 0x31, 0x9b, 0x82, 0x87, 0x74, 0xb8, 0x37, 0x76, 0xa3, 0x24, 0xa0,
- 0x91, 0x73, 0xe9, 0xc7, 0xfe, 0xab, 0x21, 0x2d, 0x4c, 0x16, 0x77, 0xe6, 0x8e, 0x14, 0x7a, 0x2e,
- 0x64, 0xf2, 0x4b, 0x68, 0x7f, 0x5b, 0x82, 0x0a, 0x8f, 0x2d, 0x04, 0xf5, 0xae, 0xad, 0xdb, 0xbd,
- 0xae, 0xd3, 0xb3, 0x9e, 0x59, 0xed, 0x17, 0x96, 0xfa, 0x01, 0x6a, 0xc0, 0xae, 0xa4, 0x9d, 0x61,
- 0xdc, 0x74, 0x7a, 0x9d, 0x56, 0x5b, 0x6f, 0xe2, 0xa6, 0xaa, 0x14, 0x39, 0xd8, 0xfa, 0xb6, 0x87,
- 0x7b, 0xb8, 0xa9, 0x96, 0x90, 0x06, 0x1f, 0xe6, 0x39, 0x1d, 0xd2, 0x36, 0x70, 0xb7, 0x6b, 0x5a,
- 0x4f, 0x9d, 0xae, 0xad, 0x13, 0x1b, 0x37, 0xd5, 0x32, 0xfa, 0x18, 0x8e, 0x96, 0xc9, 0xf4, 0x0c,
- 0x03, 0x63, 0xb6, 0x47, 0x05, 0xdd, 0x87, 0x7b, 0x4b, 0xa4, 0xce, 0x74, 0xb3, 0x85, 0x9b, 0x6a,
- 0x15, 0xdd, 0x81, 0xbd, 0xbc, 0x48, 0xb3, 0xd7, 0x69, 0x99, 0x86, 0xce, 0x36, 0x59, 0x41, 0xb7,
- 0x60, 0x5b, 0xf2, 0xf4, 0x8e, 0xe9, 0x18, 0x7a, 0x8b, 0x4d, 0x61, 0x57, 0xe1, 0x30, 0x47, 0x5e,
- 0xb8, 0xf5, 0x05, 0x3a, 0x82, 0xbb, 0x8b, 0x85, 0xe4, 0xce, 0x03, 0x4d, 0x87, 0x9a, 0xed, 0x8f,
- 0x28, 0x71, 0x83, 0x01, 0x45, 0x07, 0x50, 0x7b, 0x45, 0x07, 0x7e, 0xe0, 0xc4, 0xb4, 0x2f, 0xef,
- 0xc6, 0x1a, 0x27, 0x74, 0x69, 0x1f, 0xed, 0xc3, 0x2a, 0x0d, 0x3c, 0xce, 0x12, 0xce, 0x5f, 0xa1,
- 0x81, 0xd7, 0xa5, 0x7d, 0x8d, 0x40, 0xcd, 0x0a, 0xbb, 0x22, 0x0c, 0xd1, 0x01, 0x94, 0x59, 0xb4,
- 0x2a, 0x85, 0x68, 0x25, 0x8c, 0x8a, 0x1e, 0xc0, 0xda, 0x05, 0xa5, 0x4e, 0x72, 0x35, 0x16, 0xf7,
- 0xa0, 0xfe, 0x78, 0x73, 0x2a, 0x61, 0x5f, 0x8d, 0x29, 0x59, 0xbd, 0xa0, 0xfc, 0x87, 0xf6, 0x67,
- 0x0a, 0xac, 0x36, 0xe9, 0x38, 0x8c, 0xfd, 0x04, 0x7d, 0x04, 0xab, 0x9e, 0xf8, 0x39, 0xbf, 0x6c,
- 0xca, 0x29, 0x5e, 0xd8, 0x99, 0x6b, 0x97, 0x1d, 0x39, 0x77, 0x61, 0xf3, 0xb7, 0x8d, 0xa9, 0xf7,
- 0x03, 0xd8, 0x90, 0x6b, 0x5d, 0x73, 0xbe, 0x75, 0x29, 0xc2, 0xcf, 0xe8, 0x03, 0xe8, 0x7d, 0x36,
- 0xbd, 0xe5, 0x07, 0x6f, 0x90, 0x0a, 0xe5, 0x49, 0x34, 0x94, 0xf5, 0x82, 0xfd, 0x14, 0xd9, 0x39,
- 0x18, 0x4c, 0xdc, 0x01, 0x9d, 0xd6, 0x0a, 0x39, 0x46, 0x9f, 0x03, 0x8a, 0x68, 0x9c, 0x44, 0x7e,
- 0x3f, 0xa1, 0x9e, 0x93, 0x16, 0x9b, 0xf2, 0x51, 0xf9, 0x41, 0x8d, 0x6c, 0x67, 0x1c, 0x43, 0x30,
- 0xb4, 0x7f, 0x53, 0xa0, 0xd2, 0x1d, 0x86, 0x09, 0xab, 0x25, 0x23, 0x1a, 0xf5, 0x5f, 0xbb, 0x41,
- 0xe2, 0xf8, 0x9e, 0xdc, 0x0d, 0x52, 0x92, 0xe9, 0xa1, 0x7b, 0x00, 0x31, 0x8d, 0x2e, 0x59, 0x92,
- 0xf6, 0x3d, 0xb9, 0x6d, 0x4d, 0x52, 0x4c, 0x8f, 0x79, 0x38, 0x4e, 0xdc, 0x28, 0xe1, 0x36, 0x29,
- 0x0b, 0x0f, 0x73, 0x02, 0x33, 0xc1, 0x7d, 0xd8, 0xf0, 0x26, 0x51, 0x66, 0xb3, 0x8a, 0x48, 0xef,
- 0x29, 0x8d, 0x89, 0x3c, 0x04, 0xd5, 0xbd, 0x74, 0xfd, 0xa1, 0xfb, 0xca, 0x67, 0x35, 0x8f, 0xe7,
- 0x6d, 0x51, 0xac, 0xb6, 0xf2, 0x74, 0xdb, 0x1d, 0xa0, 0xcf, 0xa1, 0x16, 0xd1, 0x38, 0x9c, 0x44,
- 0x7d, 0x1a, 0x37, 0x56, 0xb8, 0xe3, 0xb6, 0x98, 0x35, 0x89, 0x24, 0x9a, 0x5e, 0x4c, 0x32, 0x09,
- 0xed, 0xcf, 0x15, 0xa8, 0xb6, 0xa8, 0x1b, 0x53, 0x74, 0x1b, 0xd6, 0x86, 0xec, 0x47, 0xa6, 0xe0,
- 0x2a, 0x1f, 0x9b, 0x1e, 0xba, 0x0b, 0x95, 0x78, 0x18, 0x26, 0x5c, 0xaf, 0xf5, 0xc7, 0x6b, 0x6c,
- 0x39, 0x66, 0x16, 0xc2, 0xa9, 0xac, 0x8e, 0x4e, 0x62, 0x1a, 0x39, 0x11, 0xbd, 0xa0, 0xac, 0xd8,
- 0x50, 0x99, 0x74, 0x36, 0x19, 0x95, 0xa4, 0x44, 0xf4, 0xab, 0x70, 0x5b, 0xac, 0x4f, 0xdf, 0x8e,
- 0x7d, 0xa9, 0x2e, 0xcb, 0x63, 0x39, 0x9d, 0xf7, 0xb8, 0x00, 0x9e, 0xf2, 0xd9, 0x15, 0x61, 0xa1,
- 0xfe, 0x08, 0xea, 0xfc, 0x8c, 0xd9, 0x62, 0xcb, 0x0f, 0xab, 0xfd, 0xb7, 0x02, 0xab, 0x69, 0x3d,
- 0xb9, 0x07, 0x20, 0x6b, 0x4e, 0x26, 0x58, 0x93, 0x94, 0x1b, 0xf5, 0xfa, 0x0d, 0x50, 0xb9, 0x5e,
- 0x7e, 0x70, 0x11, 0x46, 0x23, 0x7e, 0x20, 0x59, 0x46, 0x76, 0x98, 0x64, 0x2f, 0xa6, 0x91, 0x99,
- 0xb1, 0xc8, 0xd6, 0x64, 0x96, 0x80, 0x1e, 0xc2, 0x4a, 0xcc, 0x93, 0x3a, 0xd7, 0xae, 0x2e, 0x6a,
- 0xbd, 0x3c, 0x99, 0xc8, 0xf6, 0x44, 0x0a, 0xa0, 0xa7, 0xb0, 0x33, 0x76, 0xaf, 0x46, 0x94, 0x85,
- 0x57, 0x6e, 0xb7, 0x2a, 0xdf, 0x6d, 0x8f, 0x5f, 0x06, 0xc1, 0xce, 0x6f, 0x88, 0xc6, 0x73, 0x34,
- 0xed, 0x9f, 0x15, 0xd8, 0x2a, 0x1c, 0x8c, 0x65, 0x10, 0xa1, 0x47, 0x6a, 0x81, 0x15, 0x7e, 0x52,
- 0x1e, 0xb4, 0x03, 0xff, 0x92, 0x06, 0x4e, 0xe0, 0x8e, 0xd2, 0xbb, 0x52, 0xe3, 0x14, 0xcb, 0x1d,
- 0x51, 0x16, 0xf4, 0x17, 0xee, 0xc8, 0x1f, 0x5e, 0x09, 0xbe, 0x70, 0x2a, 0x08, 0x12, 0x17, 0xc8,
- 0xa1, 0x99, 0xca, 0x4d, 0x68, 0x86, 0x01, 0xa3, 0x84, 0x0e, 0xe9, 0xf8, 0x75, 0x18, 0x50, 0x19,
- 0xbb, 0x19, 0x01, 0xed, 0x42, 0x95, 0x8e, 0x5c, 0x7f, 0xc8, 0x23, 0xb6, 0x46, 0xc4, 0x40, 0xfb,
- 0x45, 0x19, 0x0e, 0xa4, 0xe2, 0x9d, 0x28, 0xec, 0xd3, 0x38, 0xf6, 0x83, 0x41, 0xc7, 0x8d, 0xdc,
- 0x11, 0x4d, 0x68, 0x14, 0x23, 0x02, 0xb5, 0xb1, 0xa0, 0x87, 0x91, 0x2c, 0xaa, 0x3f, 0xc8, 0x19,
- 0x6b, 0xd1, 0x9c, 0x02, 0x2f, 0x8c, 0x44, 0x41, 0x9f, 0x2e, 0x83, 0x7e, 0x04, 0xbb, 0xa9, 0x2b,
- 0x46, 0x34, 0x79, 0x1d, 0x7a, 0x4e, 0x12, 0xbe, 0xa1, 0x81, 0x30, 0x0f, 0x17, 0x4e, 0xed, 0x7e,
- 0xce, 0xd9, 0x36, 0xe3, 0xb2, 0x52, 0x3a, 0x09, 0xc6, 0x6e, 0x14, 0x53, 0xcf, 0x59, 0x38, 0x5d,
- 0x68, 0x7c, 0x27, 0x15, 0xea, 0xcc, 0x2f, 0xd1, 0x80, 0xd5, 0x4b, 0x1a, 0xc5, 0x19, 0x90, 0x4d,
- 0x87, 0xe8, 0x11, 0x6c, 0xa7, 0x6b, 0x66, 0xea, 0x56, 0x24, 0x6c, 0x2b, 0xa8, 0xa3, 0x79, 0xa0,
- 0x16, 0x55, 0x64, 0xa5, 0xb0, 0xa3, 0xbf, 0x3c, 0xc7, 0x96, 0x9d, 0x16, 0xa3, 0x36, 0x71, 0x7a,
- 0x56, 0xb7, 0x83, 0x0d, 0xf3, 0xcc, 0xc4, 0x4d, 0xf5, 0x03, 0xb4, 0x0b, 0x6a, 0xc6, 0xea, 0xda,
- 0xc4, 0xec, 0x60, 0x55, 0x41, 0xfb, 0xb0, 0x93, 0x51, 0x4f, 0x89, 0x6e, 0x5a, 0x36, 0xc1, 0x58,
- 0x2d, 0x69, 0xff, 0x54, 0x82, 0x6d, 0x16, 0x67, 0x72, 0x2b, 0x81, 0x1a, 0xd1, 0x13, 0xd8, 0xe3,
- 0x91, 0x96, 0x9e, 0x56, 0xa2, 0xcc, 0x69, 0xe0, 0xed, 0x4c, 0x8a, 0x53, 0x4c, 0x0f, 0x7d, 0x01,
- 0xbb, 0x97, 0xee, 0xd0, 0xf7, 0x1c, 0x91, 0x21, 0xa7, 0x29, 0x41, 0x94, 0x8e, 0x6d, 0xce, 0xeb,
- 0x32, 0x96, 0xcc, 0x06, 0xe8, 0x11, 0x20, 0x31, 0x81, 0xd5, 0xc5, 0xa9, 0xb8, 0xc8, 0xaa, 0x5b,
- 0x9c, 0x83, 0x03, 0x2f, 0x15, 0x7e, 0x08, 0x15, 0x5e, 0x57, 0xc4, 0x15, 0xbc, 0x95, 0x8b, 0x0e,
- 0x89, 0x74, 0x59, 0x7d, 0xe1, 0x22, 0x2c, 0x8f, 0x85, 0x91, 0x3f, 0xf0, 0x03, 0xde, 0x32, 0x4c,
- 0x82, 0x84, 0x3b, 0xad, 0x4a, 0x36, 0x53, 0x2a, 0x2f, 0x0b, 0x19, 0xd4, 0x4e, 0xa4, 0xd4, 0x8a,
- 0x00, 0xc3, 0x92, 0x28, 0x84, 0x8e, 0x33, 0x97, 0x65, 0x46, 0x58, 0x15, 0x19, 0x7b, 0x3c, 0x6b,
- 0x00, 0xed, 0x4f, 0xab, 0x80, 0xe6, 0xaf, 0x37, 0xd2, 0x61, 0x7b, 0x1c, 0xd1, 0x74, 0x15, 0x99,
- 0x49, 0x44, 0x90, 0xef, 0x8a, 0xf2, 0x98, 0x32, 0x65, 0x32, 0x51, 0xc7, 0x05, 0x0a, 0x83, 0x85,
- 0xe9, 0xfc, 0x24, 0x72, 0x83, 0xd8, 0xed, 0xa7, 0x47, 0x11, 0x97, 0x3d, 0x8d, 0x74, 0x3b, 0x63,
- 0x9a, 0x1e, 0x3a, 0x84, 0x2a, 0x6f, 0x2d, 0xe6, 0x30, 0x33, 0x11, 0x74, 0xf4, 0x00, 0x20, 0x71,
- 0xdf, 0x3a, 0xee, 0x88, 0xab, 0x5f, 0x44, 0xc8, 0xa4, 0x96, 0xb8, 0x6f, 0x75, 0xce, 0x43, 0xbf,
- 0x93, 0x5d, 0x26, 0x19, 0xb9, 0xd4, 0x73, 0x5e, 0x5d, 0x71, 0xc3, 0xd6, 0x1f, 0x3f, 0x5c, 0x9c,
- 0xd8, 0x0a, 0x57, 0x94, 0x7a, 0xa7, 0x57, 0xd3, 0x3b, 0x97, 0xa3, 0xa1, 0xcf, 0x16, 0xd9, 0x98,
- 0xe7, 0x8f, 0x6f, 0x3e, 0x98, 0xb3, 0x32, 0xfa, 0x72, 0x69, 0x6c, 0xae, 0xca, 0x29, 0x0b, 0xa3,
- 0xf3, 0x93, 0x0c, 0x05, 0xad, 0x71, 0x45, 0xd7, 0xd9, 0xa1, 0x25, 0x46, 0xca, 0x70, 0xd0, 0xe7,
- 0xb0, 0x1e, 0x84, 0xce, 0xb4, 0x6b, 0xa8, 0x71, 0x51, 0x8e, 0x62, 0xa6, 0x18, 0x8d, 0x75, 0x0d,
- 0x29, 0x5c, 0xfb, 0x02, 0xea, 0x17, 0x94, 0xc6, 0x8e, 0xcb, 0x22, 0xd8, 0x7d, 0x4b, 0xe3, 0x06,
- 0x14, 0xad, 0xb8, 0xc1, 0x04, 0xf4, 0xc0, 0xb3, 0x19, 0x5b, 0x1b, 0x4d, 0x43, 0x24, 0x6f, 0x81,
- 0x8f, 0xe1, 0xa8, 0x70, 0xaf, 0x71, 0xd3, 0x39, 0x7d, 0x59, 0xb8, 0xda, 0xd9, 0x25, 0x16, 0xdc,
- 0xa7, 0xed, 0xf6, 0xd3, 0x16, 0x16, 0x28, 0x7c, 0x86, 0xd1, 0xd1, 0x89, 0x6d, 0x61, 0xa2, 0x96,
- 0x4e, 0x37, 0x00, 0xa6, 0xf5, 0xc8, 0xd3, 0x7e, 0xbf, 0x02, 0x75, 0x59, 0xb7, 0xce, 0x5c, 0x7f,
- 0x38, 0x89, 0x28, 0x3a, 0x81, 0x6a, 0xdf, 0x9d, 0xc4, 0x33, 0xad, 0xcc, 0xac, 0xc8, 0x89, 0xc1,
- 0xf8, 0x44, 0x88, 0xa1, 0xdf, 0x64, 0xc0, 0xeb, 0xf7, 0xa8, 0x80, 0x5d, 0x6e, 0xe4, 0x09, 0xb0,
- 0x57, 0xe2, 0x93, 0x11, 0x9b, 0x6c, 0x44, 0xd4, 0xf3, 0x13, 0xc3, 0x8d, 0x3c, 0x7e, 0x23, 0xd5,
- 0x54, 0x3a, 0xa5, 0xa0, 0x23, 0x58, 0xf7, 0x68, 0xdc, 0x8f, 0xfc, 0x71, 0x92, 0xa5, 0xc8, 0x3c,
- 0x49, 0xfb, 0xf7, 0x12, 0x54, 0xf9, 0xa6, 0x0c, 0xbb, 0x1b, 0x7a, 0xaf, 0x8b, 0xe7, 0x73, 0x5c,
- 0xb7, 0xd5, 0xb6, 0x9d, 0x9e, 0xa5, 0x3f, 0xd7, 0xcd, 0x96, 0x7e, 0xca, 0xad, 0x70, 0x08, 0x07,
- 0x9c, 0xaa, 0xb7, 0x08, 0xd6, 0x9b, 0x2f, 0x9d, 0xd3, 0x76, 0xfb, 0x99, 0x34, 0x63, 0x97, 0x19,
- 0x03, 0x6d, 0xc3, 0x66, 0x0b, 0xeb, 0x5d, 0xec, 0xe0, 0xef, 0x3a, 0x26, 0xe1, 0x1d, 0xc8, 0x21,
- 0x1c, 0xb4, 0x7b, 0x76, 0xd7, 0x6c, 0x62, 0xc7, 0xd0, 0x2d, 0x03, 0xb7, 0x5a, 0xba, 0x6d, 0xb6,
- 0x2d, 0xe7, 0x85, 0x69, 0x35, 0xdb, 0x2f, 0xd4, 0x4a, 0xde, 0x33, 0x98, 0x90, 0x36, 0x71, 0x0c,
- 0x9d, 0x34, 0x1d, 0xfb, 0x65, 0x07, 0x3b, 0x04, 0xff, 0x16, 0x36, 0x6c, 0xde, 0x7f, 0x1c, 0xc2,
- 0xc1, 0x02, 0xa9, 0x26, 0x36, 0x5a, 0xa6, 0xc5, 0x9b, 0x90, 0xbb, 0xd0, 0x48, 0x05, 0xda, 0x1d,
- 0xbe, 0x83, 0xd5, 0xb6, 0x9d, 0xe7, 0x7a, 0xcb, 0x6c, 0xaa, 0xab, 0xec, 0x60, 0x33, 0xd3, 0xd5,
- 0x35, 0xd6, 0x3e, 0xb1, 0x53, 0xb3, 0x53, 0x31, 0x49, 0x66, 0x83, 0xd9, 0x05, 0xd4, 0x1a, 0xba,
- 0x07, 0xb7, 0x99, 0x8e, 0xac, 0x1f, 0x49, 0x75, 0x96, 0x4a, 0xe0, 0xa6, 0x0a, 0xe8, 0x00, 0xf6,
- 0x53, 0x36, 0x5b, 0x22, 0xd5, 0x8f, 0x19, 0x6b, 0x5d, 0x7b, 0x09, 0x2a, 0x43, 0x48, 0x7a, 0x0e,
- 0x74, 0x4e, 0x51, 0x94, 0xb2, 0x10, 0x45, 0x7d, 0x0a, 0x5b, 0x3c, 0x4d, 0x3a, 0x12, 0xa8, 0x0e,
- 0x85, 0xdb, 0xab, 0xa4, 0xce, 0xc9, 0x7a, 0x4a, 0xd5, 0x5e, 0x00, 0xca, 0x2f, 0xdb, 0x1b, 0x7b,
- 0x6e, 0x42, 0x59, 0x16, 0x64, 0xcb, 0x38, 0x79, 0x98, 0xdb, 0x50, 0x8e, 0xca, 0x0f, 0xd6, 0x45,
- 0x16, 0x2c, 0x9e, 0x86, 0xa8, 0x71, 0x81, 0xa2, 0xfd, 0x2e, 0xac, 0xe7, 0xc0, 0x2f, 0x83, 0x8e,
- 0x71, 0xe2, 0x5e, 0x5c, 0xe4, 0xa0, 0x23, 0x1f, 0x9b, 0x1e, 0x43, 0x4a, 0x51, 0x18, 0x8e, 0xb2,
- 0x04, 0xb9, 0xc2, 0x86, 0x02, 0x29, 0xb1, 0x26, 0xf8, 0xca, 0x89, 0xfd, 0x9f, 0x8a, 0xbc, 0x58,
- 0x25, 0x35, 0x4e, 0xe9, 0xfa, 0x3f, 0xa5, 0xda, 0xcf, 0x15, 0x00, 0xdb, 0xef, 0xbf, 0xa1, 0xbc,
- 0x43, 0x41, 0x1f, 0x43, 0x3d, 0xe1, 0x23, 0x1e, 0xe5, 0xd9, 0x3e, 0x1b, 0xc9, 0x54, 0xc6, 0xf4,
- 0x58, 0x55, 0x8f, 0x5f, 0x87, 0x51, 0xe2, 0xe4, 0xc3, 0x5a, 0x6c, 0xab, 0x72, 0x46, 0x33, 0xa3,
- 0xdf, 0x98, 0x93, 0xb5, 0xbf, 0x29, 0xc1, 0x5a, 0xcb, 0x0f, 0xa8, 0x99, 0xd0, 0x51, 0xa1, 0x1b,
- 0x51, 0xae, 0xed, 0x46, 0x4a, 0x37, 0x74, 0x23, 0xe5, 0xf9, 0x6e, 0xe4, 0x4b, 0x58, 0x15, 0x9a,
- 0x30, 0xdc, 0xc7, 0x3c, 0x71, 0xc0, 0x8e, 0x93, 0xee, 0x7e, 0xd2, 0x8e, 0x3c, 0x1a, 0x51, 0x4f,
- 0x18, 0x24, 0x26, 0xa9, 0x6c, 0xa6, 0x43, 0x75, 0x49, 0x5d, 0xc9, 0x00, 0xf3, 0xca, 0x0d, 0x80,
- 0xf9, 0x8e, 0x01, 0xf5, 0xd9, 0x6d, 0x98, 0x52, 0xd2, 0xe8, 0x53, 0x95, 0xd7, 0x04, 0xc1, 0xf4,
- 0x18, 0xbc, 0x14, 0xb5, 0x5a, 0x84, 0x9e, 0x18, 0x68, 0xff, 0x5a, 0x86, 0xbd, 0xf4, 0xd4, 0x67,
- 0x93, 0xe1, 0x85, 0x3f, 0x9c, 0xc6, 0xf4, 0x11, 0x54, 0xfc, 0x84, 0x8e, 0x64, 0x4c, 0x6f, 0xe4,
- 0xf5, 0x23, 0x9c, 0x83, 0x9e, 0xc1, 0x4a, 0x44, 0xe3, 0xc9, 0x30, 0x91, 0x59, 0xec, 0x49, 0x5e,
- 0x66, 0x76, 0xb5, 0x93, 0x79, 0x12, 0xe1, 0x53, 0x89, 0x5c, 0x02, 0xfd, 0x10, 0x76, 0x27, 0xc1,
- 0x45, 0x2a, 0x31, 0xa4, 0x4e, 0x44, 0xdd, 0x78, 0x9a, 0xe5, 0x76, 0x66, 0x78, 0x84, 0xb3, 0xb8,
- 0x8f, 0xc7, 0x61, 0x12, 0x3b, 0xe1, 0x98, 0x06, 0xbc, 0x08, 0x57, 0x49, 0x8d, 0x53, 0xda, 0x63,
- 0x1a, 0xa0, 0x2f, 0x60, 0x3d, 0x17, 0x83, 0x8d, 0x2a, 0xf7, 0x53, 0x9d, 0x9d, 0x31, 0x0b, 0x54,
- 0x02, 0x59, 0x40, 0x6a, 0xff, 0xa2, 0x40, 0x63, 0xd9, 0x39, 0xd1, 0x31, 0xfc, 0x8a, 0x69, 0xe3,
- 0x73, 0xe7, 0xac, 0xd7, 0x3a, 0x33, 0x59, 0x32, 0x30, 0x5b, 0xa6, 0xfd, 0xd2, 0x21, 0xb8, 0xdb,
- 0x6b, 0xd9, 0x85, 0x2c, 0xbb, 0x05, 0xeb, 0x86, 0x6e, 0xa5, 0xa2, 0xaa, 0xb2, 0x30, 0xed, 0x96,
- 0x58, 0x86, 0xec, 0x59, 0xd3, 0xf5, 0x5a, 0xd8, 0xb1, 0x4d, 0xe3, 0x19, 0xb6, 0x1d, 0xa3, 0x7d,
- 0x7e, 0x6a, 0x5a, 0x3c, 0x9d, 0xaa, 0x65, 0xb4, 0x03, 0x5b, 0xa6, 0x65, 0xb4, 0x09, 0xc1, 0x06,
- 0xab, 0x71, 0xa6, 0x81, 0xd5, 0x0a, 0xfa, 0x08, 0x0e, 0xf9, 0x69, 0x66, 0xe7, 0xb7, 0xed, 0x6f,
- 0x30, 0x71, 0x08, 0xd6, 0xbb, 0x6d, 0x4b, 0xad, 0x6a, 0x7f, 0x59, 0x86, 0x1d, 0x1e, 0x22, 0x05,
- 0xcf, 0x9a, 0x53, 0xbf, 0x89, 0xd2, 0xf5, 0x43, 0x66, 0x93, 0x05, 0x82, 0x8b, 0x68, 0x05, 0xaf,
- 0x3d, 0x83, 0x1d, 0x16, 0x0a, 0xce, 0xc5, 0x8c, 0x50, 0xa3, 0xc4, 0x6d, 0x7d, 0x67, 0x79, 0x3c,
- 0x10, 0xe4, 0xcf, 0x47, 0xdc, 0xfb, 0x87, 0x80, 0xf6, 0x0f, 0x0a, 0xdc, 0x5e, 0x7a, 0x4a, 0xf4,
- 0x08, 0x3e, 0x6d, 0x93, 0x26, 0x26, 0xdf, 0xcf, 0x69, 0x07, 0xb0, 0x3f, 0x6b, 0x5e, 0x56, 0x92,
- 0x1c, 0x66, 0x76, 0xb5, 0x84, 0x3e, 0x81, 0xfb, 0xb3, 0xcc, 0x2e, 0x26, 0xcf, 0x4d, 0x03, 0x17,
- 0x9c, 0xf7, 0x31, 0x1c, 0x89, 0x13, 0x5c, 0xe3, 0xa8, 0x8a, 0xf6, 0x1f, 0x0a, 0x54, 0xb9, 0x16,
- 0x2c, 0x33, 0x87, 0xec, 0x47, 0x2e, 0x33, 0xf3, 0xb1, 0xe9, 0x2d, 0xec, 0xc5, 0x4b, 0xef, 0xd1,
- 0x8b, 0x2f, 0x69, 0xb0, 0xcb, 0xef, 0xdb, 0x60, 0x17, 0x5f, 0x82, 0x2a, 0x73, 0x2f, 0x41, 0x69,
- 0xe6, 0x10, 0x37, 0x6e, 0x41, 0xe6, 0xd0, 0xfe, 0xab, 0x04, 0x1b, 0xc2, 0x6d, 0x12, 0x4c, 0x7d,
- 0x36, 0x0b, 0xa6, 0xf6, 0xb2, 0x88, 0x5c, 0x04, 0xa5, 0xbe, 0x86, 0xfa, 0x5c, 0xc0, 0x31, 0x2d,
- 0xf6, 0x97, 0x04, 0x32, 0x29, 0x88, 0x2f, 0xc1, 0x62, 0xe5, 0xef, 0x8f, 0xc5, 0x2a, 0xf3, 0x58,
- 0xec, 0x0f, 0x94, 0x1b, 0xb0, 0xd8, 0x3e, 0xec, 0x2c, 0x88, 0x0d, 0x55, 0x79, 0x27, 0xe4, 0x54,
- 0xba, 0x09, 0x39, 0x95, 0xe7, 0xb1, 0x51, 0x45, 0xfb, 0x0a, 0x1a, 0xc6, 0x6b, 0xda, 0x7f, 0x33,
- 0x03, 0x17, 0xe8, 0x8f, 0x27, 0x34, 0x4e, 0xae, 0xc7, 0x30, 0xda, 0xcf, 0xcb, 0x70, 0x7b, 0xc1,
- 0xd4, 0x78, 0x1c, 0x06, 0x31, 0xfd, 0x3f, 0xc2, 0x3f, 0xc8, 0x83, 0xdd, 0x69, 0xe1, 0x8d, 0xe8,
- 0x8f, 0x27, 0x7e, 0x44, 0x59, 0xf0, 0x49, 0xc7, 0xf0, 0x34, 0xb5, 0xf4, 0x0c, 0x27, 0x4d, 0x39,
- 0x93, 0x64, 0x13, 0xc9, 0x8e, 0x37, 0x4f, 0x64, 0x17, 0x61, 0xe6, 0x25, 0x71, 0xc2, 0x61, 0x96,
- 0x6c, 0xe2, 0x78, 0xe4, 0xcd, 0x83, 0x30, 0x82, 0xdc, 0x39, 0x9a, 0x36, 0x82, 0x9d, 0x05, 0x9b,
- 0x32, 0xf7, 0x35, 0x7b, 0x44, 0xa0, 0x61, 0x82, 0xbf, 0xed, 0x99, 0x04, 0x73, 0x27, 0xcc, 0x7a,
- 0xbf, 0x01, 0xbb, 0xcd, 0x36, 0x87, 0x97, 0xdd, 0x6f, 0xda, 0x2f, 0x9c, 0x74, 0x86, 0xaa, 0xa0,
- 0x3d, 0x40, 0xe7, 0xbd, 0x6e, 0x91, 0x5e, 0xd2, 0xbe, 0x82, 0xfd, 0xa7, 0x34, 0x99, 0x05, 0x03,
- 0xd2, 0x77, 0xd7, 0x3f, 0xf2, 0x69, 0x7f, 0xa7, 0x40, 0x63, 0x7e, 0xaa, 0xf4, 0xdd, 0x0d, 0x0f,
- 0x84, 0x5f, 0x41, 0x3d, 0x65, 0x4b, 0x64, 0x52, 0x5a, 0x86, 0x4c, 0x36, 0x5f, 0xe5, 0x87, 0x8b,
- 0xbb, 0xf7, 0xf2, 0xfb, 0x74, 0xef, 0x9a, 0x07, 0x87, 0xdc, 0xe1, 0x0b, 0x53, 0xbc, 0x50, 0xfd,
- 0xc6, 0x77, 0xe9, 0x34, 0x1b, 0x95, 0x96, 0x66, 0xa3, 0x3f, 0x52, 0xe0, 0x68, 0xf9, 0x36, 0xd2,
- 0x4c, 0xf3, 0x39, 0x47, 0x79, 0xbf, 0x9c, 0x33, 0xdf, 0xf0, 0x96, 0xae, 0x6f, 0x78, 0xff, 0xba,
- 0x0c, 0xbb, 0x46, 0x44, 0xdd, 0x24, 0xfd, 0x36, 0xf8, 0x4e, 0x37, 0x15, 0x7d, 0x01, 0x35, 0xf1,
- 0x2e, 0x1c, 0xd1, 0x0b, 0xb9, 0x05, 0x4f, 0x69, 0xb3, 0xcf, 0xc7, 0x44, 0x3c, 0x1e, 0x13, 0x7a,
- 0xf1, 0xbf, 0x7e, 0xe4, 0x5d, 0x52, 0x58, 0x2a, 0xef, 0x5d, 0x58, 0xfa, 0x70, 0xaf, 0xf0, 0x54,
- 0xc2, 0xa2, 0x6e, 0x3c, 0x7d, 0xb8, 0x94, 0xa8, 0xf9, 0xf0, 0x86, 0xf7, 0x4d, 0x72, 0x30, 0xbe,
- 0xe6, 0xc1, 0xf4, 0x11, 0x6c, 0xfb, 0x1e, 0x1d, 0x8d, 0xc3, 0x84, 0x7f, 0x29, 0x16, 0x4f, 0x93,
- 0xe2, 0xc9, 0x55, 0xcd, 0x31, 0xc4, 0x83, 0xe4, 0xe7, 0x80, 0x5c, 0xcf, 0xf3, 0xd9, 0xe9, 0xdc,
- 0x21, 0x4f, 0x49, 0x34, 0x4e, 0xe4, 0x23, 0xd6, 0x76, 0xc6, 0x91, 0x8e, 0xd1, 0xfe, 0x5e, 0x81,
- 0x5b, 0x05, 0x8f, 0xc9, 0xe8, 0xf9, 0x04, 0x56, 0xf3, 0x5f, 0x7e, 0xe5, 0x1b, 0x4a, 0x2a, 0x95,
- 0xf2, 0x10, 0x86, 0x9d, 0x05, 0x2f, 0x34, 0xd2, 0x8b, 0xb7, 0x52, 0x6f, 0xcc, 0x3c, 0xd0, 0x90,
- 0xed, 0xb9, 0x37, 0x1b, 0xf4, 0x6b, 0xb0, 0x95, 0xde, 0xd9, 0x0b, 0x51, 0x3f, 0xa5, 0x43, 0xd1,
- 0xfc, 0x23, 0x05, 0x49, 0xaf, 0xb7, 0x1c, 0x6b, 0xff, 0xa8, 0x00, 0x12, 0x4a, 0xf0, 0xa8, 0xce,
- 0xee, 0x59, 0x95, 0x23, 0x91, 0xfc, 0x97, 0x30, 0x21, 0x20, 0xe8, 0x37, 0x7b, 0xaf, 0xf4, 0xff,
- 0xe5, 0xbd, 0xf2, 0x62, 0xef, 0xb1, 0xfc, 0x3c, 0xa3, 0x88, 0xf4, 0xc5, 0x8d, 0x9a, 0x7c, 0x09,
- 0x9b, 0x02, 0x84, 0xa5, 0xc6, 0x13, 0x27, 0x57, 0x8b, 0xa0, 0x84, 0x6c, 0x84, 0xb9, 0x91, 0xf6,
- 0x65, 0x6a, 0x37, 0x79, 0xd3, 0xa6, 0x76, 0xe3, 0x37, 0x2d, 0xbf, 0x9b, 0x10, 0x10, 0x74, 0x2d,
- 0x4e, 0x4f, 0x29, 0xa7, 0x65, 0xa7, 0xbc, 0x76, 0xde, 0x22, 0x27, 0x97, 0xde, 0xd9, 0xc9, 0x27,
- 0xb0, 0xd3, 0xf2, 0xe3, 0xb4, 0x22, 0x4c, 0xeb, 0xc8, 0xb2, 0xef, 0x24, 0xda, 0xd7, 0xb0, 0x3b,
- 0x2b, 0x2f, 0x4f, 0xf9, 0x29, 0xac, 0xc9, 0x95, 0x63, 0xf9, 0x24, 0x31, 0x13, 0xd8, 0x53, 0xa6,
- 0xf6, 0x14, 0xb6, 0xd9, 0x02, 0xdc, 0x7c, 0x37, 0x6e, 0x37, 0x03, 0x83, 0x4b, 0xfc, 0xd3, 0x64,
- 0x0a, 0x83, 0x99, 0x95, 0xf3, 0x0b, 0xcd, 0xfb, 0xb4, 0xbc, 0xc8, 0xa7, 0xda, 0xaf, 0xc3, 0xae,
- 0xa8, 0xda, 0x85, 0x5c, 0xfa, 0x6e, 0x17, 0x93, 0xdf, 0xec, 0xc2, 0xfc, 0x5f, 0xba, 0x9b, 0x7d,
- 0x7c, 0x96, 0xff, 0x3b, 0x06, 0x7f, 0x0c, 0xe2, 0xff, 0x59, 0x68, 0xf7, 0x88, 0x81, 0x73, 0xff,
- 0x59, 0xd8, 0x82, 0x75, 0x49, 0x3b, 0xc3, 0xfc, 0xaf, 0x0a, 0x75, 0x00, 0x49, 0xd0, 0x3b, 0xa6,
- 0x5a, 0x3a, 0xfe, 0x2b, 0x05, 0xd6, 0x8d, 0x30, 0x48, 0x68, 0x20, 0x1e, 0x7b, 0x76, 0x60, 0xcb,
- 0x68, 0x5b, 0xb6, 0xc0, 0x38, 0xe9, 0x2a, 0xbb, 0xa0, 0xa6, 0xc4, 0x73, 0x4c, 0x8c, 0x6f, 0x74,
- 0xcb, 0x56, 0x95, 0xbc, 0xa8, 0x6c, 0x98, 0xd4, 0x12, 0x83, 0x42, 0x29, 0x51, 0xb6, 0xc7, 0xbc,
- 0x4d, 0x53, 0xcb, 0xe8, 0x0e, 0xec, 0xa5, 0x9c, 0xc2, 0x1b, 0x5e, 0x05, 0x69, 0xf0, 0xe1, 0x62,
- 0xde, 0x74, 0xe5, 0xea, 0xf1, 0x13, 0xa8, 0x4d, 0x3f, 0xa1, 0x33, 0x5c, 0x75, 0x66, 0x7e, 0x87,
- 0x9b, 0x0e, 0xd1, 0x6d, 0xec, 0x34, 0xf1, 0x99, 0xde, 0x6b, 0xd9, 0xea, 0x07, 0x4c, 0xbd, 0x0e,
- 0x26, 0x4e, 0x07, 0x13, 0xd6, 0x8d, 0x29, 0xc7, 0x3f, 0x83, 0x6d, 0x09, 0xe7, 0xb2, 0x2e, 0x80,
- 0x35, 0xdc, 0x12, 0xcb, 0x39, 0x06, 0xc1, 0x4d, 0xd3, 0x16, 0x70, 0x7b, 0x16, 0xd3, 0x2d, 0x11,
- 0x32, 0xda, 0x56, 0xd3, 0x64, 0x27, 0xd3, 0x59, 0x5b, 0xf9, 0x21, 0xdc, 0x59, 0x24, 0xa4, 0xb7,
- 0x5e, 0xe8, 0x2f, 0xbb, 0x6a, 0xe9, 0xf8, 0x17, 0x0a, 0x6c, 0xcf, 0x7d, 0x9f, 0x61, 0x4b, 0x17,
- 0xb4, 0xe4, 0xfd, 0xc0, 0xec, 0xfe, 0xf7, 0xe0, 0x76, 0xd1, 0x14, 0xa6, 0xf5, 0xb4, 0x85, 0x9d,
- 0x5e, 0x97, 0xf5, 0x15, 0xf3, 0x4f, 0xa9, 0xe7, 0xbd, 0x96, 0x6d, 0x72, 0x6e, 0x09, 0x1d, 0xc1,
- 0xdd, 0x02, 0xb7, 0x67, 0xb5, 0xcc, 0x73, 0xd3, 0xc6, 0x4d, 0x2e, 0x51, 0x3e, 0xfe, 0x43, 0x05,
- 0x36, 0x67, 0x10, 0x1f, 0xd3, 0x25, 0x7d, 0x28, 0x9d, 0xfe, 0xf5, 0x25, 0x7f, 0xa0, 0x4d, 0xa8,
- 0x19, 0x6d, 0xeb, 0xcc, 0x24, 0xe7, 0x3c, 0x90, 0xee, 0xc3, 0xbd, 0x0e, 0xb6, 0x9a, 0x4c, 0x3c,
- 0x8d, 0x09, 0x47, 0xf2, 0x25, 0xc8, 0x45, 0x1b, 0xb0, 0x26, 0x9e, 0x5b, 0x79, 0x0b, 0xb3, 0x0e,
- 0xab, 0x56, 0x9b, 0x03, 0x61, 0xb5, 0xc2, 0xda, 0x28, 0x39, 0x70, 0x3a, 0xd8, 0xd2, 0x5b, 0xe6,
- 0x6f, 0xe3, 0xa6, 0x5a, 0x3d, 0x1e, 0x43, 0x7d, 0xb6, 0x5b, 0x63, 0x9a, 0xe4, 0x2d, 0xbb, 0xc0,
- 0x50, 0x6b, 0x50, 0x79, 0x6e, 0x76, 0x75, 0x11, 0xdb, 0xe7, 0x7a, 0xd7, 0xc6, 0x84, 0x89, 0xaa,
- 0x25, 0x16, 0xb6, 0xfa, 0x39, 0x26, 0xa6, 0xa1, 0x5b, 0x0e, 0xfe, 0xae, 0x43, 0x70, 0xb7, 0xab,
- 0x96, 0xd9, 0xa9, 0x9a, 0x66, 0xd7, 0x68, 0x3f, 0xc7, 0x44, 0xad, 0x1c, 0xff, 0x89, 0x02, 0x6a,
- 0x11, 0xbc, 0x72, 0xdd, 0x08, 0x4e, 0x2d, 0xb8, 0xd0, 0x1a, 0xfc, 0x2b, 0x04, 0xce, 0x7d, 0xae,
- 0x78, 0x6e, 0x8a, 0xff, 0x02, 0x1d, 0xc0, 0x7e, 0x8e, 0xc1, 0x7a, 0x82, 0x29, 0xb3, 0x54, 0x98,
- 0x45, 0xf0, 0x59, 0xcf, 0x6a, 0x72, 0xe3, 0xcc, 0x32, 0x84, 0xc6, 0xb8, 0xa9, 0x56, 0x5e, 0xad,
- 0xf0, 0x7f, 0x18, 0x3e, 0xf9, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x84, 0x9d, 0xca, 0x4f, 0x6d,
- 0x28, 0x00, 0x00,
+var fileDescriptor_v3_e164fdd8b81531d4 = []byte{
+ // 3278 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3a, 0xcd, 0x6f, 0x1b, 0xc7,
+ 0xf5, 0x5e, 0x7e, 0x88, 0xe2, 0xa3, 0x44, 0xad, 0x46, 0x8a, 0x4d, 0xf9, 0x23, 0x96, 0x37, 0x76,
+ 0xe2, 0xc8, 0x89, 0xf2, 0x8b, 0xec, 0xe0, 0x97, 0x14, 0x45, 0xda, 0x15, 0x39, 0xb2, 0x36, 0xa1,
+ 0x48, 0x66, 0xb8, 0x94, 0xed, 0x1c, 0xba, 0x59, 0x73, 0x47, 0xf2, 0xd6, 0x24, 0x97, 0xd9, 0x5d,
+ 0x2a, 0x56, 0xd0, 0xdc, 0x7a, 0xed, 0xa1, 0xe8, 0xa1, 0xe8, 0xa1, 0xc7, 0x1c, 0x0a, 0xb4, 0x40,
+ 0x0f, 0xbd, 0x14, 0xbd, 0x14, 0x28, 0xd0, 0x4b, 0x91, 0x53, 0x0f, 0xed, 0xa9, 0x87, 0xa2, 0x87,
+ 0xfe, 0x0b, 0x01, 0x8a, 0xa2, 0x98, 0x8f, 0xe5, 0xc7, 0x92, 0xa2, 0x28, 0xc5, 0xee, 0xa5, 0x17,
+ 0x41, 0xf3, 0xbe, 0xe6, 0xcd, 0x7b, 0x6f, 0xde, 0x7b, 0xf3, 0x96, 0x30, 0x7f, 0x74, 0x77, 0xb3,
+ 0xeb, 0x7b, 0xa1, 0x87, 0xae, 0xd0, 0x67, 0xe1, 0x66, 0xdb, 0xee, 0x06, 0x9b, 0x8f, 0x3d, 0xef,
+ 0xa9, 0xdb, 0x39, 0xdc, 0xec, 0xda, 0x7e, 0xd8, 0xa1, 0xfe, 0xe6, 0xd1, 0x5d, 0xed, 0x23, 0x28,
+ 0x14, 0x9f, 0xd0, 0xe6, 0x53, 0xfd, 0xc8, 0x76, 0x5b, 0xf6, 0x63, 0xb7, 0xe5, 0x86, 0xc7, 0x84,
+ 0x7e, 0xda, 0xa3, 0x41, 0x88, 0xde, 0x81, 0x54, 0xd0, 0xf2, 0xc2, 0x82, 0xb2, 0xae, 0xdc, 0xce,
+ 0x6d, 0xdd, 0xd8, 0x9c, 0x22, 0x67, 0xb3, 0xde, 0xf2, 0x42, 0xc2, 0xc9, 0xb5, 0x3f, 0x25, 0x61,
+ 0x6d, 0x82, 0xcc, 0xa0, 0xeb, 0x75, 0x02, 0x7a, 0x4e, 0xa1, 0xe8, 0x35, 0x58, 0x6a, 0x7a, 0xbd,
+ 0x4e, 0x68, 0xd9, 0x42, 0x68, 0x8b, 0x16, 0x12, 0xeb, 0xca, 0xed, 0x34, 0xc9, 0x73, 0xb0, 0x1e,
+ 0x41, 0xd1, 0x17, 0xb0, 0xea, 0xf4, 0x7c, 0x3b, 0x74, 0xbd, 0x8e, 0xe5, 0xd3, 0x4f, 0x7b, 0xae,
+ 0x4f, 0xdb, 0xb4, 0x13, 0x16, 0x92, 0xeb, 0xca, 0xed, 0xfc, 0xd6, 0x07, 0x53, 0xf7, 0x3b, 0x51,
+ 0xeb, 0xcd, 0x92, 0x14, 0x49, 0x06, 0x12, 0xc9, 0x8a, 0x33, 0x0e, 0x44, 0x9f, 0xc0, 0x8a, 0x3d,
+ 0x24, 0xc0, 0xea, 0x75, 0x1d, 0x3b, 0xa4, 0x85, 0x14, 0x3f, 0xed, 0x5b, 0x53, 0x77, 0x1f, 0xde,
+ 0xb8, 0xc1, 0xd9, 0x08, 0xb2, 0xc7, 0x60, 0x5a, 0x1b, 0x56, 0x26, 0x68, 0x83, 0x6e, 0xc2, 0x7a,
+ 0xa9, 0x41, 0x74, 0xd3, 0xa8, 0x56, 0x2c, 0x82, 0x3f, 0x6a, 0x18, 0x04, 0xef, 0xe1, 0x8a, 0x69,
+ 0x35, 0x2a, 0xf5, 0x1a, 0x2e, 0x1a, 0x3b, 0x06, 0x2e, 0xa9, 0x17, 0x50, 0x01, 0x56, 0x4b, 0x55,
+ 0xab, 0x52, 0x35, 0xad, 0xfa, 0x6e, 0xf5, 0x81, 0x15, 0x71, 0xa8, 0x0a, 0xba, 0x08, 0x68, 0xaf,
+ 0x51, 0x8f, 0xc3, 0x13, 0x5a, 0x17, 0xd0, 0xb8, 0x62, 0xe8, 0x63, 0x58, 0x66, 0x6e, 0xb1, 0x86,
+ 0xf5, 0x2b, 0x28, 0xeb, 0xc9, 0xdb, 0xb9, 0xad, 0x37, 0x4f, 0x75, 0xe9, 0x88, 0x85, 0xd5, 0x20,
+ 0x06, 0xd1, 0x7c, 0x50, 0xe3, 0x54, 0x2f, 0x3a, 0x6a, 0xb4, 0x2f, 0xe0, 0x3a, 0x77, 0x7e, 0xd5,
+ 0x77, 0xa8, 0xbf, 0xd3, 0x6b, 0x1d, 0xb8, 0xad, 0xf8, 0x6d, 0xb8, 0x0e, 0xb9, 0x36, 0xf5, 0x9b,
+ 0x4f, 0xec, 0x4e, 0x68, 0xb9, 0x0e, 0xd7, 0x24, 0x4b, 0x20, 0x02, 0x19, 0x0e, 0x7a, 0x0f, 0x52,
+ 0x6e, 0x48, 0xdb, 0x85, 0x04, 0x37, 0xc3, 0xad, 0xa9, 0x3a, 0x96, 0xdd, 0x0e, 0x35, 0x42, 0xda,
+ 0x26, 0x9c, 0x45, 0xfb, 0xa3, 0x02, 0xeb, 0x27, 0xef, 0x2f, 0x6f, 0xce, 0x43, 0xc8, 0x1f, 0x8c,
+ 0x60, 0xa4, 0x35, 0xfe, 0x6f, 0xea, 0x4e, 0x93, 0x24, 0xc6, 0xe4, 0xa0, 0x5d, 0xc8, 0x1f, 0x50,
+ 0x1a, 0x58, 0x76, 0xc7, 0xb1, 0x42, 0xfb, 0x19, 0x0d, 0xb8, 0x95, 0x72, 0x5b, 0xda, 0x54, 0xc9,
+ 0x35, 0xdf, 0x6d, 0x52, 0xb2, 0xc0, 0x38, 0xf5, 0x8e, 0x63, 0x32, 0x3e, 0xed, 0x5d, 0xb8, 0x74,
+ 0x9f, 0x86, 0xdb, 0x82, 0xb8, 0x1e, 0xda, 0x61, 0x2f, 0x88, 0xec, 0x77, 0x0d, 0x40, 0x0a, 0x19,
+ 0x98, 0x2f, 0x2b, 0x21, 0x86, 0xa3, 0xfd, 0x53, 0x81, 0xc2, 0x38, 0xab, 0x3c, 0xfa, 0x74, 0x5e,
+ 0xf4, 0x11, 0xe4, 0x23, 0x74, 0xc0, 0x19, 0xb9, 0xfe, 0xf9, 0xad, 0x8d, 0xa9, 0xfa, 0x8f, 0x6e,
+ 0xb5, 0xf8, 0x78, 0x78, 0xc9, 0x02, 0xbc, 0xeb, 0xd3, 0xae, 0x7d, 0xcc, 0x2e, 0x57, 0x24, 0x55,
+ 0xe4, 0x90, 0x37, 0x4f, 0xb1, 0x4a, 0xc4, 0x25, 0x05, 0xab, 0xdd, 0x18, 0x44, 0xfb, 0x65, 0x0a,
+ 0x56, 0x8b, 0x3e, 0xb5, 0x43, 0x2a, 0x55, 0xf8, 0x66, 0x09, 0x17, 0xed, 0x42, 0xb6, 0x45, 0xed,
+ 0x80, 0x5a, 0x3e, 0x3d, 0x90, 0x9e, 0xbb, 0x33, 0x3d, 0xfa, 0x18, 0x35, 0xa1, 0x07, 0xd4, 0xa7,
+ 0x9d, 0x26, 0x25, 0xf3, 0x2d, 0xb9, 0x46, 0x0f, 0x40, 0xed, 0x05, 0xd4, 0xb7, 0xdc, 0xce, 0x81,
+ 0xe7, 0xb7, 0x79, 0x8e, 0xe1, 0x87, 0xce, 0x6d, 0xbd, 0x31, 0x55, 0x60, 0x23, 0xa0, 0xbe, 0x31,
+ 0xe0, 0x21, 0x4b, 0xbd, 0x51, 0x00, 0x4b, 0x8b, 0x91, 0x2d, 0x87, 0x65, 0xcf, 0x92, 0x16, 0x6b,
+ 0x82, 0x6f, 0x58, 0x3c, 0xea, 0x8e, 0xc1, 0xd0, 0x0f, 0xe0, 0x5a, 0xb4, 0x43, 0xd7, 0xf7, 0x9a,
+ 0x34, 0x08, 0x58, 0x38, 0x74, 0x6d, 0xdf, 0x6e, 0xd3, 0x90, 0xfa, 0x41, 0x21, 0xcd, 0xf7, 0x7a,
+ 0x77, 0x96, 0xbd, 0x6a, 0x7d, 0x01, 0xb5, 0x3e, 0x3f, 0xb9, 0xd2, 0x3d, 0x19, 0x89, 0xee, 0xc0,
+ 0xb2, 0xeb, 0xd0, 0x76, 0xd7, 0x0b, 0x69, 0xa7, 0x79, 0x6c, 0x85, 0xde, 0x53, 0xda, 0x29, 0xcc,
+ 0xf1, 0x38, 0x55, 0x87, 0x10, 0x26, 0x83, 0xa3, 0x37, 0x01, 0xd9, 0x8e, 0xe3, 0x32, 0xb5, 0xed,
+ 0x16, 0x2f, 0x52, 0x34, 0x08, 0x0b, 0x19, 0x4e, 0xbd, 0x3c, 0xc0, 0xc8, 0xa8, 0xd0, 0x7e, 0x94,
+ 0x80, 0x97, 0x62, 0xe1, 0x22, 0xaf, 0xc5, 0xfb, 0x90, 0x91, 0x87, 0x90, 0x21, 0x73, 0x73, 0x96,
+ 0x80, 0x27, 0x11, 0x13, 0xfa, 0x1e, 0xac, 0x70, 0x77, 0x47, 0x86, 0xf3, 0xba, 0xdc, 0x2b, 0x22,
+ 0x84, 0x36, 0x4f, 0xf5, 0xb8, 0xb4, 0x56, 0x95, 0x73, 0x91, 0xe5, 0x5e, 0x1c, 0x84, 0x4c, 0x58,
+ 0x8a, 0xee, 0xe5, 0x81, 0xed, 0xb6, 0x7a, 0x3e, 0x95, 0xd1, 0x74, 0x67, 0x16, 0x3d, 0x77, 0x04,
+ 0x0b, 0x89, 0xee, 0xb6, 0x5c, 0x6b, 0x15, 0x40, 0xc2, 0x1c, 0x32, 0x8c, 0xc5, 0xdd, 0x79, 0x17,
+ 0xd2, 0x3c, 0x8c, 0xa5, 0x25, 0xb4, 0x19, 0x2e, 0x80, 0x60, 0xd0, 0xbe, 0x54, 0x60, 0x65, 0x44,
+ 0xa0, 0xb4, 0xee, 0xb9, 0x25, 0x4e, 0x3a, 0x77, 0xe2, 0x9b, 0x9f, 0xfb, 0x77, 0x0a, 0xa4, 0xf9,
+ 0x36, 0x68, 0x0d, 0xc4, 0x95, 0x1d, 0x24, 0xc3, 0x0c, 0x5f, 0x1b, 0x4e, 0x3f, 0x85, 0x24, 0xce,
+ 0x96, 0x42, 0x6e, 0x41, 0x9e, 0x47, 0x82, 0x1f, 0x25, 0x05, 0xee, 0xa8, 0x2c, 0x59, 0x64, 0xd0,
+ 0x7e, 0xa6, 0x40, 0xef, 0xc1, 0x9a, 0xd8, 0x98, 0x3e, 0xeb, 0xba, 0xb2, 0xc9, 0x0a, 0xdd, 0x36,
+ 0xb5, 0x02, 0xda, 0xe4, 0x97, 0x39, 0x49, 0x2e, 0x72, 0x02, 0xdc, 0xc7, 0x9b, 0x6e, 0x9b, 0xd6,
+ 0x69, 0x53, 0xbb, 0x03, 0xf9, 0xd1, 0xb4, 0x33, 0xe5, 0x14, 0xda, 0xd7, 0x4a, 0xe4, 0x63, 0x5e,
+ 0xbe, 0x86, 0x7c, 0xec, 0xb1, 0xf5, 0x4c, 0x1e, 0x11, 0x9c, 0x82, 0xe1, 0xf4, 0xec, 0x90, 0xf8,
+ 0xaf, 0x67, 0x87, 0xe4, 0xe4, 0xec, 0xa0, 0xfd, 0xaa, 0x1f, 0x8e, 0xf2, 0xec, 0x32, 0x1c, 0xbf,
+ 0x75, 0xe6, 0xc3, 0xef, 0x5e, 0x88, 0x8e, 0x5f, 0x83, 0x45, 0xfe, 0x4f, 0x2c, 0x1c, 0x5f, 0x9f,
+ 0xa1, 0x73, 0x10, 0x0c, 0xbb, 0x17, 0xc8, 0x82, 0x37, 0xb4, 0xde, 0x9e, 0x87, 0x39, 0x9f, 0x06,
+ 0xbd, 0x56, 0xa8, 0x6d, 0xc2, 0x4a, 0xd9, 0x0d, 0xa2, 0xc2, 0xdd, 0x2f, 0xf7, 0x97, 0x20, 0x23,
+ 0x4a, 0x49, 0xe4, 0xdc, 0x39, 0x5e, 0x13, 0x1c, 0xed, 0x21, 0xac, 0x8e, 0xd2, 0xcb, 0xf3, 0x7d,
+ 0x17, 0xe6, 0xa5, 0x12, 0x81, 0xec, 0x24, 0x67, 0xcb, 0x66, 0x7d, 0x2e, 0xed, 0x37, 0x0a, 0x2c,
+ 0x33, 0xd1, 0x5c, 0xf1, 0xbe, 0x22, 0x6b, 0x31, 0x45, 0x76, 0x2f, 0x44, 0xaa, 0xa0, 0x7d, 0xc8,
+ 0x0a, 0xb3, 0xb8, 0x4e, 0x14, 0x01, 0xff, 0x7f, 0x4a, 0xdb, 0x16, 0x93, 0x2e, 0x8c, 0x64, 0x38,
+ 0xc1, 0xee, 0x05, 0x32, 0xef, 0xc9, 0xff, 0x2f, 0xdf, 0x82, 0xf9, 0x08, 0xce, 0xa2, 0x3c, 0xda,
+ 0x83, 0x1f, 0x2b, 0x4b, 0x32, 0x92, 0x6e, 0x3b, 0x0d, 0x49, 0xd7, 0x09, 0x58, 0x3e, 0x1b, 0x96,
+ 0x3b, 0xc8, 0x3e, 0x91, 0xbb, 0x93, 0x67, 0x8a, 0x75, 0x6d, 0x1f, 0x56, 0x45, 0x97, 0x1e, 0xeb,
+ 0x2e, 0xbe, 0x61, 0xb5, 0xe0, 0x75, 0x28, 0x26, 0xf8, 0x7f, 0xba, 0x0e, 0xfd, 0x2d, 0x01, 0x19,
+ 0x49, 0x72, 0x5a, 0x83, 0x7a, 0xce, 0xac, 0xfc, 0xc2, 0xda, 0xb1, 0x6d, 0x98, 0x93, 0x2d, 0x6d,
+ 0xea, 0xcc, 0x8d, 0xb2, 0xe4, 0x3c, 0xa9, 0xa5, 0x4b, 0x3f, 0xb7, 0x96, 0x4e, 0xfb, 0x4b, 0x0a,
+ 0xf2, 0xa3, 0x3e, 0x40, 0xf7, 0x21, 0xdd, 0xb4, 0x7b, 0xb2, 0x26, 0xe7, 0xb7, 0xde, 0x3e, 0x83,
+ 0xff, 0x36, 0x8b, 0x8c, 0x91, 0x08, 0x7e, 0xf4, 0x08, 0x90, 0x4f, 0xbf, 0x4f, 0x9b, 0x21, 0x75,
+ 0xac, 0xa6, 0xed, 0x3b, 0x56, 0x78, 0xdc, 0xa5, 0xf2, 0xd9, 0x30, 0x3d, 0x2a, 0x8a, 0x3e, 0x75,
+ 0xdc, 0xb0, 0x68, 0xfb, 0x8e, 0x79, 0xdc, 0xa5, 0x44, 0x8d, 0xc4, 0x44, 0x10, 0xb4, 0x0e, 0x39,
+ 0x87, 0x06, 0x4d, 0xdf, 0xed, 0xf6, 0x1d, 0x96, 0x25, 0xc3, 0x20, 0xed, 0xdf, 0x09, 0x48, 0x73,
+ 0x6d, 0xd0, 0x4b, 0xb0, 0x5c, 0xd4, 0x1b, 0x75, 0x1c, 0x7b, 0xa6, 0xaf, 0x82, 0x5a, 0x2f, 0x57,
+ 0xd9, 0xe3, 0x5d, 0xdf, 0xd7, 0x8d, 0xb2, 0xbe, 0x5d, 0xc6, 0xaa, 0x82, 0xae, 0xc3, 0x15, 0x0e,
+ 0xd5, 0xcb, 0x04, 0xeb, 0xa5, 0x47, 0xd6, 0x76, 0xb5, 0xfa, 0x21, 0x2e, 0x59, 0xdb, 0x8f, 0xac,
+ 0x46, 0x1d, 0x13, 0x35, 0x81, 0x96, 0x61, 0xb1, 0x8c, 0xf5, 0x3a, 0xb6, 0xf0, 0xc3, 0x9a, 0x41,
+ 0x70, 0x49, 0x4d, 0x32, 0x9e, 0x6a, 0xc3, 0xac, 0x1b, 0x25, 0x6c, 0x15, 0xf5, 0x4a, 0x11, 0x97,
+ 0xcb, 0x62, 0x44, 0xf0, 0xc0, 0xa8, 0x94, 0xaa, 0x0f, 0xd4, 0x14, 0xba, 0x09, 0xeb, 0x35, 0xfd,
+ 0x11, 0x1f, 0x15, 0x60, 0x42, 0xaa, 0xc4, 0x2a, 0xea, 0xa4, 0x64, 0x99, 0x8f, 0x6a, 0xd8, 0x22,
+ 0xf8, 0x03, 0x5c, 0x34, 0x71, 0x49, 0x4d, 0x33, 0x31, 0x13, 0xa8, 0x4a, 0xb8, 0x58, 0x36, 0x2a,
+ 0xb8, 0xa4, 0xce, 0xa1, 0xab, 0x50, 0x88, 0x08, 0xaa, 0x35, 0xbe, 0x43, 0xa5, 0x6a, 0x5a, 0xfb,
+ 0x7a, 0xd9, 0x28, 0xa9, 0x19, 0xa6, 0xd8, 0x08, 0xbb, 0x3a, 0x8f, 0x34, 0x78, 0x99, 0x69, 0xcd,
+ 0xb4, 0x62, 0x94, 0xcc, 0x06, 0xa3, 0x02, 0xd4, 0x2c, 0xba, 0x06, 0x6b, 0xec, 0x8c, 0x46, 0xe5,
+ 0x7e, 0xff, 0xcc, 0xf2, 0x10, 0xb8, 0xa4, 0x02, 0xba, 0x02, 0x97, 0x22, 0x34, 0x13, 0x11, 0x9d,
+ 0x8f, 0x19, 0x2b, 0xc7, 0x90, 0xd5, 0x7d, 0x4c, 0xca, 0x7a, 0xad, 0xc6, 0x08, 0x08, 0xae, 0x63,
+ 0xb2, 0x2f, 0x86, 0x1a, 0x0b, 0xda, 0x6f, 0x13, 0x90, 0xe6, 0x39, 0x33, 0x96, 0x9e, 0x95, 0xa1,
+ 0xf4, 0x3c, 0xf1, 0xf6, 0x25, 0x5e, 0xe0, 0x63, 0x28, 0xf9, 0xfc, 0x1e, 0x43, 0xb1, 0x59, 0x45,
+ 0xea, 0xc4, 0x59, 0x45, 0xfa, 0xec, 0xb3, 0x8a, 0x7f, 0x25, 0x60, 0x3e, 0x02, 0xb1, 0xbc, 0x17,
+ 0x50, 0xff, 0xc8, 0x6d, 0x0e, 0x75, 0x71, 0x59, 0x09, 0x31, 0x1c, 0x74, 0x05, 0xb2, 0x41, 0x68,
+ 0xfb, 0x21, 0xef, 0x0f, 0x13, 0xbc, 0x3f, 0x9c, 0xe7, 0x80, 0x3a, 0x6d, 0xa2, 0x1b, 0xb0, 0xd0,
+ 0x9f, 0xd4, 0x31, 0x7c, 0x92, 0xe3, 0x73, 0x11, 0x8c, 0x91, 0x54, 0x20, 0x13, 0xba, 0xcd, 0xa7,
+ 0x34, 0x64, 0x89, 0x8a, 0x69, 0x7a, 0x6f, 0x26, 0x4d, 0x45, 0x3d, 0xa4, 0x8e, 0x29, 0x78, 0x49,
+ 0x24, 0x84, 0x15, 0xd5, 0xae, 0xef, 0x36, 0xa9, 0xcc, 0x52, 0xb3, 0xcc, 0x37, 0x04, 0xc3, 0x50,
+ 0xc6, 0x9c, 0x3b, 0x6f, 0xc6, 0xbc, 0x5c, 0x84, 0xfc, 0xa8, 0x62, 0xcc, 0x3e, 0x42, 0xb5, 0x81,
+ 0xf5, 0xe6, 0x05, 0xc0, 0x70, 0xd0, 0x2a, 0xa4, 0xf9, 0x94, 0x4a, 0x8e, 0xac, 0xc4, 0x42, 0xfb,
+ 0x7d, 0x12, 0x16, 0x86, 0x3b, 0x33, 0x84, 0x47, 0x53, 0xe2, 0x5b, 0x33, 0xf7, 0x74, 0xa3, 0x09,
+ 0x71, 0x7c, 0xba, 0x94, 0x78, 0x4e, 0xd3, 0xa5, 0xc9, 0xa9, 0x36, 0xf9, 0x02, 0x52, 0x6d, 0x6a,
+ 0x3c, 0xd5, 0xfe, 0x58, 0x39, 0x25, 0xd5, 0x5e, 0x82, 0x95, 0x2a, 0x29, 0x61, 0x62, 0x35, 0x2a,
+ 0x3b, 0x8d, 0xf2, 0x8e, 0x51, 0x8e, 0xb2, 0xed, 0x2c, 0x89, 0x31, 0x71, 0x5a, 0x62, 0x4c, 0x8e,
+ 0xa7, 0xbe, 0x94, 0xf6, 0xd7, 0x24, 0xac, 0x4c, 0x30, 0x1c, 0x7a, 0x1c, 0xf5, 0xd4, 0xd2, 0x95,
+ 0x1f, 0x9c, 0xd5, 0xf4, 0x9b, 0x93, 0xc7, 0x87, 0xbd, 0x56, 0x48, 0xa4, 0x64, 0xe4, 0xc0, 0x0a,
+ 0xbb, 0xc5, 0xd6, 0x98, 0xaf, 0xd9, 0xed, 0xba, 0x3b, 0xd3, 0xed, 0x8a, 0xc9, 0x47, 0xee, 0x18,
+ 0x0c, 0xbd, 0x0d, 0xab, 0xbd, 0x4e, 0x7f, 0x8b, 0x16, 0xb5, 0x7c, 0x6a, 0x07, 0xfd, 0x5a, 0xb8,
+ 0x32, 0x82, 0x23, 0x1c, 0xa5, 0xfd, 0x41, 0x81, 0xb5, 0x13, 0xd5, 0x47, 0x77, 0xe0, 0x35, 0xe1,
+ 0xa5, 0xbe, 0x8f, 0x8c, 0xb2, 0x61, 0x3e, 0x62, 0x69, 0xbd, 0x51, 0x8e, 0x0f, 0xb9, 0x97, 0x20,
+ 0x57, 0xd4, 0x2b, 0x11, 0xa9, 0xaa, 0xb0, 0x5a, 0x30, 0xe2, 0x5d, 0x8b, 0x39, 0xc7, 0x32, 0x4c,
+ 0xbc, 0xa7, 0x26, 0xd0, 0x2d, 0xb8, 0x31, 0x8a, 0x64, 0x85, 0xc2, 0x28, 0x62, 0xab, 0x58, 0xdd,
+ 0xdb, 0x36, 0x2a, 0xa2, 0x64, 0x24, 0x59, 0x38, 0x4c, 0x88, 0x13, 0xab, 0x6a, 0xee, 0x62, 0x62,
+ 0x11, 0xac, 0xd7, 0xab, 0x15, 0x35, 0xa5, 0xfd, 0x22, 0x0d, 0x17, 0x27, 0xdb, 0xa9, 0x9f, 0x72,
+ 0x45, 0x87, 0x7c, 0x96, 0x94, 0x8b, 0x9c, 0x7e, 0x60, 0x88, 0x06, 0xa5, 0x7c, 0x0e, 0x3f, 0x6d,
+ 0x4e, 0x70, 0xdd, 0x68, 0x68, 0x9c, 0xdd, 0x69, 0xe8, 0x29, 0x2c, 0x8c, 0x7c, 0x01, 0x10, 0xf3,
+ 0xbc, 0xfb, 0xe7, 0x51, 0x4f, 0xbc, 0x2c, 0x9c, 0x91, 0x6f, 0x03, 0x23, 0xc2, 0xd1, 0x2e, 0xe4,
+ 0x64, 0xb2, 0xe4, 0x09, 0x44, 0x94, 0xae, 0xd7, 0xa6, 0xee, 0x25, 0xf2, 0x2c, 0x4f, 0x1e, 0x10,
+ 0xf6, 0xff, 0xbf, 0x7c, 0x0f, 0x56, 0x26, 0x6c, 0xc7, 0x8b, 0x59, 0xd7, 0x0b, 0x03, 0xcb, 0xeb,
+ 0xd2, 0x0e, 0xf7, 0x53, 0x9a, 0x64, 0x39, 0xa4, 0xda, 0xa5, 0x1d, 0xed, 0x2b, 0x05, 0x0a, 0x27,
+ 0x19, 0x11, 0x6d, 0xc0, 0xab, 0x2c, 0x9e, 0xce, 0x17, 0x9f, 0x93, 0xda, 0xbd, 0x04, 0x8b, 0xb8,
+ 0xd1, 0x58, 0x33, 0x8d, 0xe2, 0x87, 0xd8, 0x8c, 0xc5, 0xe5, 0x0a, 0x2c, 0x19, 0x95, 0x62, 0x95,
+ 0x10, 0x5c, 0x34, 0xad, 0x1a, 0x31, 0x8a, 0x58, 0x4d, 0xa1, 0x57, 0xe0, 0x3a, 0xd7, 0x66, 0x4a,
+ 0xac, 0xa6, 0xb5, 0x9f, 0x29, 0x00, 0x03, 0x03, 0xa1, 0x9b, 0x90, 0x1f, 0x32, 0xef, 0xa0, 0x20,
+ 0x2d, 0x0c, 0x0c, 0x67, 0x38, 0xe8, 0x0e, 0x2c, 0x07, 0x4f, 0x3c, 0x3f, 0xb4, 0x86, 0xf3, 0x6e,
+ 0x42, 0x8c, 0x32, 0x38, 0xa2, 0x34, 0x80, 0x0f, 0xca, 0x6d, 0xf2, 0x8c, 0xe5, 0x56, 0xfb, 0x04,
+ 0x72, 0x84, 0x06, 0x5e, 0xcf, 0x67, 0x6d, 0x04, 0x7f, 0x44, 0x07, 0xa1, 0x7d, 0x70, 0x30, 0xd4,
+ 0xa5, 0xf1, 0xb5, 0xe1, 0xa0, 0x4b, 0x90, 0xf1, 0x3d, 0xaf, 0xcd, 0x30, 0x42, 0x8d, 0x39, 0xb6,
+ 0x34, 0x1c, 0xe6, 0x4d, 0x26, 0xfd, 0xd8, 0x0a, 0xdc, 0xcf, 0x85, 0x06, 0x69, 0x92, 0xe5, 0x90,
+ 0xba, 0xfb, 0x39, 0xd5, 0x7e, 0x9d, 0x84, 0x2b, 0x53, 0x06, 0x3a, 0xe8, 0x29, 0x64, 0xe5, 0xa4,
+ 0xc8, 0xf3, 0x65, 0x3e, 0x36, 0xce, 0x3b, 0x1d, 0x8a, 0xe1, 0x3c, 0x7f, 0x3b, 0x51, 0x50, 0xc8,
+ 0x40, 0x3e, 0xba, 0x07, 0xab, 0x51, 0x47, 0xd8, 0xa6, 0xe1, 0x13, 0xcf, 0x91, 0x33, 0x22, 0x7e,
+ 0x22, 0x4e, 0x1c, 0x75, 0x79, 0x7b, 0x1c, 0x2d, 0xe6, 0xc8, 0x3a, 0x5c, 0xeb, 0x75, 0xba, 0xb6,
+ 0x1f, 0x50, 0xc7, 0x9a, 0xc8, 0x9e, 0xe6, 0x06, 0xb9, 0x1c, 0x11, 0xd5, 0xc6, 0x45, 0x14, 0x20,
+ 0x73, 0x44, 0xfd, 0x60, 0xf0, 0x4e, 0x89, 0x96, 0xcc, 0xd1, 0xb1, 0x89, 0x99, 0xe7, 0xcb, 0x02,
+ 0xab, 0x76, 0x63, 0xc7, 0xd1, 0x1c, 0x50, 0xe3, 0x47, 0x44, 0x37, 0xe0, 0x5a, 0x54, 0xf8, 0x6a,
+ 0xa4, 0x5a, 0xc4, 0xf5, 0x7a, 0x95, 0x8c, 0x3f, 0x73, 0x06, 0xa8, 0xba, 0x49, 0x8c, 0x1a, 0x2b,
+ 0xbc, 0x97, 0x60, 0x65, 0x00, 0xdd, 0x26, 0xba, 0x51, 0x31, 0x09, 0xc6, 0x6a, 0x42, 0xfb, 0x7b,
+ 0x02, 0x96, 0xc7, 0xde, 0xfb, 0xe8, 0x2e, 0x5c, 0x9c, 0x30, 0x3c, 0x18, 0x44, 0xca, 0xca, 0xd8,
+ 0x3c, 0xc0, 0x70, 0xd0, 0x5b, 0xb0, 0x7a, 0x64, 0xb7, 0x5c, 0xc7, 0x12, 0xed, 0x69, 0x7f, 0x86,
+ 0x29, 0x7a, 0xd4, 0x65, 0x8e, 0xab, 0x33, 0x94, 0x1c, 0x5f, 0xa2, 0x3b, 0x80, 0x04, 0x03, 0xed,
+ 0x38, 0x03, 0x72, 0xd1, 0xb2, 0x2e, 0x71, 0x0c, 0xee, 0x38, 0x11, 0xf1, 0x36, 0xa4, 0x78, 0x8a,
+ 0x12, 0x8f, 0xeb, 0xcd, 0x59, 0xc2, 0x46, 0x68, 0xc6, 0x33, 0x15, 0xe7, 0x45, 0xb7, 0x20, 0xef,
+ 0xf9, 0xee, 0xa1, 0xdb, 0xb1, 0x5b, 0x96, 0x68, 0x03, 0xd3, 0x3c, 0x84, 0x17, 0x23, 0x68, 0x91,
+ 0x01, 0xd1, 0x2b, 0xb0, 0xd8, 0xec, 0xf9, 0x3e, 0x3b, 0xb8, 0xa0, 0x9a, 0xe3, 0x54, 0x0b, 0x12,
+ 0x28, 0x88, 0x36, 0x06, 0xbe, 0x1c, 0x58, 0x47, 0x7c, 0x6f, 0x58, 0xea, 0x8e, 0x5a, 0x46, 0xfb,
+ 0x6a, 0x0e, 0xd0, 0xf8, 0x2b, 0x63, 0xf2, 0xf7, 0x30, 0xe5, 0xb9, 0x7c, 0x0f, 0x43, 0xf7, 0xe0,
+ 0x62, 0x24, 0x38, 0xf4, 0xed, 0x4e, 0x60, 0x37, 0x23, 0x1d, 0xc5, 0x8d, 0x8e, 0xee, 0x86, 0x39,
+ 0x40, 0x1a, 0xce, 0xf9, 0x93, 0x0b, 0xd2, 0x01, 0x42, 0xfb, 0x99, 0x65, 0xb7, 0xb9, 0xc1, 0x52,
+ 0x33, 0xb3, 0x67, 0x43, 0xfb, 0x99, 0xce, 0x99, 0x50, 0x38, 0xb8, 0xb0, 0xf2, 0x76, 0x50, 0xc7,
+ 0x7a, 0x7c, 0xcc, 0x7d, 0x94, 0xdf, 0xda, 0x3e, 0xe3, 0x1b, 0x2e, 0x96, 0x1f, 0xa8, 0xb3, 0x7d,
+ 0xdc, 0xbf, 0xf0, 0x43, 0x30, 0xf4, 0xc6, 0x24, 0x3f, 0xce, 0xc9, 0xa1, 0x66, 0xdc, 0x93, 0xe8,
+ 0x9d, 0x13, 0x2f, 0x46, 0x46, 0xb2, 0x4c, 0xbc, 0x1a, 0xef, 0x43, 0xc6, 0xa1, 0x5d, 0x2f, 0x70,
+ 0xc3, 0xc2, 0xfc, 0x0c, 0xc3, 0xbc, 0x92, 0xa0, 0x25, 0x11, 0x13, 0xda, 0x81, 0x5c, 0xc7, 0xb3,
+ 0x82, 0x27, 0xde, 0x67, 0xd6, 0x01, 0xa5, 0x85, 0x2c, 0x97, 0xf1, 0xea, 0x54, 0x19, 0x15, 0xaf,
+ 0xfe, 0xc4, 0xfb, 0x6c, 0x87, 0x52, 0x92, 0xed, 0x44, 0xff, 0x4e, 0xf8, 0x28, 0x0d, 0xe7, 0xfc,
+ 0x28, 0xdd, 0xee, 0x47, 0xf4, 0xb0, 0x31, 0x87, 0xfa, 0x7b, 0x99, 0x6e, 0xe4, 0x2c, 0x25, 0xfe,
+ 0x3c, 0x18, 0xc1, 0xde, 0xaf, 0x56, 0xef, 0xf3, 0xe7, 0x41, 0x01, 0x56, 0x47, 0x10, 0x35, 0x9d,
+ 0x98, 0x15, 0x4c, 0xd4, 0xc4, 0xf6, 0x02, 0x2b, 0x3c, 0xf2, 0x79, 0xef, 0x68, 0x5f, 0x40, 0x9a,
+ 0xeb, 0xc4, 0x9e, 0xbb, 0x3c, 0xfc, 0xac, 0xb6, 0xdb, 0xf4, 0x3d, 0x71, 0x79, 0x92, 0x24, 0xc7,
+ 0x61, 0x7b, 0x1c, 0x34, 0xb8, 0xcc, 0xcd, 0x63, 0xab, 0xe9, 0x39, 0x54, 0xc6, 0xff, 0x42, 0x04,
+ 0x2c, 0x7a, 0x0e, 0x45, 0x6f, 0x00, 0x62, 0x3c, 0x6e, 0xe7, 0x30, 0xf2, 0x68, 0x68, 0x1f, 0x46,
+ 0x5f, 0x13, 0x24, 0x46, 0x66, 0x13, 0xfb, 0x50, 0xfb, 0xa1, 0x02, 0xd9, 0xbe, 0x79, 0xd1, 0x3d,
+ 0x48, 0x32, 0x9f, 0x28, 0x33, 0x1b, 0x92, 0x91, 0x23, 0x1d, 0xe6, 0x0f, 0x28, 0x1d, 0x7e, 0xb6,
+ 0xbd, 0x7a, 0x3a, 0x2b, 0x4f, 0x65, 0x99, 0x03, 0xca, 0xff, 0xd1, 0xfe, 0xac, 0x40, 0x46, 0x46,
+ 0x0a, 0xfa, 0xf6, 0x20, 0xc0, 0x66, 0x57, 0xa4, 0x1f, 0x5e, 0xdf, 0x81, 0xab, 0x6d, 0xb7, 0x63,
+ 0xd9, 0xce, 0x91, 0xdd, 0x69, 0x52, 0xab, 0xc9, 0xfe, 0xb6, 0x5a, 0x83, 0x29, 0x82, 0xc8, 0xe0,
+ 0x6b, 0x6d, 0xb7, 0xa3, 0x0b, 0x92, 0xe2, 0x10, 0x05, 0x4b, 0xce, 0x06, 0x2c, 0x48, 0x59, 0xe7,
+ 0x39, 0x51, 0x4e, 0xf2, 0xf2, 0x53, 0x7d, 0xad, 0x40, 0xaa, 0xde, 0xf2, 0x66, 0xf8, 0x6d, 0xc8,
+ 0xe8, 0x9c, 0x24, 0x31, 0x75, 0x4e, 0x92, 0x3c, 0x65, 0x4e, 0x92, 0x1a, 0x9f, 0x93, 0xbc, 0x0e,
+ 0xea, 0xc8, 0xaf, 0x8e, 0x58, 0x44, 0x88, 0xe2, 0xbf, 0x34, 0x0c, 0x37, 0xed, 0x43, 0xb4, 0x03,
+ 0x59, 0x5f, 0x76, 0x56, 0x62, 0x96, 0x91, 0xdb, 0xba, 0x3d, 0xf5, 0xec, 0x43, 0x7d, 0x18, 0x19,
+ 0xb0, 0x6a, 0xff, 0x50, 0x60, 0x29, 0x36, 0xe9, 0x3a, 0xf1, 0x9b, 0x0f, 0x3b, 0xfe, 0xa1, 0x7b,
+ 0x44, 0x3b, 0x56, 0xc7, 0x6e, 0x47, 0x51, 0x9d, 0xe5, 0x90, 0x8a, 0xdd, 0xa6, 0xcc, 0x7c, 0x07,
+ 0x76, 0xdb, 0x6d, 0x1d, 0x0b, 0xbc, 0x88, 0x65, 0x10, 0x20, 0x4e, 0x50, 0x82, 0x8c, 0xed, 0x38,
+ 0x3e, 0x0d, 0x02, 0x99, 0xae, 0xa7, 0x8f, 0x5f, 0x6a, 0x5e, 0x10, 0xda, 0x2d, 0x5d, 0x70, 0x90,
+ 0x88, 0x15, 0x5d, 0x85, 0x6c, 0x48, 0x5b, 0xb4, 0xfb, 0xc4, 0xeb, 0x50, 0x69, 0x9e, 0x01, 0x00,
+ 0xad, 0x42, 0x9a, 0xb6, 0x6d, 0xb7, 0x25, 0x3f, 0xdb, 0x8b, 0x85, 0xf6, 0xa5, 0x02, 0x8b, 0x23,
+ 0xe2, 0x58, 0xcb, 0xc4, 0x2b, 0xad, 0x7f, 0x1c, 0xb5, 0xa2, 0x72, 0x89, 0x2e, 0xc3, 0x7c, 0xcb,
+ 0x6b, 0xda, 0xfd, 0xe1, 0x49, 0x96, 0xf4, 0xd7, 0xe8, 0x22, 0x7b, 0xc2, 0x1d, 0x0e, 0xfa, 0x2c,
+ 0xb9, 0x62, 0x47, 0xef, 0x72, 0xf1, 0xe2, 0xc2, 0xcb, 0x49, 0x9d, 0x00, 0xf1, 0xeb, 0x7e, 0x0b,
+ 0xf2, 0x41, 0xe8, 0x53, 0x1a, 0x5a, 0x91, 0x05, 0x84, 0xe6, 0x8b, 0x02, 0x2a, 0xb5, 0xda, 0xf8,
+ 0x89, 0x02, 0x8b, 0x23, 0x53, 0x27, 0xf4, 0x32, 0x5c, 0x8e, 0xa6, 0xa3, 0x75, 0x53, 0x37, 0x1b,
+ 0xf5, 0x58, 0x66, 0x5b, 0x84, 0x6c, 0xb1, 0x5a, 0xd9, 0x31, 0xc8, 0x1e, 0x2e, 0xa9, 0x0a, 0x6f,
+ 0xd7, 0x70, 0xa5, 0xc4, 0xc8, 0xf7, 0x30, 0x29, 0xee, 0xea, 0x15, 0xf6, 0xd2, 0xe0, 0x78, 0xf9,
+ 0x53, 0x30, 0xb4, 0x00, 0xf3, 0x62, 0xc6, 0xca, 0x07, 0x1b, 0x39, 0xc8, 0x54, 0xaa, 0xfc, 0xe7,
+ 0x62, 0x6a, 0x0a, 0xbd, 0x04, 0xcb, 0x72, 0x61, 0xd5, 0x70, 0x45, 0x2f, 0x1b, 0x1f, 0xe3, 0x92,
+ 0x9a, 0xde, 0xe8, 0x42, 0x7e, 0x74, 0x86, 0x83, 0xd6, 0xe1, 0x6a, 0x91, 0xe0, 0x92, 0x61, 0x0e,
+ 0x8d, 0x53, 0x46, 0xf5, 0x9a, 0x87, 0xd4, 0xbe, 0x51, 0xd7, 0x55, 0x05, 0xe5, 0x01, 0xf6, 0xf4,
+ 0xba, 0x89, 0x09, 0x23, 0x55, 0x13, 0xac, 0x5d, 0xd4, 0xf7, 0x30, 0x31, 0xd8, 0xe3, 0x09, 0x3f,
+ 0xac, 0x11, 0x5c, 0xaf, 0xab, 0x49, 0xa6, 0x55, 0xc9, 0xa8, 0x17, 0xab, 0xfb, 0x98, 0xa8, 0xa9,
+ 0x8d, 0x9f, 0x2a, 0xb0, 0x3c, 0xd6, 0x52, 0xb1, 0xf7, 0x50, 0x6c, 0x3a, 0x3d, 0x61, 0xe3, 0x6b,
+ 0xb0, 0x16, 0x23, 0xaa, 0x1b, 0x95, 0xfb, 0x65, 0x6c, 0x35, 0xea, 0x2c, 0xe1, 0x8f, 0x4f, 0xb8,
+ 0xf7, 0x1a, 0x65, 0xd3, 0xe0, 0xd8, 0x04, 0x3b, 0x57, 0x0c, 0xdb, 0xa8, 0x94, 0x8d, 0x3d, 0xc3,
+ 0xc4, 0x25, 0x4e, 0x91, 0xdc, 0xf8, 0xb9, 0x02, 0x6a, 0xbc, 0x19, 0xe2, 0x56, 0x27, 0x38, 0xe2,
+ 0x9c, 0xe8, 0x27, 0x5e, 0x81, 0xf0, 0x50, 0xa9, 0xda, 0x37, 0x4a, 0xdc, 0x63, 0x57, 0xe0, 0xd2,
+ 0x10, 0xa2, 0x52, 0x1d, 0x42, 0x26, 0x62, 0x5c, 0x04, 0xef, 0x34, 0x2a, 0x25, 0xee, 0xb6, 0x51,
+ 0x84, 0xf0, 0x05, 0x2e, 0xa9, 0xa9, 0x8d, 0xbb, 0x90, 0xed, 0xa7, 0x39, 0x74, 0x11, 0xd0, 0x8e,
+ 0xf1, 0x10, 0x97, 0x2c, 0xa2, 0x9b, 0xd8, 0x2a, 0xe1, 0x1d, 0xbd, 0x51, 0x36, 0xd5, 0x0b, 0xcc,
+ 0x25, 0x35, 0x4c, 0xac, 0x1a, 0x26, 0xec, 0x0d, 0xa9, 0x3c, 0x9e, 0xe3, 0x3f, 0x31, 0xbd, 0xfb,
+ 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x14, 0x95, 0x3d, 0x8b, 0x6e, 0x2a, 0x00, 0x00,
}