aboutsummaryrefslogtreecommitdiff
path: root/cmd/web/docs/swagger.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/web/docs/swagger.yaml')
-rw-r--r--cmd/web/docs/swagger.yaml241
1 files changed, 241 insertions, 0 deletions
diff --git a/cmd/web/docs/swagger.yaml b/cmd/web/docs/swagger.yaml
new file mode 100644
index 0000000..20d06a8
--- /dev/null
+++ b/cmd/web/docs/swagger.yaml
@@ -0,0 +1,241 @@
+basePath: /api/v1
+definitions:
+ main.respError:
+ properties:
+ error:
+ example: Descriptive Error message
+ type: string
+ type: object
+ main.respStatus:
+ properties:
+ status:
+ example: OK
+ type: string
+ type: object
+ steam.Game:
+ properties:
+ LibraryPath:
+ example: C:\Program Files (x86)\Steam\steamapps
+ type: string
+ Name:
+ example: Doom
+ type: string
+ Size:
+ example: 12345
+ type: integer
+ type: object
+host: localhost:8899
+info:
+ contact:
+ email: steam-export@riedstra.dev
+ name: Mitchell Riedstra
+ url: https://riedstra.dev/steam-export
+ description: The steam exporter is designed to make it easy to export steam games
+ across the network.
+ license:
+ name: ISC
+ url: https://opensource.org/licenses/ISC
+ title: Steam Exporter API
+ version: "1.0"
+paths:
+ /lib/game/{game}:
+ delete:
+ consumes:
+ - application/json
+ description: Handle deletion of a game
+ parameters:
+ - description: Name of the videogame
+ in: path
+ name: game
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Game was deleted
+ schema:
+ $ref: '#/definitions/main.respStatus'
+ "400":
+ description: Bad request, most likely no game supplied
+ schema:
+ $ref: '#/definitions/main.respError'
+ "404":
+ description: Game not found
+ schema:
+ $ref: '#/definitions/main.respError'
+ "409":
+ description: Another operation is currently running
+ schema:
+ $ref: '#/definitions/main.respError'
+ "500":
+ description: Internal Server Error
+ schema:
+ $ref: '#/definitions/main.respError'
+ summary: Delete a videogame
+ tags:
+ - all
+ - game
+ get:
+ consumes:
+ - application/json
+ description: |-
+ Streams a tarball of the game including the ACF file down
+ to the client machine
+ parameters:
+ - description: Name of the videogame
+ in: path
+ name: game
+ required: true
+ type: string
+ produces:
+ - application/tar
+ responses:
+ "200":
+ description: ""
+ summary: Handles downloading of a game
+ tags:
+ - all
+ - game
+ /lib/games:
+ get:
+ consumes:
+ - application/json
+ description: Returns a list of all currently installed and available games
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ items:
+ $ref: '#/definitions/steam.Game'
+ type: array
+ summary: Get available games
+ tags:
+ - all
+ - game
+ /lib/install:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ Attemps to install a game from the provided URI
+ It tries to be smart about it, http, https, or a location
+ on disk are supported.
+ parameters:
+ - description: URI to fetch from
+ in: query
+ name: url
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/main.respStatus'
+ "500":
+ description: Internal Server Error
+ schema:
+ $ref: '#/definitions/main.respError'
+ summary: Installs a game
+ tags:
+ - all
+ - game
+ /lib/path:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ If no other operatoins are currently running this will change
+ the path in which the current library is pointed. Implies a
+ refresh.
+ parameters:
+ - description: Path on disk to search for a steam library
+ in: query
+ name: path
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/main.respStatus'
+ "500":
+ description: Internal Server Error
+ schema:
+ $ref: '#/definitions/main.respError'
+ summary: Set library path to new location on disk
+ tags:
+ - all
+ - library
+ /lib/refresh:
+ post:
+ consumes:
+ - application/json
+ description: |-
+ if no other actions are running on the library it will trigger a
+ refre
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: '#/definitions/main.respStatus'
+ "500":
+ description: Internal Server Error
+ schema:
+ $ref: '#/definitions/main.respError'
+ summary: Refresh the current steam library
+ tags:
+ - all
+ - library
+ /share-link:
+ get:
+ consumes:
+ - application/json
+ description: |-
+ The URL returned is a best effort guess at what your internal
+ network IP is, on Windows this involves automatically using
+ the IP from the interface associated with your default route.
+ On other platforms this involves simply returning the first
+ sane looking IP address with no regard for anything else.
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: URL to currently running server
+ schema:
+ type: string
+ summary: Return share link
+ tags:
+ - all
+ - information
+ /version:
+ get:
+ consumes:
+ - application/json
+ description: Returns the version of the server
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Version string
+ schema:
+ type: string
+ summary: Return the version string
+ tags:
+ - all
+securityDefinitions:
+ ApiKeyAuth:
+ in: header
+ name: Authorization
+ type: apiKey
+ BasicAuth:
+ type: basic
+swagger: "2.0"