This change adds a new "generation" field to pools, scalesets and runners. The generation field is inherited by runners from scale sets or pools at the time of creation. The generation field on scalesets and pools is incremented when the pool or scale set is updated in a way that might influence how runners are created (flavor, image, specs, runner groups, etc). Using this new field, we can determine if existing runners have diverged from the settings of the pool/scale set that spawned them. In the CLI we now have a new set of commands available for both pools and scalesets that lists runners, with an optional --outdated flag and a new "rotate" flag that removes all idle runners. Optionally the --outdated flag can be passed to the rotate command to only remove outdated runners. Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
4466 lines
157 KiB
YAML
4466 lines
157 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
|
|
AgentCapabilities:
|
|
properties:
|
|
has_shell:
|
|
type: boolean
|
|
x-go-name: Shell
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
ControllerInfo:
|
|
properties:
|
|
agent_url:
|
|
description: |-
|
|
AgentURL is the URL where the GARM agent will connect. If set behind a reverse proxy, this
|
|
URL must be configured to allow websocket connections.
|
|
type: string
|
|
x-go-name: AgentURL
|
|
cached_garm_agent_release_fetched_at:
|
|
description: CachedGARMAgentReleaseFetchedAt is the timestamp when the release data was last fetched from GARMAgentReleasesURL
|
|
format: date-time
|
|
type: string
|
|
x-go-name: CachedGARMAgentReleaseFetchedAt
|
|
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
|
|
enable_agent_tools_sync:
|
|
description: SyncGARMAgentTools enables or disables automatic sync of garm-agent tools.
|
|
type: boolean
|
|
x-go-name: SyncGARMAgentTools
|
|
garm_agent_releases_url:
|
|
description: |-
|
|
GARMAgentReleasesURL is the URL from where GARM can fetch garm-agent binaries. This URL must
|
|
have an API response compatible with the github releases API.
|
|
The default value for this field is: https://api.github.com/repos/cloudbase/garm-agent/releases
|
|
type: string
|
|
x-go-name: GARMAgentReleasesURL
|
|
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:
|
|
agent_mode:
|
|
type: boolean
|
|
x-go-name: AgentMode
|
|
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
|
|
CreateFileObjectParams:
|
|
properties:
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
size:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: Size
|
|
tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Tags
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
CreateGARMToolParams:
|
|
properties:
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
origin:
|
|
type: string
|
|
x-go-name: Origin
|
|
os_arch:
|
|
$ref: '#/definitions/OSArch'
|
|
os_type:
|
|
$ref: '#/definitions/OSType'
|
|
size:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: Size
|
|
version:
|
|
type: string
|
|
x-go-name: Version
|
|
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
|
|
tools_metadata_url:
|
|
type: string
|
|
x-go-name: ToolsMetadataURL
|
|
use_internal_tools_metadata:
|
|
type: boolean
|
|
x-go-name: UseInternalToolsMetadata
|
|
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:
|
|
agent_mode:
|
|
type: boolean
|
|
x-go-name: AgentMode
|
|
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:
|
|
enable_shell:
|
|
type: boolean
|
|
x-go-name: EnableShell
|
|
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
|
|
template_id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: TemplateID
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
CreateRepoParams:
|
|
properties:
|
|
agent_mode:
|
|
type: boolean
|
|
x-go-name: AgentMode
|
|
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
|
|
enable_shell:
|
|
type: boolean
|
|
x-go-name: EnableShell
|
|
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
|
|
template_id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: TemplateID
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
CreateTemplateParams:
|
|
properties:
|
|
data:
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
type: array
|
|
x-go-name: Data
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
forge_type:
|
|
$ref: '#/definitions/EndpointType'
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
os_type:
|
|
$ref: '#/definitions/OSType'
|
|
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:
|
|
agent_mode:
|
|
type: boolean
|
|
x-go-name: AgentMode
|
|
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
|
|
FileObject:
|
|
properties:
|
|
created_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: CreatedAt
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
file_type:
|
|
type: string
|
|
x-go-name: FileType
|
|
id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: ID
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
sha256:
|
|
type: string
|
|
x-go-name: SHA256
|
|
size:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: Size
|
|
tags:
|
|
items:
|
|
type: string
|
|
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
|
|
FileObjectPaginatedResponse:
|
|
properties:
|
|
current_page:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: CurrentPage
|
|
next_page:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: NextPage
|
|
pages:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: Pages
|
|
previous_page:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: PreviousPage
|
|
results:
|
|
items:
|
|
properties:
|
|
created_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: CreatedAt
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
file_type:
|
|
type: string
|
|
x-go-name: FileType
|
|
id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: ID
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
sha256:
|
|
type: string
|
|
x-go-name: SHA256
|
|
size:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: Size
|
|
tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Tags
|
|
updated_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: UpdatedAt
|
|
type: object
|
|
type: array
|
|
x-go-name: Results
|
|
total_count:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: TotalCount
|
|
type: object
|
|
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
|
|
tools_metadata_url:
|
|
type: string
|
|
x-go-name: ToolsMetadataURL
|
|
updated_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: UpdatedAt
|
|
upload_base_url:
|
|
type: string
|
|
x-go-name: UploadBaseURL
|
|
use_internal_tools_metadata:
|
|
type: boolean
|
|
x-go-name: UseInternalToolsMetadata
|
|
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_mode:
|
|
type: boolean
|
|
x-go-name: AgentMode
|
|
created_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: CreatedAt
|
|
credentials:
|
|
$ref: '#/definitions/ForgeCredentials'
|
|
entity_type:
|
|
$ref: '#/definitions/ForgeEntityType'
|
|
id:
|
|
type: string
|
|
x-go-name: ID
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
owner:
|
|
type: string
|
|
x-go-name: Owner
|
|
pool_balancing_type:
|
|
$ref: '#/definitions/PoolBalancerType'
|
|
updated_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: UpdatedAt
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
ForgeEntityType:
|
|
type: string
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
GARMAgentTool:
|
|
properties:
|
|
created_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: CreatedAt
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
download_url:
|
|
type: string
|
|
x-go-name: DownloadURL
|
|
file_type:
|
|
type: string
|
|
x-go-name: FileType
|
|
id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: ID
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
origin:
|
|
description: |-
|
|
Origin defines where the GARM agent tool originated from.
|
|
When manually uploaded, this field is set to "manual". When synced
|
|
from a release URL, this will hold the release URL where the tools
|
|
originated from.
|
|
type: string
|
|
x-go-name: Origin
|
|
os_arch:
|
|
$ref: '#/definitions/OSArch'
|
|
os_type:
|
|
$ref: '#/definitions/OSType'
|
|
sha256sum:
|
|
type: string
|
|
x-go-name: SHA256SUM
|
|
size:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: Size
|
|
source:
|
|
description: |-
|
|
Source indicates where this tool is currently stored.
|
|
"local" means the tool is stored in the internal object store.
|
|
"upstream" means the tool is only available from the upstream
|
|
cached release and has not been downloaded locally.
|
|
type: string
|
|
x-go-name: Source
|
|
updated_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: UpdatedAt
|
|
version:
|
|
type: string
|
|
x-go-name: Version
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
GARMAgentToolsPaginatedResponse:
|
|
properties:
|
|
current_page:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: CurrentPage
|
|
next_page:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: NextPage
|
|
pages:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: Pages
|
|
previous_page:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: PreviousPage
|
|
results:
|
|
items:
|
|
properties:
|
|
created_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: CreatedAt
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
download_url:
|
|
type: string
|
|
x-go-name: DownloadURL
|
|
file_type:
|
|
type: string
|
|
x-go-name: FileType
|
|
id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: ID
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
origin:
|
|
description: |-
|
|
Origin defines where the GARM agent tool originated from.
|
|
When manually uploaded, this field is set to "manual". When synced
|
|
from a release URL, this will hold the release URL where the tools
|
|
originated from.
|
|
type: string
|
|
x-go-name: Origin
|
|
os_arch:
|
|
type: string
|
|
x-go-name: OSArch
|
|
os_type:
|
|
type: string
|
|
x-go-name: OSType
|
|
sha256sum:
|
|
type: string
|
|
x-go-name: SHA256SUM
|
|
size:
|
|
format: int64
|
|
type: integer
|
|
x-go-name: Size
|
|
source:
|
|
description: |-
|
|
Source indicates where this tool is currently stored.
|
|
"local" means the tool is stored in the internal object store.
|
|
"upstream" means the tool is only available from the upstream
|
|
cached release and has not been downloaded locally.
|
|
type: string
|
|
x-go-name: Source
|
|
updated_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: UpdatedAt
|
|
version:
|
|
type: string
|
|
x-go-name: Version
|
|
type: object
|
|
type: array
|
|
x-go-name: Results
|
|
total_count:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: TotalCount
|
|
type: object
|
|
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
|
|
capabilities:
|
|
$ref: '#/definitions/AgentCapabilities'
|
|
created_at:
|
|
description: CreatedAt is the timestamp of the creation of this runner.
|
|
format: date-time
|
|
type: string
|
|
x-go-name: CreatedAt
|
|
generation:
|
|
description: |-
|
|
Generation is the pool generation at the time of creating this instance.
|
|
This field is to track a divergence between when the instance was created
|
|
and the settings currently set on a pool. We can then use this field to know
|
|
if the instance is out of date with the pool, allowing us to remove it if we
|
|
need to.
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: Generation
|
|
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
|
|
heartbeat:
|
|
description: Heartbeat is the last recorded heartbeat from the runner
|
|
format: date-time
|
|
type: string
|
|
x-go-name: Heartbeat
|
|
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
|
|
InstanceMetadata:
|
|
properties:
|
|
agent_mode:
|
|
description: Agent mode indicates whether or not we need to install the GARM agent on the runner.
|
|
type: boolean
|
|
x-go-name: AgentMode
|
|
agent_shell_enabled:
|
|
type: boolean
|
|
x-go-name: AgentShellEnabled
|
|
agent_token:
|
|
type: string
|
|
x-go-name: AgentToken
|
|
agent_tools:
|
|
$ref: '#/definitions/GARMAgentTool'
|
|
ca_bundles:
|
|
additionalProperties:
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
type: array
|
|
type: object
|
|
x-go-name: CABundle
|
|
extra_specs:
|
|
additionalProperties: {}
|
|
description: |-
|
|
ExtraSpecs represents the extra specs set on the pool or scale set. No secrets should
|
|
be set in extra specs.
|
|
Also, the instance metadata should never be saved to disk, and the metadata URL is only
|
|
accessible during setup of the runner. The API returns unauthorized once the runner
|
|
transitions to failed/idle.
|
|
type: object
|
|
x-go-name: ExtraSpecs
|
|
forge_type:
|
|
$ref: '#/definitions/EndpointType'
|
|
jit_enabled:
|
|
type: boolean
|
|
x-go-name: JITEnabled
|
|
metadata_access:
|
|
$ref: '#/definitions/MetadataServiceAccessDetails'
|
|
runner_labels:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: RunnerLabels
|
|
runner_name:
|
|
type: string
|
|
x-go-name: RunnerName
|
|
runner_registration_url:
|
|
description: |-
|
|
RunnerRegistrationURL is the URL the runner needs to configure itself
|
|
against. This can be a repository, organization, enterprise (github)
|
|
or system (gitea)
|
|
type: string
|
|
x-go-name: RunnerRegistrationURL
|
|
runner_tools:
|
|
$ref: '#/definitions/RunnerApplicationDownload'
|
|
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
|
|
MetadataServiceAccessDetails:
|
|
properties:
|
|
agent_url:
|
|
type: string
|
|
x-go-name: AgentURL
|
|
callback_url:
|
|
type: string
|
|
x-go-name: CallbackURL
|
|
metadata_url:
|
|
type: string
|
|
x-go-name: MetadataURL
|
|
type: object
|
|
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:
|
|
agent_mode:
|
|
type: boolean
|
|
x-go-name: AgentMode
|
|
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
|
|
enable_shell:
|
|
type: boolean
|
|
x-go-name: EnableShell
|
|
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
|
|
generation:
|
|
description: |-
|
|
Generation holds the numeric generation of the pool. This number
|
|
will be incremented, every time certain settings of the pool, which
|
|
may influence how runners are created (flavor, specs, image) are changed.
|
|
When a runner is created, this generation will be copied to the runners as
|
|
well. That way if some settings diverge, we can target those runners
|
|
to be recreated.
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: Generation
|
|
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
|
|
template_id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: TemplateID
|
|
template_name:
|
|
type: string
|
|
x-go-name: TemplateName
|
|
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:
|
|
agent_mode:
|
|
type: boolean
|
|
x-go-name: AgentMode
|
|
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
|
|
RestoreTemplateRequest:
|
|
properties:
|
|
forge:
|
|
$ref: '#/definitions/EndpointType'
|
|
os_type:
|
|
$ref: '#/definitions/OSType'
|
|
restore_all:
|
|
description: |-
|
|
RestoreAll indicates whether or not to restore all known
|
|
system owned templates. If set, the Forge and OSType params
|
|
are ignored.
|
|
type: boolean
|
|
x-go-name: RestoreAll
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
RunnerApplicationDownload:
|
|
description: |-
|
|
This is copied from the go-github package. It does not make sense to create a dependency on go-github just
|
|
for this struct.
|
|
properties:
|
|
architecture:
|
|
type: string
|
|
x-go-name: Architecture
|
|
download_url:
|
|
type: string
|
|
x-go-name: DownloadURL
|
|
filename:
|
|
type: string
|
|
x-go-name: Filename
|
|
os:
|
|
type: string
|
|
x-go-name: OS
|
|
sha256_checksum:
|
|
type: string
|
|
x-go-name: SHA256Checksum
|
|
temp_download_token:
|
|
type: string
|
|
x-go-name: TempDownloadToken
|
|
title: RunnerApplicationDownload represents a binary for the self-hosted runner application that can be downloaded.
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm-provider-common/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
|
|
enable_shell:
|
|
type: boolean
|
|
x-go-name: EnableShell
|
|
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
|
|
generation:
|
|
description: |-
|
|
Generation holds the numeric generation of the scaleset. This number
|
|
will be incremented, every time certain settings of the scaleset, which
|
|
may influence how runners are created (flavor, specs, image) are changed.
|
|
When a runner is created, this generation will be copied to the runners as
|
|
well. That way if some settings diverge, we can target those runners
|
|
to be recreated.
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: Generation
|
|
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
|
|
template_id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: TemplateID
|
|
template_name:
|
|
type: string
|
|
x-go-name: TemplateName
|
|
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
|
|
Template:
|
|
properties:
|
|
created_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: CreatedAt
|
|
data:
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
type: array
|
|
x-go-name: Data
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
forge_type:
|
|
$ref: '#/definitions/EndpointType'
|
|
id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: ID
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
os_type:
|
|
$ref: '#/definitions/OSType'
|
|
owner_id:
|
|
type: string
|
|
x-go-name: Owner
|
|
updated_at:
|
|
format: date-time
|
|
type: string
|
|
x-go-name: UpdatedAt
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
Templates:
|
|
description: used by swagger client generated code
|
|
items:
|
|
$ref: '#/definitions/Template'
|
|
type: array
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
UpdateControllerParams:
|
|
properties:
|
|
agent_url:
|
|
type: string
|
|
x-go-name: AgentURL
|
|
callback_url:
|
|
type: string
|
|
x-go-name: CallbackURL
|
|
enable_agent_tools_sync:
|
|
type: boolean
|
|
x-go-name: SyncGARMAgentTools
|
|
garm_agent_releases_url:
|
|
type: string
|
|
x-go-name: GARMAgentReleasesURL
|
|
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:
|
|
agent_mode:
|
|
type: boolean
|
|
x-go-name: AgentMode
|
|
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
|
|
UpdateFileObjectParams:
|
|
properties:
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
tags:
|
|
items:
|
|
type: string
|
|
type: array
|
|
x-go-name: Tags
|
|
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
|
|
tools_metadata_url:
|
|
type: string
|
|
x-go-name: ToolsMetadataURL
|
|
use_internal_tools_metadata:
|
|
type: boolean
|
|
x-go-name: UseInternalToolsMetadata
|
|
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:
|
|
enable_shell:
|
|
type: boolean
|
|
x-go-name: EnableShell
|
|
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
|
|
template_id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: TemplateID
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
UpdateScaleSetParams:
|
|
properties:
|
|
enable_shell:
|
|
type: boolean
|
|
x-go-name: EnableShell
|
|
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'
|
|
template_id:
|
|
format: uint64
|
|
type: integer
|
|
x-go-name: TemplateID
|
|
type: object
|
|
x-go-package: github.com/cloudbase/garm/params
|
|
UpdateTemplateParams:
|
|
properties:
|
|
data:
|
|
items:
|
|
format: uint8
|
|
type: integer
|
|
type: array
|
|
x-go-name: Data
|
|
description:
|
|
type: string
|
|
x-go-name: Description
|
|
name:
|
|
type: string
|
|
x-go-name: Name
|
|
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
|
|
/controller/tools/sync:
|
|
post:
|
|
description: |-
|
|
Forces an immediate sync of GARM agent tools by resetting the cached timestamp.
|
|
This will trigger the background worker to fetch the latest tools from the configured
|
|
release URL and sync them to the object store.
|
|
|
|
Note: This endpoint requires that GARM agent tools sync is enabled. If sync is disabled,
|
|
the request will return an error.
|
|
operationId: ForceToolsSync
|
|
responses:
|
|
"200":
|
|
description: ControllerInfo
|
|
schema:
|
|
$ref: '#/definitions/ControllerInfo'
|
|
"400":
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
"401":
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Force immediate sync of GARM agent tools.
|
|
tags:
|
|
- controller
|
|
/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
|
|
/objects:
|
|
get:
|
|
operationId: ListFileObjects
|
|
parameters:
|
|
- description: List of tags to filter by.
|
|
in: query
|
|
name: tags
|
|
type: string
|
|
- description: The page at which to list.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Number of items per page.
|
|
in: query
|
|
name: pageSize
|
|
type: integer
|
|
responses:
|
|
"200":
|
|
description: FileObjectPaginatedResponse
|
|
schema:
|
|
$ref: '#/definitions/FileObjectPaginatedResponse'
|
|
"400":
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: List file objects.
|
|
tags:
|
|
- objects
|
|
/objects/{objectID}:
|
|
delete:
|
|
operationId: DeleteFileObject
|
|
parameters:
|
|
- description: The ID of the file object.
|
|
in: path
|
|
name: objectID
|
|
required: true
|
|
type: string
|
|
responses:
|
|
default:
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Delete a file object.
|
|
tags:
|
|
- objects
|
|
get:
|
|
operationId: GetFileObject
|
|
parameters:
|
|
- description: The ID of the file object.
|
|
in: path
|
|
name: objectID
|
|
required: true
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: FileObject
|
|
schema:
|
|
$ref: '#/definitions/FileObject'
|
|
"400":
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Get a file object.
|
|
tags:
|
|
- objects
|
|
put:
|
|
operationId: UpdateFileObject
|
|
parameters:
|
|
- description: The ID of the file object.
|
|
in: path
|
|
name: objectID
|
|
required: true
|
|
type: string
|
|
- description: Parameters used when updating a file object.
|
|
in: body
|
|
name: Body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/UpdateFileObjectParams'
|
|
description: Parameters used when updating a file object.
|
|
type: object
|
|
responses:
|
|
"200":
|
|
description: FileObject
|
|
schema:
|
|
$ref: '#/definitions/FileObject'
|
|
"400":
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Update a file object.
|
|
tags:
|
|
- objects
|
|
/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
|
|
- description: List only instances that were created prior to a pool update that changed a setting which influences how instances are created (image, flavor, runner group, etc).
|
|
in: query
|
|
name: outdatedOnly
|
|
type: boolean
|
|
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
|
|
- description: List only instances that were created prior to a scaleset update that changed a setting which influences how instances are created (image, flavor, runner group, etc).
|
|
in: query
|
|
name: outdatedOnly
|
|
type: boolean
|
|
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
|
|
/templates:
|
|
get:
|
|
operationId: ListTemplates
|
|
parameters:
|
|
- description: OS type of the templates.
|
|
in: query
|
|
name: osType
|
|
type: string
|
|
- description: Partial or full name of the template.
|
|
in: query
|
|
name: partialName
|
|
type: string
|
|
- description: Forge type of the templates.
|
|
in: query
|
|
name: forgeType
|
|
type: string
|
|
responses:
|
|
"200":
|
|
description: Templates
|
|
schema:
|
|
$ref: '#/definitions/Templates'
|
|
default:
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: List templates.
|
|
tags:
|
|
- templates
|
|
post:
|
|
operationId: CreateTemplate
|
|
parameters:
|
|
- description: Parameters used when creating the template.
|
|
in: body
|
|
name: Body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CreateTemplateParams'
|
|
description: Parameters used when creating the template.
|
|
type: object
|
|
responses:
|
|
"200":
|
|
description: Template
|
|
schema:
|
|
$ref: '#/definitions/Template'
|
|
default:
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Create template with the parameters given.
|
|
tags:
|
|
- templates
|
|
/templates/{templateID}:
|
|
delete:
|
|
operationId: DeleteTemplate
|
|
parameters:
|
|
- description: ID of the template to delete.
|
|
in: path
|
|
name: templateID
|
|
required: true
|
|
type: number
|
|
responses:
|
|
default:
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Get template by ID.
|
|
tags:
|
|
- templates
|
|
get:
|
|
operationId: GetTemplate
|
|
parameters:
|
|
- description: ID of the template to fetch.
|
|
in: path
|
|
name: templateID
|
|
required: true
|
|
type: number
|
|
responses:
|
|
"200":
|
|
description: Template
|
|
schema:
|
|
$ref: '#/definitions/Template'
|
|
default:
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Get template by ID.
|
|
tags:
|
|
- templates
|
|
put:
|
|
operationId: UpdateTemplate
|
|
parameters:
|
|
- description: ID of the template to update.
|
|
in: path
|
|
name: templateID
|
|
required: true
|
|
type: string
|
|
- description: Parameters used when updating the template.
|
|
in: body
|
|
name: Body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/UpdateTemplateParams'
|
|
description: Parameters used when updating the template.
|
|
type: object
|
|
responses:
|
|
"200":
|
|
description: Template
|
|
schema:
|
|
$ref: '#/definitions/Template'
|
|
default:
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Update template with the parameters given.
|
|
tags:
|
|
- templates
|
|
/templates/restore:
|
|
post:
|
|
operationId: RestoreTemplates
|
|
parameters:
|
|
- description: Parameters used when restoring the templates.
|
|
in: body
|
|
name: Body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/RestoreTemplateRequest'
|
|
description: Parameters used when restoring the templates.
|
|
type: object
|
|
responses:
|
|
default:
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Create template with the parameters given.
|
|
tags:
|
|
- templates
|
|
/tools/garm-agent:
|
|
get:
|
|
operationId: AdminGarmAgentList
|
|
parameters:
|
|
- description: The page at which to list.
|
|
in: query
|
|
name: page
|
|
type: integer
|
|
- description: Number of items per page.
|
|
in: query
|
|
name: pageSize
|
|
type: integer
|
|
- description: If true, list tools from the upstream cached release instead of the local object store.
|
|
in: query
|
|
name: upstream
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
description: GARMAgentToolsPaginatedResponse
|
|
schema:
|
|
$ref: '#/definitions/GARMAgentToolsPaginatedResponse'
|
|
"400":
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: List GARM agent tools for admin users.
|
|
tags:
|
|
- tools
|
|
post:
|
|
description: |-
|
|
Uploads a GARM agent tool for a specific OS and architecture.
|
|
This will automatically replace any existing tool for the same OS/architecture combination.
|
|
|
|
Uses custom headers for metadata:
|
|
|
|
X-Tool-Name: Name of the tool
|
|
|
|
X-Tool-Description: Description
|
|
|
|
X-Tool-OS-Type: OS type (linux or windows)
|
|
|
|
X-Tool-OS-Arch: Architecture (amd64 or arm64)
|
|
|
|
X-Tool-Version: Version string
|
|
operationId: UploadGARMAgentTool
|
|
responses:
|
|
"200":
|
|
description: FileObject
|
|
schema:
|
|
$ref: '#/definitions/FileObject'
|
|
"400":
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
"401":
|
|
description: APIErrorResponse
|
|
schema:
|
|
$ref: '#/definitions/APIErrorResponse'
|
|
summary: Upload a GARM agent tool binary.
|
|
tags:
|
|
- tools
|
|
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"
|