basePath: /api/v1
consumes:
    - application/json
definitions:
    APIErrorResponse:
        type: object
        x-go-type:
            import:
                alias: apiserver_params
                package: github.com/cloudbase/garm/apiserver/params
            type: APIErrorResponse
    ControllerInfo:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: ControllerInfo
    CreateEnterpriseParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: CreateEnterpriseParams
    CreateGithubCredentialsParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: CreateGithubCredentialsParams
    CreateGithubEndpointParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: CreateGithubEndpointParams
    CreateInstanceParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: CreateInstanceParams
    CreateOrgParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: CreateOrgParams
    CreatePoolParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: CreatePoolParams
    CreateRepoParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: CreateRepoParams
    Credentials:
        items:
            $ref: '#/definitions/GithubCredentials'
        type: array
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Credentials
    Enterprise:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Enterprise
    Enterprises:
        items:
            $ref: '#/definitions/Enterprise'
        type: array
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Enterprises
    GithubCredentials:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: GithubCredentials
    GithubEndpoint:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: GithubEndpoint
    GithubEndpoints:
        items:
            $ref: '#/definitions/GithubEndpoint'
        type: array
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: GithubEndpoints
    HookInfo:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: HookInfo
    InstallWebhookParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: InstallWebhookParams
    Instance:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Instance
    Instances:
        items:
            $ref: '#/definitions/Instance'
        type: array
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Instances
    JWTResponse:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: JWTResponse
    Job:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Job
    Jobs:
        items:
            $ref: '#/definitions/Job'
        type: array
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Jobs
    NewUserParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: NewUserParams
    Organization:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Organization
    Organizations:
        items:
            $ref: '#/definitions/Organization'
        type: array
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Organizations
    PasswordLoginParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: PasswordLoginParams
    Pool:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Pool
    Pools:
        items:
            $ref: '#/definitions/Pool'
        type: array
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Pools
    Provider:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Provider
    Providers:
        items:
            $ref: '#/definitions/Provider'
        type: array
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Providers
    Repositories:
        items:
            $ref: '#/definitions/Repository'
        type: array
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Repositories
    Repository:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: Repository
    UpdateControllerParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: UpdateControllerParams
    UpdateEntityParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: UpdateEntityParams
    UpdateGithubCredentialsParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: UpdateGithubCredentialsParams
    UpdateGithubEndpointParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: UpdateGithubEndpointParams
    UpdatePoolParams:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: UpdatePoolParams
    User:
        type: object
        x-go-type:
            import:
                alias: garm_params
                package: github.com/cloudbase/garm/params
            type: User
info:
    description: The Garm API generated using go-swagger.
    license:
        name: Apache 2.0
        url: https://www.apache.org/licenses/LICENSE-2.0
    title: Garm API.
    version: 1.0.0
