aboutsummaryrefslogtreecommitdiff
path: root/reference/Steam-Exporter.yaml
diff options
context:
space:
mode:
authorMitchell Riedstra <mitch@riedstra.dev>2021-08-09 21:11:52 -0400
committerMitchell Riedstra <mitch@riedstra.dev>2021-08-09 21:12:03 -0400
commit9d5d130038ed90564c3acfb2fd2ff64e3d7b0bd9 (patch)
treea95d63e240f0b63ffa4ff2ad3571fa45165b5708 /reference/Steam-Exporter.yaml
parentc202f2eca32e1ab2e313417168351df1c58ee062 (diff)
downloadsteam-export-9d5d130038ed90564c3acfb2fd2ff64e3d7b0bd9.tar.gz
steam-export-9d5d130038ed90564c3acfb2fd2ff64e3d7b0bd9.tar.xz
Fix up cli. Continue fixing up the library and web app. Initial API spec
Diffstat (limited to 'reference/Steam-Exporter.yaml')
-rw-r--r--reference/Steam-Exporter.yaml282
1 files changed, 282 insertions, 0 deletions
diff --git a/reference/Steam-Exporter.yaml b/reference/Steam-Exporter.yaml
new file mode 100644
index 0000000..8af7b23
--- /dev/null
+++ b/reference/Steam-Exporter.yaml
@@ -0,0 +1,282 @@
+swagger: '2.0'
+info:
+ description: Steam exporter API
+ title: Steam Exporter
+ version: '1.0'
+ contact:
+ name: Mitchell
+ url: 'https://riedstra.dev'
+ email: mitch@riedstra.dev
+host: 'localhost:8899'
+schemes:
+ - http
+produces:
+ - application/json
+consumes:
+ - application/json
+paths:
+ /quit:
+ put:
+ summary: ''
+ operationId: put-quit
+ responses:
+ '200':
+ description: OK
+ description: Quits the application
+ /lib/games:
+ get:
+ summary: Your GET endpoint
+ tags: []
+ responses:
+ '200':
+ description: OK
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/Game'
+ operationId: get-library
+ description: Returns the games in the Steam Library
+ parameters: []
+ /lib:
+ get:
+ summary: Your GET endpoint
+ tags: []
+ responses:
+ '200':
+ description: OK
+ schema:
+ $ref: '#/definitions/Status'
+ operationId: get-lib
+ description: Returns basic status about the library
+ /lib/refresh:
+ post:
+ summary: ''
+ operationId: post-lib-refresh
+ responses:
+ '200':
+ description: OK
+ description: Calls for a refresh of the library
+ /lib/path:
+ parameters: []
+ post:
+ summary: ''
+ operationId: post-lib-path-path
+ responses:
+ '200':
+ description: OK
+ '409':
+ description: Conflict. Returns all running jobs.
+ schema:
+ type: array
+ items:
+ $ref: '#/definitions/Job'
+ description: Changes the library to the specified directory if possible.
+ parameters:
+ - type: string
+ in: query
+ name: path
+ description: Path to set the library to
+ /lib/install:
+ post:
+ summary: ''
+ operationId: post-lib-extract
+ responses:
+ '200':
+ description: OK
+ '409':
+ description: Conflict
+ schema:
+ type: object
+ properties: {}
+ description: Extract a game from a specified URL
+ parameters:
+ - type: string
+ in: query
+ name: url
+ description: URL to extract the game from
+ parameters: []
+ '/lib/game/{game}':
+ parameters:
+ - type: string
+ name: game
+ in: path
+ required: true
+ description: The game to operate on
+ get:
+ summary: Your GET endpoint
+ tags: []
+ responses:
+ '200':
+ description: OK
+ schema:
+ type: object
+ properties: {}
+ '404':
+ description: Not Found
+ schema:
+ type: object
+ properties: {}
+ operationId: get-lib-game-package
+ description: 'Packages up the game, streaming the tarball to the client.'
+ parameters:
+ - type: integer
+ in: header
+ name: Estimated-size
+ description: Estimated size of the game in bytes
+ delete:
+ summary: ''
+ operationId: delete-lib-game-game
+ responses:
+ '200':
+ description: OK
+ schema:
+ type: object
+ properties: {}
+ '409':
+ description: Conflict
+ description: Deletes the game in question
+ /version:
+ get:
+ responses:
+ '200':
+ description: OK
+ schema:
+ type: object
+ properties: {}
+ summary: Your GET endpoint
+ tags: []
+ operationId: get-version
+ description: Returns the version information about the application
+ parameters:
+ - in: body
+ name: body
+ schema:
+ type:
+ - string
+ - object
+ /share-link:
+ get:
+ summary: Your GET endpoint
+ tags: []
+ responses:
+ '200':
+ description: OK
+ schema:
+ type: object
+ properties: {}
+ operationId: get-share-link
+ description: Returns the share link
+ parameters:
+ - in: body
+ name: body
+ schema:
+ type: string
+definitions:
+ Status:
+ title: Status
+ type: object
+ description: Returned from the Status Endpoint
+ properties:
+ Running:
+ type: array
+ items:
+ $ref: '#/definitions/Job'
+ Previous:
+ type: array
+ items:
+ $ref: '#/definitions/Job'
+ x-examples:
+ example-1:
+ Running:
+ - Action: string
+ Target:
+ Name: string
+ LibraryPath: string
+ Size: 0
+ Running: true
+ Start: '2019-08-24T14:15:22Z'
+ Errors:
+ - {}
+ Size: 0
+ Transferred: 0
+ ETA: 0
+ Previous:
+ - Action: string
+ Target:
+ Name: string
+ LibraryPath: string
+ Size: 0
+ Running: true
+ Start: '2019-08-24T14:15:22Z'
+ Errors:
+ - {}
+ Size: 0
+ Transferred: 0
+ ETA: 0
+ Game:
+ title: Game
+ type: object
+ x-examples:
+ example-1:
+ Name: Counter-Strike Source
+ LibraryPath: 'C:\Program Files (x86)\Steam\steamapps\'
+ Size: 123456
+ properties:
+ Name:
+ type: string
+ LibraryPath:
+ type: string
+ Size:
+ type: integer
+ description: Size in bytes
+ Job:
+ description: Information about a specific job
+ type: object
+ x-examples:
+ example-1:
+ action: extractFile
+ Target:
+ Name: Counter-Strike Source
+ LibraryPath: /home/mitch/Downloads/Counter Strike Source
+ Size: 0
+ Running: false
+ Start: '2021-08-09T19:35:56.360665389-04:00'
+ Errors: []
+ Size: 4586057216
+ Transferred: 4582277120
+ ETA: 0
+ properties:
+ Action:
+ type: string
+ minLength: 1
+ Target:
+ $ref: '#/definitions/Game'
+ Running:
+ type: boolean
+ Start:
+ type: string
+ minLength: 1
+ format: date-time
+ Errors:
+ type: array
+ uniqueItems: true
+ minItems: 0
+ items:
+ type: object
+ Size:
+ type: integer
+ x-nullable: true
+ Transferred:
+ type: integer
+ x-nullable: true
+ ETA:
+ type: integer
+ x-nullable: true
+ required:
+ - Action
+ - Target
+ - Running
+ - Start
+ - Errors
+basePath: /api/v1
+securityDefinitions: {}