Booking related messages.
This file is really just an example. The data model is completely
fictional.
Represents the booking of a vehicle.
Vehicles are some cool shit. But drive carefully!
Field | Type | Label | Description |
vehicle_id | int32 | ID of booked vehicle. |
|
customer_id | int32 | Customer that booked the vehicle. |
|
status | BookingStatus | Status of the booking. |
|
confirmation_sent | bool | Has booking confirmation been sent? |
|
payment_received | bool | Has payment been received? |
|
color_preference | string | Deprecated. Color preference of the customer. |
Name | Option |
color_preference | true |
Represents the status of a vehicle booking.
Field | Type | Label | Description |
id | int32 | Unique booking status ID. |
|
description | string | Booking status description. E.g. "Active". |
Field | Validations |
description |
|
Represents the booking status ID.
Field | Type | Label | Description |
id | int32 | Unique booking status ID. |
An empty message for testing
Service for handling vehicle bookings.
Method Name | Request Type | Response Type | Description |
BookVehicle | Booking | BookingStatus | Used to book a vehicle. Pass in a Booking and a BookingStatus will be returned. |
BookingUpdates | BookingStatusID | BookingStatus stream | Used to subscribe to updates of the BookingStatus. |
Method Name | Method | Pattern | Body |
BookVehicle | POST | /api/bookings/vehicle/{vehicle_id} | * |
This file has messages for describing a customer.
Represents a mail address.
Field | Type | Label | Description |
address_line_1 | string | required | First address line. |
address_line_2 | string | optional | Second address line. |
address_line_3 | string | optional | Second address line. |
town | string | required | Address town. |
county | string | optional | Address county, if applicable. |
country | string | required | Address country. |
Represents a customer.
Field | Type | Label | Description |
id | int32 | required | Unique customer ID. |
first_name | string | required | Customer first name. |
last_name | string | required | Customer last name. |
details | string | optional | Customer details. |
email_address | string | optional | Customer e-mail address. |
phone_number | string | repeated | Customer phone numbers, primary first. |
mail_addresses | Address | repeated | Customer mail addresses, primary first. |
Messages describing manufacturers / vehicles.
Represents a manufacturer of cars.
Field | Type | Label | Description |
id | int32 | required | The unique manufacturer ID. |
code | string | required | A manufacturer code, e.g. "DKL4P". |
details | string | optional | Manufacturer details (minimum orders et.c.). |
category | Manufacturer.Category | optional | Manufacturer category. Default: CATEGORY_EXTERNAL |
Represents a vehicle model.
Field | Type | Label | Description |
id | string | required | The unique model ID. |
model_code | string | required | The car model code, e.g. "PZ003". |
model_name | string | required | The car model name, e.g. "Z3". |
daily_hire_rate_dollars | sint32 | required | Dollars per day. |
daily_hire_rate_cents | sint32 | required | Cents per day. |
Represents a vehicle that can be hired.
Field | Type | Label | Description |
id | int32 | required | Unique vehicle ID. |
model | Model | required | Vehicle model. |
reg_number | string | required | Vehicle registration number. |
mileage | sint32 | optional | Current vehicle mileage, if known. |
category | Vehicle.Category | optional | Vehicle category. |
daily_hire_rate_dollars | sint32 | optional | Dollars per day. Default: 50 |
daily_hire_rate_cents | sint32 | optional | Cents per day. |
Extension | Type | Base | Number | Description |
series | string | Model | 100 | Vehicle model series. |
Represents a vehicle category. E.g. "Sedan" or "Truck".
Field | Type | Label | Description |
code | string | required | Category code. E.g. "S". |
description | string | required | Category name. E.g. "Sedan". |
Manufacturer category. A manufacturer may be either inhouse or external.
Name | Number | Description |
CATEGORY_INHOUSE | 0 | The manufacturer is inhouse. |
CATEGORY_EXTERNAL | 1 | The manufacturer is external. |
Extension | Type | Base | Number | Description |
country | string | Manufacturer | 100 | Manufacturer country. Default: China |
.proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
double | double | double | float | float64 | double | float | Float | |
float | float | float | float | float32 | float | float | Float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |