// Sample Protocol Buffers schema — samplefiles.com syntax = "proto3"; package samplefiles.v1; import "google/protobuf/timestamp.proto"; option go_package = "example.com/samplefiles/v1;samplefilesv1"; enum OrderStatus { ORDER_STATUS_UNSPECIFIED = 0; ORDER_STATUS_PENDING = 1; ORDER_STATUS_PAID = 2; ORDER_STATUS_SHIPPED = 3; } message Customer { int64 id = 1; string first_name = 2; string last_name = 3; string email = 4; optional string phone = 5; double balance = 6; bool active = 7; repeated string tags = 8; map attributes = 9; } message Order { string id = 1; int64 customer_id = 2; OrderStatus status = 3; google.protobuf.Timestamp created_at = 4; repeated LineItem items = 5; message LineItem { string sku = 1; int32 quantity = 2; double unit_price = 3; } } service CustomerService { rpc GetCustomer(GetCustomerRequest) returns (Customer); rpc ListOrders(ListOrdersRequest) returns (stream Order); } message GetCustomerRequest { int64 id = 1; } message ListOrdersRequest { int64 customer_id = 1; int32 page_size = 2; }