source: admin/WebConsole/rest/opengnsys-api.yml @ a86a15b

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since a86a15b was 8b8e948, checked in by ramon <ramongomez@…>, 9 years ago

#708: Instalar librería Swagger-UI en el servidor para documentar la API REST a partir del fichero YAML.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@5022 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 24.9 KB
Line 
1swagger: '2.0'
2
3info:
4  version: "1.1.0"
5  title: OpenGnsys REST API definition
6  description: |
7    Information about the OpenGnsys REST API functions (including Server and
8    Repository Manager).
9  contact:
10    name: OpenGnsys Project
11    url: http://opengnsys.es/
12  license:
13    name: Creative Commons 4.0 International
14    url: http://creativecommons.org/licenses/by/4.0/
15basePath: /opengnsys/rest
16schemes:
17  - https
18consumes:
19  - application/json
20produces:
21  - application/json
22securityDefinitions:
23  apikey:
24    type: apiKey
25    name: Authorization
26    in: header
27# Paths description.
28paths:
29  /login:
30    post:
31      description: Check user login and returns his/her API key.
32      parameters:
33        - in: body
34          name: authdata
35          description: JSON authentication data
36          required: true
37          schema:
38            type: object
39            properties:
40              username:
41                type: string
42              password:
43                type: string
44                format: password
45      responses:
46        "200":
47          description: Successful login
48          schema:
49            type: object
50            properties:
51              userid:
52                type: integer
53                description: user identificator
54                format: int32
55              apikey:
56                description: API key to include in ``Authorization`` header
57                type: string
58        "400":
59          description: Missing parameters
60        "500":
61          description: Authentication error
62      tags:
63        - server
64        - user
65  /ous:
66    get:
67      description: Gets all `OU` objects.
68      responses:
69        "200":
70          description: Successful response
71          schema:
72            type: array
73            items:
74              type: object
75              properties:
76                id:
77                  type: integer
78                  description: Organization Unit identificator
79                  format: int32
80                  minimum: 1
81                name:
82                  type: string
83                  description: Organization Unit name
84      tags:
85        - server
86        - ou
87  /ous/{ouid}:
88    get:
89      description: Get an `OU` object.
90      parameters:
91        - name: ouid
92          in: path
93          description: Organization Unit identificator
94          required: true
95          type: integer
96      responses:
97        "200":
98          description: Successful response
99          schema:
100            type: object
101            properties:
102              id:
103                type: integer
104                description: OU identificator
105              name:
106                type: string
107                description: OU name
108              description:
109                type: string
110                description: OU description
111      security:
112        - apikey: []
113      tags:
114        - server
115        - ou
116  /ous/{ouid}/labs:
117    get:
118      description: Get all `lab` objects defined in an `OU`.
119      parameters:
120        - name: ouid
121          in: path
122          description: OU identificator
123          required: true
124          type: integer
125      responses:
126        "200":
127          description: Successful response
128          schema:
129            type: array
130            items:
131              type: object
132              properties:
133                id:
134                  type: integer
135                  description: laboratory identificator
136                  format: int32
137                name:
138                  type: string
139                  description: laboratory name
140                inremotepc:
141                  type: boolean
142                  description: laboratory usable in Remote PC Project flag
143                ou:
144                  type: object
145                  properties:
146                    id:
147                      type: integer
148                      description: OU identificator
149                      format: int32
150      security:
151        - apikey: []
152      tags:
153        - server
154        - lab
155  /ous/{ouid}/labs/{labid}:
156    get:
157      description: Get a `lab` object.
158      parameters:
159        - name: ouid
160          in: path
161          description: OU identificator
162          required: true
163          type: integer
164        - name: labid
165          in: path
166          description: laboratory identificator
167          required: true
168          type: integer
169      responses:
170        "200":
171          description: Successful response
172          schema:
173            type: object
174            properties:
175              id:
176                description: laboratory identificator
177                type: integer
178                format: int32
179              name:
180                description: laboratory name
181                type: string
182              location:
183                description: laboratory location
184                type: string
185              description:
186                description: laboratory description
187                type: string
188              inremotepc:
189                description: check if this lab can be included in Remote PC Project
190                type: boolean
191              capacity:
192                description: maximum number of people in the lab
193                type: integer
194                format: int32
195              defclients:
196                description: number of defined clients in the lab
197                type: integer
198                format: int32
199              projector:
200                description: check if this lab has a projector
201                type: boolean
202              board:
203                description: check if this lab has an electronic board
204                type: boolean
205              routerip:
206                description: lab router IP address
207                type: string
208              netmask:
209                description: network mask to use in the lab
210                type: string
211              ntp:
212                description: NTP server IP address
213                type: string
214              dns:
215                description: DNS server IP address
216                type: string
217              proxyurl:
218                description: Proxy server URL
219                type: string
220              mcastmode:
221                description: Multicast protocol mode (full-duplex, half-duplex).
222                type: string
223                enum: [ "full-duplex", "half-duplex" ]
224                default: "full-duplex"
225              mcastip:
226                description: Multicast IP address
227                type: string
228              mcastport:
229                description: Multicast port
230                type: integer
231                format: int32
232              mcastspeed:
233                description: Multicast speed (in Mbps)
234                type: integer
235                format: int32
236              p2pmode:
237                description: Bittorrent connection type ("peer", "leecher". "seeder").
238                type: string
239              p2ptime:
240                description: Bittorrent connection extra time (in s.)
241                type: integer
242                format: int32
243              image:
244                description: Lab's picture file
245                type: string
246      security:
247        - apikey: []
248      tags:
249        - server
250        - lab
251  /ous/{ouid}/labs/{labid}/clients:
252    get:
253      description: Get all `client` objects defined in an `lab`.
254      parameters:
255        - name: ouid
256          in: path
257          description: OU identificator
258          required: true
259          type: integer
260        - name: labid
261          in: path
262          description: Lab identificator
263          required: true
264          type: integer
265      responses:
266        "200":
267          description: Successful response
268          schema:
269            type: array
270            items:
271              type: object
272              properties:
273                id:
274                  type: integer
275                  format: int32
276                name:
277                  type: string
278                ou:
279                  type: object
280                  properties:
281                    id:
282                      type: integer
283                      format: int32
284                lab:
285                  type: object
286                  properties:
287                    id:
288                      type: integer
289                      format: int32
290      security:
291        - apikey: []
292      tags:
293        - server
294        - client
295  /ous/{ouid}/labs/{labid}/clients/{clientid}:
296    get:
297      description: Get a `client` object.
298      parameters:
299        - name: ouid
300          in: path
301          description: OU identificator
302          required: true
303          type: integer
304        - name: labid
305          in: path
306          description: Lab identificator
307          required: true
308          type: integer
309        - name: clientid
310          in: path
311          description: Client identificator
312          required: true
313          type: integer
314      responses:
315        "200":
316          description: Successful response
317          schema:
318            type: object
319            properties:
320              id:
321                description: client id
322                type: integer
323                format: int32
324              name:
325                description: client name
326                type: string
327              serialno:
328                description: client serial number
329                type: string
330              netiface:
331                description: main network interface
332                type: string
333              netdriver:
334                description: client MAC address (kernel module)
335                type: string
336              mac:
337                description: client MAC address
338                type: string
339              ip:
340                description: client IP address
341                type: string
342              netmask:
343                description: subnet mask address
344                type: string
345              routerip:
346                description: network router IP address
347                type: string
348              repo:
349                description: repository identification
350                type: object
351                properties:
352                  id:
353                    type: integer
354                    format: int32
355              validation:
356                description: boot validation flag
357                type: boolean
358              boottype:
359                description: boot template type
360                type: string
361              image:
362                description: client's picture file
363                type: string
364      security:
365        - apikey: []
366      tags:
367        - server
368        - client
369  /ous/{ouid}/labs/{labid}/clients/{clientid}/hardware:
370    get:
371      description: Get the hardware definition of a `client` object.
372      parameters:
373        - name: ouid
374          in: path
375          description: OU identificator
376          required: true
377          type: integer
378        - name: labid
379          in: path
380          description: Lab identificator
381          required: true
382          type: integer
383        - name: clientid
384          in: path
385          description: Client identificator
386          required: true
387          type: integer
388      responses:
389        "200":
390          description: Successful response
391          schema:
392            type: object
393            properties:
394              id:
395                description: client id
396                type: integer
397                format: int32
398              name:
399                description: client name
400                type: string
401              hardware:
402                description: hardware components
403                type: array
404                items:
405                  type: object
406                  properties:
407                    type:
408                      description: hardware component type
409                      type: string
410                    description:
411                      description: hardware component description
412                      type: string
413      tags:
414        - server
415        - client
416  /ous/{ouid}/labs/{labid}/clients/{clientid}/diskcfg:
417    get:
418      description: Get disks configuration of a `client`
419      parameters:
420        - name: ouid
421          in: path
422          description: OU identificator
423          required: true
424          type: integer
425        - name: labid
426          in: path
427          description: Lab identificator
428          required: true
429          type: integer
430        - name: clientid
431          in: path
432          description: Client identificator
433          required: true
434          type: integer
435      responses:
436        "200":
437          description: Successful response
438          schema:
439            type: object
440            properties:
441              id:
442                description: client id
443                type: integer
444                format: int32
445              name:
446                description: client name
447                type: string
448              diskcfg:
449                description: |
450                  array of disk configuration data, including general disk information and
451                  partition/filesystem information (if not specified in paratmeter
452                  description, it is only valid in partition configuration).
453                type: array
454                items:
455                  type: object
456                  properties:
457                    disk:
458                      description: disk number (only for disks configurations)
459                      type: integer
460                      format: int32
461                    parttable:
462                      description: partition table type (only for disks configurations)
463                      type: string
464                      enum: [ "MSDOS", "GPT", "LVM", "ZVOL" ]
465                    partition:
466                      description: partition number
467                      type: integer
468                      format: int32
469                      minimum: 1
470                    parttype:
471                      description: partition type
472                      type: string
473                    size:
474                      description: disk size (used in both, disk and partition configuration)
475                      type: integer
476                      format: int64
477                    filesystem:
478                      description: filesystem type
479                      type: string
480                    usage:
481                      description: data usage percentage in a formated filesystem
482                      type: integer
483                      format: int32
484                    os:
485                      description: installed operating system
486                      type: string
487                    image:
488                      description: restaured image data (if needed)
489                      type: object
490                      properties:
491                        id:
492                          type: integer
493                          format: int32
494                        deploydate:
495                          description: image restauration/deploying date
496                          type: string
497                          format: date-time
498                        updated:
499                          description: flag to check if the restaured image is updated
500                          type: boolean
501      tags:
502        - server
503        - client
504  /ous/{ouid}/labs/{labid}/clients/{clientid}/status:
505    get:
506      description: Get execution status of a `client`
507      parameters:
508        - name: ouid
509          in: path
510          description: OU identificator
511          required: true
512          type: integer
513        - name: labid
514          in: path
515          description: Lab identificator
516          required: true
517          type: integer
518        - name: clientid
519          in: path
520          description: Client identificator
521          required: true
522          type: integer
523      responses:
524        "200":
525          description: Successful response
526          schema:
527            type: object
528            properties:
529              id:
530                description: client id
531                type: integer
532                format: int32
533              ip:
534                description: client IP address
535                type: string
536              status:
537                description: execution status
538                type: string
539                enum: [ "nodata", "off", "ogclient", "busy", "linux", "windows", "unknown" ]
540              loggedin:
541                description: flag to check if an user is logged in
542                type: boolean
543      tags:
544        - server
545        - client
546  /ous/{ouid}/repos:
547    get:
548      description: Get all `repo` objects defined in an `OU`.
549      parameters:
550        - name: ouid
551          in: path
552          description: OU identificator
553          required: true
554          type: integer
555      responses:
556        "200":
557          description: Successful response
558          schema:
559            type: array
560            items:
561              type: object
562              properties:
563                id:
564                  type: integer
565                  format: int32
566                name:
567                  type: string
568                ou:
569                  type: object
570                  properties:
571                    id:
572                      type: integer
573                      format: int32
574      security:
575        - apikey: []
576      tags:
577        - server
578        - repo
579  /ous/{ouid}/repos/{repoid}:
580    get:
581      description: Get a `repo` object.
582      parameters:
583        - name: ouid
584          in: path
585          description: OU identificator
586          required: true
587          type: integer
588        - name: repoid
589          in: path
590          description: repository identificator
591          required: true
592          type: integer
593      responses:
594        "200":
595          description: Successful response
596          schema:
597            type: object
598            properties:
599              id:
600                description: repository id
601                type: integer
602                format: int32
603              name:
604                description: repository name
605                type: string
606              description:
607                description: repository description
608                type: string
609              ip:
610                description: repository IP address
611                type: string
612      security:
613        - apikey: []
614      tags:
615        - server
616        - repo
617  /ous/{ouid}/images:
618    get:
619      description: Get all `image` objects defined in an `OU`.
620      parameters:
621        - name: ouid
622          in: path
623          description: OU identificator
624          required: true
625          type: integer
626      responses:
627        "200":
628          description: Successful response
629          schema:
630            type: array
631            items:
632              type: object
633              properties:
634                id:
635                  type: integer
636                  format: int32
637                name:
638                  type: string
639                inremotepc:
640                  type: boolean
641                ou:
642                  type: object
643                  properties:
644                    id:
645                      type: integer
646                      format: int32
647      security:
648        - apikey: []
649      tags:
650        - server
651        - image
652  /ous/{ouid}/images/{imageid}:
653    get:
654      description: Get an `image` object.
655      parameters:
656        - name: ouid
657          in: path
658          description: OU identificator
659          required: true
660          type: integer
661        - name: imageid
662          in: path
663          description: image definition identificator
664          required: true
665          type: integer
666      responses:
667        "200":
668          description: Successful response
669          schema:
670            type: object
671            properties:
672              id:
673                description: image id
674                type: integer
675                format: int32
676              name:
677                description: image name
678                type: string
679              description:
680                description: image description
681                type: string
682              inremotepc:
683                description: image usable in Remote PC Project flag
684                type: boolean
685              type:
686                description: image type (``monolithic``, ``basic``, ``incremental``)
687                type: string
688              baseimg:
689                description: base image for an incremental image (if ``type`` is ``incremental``)
690                type: string
691              path:
692                description: image path (if ``type`` is ``incremental``)
693                type: string
694              repo:
695                description: repository identification
696                type: object
697                properties:
698                  id:
699                    type: integer
700                    format: int32
701              client:
702                description: model client's data
703                type: object
704                properties:
705                  id:
706                    description: model client's id.
707                    type: integer
708                    format: int32
709                  disk:
710                    description: source disk number
711                    type: integer
712                    format: int32
713                  partition:
714                    description: source partition number
715                    type: integer
716                    format: int32
717              creationdate:
718                description: image creation date
719                type: string
720                format: date-time
721              release:
722                description: image creation release
723                type: string
724      security:
725        - apikey: []
726      tags:
727        - server
728        - image
729  /ous/{ouid}/images/{imageid}/software:
730    get:
731      description: Get software inventory store into an `image`
732      parameters:
733        - name: ouid
734          in: path
735          description: OU identificator
736          required: true
737          type: integer
738        - name: imageid
739          in: path
740          description: image definition identificator
741          required: true
742          type: integer
743      responses:
744        "200":
745          description: Successful response
746          schema:
747            type: object
748            properties:
749              id:
750                description: image id
751                type: integer
752                format: int32
753              name:
754                description: image name
755                type: string
756              os:
757                description: installed operating system
758                type: string
759              software:
760                description: array of installed applications
761                type: array
762                items:
763                  type: object
764                  properties:
765                    application:
766                      description: application name and version
767                      type: string
768      security:
769        - apikey: []
770      tags:
771        - server
772        - image
773  #/ous/{ouid}/images/{imageid}/boot:
774  #/repository/images
775  #/repository/poweron
776  /ogagent/started:
777    post:
778      description: Process push notification when OGAgent is started
779      parameters:
780        - in: body
781          name: data
782          description: Operation data
783          required: true
784          schema:
785            type: object
786            properties:
787              ip:
788                type: string
789              mac:
790                type: string
791              ostype:
792                type: string
793              osversion:
794                type: string
795              secret:
796                type: string
797      responses:
798        "200":
799          description: Successful operation
800        "400":
801          description: An error has occurred
802      tags:
803        - server
804        - agent
805  /ogagent/stopped:
806    post:
807      description: Process push notification when OGAgent is stopped
808      parameters:
809        - in: body
810          name: data
811          description: Operation data
812          required: true
813          schema:
814            type: object
815            properties:
816              ip:
817                type: string
818              mac:
819                type: string
820              ostype:
821                type: string
822              osversion:
823                type: string
824      responses:
825        "200":
826          description: Successful operation
827        "400":
828          description: An error has occurred
829      tags:
830        - server
831        - agent
832  /ogagent/loggedin:
833    post:
834      description: Process push notification when an user logged in
835      parameters:
836        - in: body
837          name: data
838          description: Operation data
839          required: true
840          schema:
841            type: object
842            properties:
843              ip:
844                type: string
845              user:
846                type: string
847      responses:
848        "200":
849          description: Successful operation
850        "400":
851          description: An error has occurred
852      tags:
853        - server
854        - agent
855  /ogagent/loggedout:
856    post:
857      description: Process push notification when an user is logged in
858      parameters:
859        - in: body
860          name: data
861          description: Operation data
862          required: true
863          schema:
864            type: object
865            properties:
866              ip:
867                type: string
868              user:
869                type: string
870      responses:
871        "200":
872          description: Successful operation
873        "400":
874          description: An error has occurred
875      tags:
876        - server
877        - agent
878
Note: See TracBrowser for help on using the repository browser.