-
Notifications
You must be signed in to change notification settings - Fork 0
/
runrs-api.json
1 lines (1 loc) · 5.83 KB
/
runrs-api.json
1
{"openapi":"3.0.3","info":{"title":"runrs","description":"A microservice to manage GitLab Runners in Docker via REST","contact":{"name":"bmc"},"license":{"name":"Apache-2.0"},"version":"0.6.2"},"servers":[{"url":"http://0.0.0.0:3000/","description":"Local development server"}],"paths":{"/gitlab-runners":{"post":{"tags":["gitlab_runners"],"operationId":"create","requestBody":{"description":"GitLabRunner to create","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabRunner"}}},"required":true},"responses":{"201":{"description":"Created new GitLab Runner","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabRunner"}}}},"400":{"description":"GitLab Runner already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/gitlab-runners/list":{"get":{"tags":["gitlab_runners"],"operationId":"list","responses":{"200":{"description":"Read all GitLabRunners","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabRunner"}}}},"404":{"description":"GitLabRunner not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/gitlab-runners/{uuid}":{"get":{"tags":["gitlab_runners"],"operationId":"read","parameters":[{"name":"uuid","in":"path","description":"GitLabRunner UUID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Read all GitLabRunners","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabRunner"}}}},"404":{"description":"GitLabRunner not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["gitlab_runners"],"operationId":"update","parameters":[{"name":"uuid","in":"path","description":"GitLab Runner UUID","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"description":"GitLabRunner to update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabRunner"}}},"required":true},"responses":{"200":{"description":"Updated GitLabRunner","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabRunner"}}}},"204":{"description":"GitLabRunner already up-to-date"},"404":{"description":"GitLabRunner not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["gitlab_runners"],"operationId":"delete","parameters":[{"name":"uuid","in":"path","description":"GitLabRunner UUID","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Deleted GitLabRunner","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitLabRunner"}}}},"404":{"description":"GitLabRunner not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["err_type","msg"],"properties":{"err_type":{"$ref":"#/components/schemas/ErrorType"},"msg":{"type":"string"}}},"ErrorType":{"type":"string","enum":["ConnectionFailed","InvalidArgument","AlreadyExists","Forbidden","Unchanged","NotFound","BadRequest","InternalError","Unimplemented","Other"]},"GitLabRunner":{"type":"object","description":"Public API for configuring a single CI/CD job executor, not the GitLab Runner service.\n\nGitLab publish a service binary they refer to as \"GitLab Runner\". You can install it locally or\non you server [as per its documentation](https://docs.gitlab.com/runner/install/). This binary\nis, however, *not* the CI/CD job executor; rather, it _manages_ the executors. As such, when you\n\"register a runner\" (as per [their documentation](https://docs.gitlab.com/runner/register/)),\nyou use the `gitlab-runner` binary to do so.\n\nThe `GitLabRunner` struct replicates the API of the `gitlab-runner` binary, albeit exposing a\nsmaller configuration surface. In other words: if you run `gitlab-runner register --help`, you\nget a list of options. We support a subset of those options, and those which are supported are\nnamed the same here as they are in `gitlab-runner`, except in `snake_case` instead of\n`kebab-case`. For example, `--docker-image` becomes `docker_image`.","required":["id","url","token","docker_image"],"properties":{"docker_image":{"type":"string","description":"Docker image to be used","example":"alpine:latest"},"id":{"type":"integer","format":"int32","description":"ID of the runner within the GitLab instance; unique for that GitLab instance","minimum":0},"name":{"type":"string","description":"Runner name (default: Docker-style random name)","example":"usain-bolt"},"token":{"type":"string","description":"Runner token, obtained from the GitLab instance. See [documentation of the `glrcfg`\ncrate](https://docs.rs/glrcfg/latest/glrcfg/runner/struct.RunnerToken.html) for details.","example":"glrt-0123456789_abcdefXYZ"},"token_obtained_at":{"type":"string","format":"date-time","example":"2023-08-23T23:23:23Z"},"url":{"type":"string","format":"uri","description":"GitLab instance URL","example":"https://gitlab.your-company.com"},"uuid":{"type":"string","format":"uuid","example":"be924fdd-fb28-468c-8c70-1f0ed3af4485"}}}},"securitySchemes":{"api_token":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"security":[{"api_token":[]}],"tags":[{"name":"runrs","description":"GitLab Runners Docker API"}]}