-
Notifications
You must be signed in to change notification settings - Fork 1
/
oas.yaml
280 lines (260 loc) · 7.48 KB
/
oas.yaml
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
openapi: 3.0.0
info:
version: '0.1'
title: 'CS:GO Server API Reference'
description: >-
Simple CS:GO server API to centralize server authentication and RCON
communication.
components:
securitySchemes:
apiToken:
type: apiKey
in: query
description: API authentication token
name: token
responses:
ListResponse:
description: List of servers
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessfulResponseSchema'
- type: object
properties:
response:
type: array
items:
$ref: '#/components/schemas/Server'
SendResponse:
description: Command was executed
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessfulResponseSchema'
- type: object
properties:
message:
example: 'Sent'
SendAndWaitResponse:
description: Command was executed
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessfulResponseSchema'
- type: object
properties:
response:
type: object
properties:
170.81.43.200:27001:
example: 'CPU NetIn NetOut Uptime Maps FPS Players Svms +-ms ~tick 10.0 69646.3 142959.1 1454 37 102.43 9 2.40 1.82 0.62'
170.81.43.200:27003:
example: 'CPU NetIn NetOut Uptime Maps FPS Players Svms +-ms ~tick 10.0 69646.3 142959.1 1454 37 102.43 9 2.40 1.82 0.62'
170.81.43.200:27004:
example: 'CPU NetIn NetOut Uptime Maps FPS Players Svms +-ms ~tick 10.0 69646.3 142959.1 1454 37 102.43 9 2.40 1.82 0.62'
SendAllAndWaitResponse:
description: Command was executed
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/SuccessfulResponseSchema'
- type: object
properties:
response:
example: 'CPU NetIn NetOut Uptime Maps FPS Players Svms +-ms ~tick 10.0 69646.3 142959.1 1454 37 102.43 9 2.40 1.82 0.62'
401Response:
description: Missing authentication
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ErrorResponseSchema'
- type: object
properties:
message:
example: 'Missing authentication token'
403Response:
description: Missing authentication
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ErrorResponseSchema'
- type: object
properties:
message:
example: 'Invalid token'
TimeoutResponse:
description: Missing authentication
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ErrorResponseSchema'
- type: object
properties:
message:
example: 'Invalid token'
schemas:
Server:
title: Server schema
type: object
properties:
hostname:
type: string
example: Server 1
name:
type: string
example: Server 1
ip:
type: string
example: 170.81.43.200
port:
type: number
example: 27001
Response:
title: Generic successful response
type: object
properties:
error:
type: boolean
response:
oneOf:
- type: object
- type: array
SuccessfulResponseSchema:
title: Sucessful response
type: object
allOf:
- $ref: '#/components/schemas/Response'
- type: object
properties:
error:
example: false
ErrorResponseSchema:
title: Sucessful response
type: object
allOf:
- $ref: '#/components/schemas/Response'
- type: object
properties:
message:
type: string
error:
example: true
security:
- apiToken: []
paths:
/list:
get:
operationId: GET_list
summary: Return list of controlled servers
tags:
- Commands
responses:
200:
$ref: '#/components/responses/ListResponse'
401:
$ref: '#/components/responses/401Response'
403:
$ref: '#/components/responses/403Response'
500:
$ref: '#/components/responses/TimeoutResponse'
/send:
get:
operationId: GET_send
summary: Send a command to specified server
tags:
- Commands
responses:
200:
$ref: '#/components/responses/SendAndWaitResponse'
202:
$ref: '#/components/responses/SendResponse'
401:
$ref: '#/components/responses/401Response'
403:
$ref: '#/components/responses/403Response'
500:
$ref: '#/components/responses/TimeoutResponse'
description: ''
parameters:
- name: ip
in: query
description: The target server IP
required: true
schema:
type: string
example: 10.10.10.10
- name: port
in: query
description: The target server port
required: true
schema:
type: number
example: 27015
- name: command
in: query
description: The command to be executed
required: true
schema:
type: string
example: sm plugins list
- name: delay
in: query
description: Amount of milliseconds to delay command execution
required: false
schema:
type: number
example: 1500
- name: wait
in: query
description: If response should wait for server response
required: false
schema:
type: boolean
example: true
/sendAll:
get:
operationId: GET_sendAll
summary: Send a command to specified server
tags:
- Commands
responses:
200:
$ref: '#/components/responses/SendAllAndWaitResponse'
202:
$ref: '#/components/responses/SendResponse'
401:
$ref: '#/components/responses/401Response'
403:
$ref: '#/components/responses/403Response'
500:
$ref: '#/components/responses/TimeoutResponse'
description: ''
parameters:
- name: command
in: query
description: The command to be executed
required: true
schema:
type: string
example: sm plugins list
- name: delay
in: query
description: Amount of milliseconds to delay command execution
required: false
schema:
type: number
example: 1500
- name: wait
in: query
description: If response should wait for server response
required: false
schema:
type: boolean
example: true