basePath: /api/v1
consumes:
    - application/json
definitions:
    APIErrorResponse:
        properties:
            details:
                type: string
                x-go-name: Details
            error:
                type: string
                x-go-name: Error
        type: object
        x-go-package: github.com/cloudbase/garm/apiserver/params
    Address:
        properties:
            address:
                type: string
                x-go-name: Address
            type:
                $ref: '#/definitions/AddressType'
        type: object
        x-go-package: github.com/cloudbase/garm-provider-common/params
    AddressType:
        type: string
        x-go-package: github.com/cloudbase/garm-provider-common/params
    ControllerInfo:
        properties:
            callback_url:
                description: |-
                    CallbackURL is the URL where instances can send updates back to the controller.
                    This URL is used by instances to send status updates back to the controller. The
                    URL itself may be made available to instances via a reverse proxy or a load balancer.
                    That means that the user is responsible for telling GARM what the public URL is, by
                    setting this field.
                type: string
                x-go-name: CallbackURL
            controller_id:
                description: |-
                    ControllerID is the unique ID of this controller. This ID gets generated
                    automatically on controller init.
                format: uuid
                type: string
                x-go-name: ControllerID
            controller_webhook_url:
                description: |-
                    ControllerWebhookURL is the controller specific URL where webhooks will be received.
                    This field holds the WebhookURL defined above to which we append the ControllerID.
                    Functionally it is the same as WebhookURL, but it allows us to safely manage webhooks
                    from GARM without accidentally removing webhooks from other services or GARM controllers.
                type: string
                x-go-name: ControllerWebhookURL
            hostname:
                description: |-
                    Hostname is the hostname of the machine that runs this controller. In the
                    future, this field will be migrated to a separate table that will keep track
                    of each the controller nodes that are part of a cluster. This will happen when
                    we implement controller scale-out capability.
                type: string
                x-go-name: Hostname
            metadata_url:
                description: |-
                    MetadataURL is the public metadata URL of the GARM instance. This URL is used
                    by instances to fetch information they need to set themselves up. The URL itself
                    may be made available to runners via a reverse proxy or a load balancer. That
                    means that the user is responsible for telling GARM what the public URL is, by
                    setting this field.
                type: string
                x-go-name: MetadataURL
            minimum_job_age_backoff:
                description: |-
                    MinimumJobAgeBackoff is the minimum time in seconds that a job must be in queued state
                    before GARM will attempt to allocate a runner for it. When set to a non zero value,
                    GARM will ignore the job until the job's age is greater than this value. When using
                    the min_idle_runners feature of a pool, this gives enough time for potential idle
                    runners to pick up the job before GARM attempts to allocate a new runner, thus avoiding
                    the need to potentially scale down runners later.
                format: uint64
                type: integer
                x-go-name: MinimumJobAgeBackoff
            version:
                description: Version is the version of the GARM controller.
                type: string
                x-go-name: Version
            webhook_url:
                description: |-
                    WebhookURL is the base URL where the controller will receive webhooks from github.
                    When webhook management is used, this URL is used as a base to which the controller
                    UUID is appended and which will receive the webhooks.
                    The URL itself may be made available to instances via a reverse proxy or a load balancer.
                    That means that the user is responsible for telling GARM what the public URL is, by
                    setting this field.
                type: string
                x-go-name: WebhookURL
        type: object
        x-go-package: github.com/cloudbase/garm/params
    CreateEnterpriseParams:
        properties:
            credentials_name:
                type: string
                x-go-name: CredentialsName
            name:
                type: string
                x-go-name: Name
            pool_balancer_type:
                $ref: '#/definitions/PoolBalancerType'
            webhook_secret:
                type: string
                x-go-name: WebhookSecret
        type: object
        x-go-package: github.com/cloudbase/garm/params
    CreateGiteaCredentialsParams:
        properties:
            app:
                $ref: '#/definitions/GithubApp'
            auth_type:
                $ref: '#/definitions/ForgeAuthType'
            description:
                type: string
                x-go-name: Description
            endpoint:
                type: string
                x-go-name: Endpoint
            name:
                type: string
                x-go-name: Name
            pat:
                $ref: '#/definitions/GithubPAT'
        type: object
        x-go-package: github.com/cloudbase/garm/params
    CreateGiteaEndpointParams:
        properties:
            api_base_url:
                type: string
                x-go-name: APIBaseURL
            base_url:
                type: string
                x-go-name: BaseURL
            ca_cert_bundle:
                items:
                    format: uint8
                    type: integer
                type: array
                x-go-name: CACertBundle
            description:
                type: string
                x-go-name: Description
            name:
                type: string
                x-go-name: Name
        type: object
        x-go-package: github.com/cloudbase/garm/params
    CreateGithubCredentialsParams:
        properties:
            app:
                $ref: '#/definitions/GithubApp'
            auth_type:
                $ref: '#/definitions/ForgeAuthType'
            description:
                type: string
                x-go-name: Description
            endpoint:
                type: string
                x-go-name: Endpoint
            name:
                type: string
                x-go-name: Name
            pat:
                $ref: '#/definitions/GithubPAT'
        type: object
        x-go-package: github.com/cloudbase/garm/params
    CreateGithubEndpointParams:
        properties:
            api_base_url:
                type: string
                x-go-name: APIBaseURL
            base_url:
                type: string
                x-go-name: BaseURL
            ca_cert_bundle:
                items:
                    format: uint8
                    type: integer
                type: array
                x-go-name: CACertBundle
            description:
                type: string
                x-go-name: Description
            name:
                type: string
                x-go-name: Name
            upload_base_url:
                type: string
                x-go-name: UploadBaseURL
        type: object
        x-go-package: github.com/cloudbase/garm/params
    CreateOrgParams:
        properties:
            credentials_name:
                type: string
                x-go-name: CredentialsName
            forge_type:
                $ref: '#/definitions/EndpointType'
            name:
                type: string
                x-go-name: Name
            pool_balancer_type:
                $ref: '#/definitions/PoolBalancerType'
            webhook_secret:
                type: string
                x-go-name: WebhookSecret
        type: object
        x-go-package: github.com/cloudbase/garm/params
    CreatePoolParams:
        properties:
            enabled:
                type: boolean
                x-go-name: Enabled
            extra_specs:
                type: object
                x-go-name: ExtraSpecs
            flavor:
                type: string
                x-go-name: Flavor
            github-runner-group:
                description: |-
                    GithubRunnerGroup is the github runner group in which the runners of this
                    pool will be added to.
                    The runner group must be created by someone with access to the enterprise.
                type: string
                x-go-name: GitHubRunnerGroup
            image:
                type: string
                x-go-name: Image
            max_runners:
                format: uint64
                type: integer
                x-go-name: MaxRunners
            min_idle_runners:
                format: uint64
                type: integer
                x-go-name: MinIdleRunners
            os_arch:
                $ref: '#/definitions/OSArch'
            os_type:
                $ref: '#/definitions/OSType'
            priority:
                format: uint64
                type: integer
                x-go-name: Priority
            provider_name:
                type: string
                x-go-name: ProviderName
            runner_bootstrap_timeout:
                format: uint64
                type: integer
                x-go-name: RunnerBootstrapTimeout
            runner_prefix:
                type: string
                x-go-name: Prefix
            tags:
                items:
                    type: string
                type: array
                x-go-name: Tags
        type: object
        x-go-package: github.com/cloudbase/garm/params
    CreateRepoParams:
        properties:
            credentials_name:
                type: string
                x-go-name: CredentialsName
            forge_type:
                $ref: '#/definitions/EndpointType'
            name:
                type: string
                x-go-name: Name
            owner:
                type: string
                x-go-name: Owner
            pool_balancer_type:
                $ref: '#/definitions/PoolBalancerType'
            webhook_secret:
                type: string
                x-go-name: WebhookSecret
        type: object
        x-go-package: github.com/cloudbase/garm/params
    CreateScaleSetParams:
        properties:
            disable_update:
                type: boolean
                x-go-name: DisableUpdate
            enabled:
                type: boolean
                x-go-name: Enabled
            extra_specs:
                type: object
                x-go-name: ExtraSpecs
            flavor:
                type: string
                x-go-name: Flavor
            github-runner-group:
                description: |-
                    GithubRunnerGroup is the github runner group in which the runners of this
                    pool will be added to.
                    The runner group must be created by someone with access to the enterprise.
                type: string
                x-go-name: GitHubRunnerGroup
            image:
                type: string
                x-go-name: Image
            max_runners:
                format: uint64
                type: integer
                x-go-name: MaxRunners
            min_idle_runners:
                format: uint64
                type: integer
                x-go-name: MinIdleRunners
            name:
                type: string
                x-go-name: Name
            os_arch:
                $ref: '#/definitions/OSArch'
            os_type:
                $ref: '#/definitions/OSType'
            provider_name:
                type: string
                x-go-name: ProviderName
            runner_bootstrap_timeout:
                format: uint64
                type: integer
                x-go-name: RunnerBootstrapTimeout
            runner_prefix:
                type: string
                x-go-name: Prefix
            scale_set_id:
                format: int64
                type: integer
                x-go-name: ScaleSetID
            tags:
                items:
                    type: string
                type: array
                x-go-name: Tags
        type: object
        x-go-package: github.com/cloudbase/garm/params
    Credentials:
        description: used by swagger client generated code
        items:
            $ref: '#/definitions/ForgeCredentials'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    EndpointType:
        type: string
        x-go-package: github.com/cloudbase/garm/params
    Enterprise:
        properties:
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            credentials:
                $ref: '#/definitions/ForgeCredentials'
            credentials_id:
                format: uint64
                type: integer
                x-go-name: CredentialsID
            credentials_name:
                description: |-
                    CredentialName is the name of the credentials associated with the enterprise.
                    This field is now deprecated. Use CredentialsID instead. This field will be
                    removed in v0.2.0.
                type: string
                x-go-name: CredentialsName
            endpoint:
                $ref: '#/definitions/ForgeEndpoint'
            events:
                items:
                    $ref: '#/definitions/EntityEvent'
                type: array
                x-go-name: Events
            id:
                type: string
                x-go-name: ID
            name:
                type: string
                x-go-name: Name
            pool:
                items:
                    $ref: '#/definitions/Pool'
                type: array
                x-go-name: Pools
            pool_balancing_type:
                $ref: '#/definitions/PoolBalancerType'
            pool_manager_status:
                $ref: '#/definitions/PoolManagerStatus'
            updated_at:
                format: date-time
                type: string
                x-go-name: UpdatedAt
        type: object
        x-go-package: github.com/cloudbase/garm/params
    Enterprises:
        description: used by swagger client generated code
        items:
            $ref: '#/definitions/Enterprise'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    EntityEvent:
        properties:
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            event_level:
                $ref: '#/definitions/EventLevel'
            event_type:
                $ref: '#/definitions/EventType'
            id:
                format: uint64
                type: integer
                x-go-name: ID
            message:
                type: string
                x-go-name: Message
        type: object
        x-go-package: github.com/cloudbase/garm/params
    EventLevel:
        type: string
        x-go-package: github.com/cloudbase/garm/params
    EventType:
        type: string
        x-go-package: github.com/cloudbase/garm/params
    ForgeAuthType:
        type: string
        x-go-package: github.com/cloudbase/garm/params
    ForgeCredentials:
        properties:
            api_base_url:
                type: string
                x-go-name: APIBaseURL
            auth-type:
                $ref: '#/definitions/ForgeAuthType'
            base_url:
                type: string
                x-go-name: BaseURL
            ca_bundle:
                items:
                    format: uint8
                    type: integer
                type: array
                x-go-name: CABundle
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            description:
                type: string
                x-go-name: Description
            endpoint:
                $ref: '#/definitions/ForgeEndpoint'
            enterprises:
                items:
                    $ref: '#/definitions/Enterprise'
                type: array
                x-go-name: Enterprises
            forge_type:
                $ref: '#/definitions/EndpointType'
            id:
                format: uint64
                type: integer
                x-go-name: ID
            name:
                type: string
                x-go-name: Name
            organizations:
                items:
                    $ref: '#/definitions/Organization'
                type: array
                x-go-name: Organizations
            rate_limit:
                $ref: '#/definitions/GithubRateLimit'
            repositories:
                items:
                    $ref: '#/definitions/Repository'
                type: array
                x-go-name: Repositories
            updated_at:
                format: date-time
                type: string
                x-go-name: UpdatedAt
            upload_base_url:
                type: string
                x-go-name: UploadBaseURL
        type: object
        x-go-package: github.com/cloudbase/garm/params
    ForgeEndpoint:
        properties:
            api_base_url:
                type: string
                x-go-name: APIBaseURL
            base_url:
                type: string
                x-go-name: BaseURL
            ca_cert_bundle:
                items:
                    format: uint8
                    type: integer
                type: array
                x-go-name: CACertBundle
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            description:
                type: string
                x-go-name: Description
            endpoint_type:
                $ref: '#/definitions/EndpointType'
            name:
                type: string
                x-go-name: Name
            updated_at:
                format: date-time
                type: string
                x-go-name: UpdatedAt
            upload_base_url:
                type: string
                x-go-name: UploadBaseURL
        type: object
        x-go-package: github.com/cloudbase/garm/params
    ForgeEndpoints:
        description: used by swagger client generated code
        items:
            $ref: '#/definitions/ForgeEndpoint'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    ForgeEntity:
        properties:
            agent_id:
                format: int64
                type: integer
                x-go-name: AgentID
            os_name:
                type: string
                x-go-name: OSName
            os_version:
                type: string
                x-go-name: OSVersion
        type: object
        x-go-name: UpdateSystemInfoParams
        x-go-package: github.com/cloudbase/garm/params
    GithubApp:
        properties:
            app_id:
                format: int64
                type: integer
                x-go-name: AppID
            installation_id:
                format: int64
                type: integer
                x-go-name: InstallationID
            private_key_bytes:
                items:
                    format: uint8
                    type: integer
                type: array
                x-go-name: PrivateKeyBytes
        type: object
        x-go-package: github.com/cloudbase/garm/params
    GithubPAT:
        properties:
            oauth2_token:
                type: string
                x-go-name: OAuth2Token
        type: object
        x-go-package: github.com/cloudbase/garm/params
    GithubRateLimit:
        properties:
            limit:
                format: int64
                type: integer
                x-go-name: Limit
            remaining:
                format: int64
                type: integer
                x-go-name: Remaining
            reset:
                format: int64
                type: integer
                x-go-name: Reset
            used:
                format: int64
                type: integer
                x-go-name: Used
        type: object
        x-go-package: github.com/cloudbase/garm/params
    HookInfo:
        properties:
            active:
                type: boolean
                x-go-name: Active
            events:
                items:
                    type: string
                type: array
                x-go-name: Events
            id:
                format: int64
                type: integer
                x-go-name: ID
            insecure_ssl:
                type: boolean
                x-go-name: InsecureSSL
            url:
                type: string
                x-go-name: URL
        type: object
        x-go-package: github.com/cloudbase/garm/params
    InstallWebhookParams:
        properties:
            insecure_ssl:
                type: boolean
                x-go-name: InsecureSSL
            webhook_endpoint_type:
                $ref: '#/definitions/WebhookEndpointType'
        type: object
        x-go-package: github.com/cloudbase/garm/params
    Instance:
        properties:
            addresses:
                description: |-
                    Addresses is a list of IP addresses the provider reports
                    for this instance.
                items:
                    $ref: '#/definitions/Address'
                type: array
                x-go-name: Addresses
            agent_id:
                description: AgentID is the github runner agent ID.
                format: int64
                type: integer
                x-go-name: AgentID
            created_at:
                description: CreatedAt is the timestamp of the creation of this runner.
                format: date-time
                type: string
                x-go-name: CreatedAt
            github-runner-group:
                description: |-
                    GithubRunnerGroup is the github runner group to which the runner belongs.
                    The runner group must be created by someone with access to the enterprise.
                type: string
                x-go-name: GitHubRunnerGroup
            id:
                description: ID is the database ID of this instance.
                type: string
                x-go-name: ID
            job:
                $ref: '#/definitions/Job'
            name:
                description: |-
                    Name is the name associated with an instance. Depending on
                    the provider, this may or may not be useful in the context of
                    the provider, but we can use it internally to identify the
                    instance.
                type: string
                x-go-name: Name
            os_arch:
                $ref: '#/definitions/OSArch'
            os_name:
                description: 'OSName is the name of the OS. Eg: ubuntu, centos, etc.'
                type: string
                x-go-name: OSName
            os_type:
                $ref: '#/definitions/OSType'
            os_version:
                description: OSVersion is the version of the operating system.
                type: string
                x-go-name: OSVersion
            pool_id:
                description: PoolID is the ID of the garm pool to which a runner belongs.
                type: string
                x-go-name: PoolID
            provider_fault:
                description: |-
                    ProviderFault holds any error messages captured from the IaaS provider that is
                    responsible for managing the lifecycle of the runner.
                items:
                    format: uint8
                    type: integer
                type: array
                x-go-name: ProviderFault
            provider_id:
                description: |-
                    PeoviderID is the unique ID the provider associated
                    with the compute instance. We use this to identify the
                    instance in the provider.
                type: string
                x-go-name: ProviderID
            provider_name:
                description: |-
                    ProviderName is the name of the IaaS where the instance was
                    created.
                type: string
                x-go-name: ProviderName
            runner_status:
                $ref: '#/definitions/RunnerStatus'
            scale_set_id:
                description: ScaleSetID is the ID of the scale set to which a runner belongs.
                format: uint64
                type: integer
                x-go-name: ScaleSetID
            status:
                $ref: '#/definitions/InstanceStatus'
            status_messages:
                description: |-
                    StatusMessages is a list of status messages sent back by the runner as it sets itself
                    up.
                items:
                    $ref: '#/definitions/StatusMessage'
                type: array
                x-go-name: StatusMessages
            updated_at:
                description: UpdatedAt is the timestamp of the last update to this runner.
                format: date-time
                type: string
                x-go-name: UpdatedAt
        type: object
        x-go-package: github.com/cloudbase/garm/params
    InstanceStatus:
        type: string
        x-go-package: github.com/cloudbase/garm-provider-common/params
    Instances:
        description: used by swagger client generated code
        items:
            $ref: '#/definitions/Instance'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    JWTResponse:
        description: |-
            JWTResponse holds the JWT token returned as a result of a
            successful auth
        properties:
            token:
                type: string
                x-go-name: Token
        type: object
        x-go-package: github.com/cloudbase/garm/params
    Job:
        properties:
            action:
                description: Action is the specific activity that triggered the event.
                type: string
                x-go-name: Action
            completed_at:
                format: date-time
                type: string
                x-go-name: CompletedAt
            conclusion:
                description: |-
                    Conclusion is the outcome of the job.
                    Possible values: "success", "failure", "neutral", "cancelled", "skipped",
                    "timed_out", "action_required"
                type: string
                x-go-name: Conclusion
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            enterprise_id:
                format: uuid
                type: string
                x-go-name: EnterpriseID
            id:
                description: ID is the ID of the job.
                format: int64
                type: integer
                x-go-name: ID
            labels:
                items:
                    type: string
                type: array
                x-go-name: Labels
            locked_by:
                format: uuid
                type: string
                x-go-name: LockedBy
            name:
                description: Name is the name if the job that was triggered.
                type: string
                x-go-name: Name
            org_id:
                format: uuid
                type: string
                x-go-name: OrgID
            repo_id:
                description: |-
                    The entity that received the hook.

                    Webhooks may be configured on the repo, the org and/or the enterprise.
                    If we only configure a repo to use garm, we'll only ever receive a
                    webhook from the repo. But if we configure the parent org of the repo and
                    the parent enterprise of the org to use garm, a webhook will be sent for each
                    entity type, in response to one workflow event. Thus, we will get 3 webhooks
                    with the same run_id and job id. Record all involved entities in the same job
                    if we have them configured in garm.
                format: uuid
                type: string
                x-go-name: RepoID
            repository_name:
                description: repository in which the job was triggered.
                type: string
                x-go-name: RepositoryName
            repository_owner:
                type: string
                x-go-name: RepositoryOwner
            run_id:
                description: RunID is the ID of the workflow run. A run may have multiple jobs.
                format: int64
                type: integer
                x-go-name: RunID
            runner_group_id:
                format: int64
                type: integer
                x-go-name: RunnerGroupID
            runner_group_name:
                type: string
                x-go-name: RunnerGroupName
            runner_id:
                format: int64
                type: integer
                x-go-name: GithubRunnerID
            runner_name:
                type: string
                x-go-name: RunnerName
            scaleset_job_id:
                description: ScaleSetJobID is the job ID when generated for a scale set.
                type: string
                x-go-name: ScaleSetJobID
            started_at:
                format: date-time
                type: string
                x-go-name: StartedAt
            status:
                description: |-
                    Status is the phase of the lifecycle that the job is currently in.
                    "queued", "in_progress" and "completed".
                type: string
                x-go-name: Status
            updated_at:
                format: date-time
                type: string
                x-go-name: UpdatedAt
            workflow_job_id:
                format: int64
                type: integer
                x-go-name: WorkflowJobID
        type: object
        x-go-package: github.com/cloudbase/garm/params
    Jobs:
        items:
            $ref: '#/definitions/Job'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    NewUserParams:
        description: |-
            NewUserParams holds the needed information to create
            a new user
        properties:
            email:
                type: string
                x-go-name: Email
            full_name:
                type: string
                x-go-name: FullName
            password:
                type: string
                x-go-name: Password
            username:
                type: string
                x-go-name: Username
        type: object
        x-go-package: github.com/cloudbase/garm/params
    OSArch:
        type: string
        x-go-package: github.com/cloudbase/garm-provider-common/params
    OSType:
        type: string
        x-go-package: github.com/cloudbase/garm-provider-common/params
    Organization:
        properties:
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            credentials:
                $ref: '#/definitions/ForgeCredentials'
            credentials_id:
                format: uint64
                type: integer
                x-go-name: CredentialsID
            credentials_name:
                description: |-
                    CredentialName is the name of the credentials associated with the enterprise.
                    This field is now deprecated. Use CredentialsID instead. This field will be
                    removed in v0.2.0.
                type: string
                x-go-name: CredentialsName
            endpoint:
                $ref: '#/definitions/ForgeEndpoint'
            events:
                items:
                    $ref: '#/definitions/EntityEvent'
                type: array
                x-go-name: Events
            id:
                type: string
                x-go-name: ID
            name:
                type: string
                x-go-name: Name
            pool:
                items:
                    $ref: '#/definitions/Pool'
                type: array
                x-go-name: Pools
            pool_balancing_type:
                $ref: '#/definitions/PoolBalancerType'
            pool_manager_status:
                $ref: '#/definitions/PoolManagerStatus'
            updated_at:
                format: date-time
                type: string
                x-go-name: UpdatedAt
        type: object
        x-go-package: github.com/cloudbase/garm/params
    Organizations:
        description: used by swagger client generated code
        items:
            $ref: '#/definitions/Organization'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    PasswordLoginParams:
        properties:
            password:
                type: string
                x-go-name: Password
            username:
                type: string
                x-go-name: Username
        type: object
        x-go-package: github.com/cloudbase/garm/params
    Pool:
        properties:
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            enabled:
                type: boolean
                x-go-name: Enabled
            endpoint:
                $ref: '#/definitions/ForgeEndpoint'
            enterprise_id:
                type: string
                x-go-name: EnterpriseID
            enterprise_name:
                type: string
                x-go-name: EnterpriseName
            extra_specs:
                description: |-
                    ExtraSpecs is an opaque raw json that gets sent to the provider
                    as part of the bootstrap params for instances. It can contain
                    any kind of data needed by providers. The contents of this field means
                    nothing to garm itself. We don't act on the information in this field at
                    all. We only validate that it's a proper json.
                type: object
                x-go-name: ExtraSpecs
            flavor:
                type: string
                x-go-name: Flavor
            github-runner-group:
                description: |-
                    GithubRunnerGroup is the github runner group in which the runners will be added.
                    The runner group must be created by someone with access to the enterprise.
                type: string
                x-go-name: GitHubRunnerGroup
            id:
                type: string
                x-go-name: ID
            image:
                type: string
                x-go-name: Image
            instances:
                items:
                    $ref: '#/definitions/Instance'
                type: array
                x-go-name: Instances
            max_runners:
                format: uint64
                type: integer
                x-go-name: MaxRunners
            min_idle_runners:
                format: uint64
                type: integer
                x-go-name: MinIdleRunners
            org_id:
                type: string
                x-go-name: OrgID
            org_name:
                type: string
                x-go-name: OrgName
            os_arch:
                $ref: '#/definitions/OSArch'
            os_type:
                $ref: '#/definitions/OSType'
            priority:
                description: |-
                    Priority is the priority of the pool. The higher the number, the higher the priority.
                    When fetching matching pools for a set of tags, the result will be sorted in descending
                    order of priority.
                format: uint64
                type: integer
                x-go-name: Priority
            provider_name:
                type: string
                x-go-name: ProviderName
            repo_id:
                type: string
                x-go-name: RepoID
            repo_name:
                type: string
                x-go-name: RepoName
            runner_bootstrap_timeout:
                format: uint64
                type: integer
                x-go-name: RunnerBootstrapTimeout
            runner_prefix:
                type: string
                x-go-name: Prefix
            tags:
                items:
                    $ref: '#/definitions/Tag'
                type: array
                x-go-name: Tags
            updated_at:
                format: date-time
                type: string
                x-go-name: UpdatedAt
        type: object
        x-go-package: github.com/cloudbase/garm/params
    PoolBalancerType:
        type: string
        x-go-package: github.com/cloudbase/garm/params
    PoolManagerStatus:
        properties:
            failure_reason:
                type: string
                x-go-name: FailureReason
            running:
                type: boolean
                x-go-name: IsRunning
        type: object
        x-go-package: github.com/cloudbase/garm/params
    Pools:
        description: used by swagger client generated code
        items:
            $ref: '#/definitions/Pool'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    Provider:
        properties:
            description:
                type: string
                x-go-name: Description
            name:
                type: string
                x-go-name: Name
            type:
                $ref: '#/definitions/ProviderType'
        type: object
        x-go-package: github.com/cloudbase/garm/params
    ProviderType:
        type: string
        x-go-package: github.com/cloudbase/garm/params
    Providers:
        description: used by swagger client generated code
        items:
            $ref: '#/definitions/Provider'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    Repositories:
        description: used by swagger client generated code
        items:
            $ref: '#/definitions/Repository'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    Repository:
        properties:
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            credentials:
                $ref: '#/definitions/ForgeCredentials'
            credentials_id:
                format: uint64
                type: integer
                x-go-name: CredentialsID
            credentials_name:
                description: |-
                    CredentialName is the name of the credentials associated with the enterprise.
                    This field is now deprecated. Use CredentialsID instead. This field will be
                    removed in v0.2.0.
                type: string
                x-go-name: CredentialsName
            endpoint:
                $ref: '#/definitions/ForgeEndpoint'
            events:
                items:
                    $ref: '#/definitions/EntityEvent'
                type: array
                x-go-name: Events
            id:
                type: string
                x-go-name: ID
            name:
                type: string
                x-go-name: Name
            owner:
                type: string
                x-go-name: Owner
            pool:
                items:
                    $ref: '#/definitions/Pool'
                type: array
                x-go-name: Pools
            pool_balancing_type:
                $ref: '#/definitions/PoolBalancerType'
            pool_manager_status:
                $ref: '#/definitions/PoolManagerStatus'
            updated_at:
                format: date-time
                type: string
                x-go-name: UpdatedAt
        type: object
        x-go-package: github.com/cloudbase/garm/params
    RunnerPrefix:
        properties:
            runner_prefix:
                type: string
                x-go-name: Prefix
        type: object
        x-go-package: github.com/cloudbase/garm/params
    RunnerStatus:
        type: string
        x-go-package: github.com/cloudbase/garm/params
    ScaleSet:
        properties:
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            desired_runner_count:
                format: int64
                type: integer
                x-go-name: DesiredRunnerCount
            disable_update:
                type: boolean
                x-go-name: DisableUpdate
            enabled:
                type: boolean
                x-go-name: Enabled
            endpoint:
                $ref: '#/definitions/ForgeEndpoint'
            enterprise_id:
                type: string
                x-go-name: EnterpriseID
            enterprise_name:
                type: string
                x-go-name: EnterpriseName
            extended_state:
                type: string
                x-go-name: ExtendedState
            extra_specs:
                description: |-
                    ExtraSpecs is an opaque raw json that gets sent to the provider
                    as part of the bootstrap params for instances. It can contain
                    any kind of data needed by providers. The contents of this field means
                    nothing to garm itself. We don't act on the information in this field at
                    all. We only validate that it's a proper json.
                type: object
                x-go-name: ExtraSpecs
            flavor:
                type: string
                x-go-name: Flavor
            github-runner-group:
                description: |-
                    GithubRunnerGroup is the github runner group in which the runners will be added.
                    The runner group must be created by someone with access to the enterprise.
                type: string
                x-go-name: GitHubRunnerGroup
            id:
                format: uint64
                type: integer
                x-go-name: ID
            image:
                type: string
                x-go-name: Image
            instances:
                items:
                    $ref: '#/definitions/Instance'
                type: array
                x-go-name: Instances
            max_runners:
                format: uint64
                type: integer
                x-go-name: MaxRunners
            min_idle_runners:
                format: uint64
                type: integer
                x-go-name: MinIdleRunners
            name:
                type: string
                x-go-name: Name
            org_id:
                type: string
                x-go-name: OrgID
            org_name:
                type: string
                x-go-name: OrgName
            os_arch:
                $ref: '#/definitions/OSArch'
            os_type:
                $ref: '#/definitions/OSType'
            provider_name:
                type: string
                x-go-name: ProviderName
            repo_id:
                type: string
                x-go-name: RepoID
            repo_name:
                type: string
                x-go-name: RepoName
            runner_bootstrap_timeout:
                format: uint64
                type: integer
                x-go-name: RunnerBootstrapTimeout
            runner_prefix:
                type: string
                x-go-name: Prefix
            scale_set_id:
                format: int64
                type: integer
                x-go-name: ScaleSetID
            state:
                $ref: '#/definitions/ScaleSetState'
            status_messages:
                items:
                    $ref: '#/definitions/StatusMessage'
                type: array
                x-go-name: StatusMessages
            updated_at:
                format: date-time
                type: string
                x-go-name: UpdatedAt
        type: object
        x-go-package: github.com/cloudbase/garm/params
    ScaleSetState:
        type: string
        x-go-package: github.com/cloudbase/garm/params
    ScaleSets:
        description: used by swagger client generated code
        items:
            $ref: '#/definitions/ScaleSet'
        type: array
        x-go-package: github.com/cloudbase/garm/params
    StatusMessage:
        properties:
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            event_level:
                $ref: '#/definitions/EventLevel'
            event_type:
                $ref: '#/definitions/EventType'
            message:
                type: string
                x-go-name: Message
        type: object
        x-go-package: github.com/cloudbase/garm/params
    Tag:
        properties:
            id:
                type: string
                x-go-name: ID
            name:
                type: string
                x-go-name: Name
        type: object
        x-go-package: github.com/cloudbase/garm/params
    UpdateControllerParams:
        properties:
            callback_url:
                type: string
                x-go-name: CallbackURL
            metadata_url:
                type: string
                x-go-name: MetadataURL
            minimum_job_age_backoff:
                format: uint64
                type: integer
                x-go-name: MinimumJobAgeBackoff
            webhook_url:
                type: string
                x-go-name: WebhookURL
        type: object
        x-go-package: github.com/cloudbase/garm/params
    UpdateEntityParams:
        properties:
            credentials_name:
                type: string
                x-go-name: CredentialsName
            pool_balancer_type:
                $ref: '#/definitions/PoolBalancerType'
            webhook_secret:
                type: string
                x-go-name: WebhookSecret
        type: object
        x-go-package: github.com/cloudbase/garm/params
    UpdateGiteaCredentialsParams:
        properties:
            description:
                type: string
                x-go-name: Description
            name:
                type: string
                x-go-name: Name
            pat:
                $ref: '#/definitions/GithubPAT'
        type: object
        x-go-package: github.com/cloudbase/garm/params
    UpdateGiteaEndpointParams:
        properties:
            api_base_url:
                type: string
                x-go-name: APIBaseURL
            base_url:
                type: string
                x-go-name: BaseURL
            ca_cert_bundle:
                items:
                    format: uint8
                    type: integer
                type: array
                x-go-name: CACertBundle
            description:
                type: string
                x-go-name: Description
        type: object
        x-go-package: github.com/cloudbase/garm/params
    UpdateGithubCredentialsParams:
        properties:
            app:
                $ref: '#/definitions/GithubApp'
            description:
                type: string
                x-go-name: Description
            name:
                type: string
                x-go-name: Name
            pat:
                $ref: '#/definitions/GithubPAT'
        type: object
        x-go-package: github.com/cloudbase/garm/params
    UpdateGithubEndpointParams:
        properties:
            api_base_url:
                type: string
                x-go-name: APIBaseURL
            base_url:
                type: string
                x-go-name: BaseURL
            ca_cert_bundle:
                items:
                    format: uint8
                    type: integer
                type: array
                x-go-name: CACertBundle
            description:
                type: string
                x-go-name: Description
            upload_base_url:
                type: string
                x-go-name: UploadBaseURL
        type: object
        x-go-package: github.com/cloudbase/garm/params
    UpdatePoolParams:
        properties:
            enabled:
                type: boolean
                x-go-name: Enabled
            extra_specs:
                type: object
                x-go-name: ExtraSpecs
            flavor:
                type: string
                x-go-name: Flavor
            github-runner-group:
                description: |-
                    GithubRunnerGroup is the github runner group in which the runners of this
                    pool will be added to.
                    The runner group must be created by someone with access to the enterprise.
                type: string
                x-go-name: GitHubRunnerGroup
            image:
                type: string
                x-go-name: Image
            max_runners:
                format: uint64
                type: integer
                x-go-name: MaxRunners
            min_idle_runners:
                format: uint64
                type: integer
                x-go-name: MinIdleRunners
            os_arch:
                $ref: '#/definitions/OSArch'
            os_type:
                $ref: '#/definitions/OSType'
            priority:
                format: uint64
                type: integer
                x-go-name: Priority
            runner_bootstrap_timeout:
                format: uint64
                type: integer
                x-go-name: RunnerBootstrapTimeout
            runner_prefix:
                type: string
                x-go-name: Prefix
            tags:
                items:
                    type: string
                type: array
                x-go-name: Tags
        type: object
        x-go-package: github.com/cloudbase/garm/params
    UpdateScaleSetParams:
        properties:
            enabled:
                type: boolean
                x-go-name: Enabled
            extended_state:
                type: string
                x-go-name: ExtendedState
            extra_specs:
                type: object
                x-go-name: ExtraSpecs
            flavor:
                type: string
                x-go-name: Flavor
            image:
                type: string
                x-go-name: Image
            max_runners:
                format: uint64
                type: integer
                x-go-name: MaxRunners
            min_idle_runners:
                format: uint64
                type: integer
                x-go-name: MinIdleRunners
            name:
                type: string
                x-go-name: Name
            os_arch:
                $ref: '#/definitions/OSArch'
            os_type:
                $ref: '#/definitions/OSType'
            runner_bootstrap_timeout:
                format: uint64
                type: integer
                x-go-name: RunnerBootstrapTimeout
            runner_group:
                description: |-
                    GithubRunnerGroup is the github runner group in which the runners of this
                    pool will be added to.
                    The runner group must be created by someone with access to the enterprise.
                type: string
                x-go-name: GitHubRunnerGroup
            runner_prefix:
                type: string
                x-go-name: Prefix
            state:
                $ref: '#/definitions/ScaleSetState'
        type: object
        x-go-package: github.com/cloudbase/garm/params
    User:
        description: Users holds information about a particular user
        properties:
            created_at:
                format: date-time
                type: string
                x-go-name: CreatedAt
            email:
                type: string
                x-go-name: Email
            enabled:
                type: boolean
                x-go-name: Enabled
            full_name:
                type: string
                x-go-name: FullName
            id:
                type: string
                x-go-name: ID
            is_admin:
                type: boolean
                x-go-name: IsAdmin
            updated_at:
                format: date-time
                type: string
                x-go-name: UpdatedAt
            username:
                type: string
                x-go-name: Username
        type: object
        x-go-package: github.com/cloudbase/garm/params
    WebhookEndpointType:
        type: string
        x-go-package: github.com/cloudbase/garm/params
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
            parameters:
                - description: Exact enterprise name to filter by
                  in: query
                  name: name
                  type: string
                - description: Exact endpoint name to filter by
                  in: query
                  name: endpoint
                  type: string
            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
    /enterprises/{enterpriseID}/scalesets:
        get:
            operationId: ListEnterpriseScaleSets
            parameters:
                - description: Enterprise ID.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
            responses:
                "200":
                    description: ScaleSets
                    schema:
                        $ref: '#/definitions/ScaleSets'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List enterprise scale sets.
            tags:
                - enterprises
                - scalesets
        post:
            operationId: CreateEnterpriseScaleSet
            parameters:
                - description: Enterprise ID.
                  in: path
                  name: enterpriseID
                  required: true
                  type: string
                - description: Parameters used when creating the enterprise scale set.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateScaleSetParams'
                    description: Parameters used when creating the enterprise scale set.
                    type: object
            responses:
                "200":
                    description: ScaleSet
                    schema:
                        $ref: '#/definitions/ScaleSet'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create enterprise pool with the parameters given.
            tags:
                - enterprises
                - scalesets
    /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
    /gitea/credentials:
        get:
            operationId: ListGiteaCredentials
            responses:
                "200":
                    description: Credentials
                    schema:
                        $ref: '#/definitions/Credentials'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List all credentials.
            tags:
                - credentials
        post:
            operationId: CreateGiteaCredentials
            parameters:
                - description: Parameters used when creating a Gitea credential.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateGiteaCredentialsParams'
                    description: Parameters used when creating a Gitea credential.
                    type: object
            responses:
                "200":
                    description: ForgeCredentials
                    schema:
                        $ref: '#/definitions/ForgeCredentials'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create a Gitea credential.
            tags:
                - credentials
    /gitea/credentials/{id}:
        delete:
            operationId: DeleteGiteaCredentials
            parameters:
                - description: ID of the Gitea credential.
                  in: path
                  name: id
                  required: true
                  type: integer
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete a Gitea credential.
            tags:
                - credentials
        get:
            operationId: GetGiteaCredentials
            parameters:
                - description: ID of the Gitea credential.
                  in: path
                  name: id
                  required: true
                  type: integer
            responses:
                "200":
                    description: ForgeCredentials
                    schema:
                        $ref: '#/definitions/ForgeCredentials'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get a Gitea credential.
            tags:
                - credentials
        put:
            operationId: UpdateGiteaCredentials
            parameters:
                - description: ID of the Gitea credential.
                  in: path
                  name: id
                  required: true
                  type: integer
                - description: Parameters used when updating a Gitea credential.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdateGiteaCredentialsParams'
                    description: Parameters used when updating a Gitea credential.
                    type: object
            responses:
                "200":
                    description: ForgeCredentials
                    schema:
                        $ref: '#/definitions/ForgeCredentials'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update a Gitea credential.
            tags:
                - credentials
    /gitea/endpoints:
        get:
            operationId: ListGiteaEndpoints
            responses:
                "200":
                    description: ForgeEndpoints
                    schema:
                        $ref: '#/definitions/ForgeEndpoints'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List all Gitea Endpoints.
            tags:
                - endpoints
        post:
            operationId: CreateGiteaEndpoint
            parameters:
                - description: Parameters used when creating a Gitea endpoint.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateGiteaEndpointParams'
                    description: Parameters used when creating a Gitea endpoint.
                    type: object
            responses:
                "200":
                    description: ForgeEndpoint
                    schema:
                        $ref: '#/definitions/ForgeEndpoint'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create a Gitea Endpoint.
            tags:
                - endpoints
    /gitea/endpoints/{name}:
        delete:
            operationId: DeleteGiteaEndpoint
            parameters:
                - description: The name of the Gitea endpoint.
                  in: path
                  name: name
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete a Gitea Endpoint.
            tags:
                - endpoints
        get:
            operationId: GetGiteaEndpoint
            parameters:
                - description: The name of the Gitea endpoint.
                  in: path
                  name: name
                  required: true
                  type: string
            responses:
                "200":
                    description: ForgeEndpoint
                    schema:
                        $ref: '#/definitions/ForgeEndpoint'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get a Gitea Endpoint.
            tags:
                - endpoints
        put:
            operationId: UpdateGiteaEndpoint
            parameters:
                - description: The name of the Gitea endpoint.
                  in: path
                  name: name
                  required: true
                  type: string
                - description: Parameters used when updating a Gitea endpoint.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdateGiteaEndpointParams'
                    description: Parameters used when updating a Gitea endpoint.
                    type: object
            responses:
                "200":
                    description: ForgeEndpoint
                    schema:
                        $ref: '#/definitions/ForgeEndpoint'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update a Gitea Endpoint.
            tags:
                - endpoints
    /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: ForgeCredentials
                    schema:
                        $ref: '#/definitions/ForgeCredentials'
                "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: ForgeCredentials
                    schema:
                        $ref: '#/definitions/ForgeCredentials'
                "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: ForgeCredentials
                    schema:
                        $ref: '#/definitions/ForgeCredentials'
                "400":
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update a GitHub credential.
            tags:
                - credentials
    /github/endpoints:
        get:
            operationId: ListGithubEndpoints
            responses:
                "200":
                    description: ForgeEndpoints
                    schema:
                        $ref: '#/definitions/ForgeEndpoints'
                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: ForgeEndpoint
                    schema:
                        $ref: '#/definitions/ForgeEndpoint'
                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: ForgeEndpoint
                    schema:
                        $ref: '#/definitions/ForgeEndpoint'
                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: ForgeEndpoint
                    schema:
                        $ref: '#/definitions/ForgeEndpoint'
                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
            parameters:
                - description: Exact organization name to filter by
                  in: query
                  name: name
                  type: string
                - description: Exact endpoint name to filter by
                  in: query
                  name: endpoint
                  type: string
            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}/scalesets:
        get:
            operationId: ListOrgScaleSets
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
            responses:
                "200":
                    description: ScaleSets
                    schema:
                        $ref: '#/definitions/ScaleSets'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List organization scale sets.
            tags:
                - organizations
                - scalesets
        post:
            operationId: CreateOrgScaleSet
            parameters:
                - description: Organization ID.
                  in: path
                  name: orgID
                  required: true
                  type: string
                - description: Parameters used when creating the organization scale set.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateScaleSetParams'
                    description: Parameters used when creating the organization scale set.
                    type: object
            responses:
                "200":
                    description: ScaleSet
                    schema:
                        $ref: '#/definitions/ScaleSet'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create organization scale set with the parameters given.
            tags:
                - organizations
                - scalesets
    /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
            parameters:
                - description: Exact owner name to filter by
                  in: query
                  name: owner
                  type: string
                - description: Exact repository name to filter by
                  in: query
                  name: name
                  type: string
                - description: Exact endpoint name to filter by
                  in: query
                  name: endpoint
                  type: string
            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}/scalesets:
        get:
            operationId: ListRepoScaleSets
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
            responses:
                "200":
                    description: ScaleSets
                    schema:
                        $ref: '#/definitions/ScaleSets'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List repository scale sets.
            tags:
                - repositories
                - scalesets
        post:
            operationId: CreateRepoScaleSet
            parameters:
                - description: Repository ID.
                  in: path
                  name: repoID
                  required: true
                  type: string
                - description: Parameters used when creating the repository scale set.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/CreateScaleSetParams'
                    description: Parameters used when creating the repository scale set.
                    type: object
            responses:
                "200":
                    description: ScaleSet
                    schema:
                        $ref: '#/definitions/ScaleSet'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Create repository scale set with the parameters given.
            tags:
                - repositories
                - scalesets
    /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
    /scalesets:
        get:
            operationId: ListScalesets
            responses:
                "200":
                    description: ScaleSets
                    schema:
                        $ref: '#/definitions/ScaleSets'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: List all scalesets.
            tags:
                - scalesets
    /scalesets/{scalesetID}:
        delete:
            operationId: DeleteScaleSet
            parameters:
                - description: ID of the scale set to delete.
                  in: path
                  name: scalesetID
                  required: true
                  type: string
            responses:
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Delete scale set by ID.
            tags:
                - scalesets
        get:
            operationId: GetScaleSet
            parameters:
                - description: ID of the scale set to fetch.
                  in: path
                  name: scalesetID
                  required: true
                  type: string
            responses:
                "200":
                    description: ScaleSet
                    schema:
                        $ref: '#/definitions/ScaleSet'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Get scale set by ID.
            tags:
                - scalesets
        put:
            operationId: UpdateScaleSet
            parameters:
                - description: ID of the scale set to update.
                  in: path
                  name: scalesetID
                  required: true
                  type: string
                - description: Parameters to update the scale set with.
                  in: body
                  name: Body
                  required: true
                  schema:
                    $ref: '#/definitions/UpdateScaleSetParams'
                    description: Parameters to update the scale set with.
                    type: object
            responses:
                "200":
                    description: ScaleSet
                    schema:
                        $ref: '#/definitions/ScaleSet'
                default:
                    description: APIErrorResponse
                    schema:
                        $ref: '#/definitions/APIErrorResponse'
            summary: Update scale set by ID.
            tags:
                - scalesets
    /scalesets/{scalesetID}/instances:
        get:
            operationId: ListScaleSetInstances
            parameters:
                - description: Runner scale set ID.
                  in: path
                  name: scalesetID
                  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 scale set.
            tags:
                - instances
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"
