mirror of https://github.com/artifacthub/hub.git
3247 lines
94 KiB
YAML
3247 lines
94 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: Artifact Hub
|
|
description: "Find, install and publish Kubernetes packages"
|
|
version: 0.12.0
|
|
servers:
|
|
- url: "https://artifacthub.io/api/v1"
|
|
description: Main production server
|
|
- url: "https://staging.artifacthub.io/api/v1"
|
|
description: Staging server for testing
|
|
- url: "http://localhost:8000/api/v1"
|
|
description: Local server for development
|
|
tags:
|
|
- name: Users
|
|
description: ""
|
|
- name: Organizations
|
|
description: ""
|
|
- name: Repositories
|
|
description: ""
|
|
- name: Packages
|
|
description: ""
|
|
- name: Subscriptions
|
|
description: ""
|
|
- name: Webhooks
|
|
description: ""
|
|
- name: Availability checks
|
|
description: ""
|
|
- name: Integrations
|
|
description: ""
|
|
paths:
|
|
/users:
|
|
post:
|
|
tags:
|
|
- Users
|
|
summary: Register a new user
|
|
requestBody:
|
|
description: ""
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- alias
|
|
- email
|
|
- password
|
|
properties:
|
|
alias:
|
|
type: string
|
|
example: jdoe
|
|
first_name:
|
|
type: string
|
|
example: John
|
|
last_name:
|
|
type: string
|
|
example: Doe
|
|
email:
|
|
type: string
|
|
format: email
|
|
example: jdoe@email.com
|
|
password:
|
|
type: string
|
|
format: password
|
|
example: pass123
|
|
responses:
|
|
"201":
|
|
$ref: "#/components/responses/Created"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/users/verify-email:
|
|
post:
|
|
tags:
|
|
- Users
|
|
summary: Verify user's email address
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- code
|
|
properties:
|
|
code:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"410":
|
|
description: The code provided has expired
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/users/profile:
|
|
get:
|
|
tags:
|
|
- Users
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get user's profile
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
put:
|
|
tags:
|
|
- Users
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update user's profile
|
|
requestBody:
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/User"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/users/password:
|
|
put:
|
|
tags:
|
|
- Users
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Update user's password
|
|
requestBody:
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required:
|
|
- old
|
|
- new
|
|
properties:
|
|
old:
|
|
type: string
|
|
format: password
|
|
new:
|
|
type: string
|
|
format: password
|
|
example:
|
|
old: oldPass
|
|
new: newPass
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/orgs:
|
|
post:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Register new organization
|
|
requestBody:
|
|
description: ""
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OrganizationSummary"
|
|
responses:
|
|
"201":
|
|
$ref: "#/components/responses/Created"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/orgs/user:
|
|
get:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get organizations the user belongs to
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Organization"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/orgs/{orgName}":
|
|
get:
|
|
tags:
|
|
- Organizations
|
|
summary: Get organization profile
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OrganizationSummary"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
put:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Updates organization profile
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
requestBody:
|
|
description: ""
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OrganizationSummary"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/orgs/{orgName}/authorizationPolicy":
|
|
get:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get organization's authorization policy
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AuthorizationPolicy"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
put:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Update organization's authorization policy
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
requestBody:
|
|
description: ""
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AuthorizationPolicy"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/orgs/{orgName}/members":
|
|
get:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get organization members
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Member"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/orgs/{orgName}/member/{userAlias}":
|
|
post:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Add a new member to the organization
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
- $ref: "#/components/parameters/UserAliasParam"
|
|
responses:
|
|
"201":
|
|
$ref: "#/components/responses/Created"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
delete:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Delete a member from the organization
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
- $ref: "#/components/parameters/UserAliasParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/orgs/{orgName}/accept-invitation":
|
|
get:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Confirm user's membership to an organization
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/orgs/{orgName}/userAllowedActions":
|
|
get:
|
|
tags:
|
|
- Organizations
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: >-
|
|
Get actions which user is allowed to perform in the provided
|
|
organization
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AuthorizerAction"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/repositories:
|
|
get:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get all repositories
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Repository"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/repositories/{^helm$|^falco$|^opa$|^olm|^tbaction$}":
|
|
get:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get all available repositories of the provided kind
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoKindParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Repository"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/repositories/user:
|
|
get:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get user's repositories
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Repository"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
post:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Add user's repository
|
|
requestBody:
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/requestBodies/RepositoryBody"
|
|
responses:
|
|
"201":
|
|
$ref: "#/components/responses/Created"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/repositories/user/{repoName}":
|
|
put:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Update user's repository
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
requestBody:
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/requestBodies/RepositoryBody"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
delete:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Delete user's repository
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/repositories/user/{repoName}/transfer":
|
|
put:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Transfer user's repository ownership to an organization
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/OrgNameToTransferParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/repositories/user/{repoName}/claimOwnership":
|
|
put:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Claim the ownership of a given repository
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/OrgNameToTransferParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/repositories/org/{orgName}":
|
|
get:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get organization's repositories
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Repository"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
post:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Add organization's repository
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
requestBody:
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/requestBodies/RepositoryBody"
|
|
responses:
|
|
"201":
|
|
$ref: "#/components/responses/Created"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/repositories/org/{orgName}/{repoName}":
|
|
put:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Update organization's repository
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
requestBody:
|
|
description: Repository
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/requestBodies/RepositoryBody"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
delete:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Delete organization's repository
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/repositories/org/{orgName}/{repoName}/transfer":
|
|
put:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Transfer organization's repository to a different owner
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/OrgNameToTransferParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/repositories/org/{orgName}/{repoName}/claimOwnership":
|
|
put:
|
|
tags:
|
|
- Repositories
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Claim the ownership of a given repository
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/OrgNameToTransferParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/packages/stats:
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get the number of packages and releases registered
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
packages:
|
|
type: integer
|
|
releases:
|
|
type: integer
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/packages/random:
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get some random packages
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PackageSummary"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/packages/search:
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Search packages that meet the provided criteria
|
|
parameters:
|
|
- $ref: "#/components/parameters/OffsetParam"
|
|
- $ref: "#/components/parameters/LimitParam"
|
|
- $ref: "#/components/parameters/FacetsParam"
|
|
- $ref: "#/components/parameters/TSQueryWebParam"
|
|
- $ref: "#/components/parameters/TSQueryParam"
|
|
- $ref: "#/components/parameters/RepositoryKindsListParam"
|
|
- $ref: "#/components/parameters/UsersListParam"
|
|
- $ref: "#/components/parameters/OrgsListParam"
|
|
- $ref: "#/components/parameters/RepositoriesListParam"
|
|
- $ref: "#/components/parameters/LicensesListParam"
|
|
- $ref: "#/components/parameters/CapabilitiesListParam"
|
|
- $ref: "#/components/parameters/DeprecatedParam"
|
|
- $ref: "#/components/parameters/OperatorsParam"
|
|
- $ref: "#/components/parameters/VerifiedPublisherParam"
|
|
- $ref: "#/components/parameters/OfficialParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: object
|
|
properties:
|
|
packages:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
$ref: "#/components/schemas/PackageSummary"
|
|
facets:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
$ref: "#/components/schemas/Facets"
|
|
metadata:
|
|
type: object
|
|
nullable: false
|
|
required:
|
|
- total
|
|
properties:
|
|
limit:
|
|
type: integer
|
|
nullable: false
|
|
offset:
|
|
type: integer
|
|
nullable: false
|
|
total:
|
|
type: integer
|
|
nullable: false
|
|
examples:
|
|
s1:
|
|
value:
|
|
data:
|
|
packages:
|
|
- package_id: a9c77b9a-2cd1-4a8f-b9e8-6b8f94e13407
|
|
name: artifact-hub
|
|
normalized_name: artifact-hub
|
|
logo_image_id: 0f5488e2-da57-486b-a20f-bfe746ed3e23
|
|
stars: 2
|
|
display_name: null
|
|
description: >-
|
|
Artifact Hub is a web-based application that enables
|
|
finding, installing, and publishing Kubernetes
|
|
packages.
|
|
version: 0.1.0
|
|
app_version: 0.1.0
|
|
deprecated: false
|
|
signed: null
|
|
license: null
|
|
capabilities: null
|
|
repository:
|
|
url: "http://url.com"
|
|
kind: 0
|
|
name: artifact-hub
|
|
display_name: Artifact Hub
|
|
repository_id: a032a436-3568-4970-804a-2780f5e9d231
|
|
user_alias: null
|
|
organization_name: artifacthub
|
|
organization_display_name: Artifact Hub
|
|
verified_publisher: true
|
|
official: true
|
|
- package_id: 3af7b6a1-adbd-41f1-ad96-e1eb3350b019
|
|
name: sentry-kubernetes
|
|
normalized_name: sentry-kubernetes
|
|
logo_image_id: 55f2ed75-015d-4edd-9990-11fb2ffcae9e
|
|
stars: 0
|
|
display_name: null
|
|
description: A Helm chart for sentry-kubernetes
|
|
version: 0.2.3
|
|
app_version: latest
|
|
deprecated: false
|
|
signed: null
|
|
license: null
|
|
capabilities: null
|
|
repository:
|
|
url: "http://url.com"
|
|
kind: 0
|
|
name: incubator
|
|
display_name: Incubator
|
|
repository_id: dba459d0-6beb-451a-b15a-52d67cc93fa0
|
|
user_alias: null
|
|
organization_name: helm
|
|
organization_display_name: Helm
|
|
verified_publisher: false
|
|
official: false
|
|
- package_id: 0d38123f-fb60-41f0-bd00-76fb331bf7ed
|
|
name: etcd-operator
|
|
normalized_name: etcd-operator
|
|
logo_image_id: 5gt2ed75-015d-40dd-9990-11fb2tgcae9e
|
|
stars: 0
|
|
display_name: null
|
|
description: CoreOS etcd-operator Helm chart for Kubernetes
|
|
version: 0.10.3
|
|
app_version: 0.9.4
|
|
deprecated: false
|
|
signed: null
|
|
license: null
|
|
capabilities: null
|
|
repository:
|
|
url: "http://url.com"
|
|
kind: 0
|
|
name: stable
|
|
display_name: Stable
|
|
repository_id: dba484d0-6beb-451s-i85a-52d67iu73fa0
|
|
user_alias: null
|
|
organization_name: helm
|
|
organization_display_name: Helm
|
|
verified_publisher: false
|
|
official: false
|
|
facets:
|
|
- title: Organization
|
|
filter_key: org
|
|
options:
|
|
- id: helm
|
|
name: Helm
|
|
total: 53
|
|
- id: artifacthub
|
|
name: Artifact Hub
|
|
total: 1
|
|
- title: kind
|
|
filter_key: kind
|
|
options:
|
|
- id: 0
|
|
name: Helm charts
|
|
total: 54
|
|
- title: Repository
|
|
filter_key: repo
|
|
options:
|
|
- id: stable
|
|
name: Stable
|
|
total: 16
|
|
- id: incubator
|
|
name: Incubator
|
|
total: 36
|
|
- id: artifact-hub
|
|
name: Artifact Hub
|
|
total: 1
|
|
metadata:
|
|
limit: 15
|
|
offset: 3
|
|
total: 54
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/packages/starred:
|
|
get:
|
|
tags:
|
|
- Packages
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get packages starred by user
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PackageSummary"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/helm/{repoName}/{packageName}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/HelmPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/falco/{repoName}/{packageName}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FalcoPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/opa/{repoName}/{packageName}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OPAPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/olm/{repoName}/{packageName}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OLMPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/tbaction/{repoName}/{packageName}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TBActionPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/helm/{repoName}/{packageName}/{version}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package version details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
- $ref: "#/components/parameters/VersionParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/HelmPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/falco/{repoName}/{packageName}/{version}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package version details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
- $ref: "#/components/parameters/VersionParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/FalcoPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/opa/{repoName}/{packageName}/{version}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package version details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
- $ref: "#/components/parameters/VersionParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OPAPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/olm/{repoName}/{packageName}/{version}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package version details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
- $ref: "#/components/parameters/VersionParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OLMPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/tbaction/{repoName}/{packageName}/{version}":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package version details
|
|
parameters:
|
|
- $ref: "#/components/parameters/RepoNameParam"
|
|
- $ref: "#/components/parameters/PackageNameParam"
|
|
- $ref: "#/components/parameters/VersionParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TBActionPackage"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/{packageID}/stars":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package stars
|
|
parameters:
|
|
- $ref: "#/components/parameters/PackageIDParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
stars:
|
|
type: integer
|
|
starred_by_user:
|
|
type: boolean
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
put:
|
|
tags:
|
|
- Packages
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Toggle package's star
|
|
parameters:
|
|
- $ref: "#/components/parameters/PackageIDParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/{packageID}/{version}/securityReport":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package security report
|
|
parameters:
|
|
- $ref: "#/components/parameters/PackageIDParam"
|
|
- $ref: "#/components/parameters/VersionParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
nullable: false
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/{packageID}/{version}/valuesSchema":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package values schema
|
|
parameters:
|
|
- $ref: "#/components/parameters/PackageIDParam"
|
|
- $ref: "#/components/parameters/VersionParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
additionalProperties: true
|
|
nullable: false
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/packages/{packageID}/changelog":
|
|
get:
|
|
tags:
|
|
- Packages
|
|
summary: Get package changelogs
|
|
parameters:
|
|
- $ref: "#/components/parameters/PackageIDParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- version
|
|
- created_at
|
|
- contains_security_updates
|
|
- prerelease
|
|
properties:
|
|
version:
|
|
type: string
|
|
nullable: false
|
|
created_at:
|
|
type: integer
|
|
nullable: false
|
|
changes:
|
|
type: array
|
|
items:
|
|
type: string
|
|
nullable: false
|
|
contains_security_updates:
|
|
type: boolean
|
|
nullable: false
|
|
prerelease:
|
|
type: boolean
|
|
nullable: false
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"404":
|
|
$ref: "#/components/responses/NotFoundResponse"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/subscriptions:
|
|
get:
|
|
tags:
|
|
- Subscriptions
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get user's subscriptions
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- package_id
|
|
- name
|
|
- normalized_name
|
|
- repository
|
|
- event_kinds
|
|
properties:
|
|
package_id:
|
|
type: string
|
|
format: uuid
|
|
nullable: false
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
example: pkg1
|
|
normalized_name:
|
|
type: string
|
|
nullable: false
|
|
example: pkg1
|
|
logo_image_id:
|
|
type: string
|
|
nullable: false
|
|
example: 12345abcde
|
|
repository:
|
|
$ref: "#/components/schemas/RepositorySummary"
|
|
nullable: false
|
|
event_kinds:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EventKindId"
|
|
nullable: false
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
post:
|
|
tags:
|
|
- Subscriptions
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Add subscription
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/SubscriptionBody"
|
|
responses:
|
|
"201":
|
|
$ref: "#/components/responses/Created"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
delete:
|
|
tags:
|
|
- Subscriptions
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Delete subscription
|
|
parameters:
|
|
- $ref: "#/components/parameters/PackageIDParam"
|
|
- $ref: "#/components/parameters/EventKindParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/subscriptions/{packageID}":
|
|
get:
|
|
tags:
|
|
- Subscriptions
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get user's subscriptions for the given package
|
|
parameters:
|
|
- $ref: "#/components/parameters/PackageIDParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- event_kind
|
|
properties:
|
|
event_kind:
|
|
$ref: "#/components/schemas/EventKindId"
|
|
nullable: false
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/subscriptions/opt-out:
|
|
get:
|
|
tags:
|
|
- Subscriptions
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get user's opt-out entries
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- opt_out_id
|
|
- repository
|
|
- event_kind
|
|
properties:
|
|
opt_out_id:
|
|
type: string
|
|
format: uuid
|
|
nullable: false
|
|
repository:
|
|
$ref: "#/components/schemas/RepositorySummary"
|
|
nullable: false
|
|
event_kind:
|
|
$ref: "#/components/schemas/EventKindId"
|
|
nullable: false
|
|
example: 2
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
post:
|
|
tags:
|
|
- Subscriptions
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Add opt-out entry
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/OptOutBody"
|
|
responses:
|
|
"201":
|
|
$ref: "#/components/responses/Created"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/subscriptions/opt-out/{optOutID}":
|
|
delete:
|
|
tags:
|
|
- Subscriptions
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Delete opt-out entry
|
|
parameters:
|
|
- $ref: "#/components/parameters/OptOutIDParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/webhooks/user:
|
|
get:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get user's webhooks
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Webhook"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
post:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Add user's webhook
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/WebhookBody"
|
|
responses:
|
|
"201":
|
|
$ref: "#/components/responses/Created"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/webhooks/user/{webhookID}":
|
|
get:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get user's webhook
|
|
parameters:
|
|
- $ref: "#/components/parameters/WebhookIDParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Webhook"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
put:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Update user's webhook
|
|
parameters:
|
|
- $ref: "#/components/parameters/WebhookIDParam"
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/WebhookBody"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
delete:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Delete user's webhook
|
|
parameters:
|
|
- $ref: "#/components/parameters/WebhookIDParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/webhooks/org/{orgName}":
|
|
get:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get organization's webhooks
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Webhook"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
post:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Add organization's webhook
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/WebhookBody"
|
|
responses:
|
|
"201":
|
|
$ref: "#/components/responses/Created"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/webhooks/org/{orgName}/{webhookID}":
|
|
get:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Get organization's webhook
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
- $ref: "#/components/parameters/WebhookIDParam"
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Webhook"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
put:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Update organization's webhook
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
- $ref: "#/components/parameters/WebhookIDParam"
|
|
requestBody:
|
|
$ref: "#/components/requestBodies/WebhookBody"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
delete:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Delete organization's webhook
|
|
parameters:
|
|
- $ref: "#/components/parameters/OrgNameParam"
|
|
- $ref: "#/components/parameters/WebhookIDParam"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"403":
|
|
$ref: "#/components/responses/Forbidden"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/webhooks/test:
|
|
post:
|
|
tags:
|
|
- Webhooks
|
|
security:
|
|
- ApiKeyAuth: []
|
|
- CookieAuth: []
|
|
summary: Trigger webhook test
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WebhookTest"
|
|
responses:
|
|
"204":
|
|
$ref: "#/components/responses/NoContent"
|
|
"400":
|
|
$ref: "#/components/responses/BadRequest"
|
|
"401":
|
|
$ref: "#/components/responses/UnauthorizedError"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
"/check-availability/{resourceKind}":
|
|
head:
|
|
tags:
|
|
- Availability checks
|
|
summary: Check the availability of a given value for the provided resource kind
|
|
parameters:
|
|
- $ref: "#/components/parameters/ResourceKindNameParam"
|
|
- in: query
|
|
name: v
|
|
schema:
|
|
type: string
|
|
required: true
|
|
description: Value to check
|
|
responses:
|
|
"204":
|
|
description: "Found, the value is not available"
|
|
"404":
|
|
description: "Not found, the value is available"
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
/harborReplication:
|
|
get:
|
|
tags:
|
|
- Integrations
|
|
summary: Get Harbor replication dump
|
|
responses:
|
|
"200":
|
|
description: ""
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- repository
|
|
- package
|
|
- version
|
|
- url
|
|
properties:
|
|
repository:
|
|
type: string
|
|
nullable: false
|
|
package:
|
|
type: string
|
|
nullable: false
|
|
version:
|
|
type: string
|
|
nullable: false
|
|
url:
|
|
type: string
|
|
format: uri
|
|
nullable: false
|
|
example:
|
|
- repository: bitnami
|
|
package: nginx-ingress-controller
|
|
version: 5.6.10
|
|
url: https://charts.bitnami.com/bitnami/nginx-ingress-controller-5.6.10.tgz
|
|
- repository: bitnami
|
|
package: mediawiki
|
|
version: 6.3.6
|
|
url: https://charts.bitnami.com/bitnami/mediawiki-6.3.6.tgz
|
|
- repository: crossplane
|
|
package: crossplane
|
|
version: 0.0.0-793.c9c71f8
|
|
url: https://charts.crossplane.io/master/crossplane-0.0.0-793.c9c71f8.tgz
|
|
- repository: choerodon
|
|
package: devops-service
|
|
version: 0.22.0
|
|
url: https://openchart.choerodon.com.cn/choerodon/c7n/charts/devops-service-0.22.0.tgz
|
|
- repository: t3n
|
|
package: snipeit
|
|
version: 2.4.0
|
|
url: https://storage.googleapis.com/t3n-helm-charts/snipeit-2.4.0.tgz
|
|
- repository: bitnami
|
|
package: osclass
|
|
version: 7.0.10
|
|
url: https://charts.bitnami.com/bitnami/osclass-7.0.10.tgz
|
|
- repository: choerodon
|
|
package: asgard-service
|
|
version: 0.13.0
|
|
url: https://openchart.choerodon.com.cn/choerodon/c7n/charts/asgard-service-0.13.0.tgz
|
|
- repository: bitnami
|
|
package: osclass
|
|
version: 3.2.0
|
|
url: https://charts.bitnami.com/bitnami/osclass-3.2.0.tgz
|
|
- repository: cronce
|
|
package: torrentor
|
|
version: 0.3.0
|
|
url: https://charts.cronce.io/charts/torrentor-0.3.0.tgz
|
|
- repository: banzaicloud-stable
|
|
package: kafka-operator
|
|
version: 0.0.12
|
|
url: https://kubernetes-charts.banzaicloud.com/charts/kafka-operator-0.0.12.tgz
|
|
"429":
|
|
$ref: "#/components/responses/TooManyRequests"
|
|
"500":
|
|
$ref: "#/components/responses/InternalServerError"
|
|
components:
|
|
securitySchemes:
|
|
ApiKeyAuth:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-KEY
|
|
CookieAuth:
|
|
type: apiKey
|
|
in: cookie
|
|
name: sid
|
|
schemas:
|
|
AuthorizerAction:
|
|
type: string
|
|
enum:
|
|
- all
|
|
- addOrganizationMember
|
|
- addOrganizationRepository
|
|
- deleteOrganizationMember
|
|
- deleteOrganizationRepository
|
|
- getAuthorizationPolicy
|
|
- transferOrganizationRepository
|
|
- updateAuthorizationPolicy
|
|
- updateOrganization
|
|
- updateOrganizationRepository
|
|
description: >
|
|
Authorization policy action:
|
|
|
|
* `all` - All actions
|
|
|
|
* `addOrganizationMember` - Add member to organization
|
|
|
|
* `addOrganizationRepository` - Add repository to organization
|
|
|
|
* `deleteOrganizationMember` - Delete member from organization
|
|
|
|
* `deleteOrganizationRepository` - Delete repository from organization
|
|
|
|
* `getAuthorizationPolicy` - Get authorization policy
|
|
|
|
* `transferOrganizationRepository` - Transfer repository from
|
|
organization
|
|
|
|
* `updateAuthorizationPolicy` - Update authorization policy
|
|
|
|
* `updateOrganization` - Update organization
|
|
|
|
* `updateOrganizationRepository` - Update repository from organization
|
|
AuthorizationPolicy:
|
|
type: object
|
|
required:
|
|
- authorization_enabled
|
|
properties:
|
|
authorization_enabled:
|
|
type: boolean
|
|
nullable: false
|
|
predefined_policy:
|
|
type: string
|
|
nullable: false
|
|
example: rbac.v1
|
|
custom_policy:
|
|
type: string
|
|
nullable: false
|
|
example: |
|
|
package artifacthub.authz
|
|
|
|
# By default, deny requests
|
|
default allow = false
|
|
|
|
# Allow the action if the user is allowed to perform it
|
|
allow {
|
|
# If user's role is owner
|
|
data.roles.owner.users[_] == input.user
|
|
}
|
|
allow {
|
|
# If user's role is allowed to perform this action
|
|
allowed_actions[_] == input.action
|
|
}
|
|
|
|
# Get user allowed actions
|
|
allowed_actions[action] {
|
|
user_roles[_] == "owner"
|
|
action := "all"
|
|
}
|
|
allowed_actions[action] {
|
|
action := data.roles[role].allowed_actions[_]
|
|
user_roles[_] == role
|
|
}
|
|
|
|
# Get user roles
|
|
user_roles[role] {
|
|
data.roles[role].users[_] == input.user
|
|
}
|
|
policy_data:
|
|
type: object
|
|
nullable: false
|
|
additionalProperties: true
|
|
example:
|
|
roles:
|
|
owner:
|
|
users:
|
|
- user1
|
|
customRole1:
|
|
users:
|
|
- member1
|
|
- member2
|
|
allowed_actions:
|
|
- addOrganizationMember
|
|
- addOrganizationRepository
|
|
Error:
|
|
type: object
|
|
properties:
|
|
message:
|
|
type: string
|
|
example: error details
|
|
EventKindId:
|
|
type: integer
|
|
enum:
|
|
- 0
|
|
- 2
|
|
description: |
|
|
Event kind:
|
|
* `0` - New package release
|
|
* `2` - Repository tracking errors
|
|
Facets:
|
|
type: object
|
|
required:
|
|
- filter_key
|
|
- title
|
|
- options
|
|
properties:
|
|
filter_key:
|
|
type: string
|
|
nullable: false
|
|
title:
|
|
type: string
|
|
nullable: false
|
|
options:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
type: object
|
|
required:
|
|
- id
|
|
- name
|
|
- total
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: uuid
|
|
nullable: false
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
total:
|
|
type: integer
|
|
nullable: false
|
|
example:
|
|
title: Organization
|
|
filter_key: org
|
|
options:
|
|
- id: helm
|
|
name: Helm
|
|
total: 292
|
|
- id: artifact-hub
|
|
name: Artifact Hub
|
|
total: 1
|
|
FalcoPackage:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Package"
|
|
- type: object
|
|
properties:
|
|
data:
|
|
type: object
|
|
nullable: false
|
|
properties:
|
|
rules:
|
|
oneOf:
|
|
- type: array
|
|
items:
|
|
type: object
|
|
nullable: false
|
|
properties:
|
|
Raw:
|
|
type: string
|
|
example: |
|
|
- macro: text
|
|
condition: (evt.num < 0)
|
|
- type: object
|
|
nullable: false
|
|
additionalProperties: true
|
|
HelmPackage:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Package"
|
|
- type: object
|
|
properties:
|
|
crds:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
type: object
|
|
required:
|
|
- kind
|
|
- name
|
|
- version
|
|
- description
|
|
- displayName
|
|
properties:
|
|
kind:
|
|
type: string
|
|
nullable: false
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
version:
|
|
type: string
|
|
nullable: false
|
|
description:
|
|
type: string
|
|
nullable: false
|
|
displayName:
|
|
type: string
|
|
nullable: false
|
|
crds_examples:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
type: object
|
|
additionalProperties: true
|
|
data:
|
|
type: object
|
|
nullable: false
|
|
properties:
|
|
dependencies:
|
|
type: object
|
|
nullable: false
|
|
required:
|
|
- name
|
|
- version
|
|
- repository
|
|
properties:
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
example: mysql
|
|
version:
|
|
type: string
|
|
nullable: false
|
|
example: 1.6.4
|
|
repository:
|
|
type: string
|
|
nullable: false
|
|
example: "http://repo.url"
|
|
Link:
|
|
type: object
|
|
nullable: false
|
|
required:
|
|
- url
|
|
- name
|
|
properties:
|
|
url:
|
|
type: string
|
|
format: uri
|
|
nullable: false
|
|
example: "http://url"
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
example: link
|
|
Maintainer:
|
|
type: object
|
|
nullable: false
|
|
required:
|
|
- name
|
|
- email
|
|
properties:
|
|
maintainer_id:
|
|
type: string
|
|
format: uuid
|
|
nullable: false
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
example: maintainer1
|
|
email:
|
|
type: string
|
|
nullable: false
|
|
example: maintainer@email.com
|
|
Member:
|
|
type: object
|
|
required:
|
|
- alias
|
|
- confirmed
|
|
properties:
|
|
alias:
|
|
type: string
|
|
nullable: false
|
|
example: jdoe
|
|
first_name:
|
|
type: string
|
|
nullable: false
|
|
example: John
|
|
last_name:
|
|
type: string
|
|
nullable: false
|
|
example: Doe
|
|
confirmed:
|
|
type: boolean
|
|
nullable: false
|
|
example: true
|
|
OLMPackage:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Package"
|
|
- type: object
|
|
properties:
|
|
crds:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
type: object
|
|
nullable: false
|
|
required:
|
|
- kind
|
|
- name
|
|
- version
|
|
- description
|
|
- displayName
|
|
properties:
|
|
kind:
|
|
type: string
|
|
nullable: false
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
version:
|
|
type: string
|
|
nullable: false
|
|
description:
|
|
type: string
|
|
nullable: false
|
|
displayName:
|
|
type: string
|
|
nullable: false
|
|
crds_examples:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
type: object
|
|
additionalProperties: true
|
|
data:
|
|
type: object
|
|
required:
|
|
- isGlobalOperator
|
|
properties:
|
|
isGlobalOperator:
|
|
type: boolean
|
|
nullable: false
|
|
customResourcesDefinitions:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
type: object
|
|
required:
|
|
- kind
|
|
- name
|
|
- version
|
|
- description
|
|
- displayName
|
|
properties:
|
|
kind:
|
|
type: string
|
|
nullable: false
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
version:
|
|
type: string
|
|
nullable: false
|
|
description:
|
|
type: string
|
|
nullable: false
|
|
displayName:
|
|
type: string
|
|
nullable: false
|
|
customResourcesDefinitionsExamples:
|
|
type: string
|
|
nullable: false
|
|
example: |-
|
|
[{"apiVersion": v1alpha
|
|
, "kind": CustomResource
|
|
, "spec": {
|
|
"replicas": 1
|
|
}
|
|
}}]
|
|
OPAPackage:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Package"
|
|
- type: object
|
|
properties:
|
|
data:
|
|
type: object
|
|
properties:
|
|
policies:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
example:
|
|
policy1: |
|
|
- macro: text
|
|
condition: (evt.num < 0)
|
|
TBActionPackage:
|
|
$ref: "#/components/schemas/Package"
|
|
Package:
|
|
allOf:
|
|
- $ref: "#/components/schemas/PackageSummary"
|
|
- type: object
|
|
required:
|
|
- repository
|
|
- latest_version
|
|
- available_versions
|
|
- created_at
|
|
- has_values_schema
|
|
- has_changelog
|
|
- contains_security_updates
|
|
- prerelease
|
|
properties:
|
|
signed:
|
|
type: boolean
|
|
nullable: false
|
|
repository:
|
|
$ref: "#/components/schemas/RepositorySummary"
|
|
nullable: false
|
|
is_operator:
|
|
type: boolean
|
|
nullable: false
|
|
example: false
|
|
latest_version:
|
|
type: string
|
|
nullable: false
|
|
example: 2.0.0
|
|
logo_url:
|
|
type: string
|
|
format: uri
|
|
nullable: false
|
|
example: "http://logo"
|
|
keywords:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
type: string
|
|
example:
|
|
- key1
|
|
- key2
|
|
home_url:
|
|
type: string
|
|
format: uri
|
|
nullable: false
|
|
example: "http://home"
|
|
readme:
|
|
type: string
|
|
nullable: false
|
|
example: "###Readme"
|
|
links:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
$ref: "#/components/schemas/Link"
|
|
available_versions:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
type: object
|
|
required:
|
|
- version
|
|
- contains_security_updates
|
|
- prerelease
|
|
- created_at
|
|
properties:
|
|
version:
|
|
type: string
|
|
nullable: false
|
|
example: 1.0.0
|
|
contains_security_updates:
|
|
type: boolean
|
|
nullable: false
|
|
prerelease:
|
|
type: boolean
|
|
nullable: false
|
|
created_at:
|
|
type: integer
|
|
nullable: false
|
|
example: 1552082346
|
|
maintainers:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
$ref: "#/components/schemas/Maintainer"
|
|
default_channel:
|
|
type: string
|
|
nullable: false
|
|
example: stable
|
|
channels:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
type: object
|
|
nullable: false
|
|
properties:
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
example: stable
|
|
version:
|
|
type: string
|
|
nullable: false
|
|
example: 2.0.0
|
|
provider:
|
|
type: string
|
|
nullable: false
|
|
example: Provider 1
|
|
containers_images:
|
|
type: object
|
|
nullable: false
|
|
required:
|
|
- image
|
|
properties:
|
|
image:
|
|
type: string
|
|
nullable: false
|
|
example: "url.io/name/operator:v0.2.0"
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
created_at:
|
|
type: integer
|
|
nullable: false
|
|
example: 1552082346
|
|
capabilities:
|
|
type: string
|
|
nullable: false
|
|
example:
|
|
- basic install
|
|
- seamless upgrades
|
|
- full lifecycle
|
|
- deep insights
|
|
- auto pilot
|
|
security_report_created_at:
|
|
type: integer
|
|
nullable: false
|
|
has_values_schema:
|
|
type: boolean
|
|
nullable: false
|
|
has_changelog:
|
|
type: boolean
|
|
nullable: false
|
|
content_url:
|
|
type: string
|
|
format: uri
|
|
nullable: false
|
|
contains_security_updates:
|
|
type: boolean
|
|
nullable: false
|
|
prerelease:
|
|
type: boolean
|
|
nullable: false
|
|
PackageSummary:
|
|
type: object
|
|
required:
|
|
- package_id
|
|
- name
|
|
- normalized_name
|
|
- stars
|
|
- version
|
|
- created_at
|
|
- repository
|
|
properties:
|
|
package_id:
|
|
type: string
|
|
format: uuid
|
|
nullable: false
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
example: pkg1
|
|
normalized_name:
|
|
type: string
|
|
nullable: false
|
|
example: pkg1
|
|
logo_image_id:
|
|
type: string
|
|
nullable: false
|
|
example: 12345abcde
|
|
stars:
|
|
type: integer
|
|
nullable: false
|
|
example: 3
|
|
display_name:
|
|
type: string
|
|
nullable: false
|
|
example: Package 1
|
|
description:
|
|
type: string
|
|
nullable: false
|
|
example: This is a package sample
|
|
version:
|
|
type: string
|
|
nullable: false
|
|
example: 1.0.0
|
|
app_version:
|
|
type: string
|
|
nullable: false
|
|
example: 0.1.0
|
|
license:
|
|
type: string
|
|
nullable: false
|
|
example: MIT
|
|
deprecated:
|
|
type: boolean
|
|
nullable: false
|
|
example: false
|
|
signed:
|
|
type: boolean
|
|
nullable: false
|
|
created_at:
|
|
type: integer
|
|
nullable: false
|
|
repository:
|
|
$ref: "#/components/schemas/RepositorySummary"
|
|
nullable: false
|
|
security_report_summary:
|
|
type: object
|
|
nullable: false
|
|
properties:
|
|
critical:
|
|
type: number
|
|
nullable: false
|
|
high:
|
|
type: number
|
|
nullable: false
|
|
medium:
|
|
type: number
|
|
nullable: false
|
|
low:
|
|
type: number
|
|
nullable: false
|
|
unkown:
|
|
type: number
|
|
nullable: false
|
|
Repository:
|
|
allOf:
|
|
- $ref: "#/components/schemas/RepositorySummary"
|
|
- type: object
|
|
required:
|
|
- digest
|
|
- last_tracking_ts
|
|
- disabled
|
|
- scanner_disabled
|
|
properties:
|
|
digest:
|
|
type: string
|
|
nullable: false
|
|
last_tracking_ts:
|
|
type: integer
|
|
nullable: false
|
|
last_tracking_errors:
|
|
type: string
|
|
nullable: false
|
|
example: Error
|
|
disabled:
|
|
type: boolean
|
|
nullable: false
|
|
scanner_disabled:
|
|
type: boolean
|
|
nullable: false
|
|
branch:
|
|
type: string
|
|
nullable: false
|
|
RepositoryKind:
|
|
type: integer
|
|
enum:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
description: |
|
|
Repository kind:
|
|
* `0` - Helm charts
|
|
* `1` - Falco rules
|
|
* `2` - OPA policies
|
|
* `3` - OLM operators
|
|
* `4` - Tinkerbell actions
|
|
RepositoryKindParam:
|
|
type: string
|
|
enum:
|
|
- helm
|
|
- opa
|
|
- falco
|
|
- olm
|
|
- tbaction
|
|
description: |
|
|
Repository kind name:
|
|
* `helm` - Helm charts
|
|
* `falco` - Falco rules
|
|
* `opa` - OPA policies
|
|
* `olm` - OLM operators
|
|
* `tbaction` - Tinkerbell actions
|
|
RepositorySummary:
|
|
type: object
|
|
required:
|
|
- repository_id
|
|
- kind
|
|
- name
|
|
- url
|
|
- verified_publisher
|
|
- official
|
|
properties:
|
|
repository_id:
|
|
type: string
|
|
format: uuid
|
|
kind:
|
|
$ref: "#/components/schemas/RepositoryKind"
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
example: repo1
|
|
display_name:
|
|
type: string
|
|
nullable: false
|
|
example: Repository 1
|
|
url:
|
|
type: string
|
|
format: uri
|
|
nullable: false
|
|
example: "http://repourl"
|
|
verified_publisher:
|
|
type: boolean
|
|
nullable: false
|
|
official:
|
|
type: boolean
|
|
nullable: false
|
|
private:
|
|
type: boolean
|
|
nullable: false
|
|
user_alias:
|
|
type: string
|
|
nullable: false
|
|
example: jdoe
|
|
organization_name:
|
|
type: string
|
|
nullable: false
|
|
example: org1
|
|
organization_display_name:
|
|
type: string
|
|
nullable: false
|
|
example: Organization 1
|
|
Organization:
|
|
allOf:
|
|
- $ref: "#/components/schemas/OrganizationSummary"
|
|
- type: object
|
|
required:
|
|
- members_count
|
|
- confirmed
|
|
properties:
|
|
members_count:
|
|
type: integer
|
|
nullable: false
|
|
confirmed:
|
|
type: boolean
|
|
nullable: false
|
|
ResourceKindName:
|
|
type: string
|
|
enum:
|
|
- repositoryName
|
|
- repositoryURL
|
|
- organizationName
|
|
- userAlias
|
|
description: |
|
|
Resource kind name:
|
|
* `repositoryName` - Repository name
|
|
* `repositoryURL` - Repository URL
|
|
* `organizationName` - Organization name
|
|
* `userAlias` - User alias
|
|
OrganizationSummary:
|
|
type: object
|
|
required:
|
|
- name
|
|
properties:
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
example: org1
|
|
display_name:
|
|
type: string
|
|
nullable: false
|
|
example: Organization 1
|
|
description:
|
|
type: string
|
|
nullable: false
|
|
example: description
|
|
home_url:
|
|
type: string
|
|
format: uri
|
|
nullable: false
|
|
example: "http://url"
|
|
logo_image_id:
|
|
type: string
|
|
nullable: false
|
|
example: 12345abcde
|
|
User:
|
|
type: object
|
|
required:
|
|
- alias
|
|
- email
|
|
properties:
|
|
alias:
|
|
type: string
|
|
nullable: false
|
|
example: jdoe
|
|
first_name:
|
|
type: string
|
|
nullable: false
|
|
example: John
|
|
last_name:
|
|
type: string
|
|
nullable: false
|
|
example: Doe
|
|
email:
|
|
type: string
|
|
format: email
|
|
nullable: false
|
|
example: jdoe@email.com
|
|
profile_image_id:
|
|
type: string
|
|
nullable: false
|
|
example: 12345abcde
|
|
Webhook:
|
|
allOf:
|
|
- $ref: "#/components/schemas/WebhookSummary"
|
|
- type: object
|
|
required:
|
|
- webhook_id
|
|
- packages
|
|
- last_notifications
|
|
properties:
|
|
webhook_id:
|
|
type: string
|
|
format: uuid
|
|
nullable: false
|
|
packages:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PackageSummary"
|
|
nullable: false
|
|
last_notifications:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/WebhookNotification"
|
|
nullable: false
|
|
WebhookNotification:
|
|
type: object
|
|
required:
|
|
- notification_id
|
|
- created_at
|
|
- processed
|
|
- processed_at
|
|
properties:
|
|
notification_id:
|
|
type: string
|
|
format: uuid
|
|
nullable: false
|
|
created_at:
|
|
type: integer
|
|
nullable: false
|
|
processed:
|
|
type: boolean
|
|
nullable: false
|
|
processed_at:
|
|
type: integer
|
|
nullable: false
|
|
error:
|
|
type: string
|
|
nullable: false
|
|
example: error
|
|
WebhookSummary:
|
|
type: object
|
|
required:
|
|
- name
|
|
- url
|
|
- active
|
|
properties:
|
|
name:
|
|
type: string
|
|
nullable: false
|
|
example: webhook1
|
|
description:
|
|
type: string
|
|
nullable: false
|
|
example: description
|
|
url:
|
|
type: string
|
|
format: uri
|
|
nullable: false
|
|
example: "http://url"
|
|
secret:
|
|
type: string
|
|
nullable: false
|
|
example: 123abc
|
|
content_type:
|
|
type: string
|
|
nullable: false
|
|
example: application/json
|
|
template:
|
|
type: string
|
|
nullable: false
|
|
example: >-
|
|
{"text": "Package {{ .Package.name }} version {{ .Package.version }}
|
|
released! {{ .Package.url }}"}
|
|
active:
|
|
type: boolean
|
|
nullable: false
|
|
event_kinds:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EventKindId"
|
|
nullable: false
|
|
WebhookSummaryWithPackages:
|
|
allOf:
|
|
- $ref: "#/components/schemas/WebhookSummary"
|
|
- type: object
|
|
required:
|
|
- name
|
|
- url
|
|
- active
|
|
- event_kinds
|
|
- packages
|
|
properties:
|
|
packages:
|
|
type: array
|
|
items:
|
|
type: object
|
|
required:
|
|
- package_id
|
|
properties:
|
|
package_id:
|
|
type: string
|
|
format: uuid
|
|
nullable: false
|
|
nullable: false
|
|
WebhookTest:
|
|
type: object
|
|
required:
|
|
- url
|
|
- event_kinds
|
|
properties:
|
|
url:
|
|
type: string
|
|
format: uri
|
|
nullable: false
|
|
example: "http://url"
|
|
content_type:
|
|
type: string
|
|
nullable: false
|
|
example: application/json
|
|
template:
|
|
type: string
|
|
nullable: false
|
|
example: >-
|
|
{"text": "Package {{ .Package.name }} version {{ .Package.version }}
|
|
released! {{ .Package.url }}"}
|
|
event_kinds:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/EventKindId"
|
|
nullable: false
|
|
example:
|
|
- 0
|
|
parameters:
|
|
RepositoriesListParam:
|
|
in: query
|
|
name: repo
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- repo1
|
|
- repo2
|
|
required: false
|
|
description: List of repository names
|
|
LicensesListParam:
|
|
in: query
|
|
name: license
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
# https://spdx.org/licenses/
|
|
example:
|
|
- MIT
|
|
- Apache-2.0
|
|
required: false
|
|
description: List of SPDX identifiers
|
|
CapabilitiesListParam:
|
|
in: query
|
|
name: capabilities
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- basic install
|
|
- seamless upgrades
|
|
- full lifecycle
|
|
- deep insights
|
|
- auto pilot
|
|
required: false
|
|
description: List of operator capability levels
|
|
DeprecatedParam:
|
|
in: query
|
|
name: deprecated
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
required: false
|
|
description: Whether to include deprecated packages or not
|
|
OperatorsParam:
|
|
in: query
|
|
name: operators
|
|
schema:
|
|
type: boolean
|
|
required: false
|
|
description: Whether to get only operators
|
|
VerifiedPublisherParam:
|
|
in: query
|
|
name: verified_publisher
|
|
schema:
|
|
type: boolean
|
|
required: false
|
|
description: Whether to get only verified publisher
|
|
OfficialParam:
|
|
in: query
|
|
name: official
|
|
schema:
|
|
type: boolean
|
|
required: false
|
|
description: Whether to get only official repositoties
|
|
EventKindParam:
|
|
in: query
|
|
name: event_kind
|
|
required: true
|
|
schema:
|
|
$ref: "#/components/schemas/EventKindId"
|
|
description: Event kind
|
|
FacetsParam:
|
|
in: query
|
|
name: facets
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
required: true
|
|
description: Whether we should get facets or not
|
|
LimitParam:
|
|
in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 50
|
|
required: false
|
|
description: The number of packages to return
|
|
OffsetParam:
|
|
in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
default: 0
|
|
required: false
|
|
description: The number of packages to skip before starting to collect the result set
|
|
OrgNameParam:
|
|
in: path
|
|
name: orgName
|
|
schema:
|
|
type: string
|
|
example: org1
|
|
required: true
|
|
description: Organization name
|
|
OrgNameToTransferParam:
|
|
in: query
|
|
name: org
|
|
required: false
|
|
schema:
|
|
type: string
|
|
example: org1
|
|
description: The org to transfer the repoName
|
|
OrgsListParam:
|
|
in: query
|
|
name: org
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- org1
|
|
- org2
|
|
required: false
|
|
description: List of organization names
|
|
PackageIDParam:
|
|
in: path
|
|
name: packageID
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
required: true
|
|
description: Package ID
|
|
OptOutIDParam:
|
|
in: path
|
|
name: optOutID
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
required: true
|
|
description: Opt-out entry ID
|
|
RepositoryKindsListParam:
|
|
in: query
|
|
name: kind
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RepositoryKind"
|
|
required: false
|
|
description: |
|
|
Repository kind:
|
|
* `0` - Helm charts
|
|
* `1` - Falco rules
|
|
* `2` - OPA policies
|
|
* `3` - OLM operators
|
|
* `4` - Tinkerbell actions
|
|
PackageNameParam:
|
|
in: path
|
|
name: packageName
|
|
schema:
|
|
type: string
|
|
example: pkg1
|
|
required: true
|
|
description: Package name
|
|
RepoKindParam:
|
|
in: path
|
|
name: ^helm$|^falco$|^opa$|^olm|^tbaction$
|
|
schema:
|
|
$ref: "#/components/schemas/RepositoryKindParam"
|
|
required: true
|
|
description: Package kind name
|
|
RepoNameParam:
|
|
in: path
|
|
name: repoName
|
|
schema:
|
|
type: string
|
|
example: repoName
|
|
required: true
|
|
description: Repository name
|
|
ResourceKindNameParam:
|
|
in: path
|
|
name: resourceKind
|
|
schema:
|
|
$ref: "#/components/schemas/ResourceKindName"
|
|
required: true
|
|
description: Resource kind name
|
|
TSQueryWebParam:
|
|
in: query
|
|
name: ts_query_web
|
|
schema:
|
|
type: string
|
|
example: database
|
|
required: false
|
|
description: Text search query (websearch format)
|
|
TSQueryParam:
|
|
in: query
|
|
name: ts_query
|
|
schema:
|
|
type: string
|
|
example: (automation | configuration)
|
|
required: false
|
|
description: >-
|
|
Text search query. Search terms can be combined using the syntax allowed
|
|
by the PostgreSQL websearch_to_tsquery function. See
|
|
https://www.postgresql.org/docs/current/textsearch-controls.html
|
|
(12.3.2. Parsing Queries) for more details.
|
|
UsersListParam:
|
|
in: query
|
|
name: user
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- user1
|
|
- user2
|
|
required: false
|
|
description: List of aliases
|
|
UserAliasParam:
|
|
in: path
|
|
name: userAlias
|
|
schema:
|
|
type: string
|
|
example: alias
|
|
required: true
|
|
description: User alias
|
|
VersionParam:
|
|
in: path
|
|
name: version
|
|
schema:
|
|
type: string
|
|
example: 1.0.0
|
|
required: true
|
|
description: Package version
|
|
WebhookIDParam:
|
|
in: path
|
|
name: webhookID
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
required: true
|
|
description: Webhook ID
|
|
responses:
|
|
BadRequest:
|
|
description: The request sent was not valid
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Error"
|
|
Created:
|
|
description: The request has succeeded and has led to the creation of a resource
|
|
Forbidden:
|
|
description: The user does not have permission to perform the requested operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Error"
|
|
InternalServerError:
|
|
description: >-
|
|
The server encountered an unexpected condition that prevented it from
|
|
fulfilling the request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Error"
|
|
NoContent:
|
|
description: "The request has succeeded, no content returned"
|
|
NotFoundResponse:
|
|
description: The requested resource was not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Error"
|
|
TooManyRequests:
|
|
description: The user has sent too many requests in a given amount of time
|
|
UnauthorizedError:
|
|
description: Valid authentication credentials not provided
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Error"
|
|
requestBodies:
|
|
SubscriptionBody:
|
|
description: Subscription request body
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
package_id:
|
|
type: string
|
|
format: uuid
|
|
event_kind:
|
|
$ref: "#/components/schemas/EventKindId"
|
|
required:
|
|
- package_id
|
|
- event_kind
|
|
OptOutBody:
|
|
description: Opt-out entry request body
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
repository_id:
|
|
type: string
|
|
format: uuid
|
|
event_kind:
|
|
$ref: "#/components/schemas/EventKindId"
|
|
example: 2
|
|
required:
|
|
- repository_id
|
|
- event_kind
|
|
RepositoryBody:
|
|
description: Repository request body
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
kind:
|
|
$ref: "#/components/schemas/RepositoryKind"
|
|
name:
|
|
type: string
|
|
example: repo1
|
|
display_name:
|
|
type: string
|
|
example: Repo 1
|
|
url:
|
|
type: string
|
|
example: http://repo-url.com
|
|
WebhookBody:
|
|
description: Webhook body
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/WebhookSummaryWithPackages"
|