-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpetstore.proto
More file actions
318 lines (248 loc) · 7.34 KB
/
petstore.proto
File metadata and controls
318 lines (248 loc) · 7.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
syntax = "proto3";
package petstore;
import "google/api/annotations.proto";
import "google/protobuf/wrappers.proto";
import "google/protobuf/timestamp.proto";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
option (gogoproto.goproto_registration) = true;
option (gogoproto.messagename_all) = true;
option php_generic_services = true;
message TestMessage {
oneof test2 {
PetStatusWrapper.PetStatus pet_status = 1;
Pet pet = 2;
OrderStatus.OrderStatus order_status = 3;
Category category = 4;
}
google.protobuf.Int32Value test_option = 5 [ (gogoproto.moretags) = 'sensitive:"true"' ];
google.protobuf.Int32Value test_option2 = 6 [ (gogoproto.moretags) = 'sensitive:"true"', (gogoproto.casttype) = 'sensitive:"true"' ];
oneof test_integers {
int32 test_v32 = 7;
fixed32 test_f32 = 8;
int64 test_v64 = 9;
fixed64 test_f64 = 10;
}
oneof test_dates {
fixed64 unix_seconds = 11;
fixed64 unix_millis = 12;
google.protobuf.Timestamp proto_timestamp = 13;
}
}
message VerificationType {
enum VerificationType {
NONE = 0;
EMAIL = 1;
}
}
message PetStatusWrapper {
enum PetStatus {
AVAILABLE = 0;
PENDING = 1;
SOLD = 2;
}
}
message OrderStatus {
enum OrderStatus {
PLACED = 0;
APPROVED = 1;
DELIVERED = 2;
}
}
message Order {
reserved 1, 2, 5;
int64 id = 4;
google.protobuf.Int64Value pet_id = 3;
google.protobuf.Int32Value quantity = 6;
google.protobuf.StringValue ship_date = 7;
OrderStatus.OrderStatus status = 8;
google.protobuf.BoolValue complete = 9;
}
message Category {
google.protobuf.Int64Value id = 1;
google.protobuf.StringValue name = 2;
}
message User {
google.protobuf.Int64Value id = 1;
google.protobuf.StringValue username = 2;
google.protobuf.StringValue first_name = 3;
google.protobuf.StringValue last_name = 4;
google.protobuf.StringValue email = 5;
google.protobuf.StringValue password = 6;
google.protobuf.StringValue phone = 7;
google.protobuf.Int32Value user_status = 8;
}
message Tag {
google.protobuf.Int64Value id = 1;
google.protobuf.StringValue name = 2;
}
message Pet {
google.protobuf.Int64Value id = 1;
Category category = 2;
string name = 3;
repeated string photo_urls = 4;
repeated Tag tags = 5;
PetStatusWrapper.PetStatus status = 6;
}
message ApiResponse {
google.protobuf.Int32Value code = 1;
google.protobuf.StringValue type = 2;
google.protobuf.StringValue message = 3;
}
message UpdatePetRequest {
repeated string tags = 1;
Pet pet = 2;
}
message UpdatePetResponse {
}
message AddPetRequestCustom {
Pet request_body = 1;
}
message AddPetResponseCustom {
}
message FindPetsByStatusRequest {
repeated PetStatusWrapper.PetStatus status = 1;
}
message FindPetsByStatusResponse {
repeated Pet pets = 1;
}
message FindPetsByTagsRequest {
repeated string tags = 1;
}
message FindPetsByTagsResponse {
repeated Pet pets = 1;
}
message GetPetByIdRequest {
int64 pet_id = 1;
}
message GetPetByIdResponse {
Pet pet = 1;
}
message DeletePetRequest {
google.protobuf.StringValue api_key = 1;
int64 pet_id = 2;
}
message DeletePetResponse {
}
message UploadFileRequest {
int64 pet_id = 1;
bytes request_body = 2;
}
message UploadFileResponse {
ApiResponse response = 1;
}
message PlaceOrderRequest {
Order request_body = 1;
}
message PlaceOrderResponse {
Order order = 1;
}
message GetOrderByIdRequest {
int64 order_id = 1;
}
message GetOrderByIdResponse {
Order order = 1;
}
message DeleteOrderRequest {
int64 order_id = 1;
}
message DeleteOrderResponse {
}
message CreateUserRequest {
User user = 1;
}
message CreateUserResponse {
}
message CreateUsersWithArrayInputRequest {
repeated User request_body = 1;
}
message CreateUsersWithArrayInputResponse {
}
message CreateUsersWithListInputRequest {
repeated User request_body = 1;
}
message CreateUsersWithListInputResponse {
}
message LoginUserRequest {
string username = 1;
string password = 2;
}
message LoginUserResponse {
string info = 1;
}
message LogoutUserRequest {
}
message LogoutUserResponse {
}
message GetUserByNameRequest {
string username = 1;
}
message GetUserByNameResponse {
User user = 1;
}
message UpdateUserRequest {
string username = 1;
User request_body = 2;
}
message UpdateUserResponse {
}
message DeleteUserRequest {
VerificationType.VerificationType username = 1;
}
message DeleteUserResponse {
}
service PetstoreService {
rpc updatePet (UpdatePetRequest) returns (UpdatePetResponse) {
option (google.api.http) = { put: "/pet" body: "pet" };
}
rpc addPet (AddPetRequestCustom) returns (AddPetResponseCustom) {
option (google.api.http) = { post: "/pet" body: "request_body" };
}
rpc findPetsByStatus (FindPetsByStatusRequest) returns (FindPetsByStatusResponse) {
option (google.api.http) = { get: "/pet/findByStatus" response_body: "pets" };
}
rpc findPetsByTags (FindPetsByTagsRequest) returns (FindPetsByTagsResponse) {
option (google.api.http) = { get: "/pet/findByTags" response_body: "pets" };
}
rpc getPetById (GetPetByIdRequest) returns (GetPetByIdResponse) {
option (google.api.http) = { get: "/pet/{petId}" response_body: "pet" };
}
rpc deletePet (DeletePetRequest) returns (DeletePetResponse) {
option (google.api.http) = { delete: "/pet/{petId}" };
}
rpc uploadFile (UploadFileRequest) returns (UploadFileResponse) {
option (google.api.http) = { post: "/pet/{petId}/uploadImage" body: "request_body" response_body: "response" };
}
rpc placeOrder (PlaceOrderRequest) returns (PlaceOrderResponse) {
option (google.api.http) = { post: "/store/order" body: "request_body" response_body: "order" };
}
rpc getOrderById (GetOrderByIdRequest) returns (GetOrderByIdResponse) {
option (google.api.http) = { get: "/store/order/{orderId}" response_body: "order" };
}
rpc deleteOrder (DeleteOrderRequest) returns (DeleteOrderResponse) {
option (google.api.http) = { delete: "/store/order/{orderId}" };
}
rpc createUser (CreateUserRequest) returns (CreateUserResponse) {
option (google.api.http) = { post: "/user" body: "user" };
}
rpc createUsersWithArrayInput (CreateUsersWithArrayInputRequest) returns (CreateUsersWithArrayInputResponse) {
option (google.api.http) = { post: "/user/createWithArray" body: "request_body" };
}
rpc createUsersWithListInput (CreateUsersWithListInputRequest) returns (CreateUsersWithListInputResponse) {
option (google.api.http) = { post: "/user/createWithList" body: "request_body" };
}
rpc loginUser (LoginUserRequest) returns (LoginUserResponse) {
option (google.api.http) = { get: "/user/login" response_body: "info" };
}
rpc logoutUser (LogoutUserRequest) returns (LogoutUserResponse) {
option (google.api.http) = { get: "/user/logout" };
}
rpc getUserByName (GetUserByNameRequest) returns (GetUserByNameResponse) {
option (google.api.http) = { get: "/user/{username}" response_body: "user" };
}
rpc updateUser (UpdateUserRequest) returns (UpdateUserResponse) {
option (google.api.http) = { put: "/user/{username}" body: "request_body" };
}
rpc deleteUser (DeleteUserRequest) returns (DeleteUserResponse) {
option (google.api.http) = { delete: "/user/{username}" };
}
}