garm/webapp/swagger.yaml
Gabriel Adrian Samfira eec158b32c Add SPA UI for GARM
This change adds a single page application front-end to GARM. It uses
a generated REST client, built from the swagger definitions, the websocket
interface for live updates of entities and eager loading of everything
except runners, as users may have many runners and we don't want to load
hundreds of runners in memory.

Proper pagination should be implemented in the API, in future commits,
to avoid loading lots of elements for no reason.

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2025-08-16 09:09:13 +00:00

3469 lines
121 KiB
YAML

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"