paths:
    /auth/login:
        post:
            operationId: Login
            parameters:
                - description: Login information.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/PasswordLoginParams'
                    description: Login information.
                    type: object
            responses:
                "200":
                    description: JWTResponse
                    schema:
                        $ref: '#/definitions/JWTResponse'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Logs in a user and returns a JWT token.
            tags:
                - login
    /controller:
        put:
            operationId: UpdateController
            parameters:
                - description: Parameters used when updating the controller.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdateControllerParams'
                    description: Parameters used when updating the controller.
                    type: object
            responses:
                "200":
                    description: ControllerInfo
                    schema:
                        $ref: '#/definitions/ControllerInfo'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update controller.
            tags:
                - controller
    /controller-info:
        get:
            operationId: ControllerInfo
            responses:
                "200":
                    description: ControllerInfo
                    schema:
                        $ref: '#/definitions/ControllerInfo'
                "409":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get controller info.
            tags:
                - controllerInfo
    /enterprises:
        get:
            operationId: ListEnterprises
            responses:
                "200":
                    description: Enterprises
                    schema:
                        $ref: '#/definitions/Enterprises'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List all enterprises.
            tags:
                - enterprises
        post:
            operationId: CreateEnterprise
            parameters:
                - description: Parameters used to create the enterprise.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateEnterpriseParams'
                    description: Parameters used to create the enterprise.
                    type: object
            responses:
                "200":
                    description: Enterprise
                    schema:
                        $ref: '#/definitions/Enterprise'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create enterprise with the given parameters.
            tags:
                - enterprises
    /enterprises/{enterpriseID}:
        delete:
            operationId: DeleteEnterprise
            parameters:
                - description: ID of the enterprise to delete.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete enterprise by ID.
            tags:
                - enterprises
        get:
            operationId: GetEnterprise
            parameters:
                - description: The ID of the enterprise to fetch.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
            responses:
                "200":
                    description: Enterprise
                    schema:
                        $ref: '#/definitions/Enterprise'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get enterprise by ID.
            tags:
                - enterprises
        put:
            operationId: UpdateEnterprise
            parameters:
                - description: The ID of the enterprise to update.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
                - description: Parameters used when updating the enterprise.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdateEntityParams'
                    description: Parameters used when updating the enterprise.
                    type: object
            responses:
                "200":
                    description: Enterprise
                    schema:
                        $ref: '#/definitions/Enterprise'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update enterprise with the given parameters.
            tags:
                - enterprises
    /enterprises/{enterpriseID}/instances:
        get:
            operationId: ListEnterpriseInstances
            parameters:
                - description: Enterprise ID.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
            responses:
                "200":
                    description: Instances
                    schema:
                        $ref: '#/definitions/Instances'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List enterprise instances.
            tags:
                - enterprises
                - instances
    /enterprises/{enterpriseID}/pools:
        get:
            operationId: ListEnterprisePools
            parameters:
                - description: Enterprise ID.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
            responses:
                "200":
                    description: Pools
                    schema:
                        $ref: '#/definitions/Pools'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List enterprise pools.
            tags:
                - enterprises
                - pools
        post:
            operationId: CreateEnterprisePool
            parameters:
                - description: Enterprise ID.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
                - description: Parameters used when creating the enterprise pool.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreatePoolParams'
                    description: Parameters used when creating the enterprise pool.
                    type: object
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create enterprise pool with the parameters given.
            tags:
                - enterprises
                - pools
    /enterprises/{enterpriseID}/pools/{poolID}:
        delete:
            operationId: DeleteEnterprisePool
            parameters:
                - description: Enterprise ID.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
                - description: ID of the enterprise pool to delete.
                  in: path
                  name: poolID
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete enterprise pool by ID.
            tags:
                - enterprises
                - pools
        get:
            operationId: GetEnterprisePool
            parameters:
                - description: Enterprise ID.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
                - description: Pool ID.
                  in: path
                  name: poolID
                  required: true
                  type: string
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get enterprise pool by ID.
            tags:
                - enterprises
                - pools
        put:
            operationId: UpdateEnterprisePool
            parameters:
                - description: Enterprise ID.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
                - description: ID of the enterprise pool to update.
                  in: path
                  name: poolID
                  required: true
                  type: string
                - description: Parameters used when updating the enterprise pool.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdatePoolParams'
                    description: Parameters used when updating the enterprise pool.
                    type: object
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update enterprise pool with the parameters given.
            tags:
                - enterprises
                - pools
    /first-run:
        post:
            operationId: FirstRun
            parameters:
                - description: Create a new user.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/NewUserParams'
                    description: Create a new user.
                    type: object
            responses:
                "200":
                    description: User
                    schema:
                        $ref: '#/definitions/User'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Initialize the first run of the controller.
            tags:
                - first-run
    /github/credentials:
        get:
            operationId: ListCredentials
            responses:
                "200":
                    description: Credentials
                    schema:
                        $ref: '#/definitions/Credentials'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List all credentials.
            tags:
                - credentials
        post:
            operationId: CreateCredentials
            parameters:
                - description: Parameters used when creating a GitHub credential.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateGithubCredentialsParams'
                    description: Parameters used when creating a GitHub credential.
                    type: object
            responses:
                "200":
                    description: GithubCredentials
                    schema:
                        $ref: '#/definitions/GithubCredentials'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create a GitHub credential.
            tags:
                - credentials
    /github/credentials/{id}:
        delete:
            operationId: DeleteCredentials
            parameters:
                - description: ID of the GitHub credential.
                  in: path
                  name: id
                  required: true
                  type: integer
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete a GitHub credential.
            tags:
                - credentials
        get:
            operationId: GetCredentials
            parameters:
                - description: ID of the GitHub credential.
                  in: path
                  name: id
                  required: true
                  type: integer
            responses:
                "200":
                    description: GithubCredentials
                    schema:
                        $ref: '#/definitions/GithubCredentials'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get a GitHub credential.
            tags:
                - credentials
        put:
            operationId: UpdateCredentials
            parameters:
                - description: ID of the GitHub credential.
                  in: path
                  name: id
                  required: true
                  type: integer
                - description: Parameters used when updating a GitHub credential.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdateGithubCredentialsParams'
                    description: Parameters used when updating a GitHub credential.
                    type: object
            responses:
                "200":
                    description: GithubCredentials
                    schema:
                        $ref: '#/definitions/GithubCredentials'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update a GitHub credential.
            tags:
                - credentials
    /github/endpoints:
        get:
            operationId: ListGithubEndpoints
            responses:
                "200":
                    description: GithubEndpoints
                    schema:
                        $ref: '#/definitions/GithubEndpoints'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List all GitHub Endpoints.
            tags:
                - endpoints
        post:
            operationId: CreateGithubEndpoint
            parameters:
                - description: Parameters used when creating a GitHub endpoint.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateGithubEndpointParams'
                    description: Parameters used when creating a GitHub endpoint.
                    type: object
            responses:
                "200":
                    description: GithubEndpoint
                    schema:
                        $ref: '#/definitions/GithubEndpoint'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create a GitHub Endpoint.
            tags:
                - endpoints
    /github/endpoints/{name}:
        delete:
            operationId: DeleteGithubEndpoint
            parameters:
                - description: The name of the GitHub endpoint.
                  in: path
                  name: name
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete a GitHub Endpoint.
            tags:
                - endpoints
        get:
            operationId: GetGithubEndpoint
            parameters:
                - description: The name of the GitHub endpoint.
                  in: path
                  name: name
                  required: true
                  type: string
            responses:
                "200":
                    description: GithubEndpoint
                    schema:
                        $ref: '#/definitions/GithubEndpoint'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get a GitHub Endpoint.
            tags:
                - endpoints
        put:
            operationId: UpdateGithubEndpoint
            parameters:
                - description: The name of the GitHub endpoint.
                  in: path
                  name: name
                  required: true
                  type: string
                - description: Parameters used when updating a GitHub endpoint.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdateGithubEndpointParams'
                    description: Parameters used when updating a GitHub endpoint.
                    type: object
            responses:
                "200":
                    description: GithubEndpoint
                    schema:
                        $ref: '#/definitions/GithubEndpoint'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update a GitHub Endpoint.
            tags:
                - endpoints
    /instances:
        get:
            operationId: ListInstances
            responses:
                "200":
                    description: Instances
                    schema:
                        $ref: '#/definitions/Instances'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get all runners' instances.
            tags:
                - instances
    /instances/{instanceName}:
        delete:
            operationId: DeleteInstance
            parameters:
                - description: Runner instance name.
                  in: path
                  name: instanceName
                  required: true
                  type: string
                - description: If true GARM will ignore any provider error when removing the runner and will continue to remove the runner from github and the GARM database.
                  in: query
                  name: forceRemove
                  type: boolean
                - description: If true GARM will ignore unauthorized errors returned by GitHub when removing a runner. This is useful if you want to clean up runners and your credentials have expired.
                  in: query
                  name: bypassGHUnauthorized
                  type: boolean
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete runner instance by name.
            tags:
                - instances
        get:
            operationId: GetInstance
            parameters:
                - description: Runner instance name.
                  in: path
                  name: instanceName
                  required: true
                  type: string
            responses:
                "200":
                    description: Instance
                    schema:
                        $ref: '#/definitions/Instance'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get runner instance by name.
            tags:
                - instances
    /jobs:
        get:
            operationId: ListJobs
            responses:
                "200":
                    description: Jobs
                    schema:
                        $ref: '#/definitions/Jobs'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List all jobs.
            tags:
                - jobs
    /metrics-token:
        get:
            operationId: GetMetricsToken
            responses:
                "200":
                    description: JWTResponse
                    schema:
                        $ref: '#/definitions/JWTResponse'
                "401":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Returns a JWT token that can be used to access the metrics endpoint.
            tags:
                - metrics-token
    /organizations:
        get:
            operationId: ListOrgs
            responses:
                "200":
                    description: Organizations
                    schema:
                        $ref: '#/definitions/Organizations'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List organizations.
            tags:
                - organizations
        post:
            operationId: CreateOrg
            parameters:
                - description: Parameters used when creating the organization.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateOrgParams'
                    description: Parameters used when creating the organization.
                    type: object
            responses:
                "200":
                    description: Organization
                    schema:
                        $ref: '#/definitions/Organization'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create organization with the parameters given.
            tags:
                - organizations
    /organizations/{orgID}:
        delete:
            operationId: DeleteOrg
            parameters:
                - description: ID of the organization to delete.
                  in: path
                  name: orgID
                  required: true
                  type: string
                - description: If true and a webhook is installed for this organization, it will not be removed.
                  in: query
                  name: keepWebhook
                  type: boolean
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete organization by ID.
            tags:
                - organizations
        get:
            operationId: GetOrg
            parameters:
                - description: ID of the organization to fetch.
                  in: path
                  name: orgID
                  required: true
                  type: string
            responses:
                "200":
                    description: Organization
                    schema:
                        $ref: '#/definitions/Organization'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get organization by ID.
            tags:
                - organizations
        put:
            operationId: UpdateOrg
            parameters:
                - description: ID of the organization to update.
                  in: path
                  name: orgID
                  required: true
                  type: string
                - description: Parameters used when updating the organization.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdateEntityParams'
                    description: Parameters used when updating the organization.
                    type: object
            responses:
                "200":
                    description: Organization
                    schema:
                        $ref: '#/definitions/Organization'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update organization with the parameters given.
            tags:
                - organizations
    /organizations/{orgID}/instances:
        get:
            operationId: ListOrgInstances
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
            responses:
                "200":
                    description: Instances
                    schema:
                        $ref: '#/definitions/Instances'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List organization instances.
            tags:
                - organizations
                - instances
    /organizations/{orgID}/pools:
        get:
            operationId: ListOrgPools
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
            responses:
                "200":
                    description: Pools
                    schema:
                        $ref: '#/definitions/Pools'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List organization pools.
            tags:
                - organizations
                - pools
        post:
            operationId: CreateOrgPool
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
                - description: Parameters used when creating the organization pool.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreatePoolParams'
                    description: Parameters used when creating the organization pool.
                    type: object
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create organization pool with the parameters given.
            tags:
                - organizations
                - pools
    /organizations/{orgID}/pools/{poolID}:
        delete:
            operationId: DeleteOrgPool
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
                - description: ID of the organization pool to delete.
                  in: path
                  name: poolID
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete organization pool by ID.
            tags:
                - organizations
                - pools
        get:
            operationId: GetOrgPool
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
                - description: Pool ID.
                  in: path
                  name: poolID
                  required: true
                  type: string
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get organization pool by ID.
            tags:
                - organizations
                - pools
        put:
            operationId: UpdateOrgPool
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
                - description: ID of the organization pool to update.
                  in: path
                  name: poolID
                  required: true
                  type: string
                - description: Parameters used when updating the organization pool.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdatePoolParams'
                    description: Parameters used when updating the organization pool.
                    type: object
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update organization pool with the parameters given.
            tags:
                - organizations
                - pools
    /organizations/{orgID}/webhook:
        delete:
            operationId: UninstallOrgWebhook
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Uninstall organization webhook.
            tags:
                - organizations
                - hooks
        get:
            operationId: GetOrgWebhookInfo
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
            responses:
                "200":
                    description: HookInfo
                    schema:
                        $ref: '#/definitions/HookInfo'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get information about the GARM installed webhook on an organization.
            tags:
                - organizations
                - hooks
        post:
            description: |-
                Install the GARM webhook for an organization. The secret configured on the organization will
                be used to validate the requests.
            operationId: InstallOrgWebhook
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
                - description: Parameters used when creating the organization webhook.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/InstallWebhookParams'
                    description: Parameters used when creating the organization webhook.
                    type: object
            responses:
                "200":
                    description: HookInfo
                    schema:
                        $ref: '#/definitions/HookInfo'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            tags:
                - organizations
                - hooks
    /pools:
        get:
            operationId: ListPools
            responses:
                "200":
                    description: Pools
                    schema:
                        $ref: '#/definitions/Pools'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List all pools.
            tags:
                - pools
    /pools/{poolID}:
        delete:
            operationId: DeletePool
            parameters:
                - description: ID of the pool to delete.
                  in: path
                  name: poolID
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete pool by ID.
            tags:
                - pools
        get:
            operationId: GetPool
            parameters:
                - description: ID of the pool to fetch.
                  in: path
                  name: poolID
                  required: true
                  type: string
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get pool by ID.
            tags:
                - pools
        put:
            operationId: UpdatePool
            parameters:
                - description: ID of the pool to update.
                  in: path
                  name: poolID
                  required: true
                  type: string
                - description: Parameters to update the pool with.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdatePoolParams'
                    description: Parameters to update the pool with.
                    type: object
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update pool by ID.
            tags:
                - pools
    /pools/{poolID}/instances:
        get:
            operationId: ListPoolInstances
            parameters:
                - description: Runner pool ID.
                  in: path
                  name: poolID
                  required: true
                  type: string
            responses:
                "200":
                    description: Instances
                    schema:
                        $ref: '#/definitions/Instances'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List runner instances in a pool.
            tags:
                - instances
    /providers:
        get:
            operationId: ListProviders
            responses:
                "200":
                    description: Providers
                    schema:
                        $ref: '#/definitions/Providers'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List all providers.
            tags:
                - providers
    /repositories:
        get:
            operationId: ListRepos
            responses:
                "200":
                    description: Repositories
                    schema:
                        $ref: '#/definitions/Repositories'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List repositories.
            tags:
                - repositories
        post:
            operationId: CreateRepo
            parameters:
                - description: Parameters used when creating the repository.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateRepoParams'
                    description: Parameters used when creating the repository.
                    type: object
            responses:
                "200":
                    description: Repository
                    schema:
                        $ref: '#/definitions/Repository'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create repository with the parameters given.
            tags:
                - repositories
    /repositories/{repoID}:
        delete:
            operationId: DeleteRepo
            parameters:
                - description: ID of the repository to delete.
                  in: path
                  name: repoID
                  required: true
                  type: string
                - description: If true and a webhook is installed for this repo, it will not be removed.
                  in: query
                  name: keepWebhook
                  type: boolean
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete repository by ID.
            tags:
                - repositories
        get:
            operationId: GetRepo
            parameters:
                - description: ID of the repository to fetch.
                  in: path
                  name: repoID
                  required: true
                  type: string
            responses:
                "200":
                    description: Repository
                    schema:
                        $ref: '#/definitions/Repository'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get repository by ID.
            tags:
                - repositories
        put:
            operationId: UpdateRepo
            parameters:
                - description: ID of the repository to update.
                  in: path
                  name: repoID
                  required: true
                  type: string
                - description: Parameters used when updating the repository.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdateEntityParams'
                    description: Parameters used when updating the repository.
                    type: object
            responses:
                "200":
                    description: Repository
                    schema:
                        $ref: '#/definitions/Repository'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update repository with the parameters given.
            tags:
                - repositories
    /repositories/{repoID}/instances:
        get:
            operationId: ListRepoInstances
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
            responses:
                "200":
                    description: Instances
                    schema:
                        $ref: '#/definitions/Instances'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List repository instances.
            tags:
                - repositories
                - instances
    /repositories/{repoID}/pools:
        get:
            operationId: ListRepoPools
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
            responses:
                "200":
                    description: Pools
                    schema:
                        $ref: '#/definitions/Pools'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List repository pools.
            tags:
                - repositories
                - pools
        post:
            operationId: CreateRepoPool
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
                - description: Parameters used when creating the repository pool.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreatePoolParams'
                    description: Parameters used when creating the repository pool.
                    type: object
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create repository pool with the parameters given.
            tags:
                - repositories
                - pools
    /repositories/{repoID}/pools/{poolID}:
        delete:
            operationId: DeleteRepoPool
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
                - description: ID of the repository pool to delete.
                  in: path
                  name: poolID
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete repository pool by ID.
            tags:
                - repositories
                - pools
        get:
            operationId: GetRepoPool
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
                - description: Pool ID.
                  in: path
                  name: poolID
                  required: true
                  type: string
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get repository pool by ID.
            tags:
                - repositories
                - pools
        put:
            operationId: UpdateRepoPool
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
                - description: ID of the repository pool to update.
                  in: path
                  name: poolID
                  required: true
                  type: string
                - description: Parameters used when updating the repository pool.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdatePoolParams'
                    description: Parameters used when updating the repository pool.
                    type: object
            responses:
                "200":
                    description: Pool
                    schema:
                        $ref: '#/definitions/Pool'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update repository pool with the parameters given.
            tags:
                - repositories
                - pools
    /repositories/{repoID}/webhook:
        delete:
            operationId: UninstallRepoWebhook
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Uninstall organization webhook.
            tags:
                - repositories
                - hooks
        get:
            operationId: GetRepoWebhookInfo
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
            responses:
                "200":
                    description: HookInfo
                    schema:
                        $ref: '#/definitions/HookInfo'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get information about the GARM installed webhook on a repository.
            tags:
                - repositories
                - hooks
        post:
            description: |-
                Install the GARM webhook for an organization. The secret configured on the organization will
                be used to validate the requests.
            operationId: InstallRepoWebhook
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
                - description: Parameters used when creating the repository webhook.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/InstallWebhookParams'
                    description: Parameters used when creating the repository webhook.
                    type: object
            responses:
                "200":
                    description: HookInfo
                    schema:
                        $ref: '#/definitions/HookInfo'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            tags:
                - repositories
                - hooks
produces:
    - application/json
security:
    - Bearer: []
securityDefinitions:
    Bearer:
        description: 'The token with the `Bearer: ` prefix, e.g. "Bearer abcde12345".'
        in: header
        name: Authorization
        type: apiKey
swagger: "2.0"
