@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
2,122 lines • 692 kB
JSON
{
"components": {
"examples": {},
"headers": {},
"parameters": {},
"requestBodies": {},
"responses": {},
"schemas": {
"ResponseData": {
"properties": {
"total_items": {
"type": "number",
"format": "double"
},
"total_pages": {
"type": "number",
"format": "double"
},
"current_page": {
"type": "number",
"format": "double"
},
"page_size": {
"type": "number",
"format": "double"
},
"prev_url": {
"type": "string"
},
"next_url": {
"type": "string"
},
"status": {
"type": "number",
"enum": [
0,
1
],
"description": "1 = succeed | 0 = failed"
},
"data": {},
"messages": {
"items": {
"type": "string"
},
"type": "array",
"description": "Error/warning messages"
}
},
"required": [
"status",
"data",
"messages"
],
"type": "object",
"additionalProperties": false
},
"IResponsePagination": {
"properties": {
"total_items": {
"type": "number",
"format": "double"
},
"total_pages": {
"type": "number",
"format": "double"
},
"current_page": {
"type": "number",
"format": "double"
},
"page_size": {
"type": "number",
"format": "double"
},
"prev_url": {
"type": "string"
},
"next_url": {
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"IGetQueryParams": {
"properties": {
"populate": {
"type": "string",
"description": "Fields to populate, seperated by commas, for example: `owner,workspace`"
},
"select": {
"type": "string"
},
"order": {
"type": "string",
"example": "-updatedAt,-createdAt"
},
"raw": {
"type": "boolean",
"description": "Disable the default `{$set: body}` of \"update\" query & update `{body}` directly to the items",
"default": "false"
},
"page": {
"type": "number",
"format": "double"
},
"size": {
"type": "number",
"format": "double"
},
"limit": {
"type": "number",
"format": "double"
},
"skip": {
"type": "number",
"format": "double"
},
"id": {
"type": "string",
"description": "Find one item by `{ObjectID}`"
},
"_id": {
"type": "string"
},
"search": {
"type": "boolean",
"description": "Mark this request as search (return the similar results based on the filter query params)",
"default": "true"
},
"download": {
"type": "boolean",
"description": "If `true`, return the excel binary file to download.",
"default": "false"
}
},
"type": "object",
"additionalProperties": false
},
"AppInputSchema": {
"properties": {
"name": {
"type": "string",
"description": "`REQUIRES`\n---\nApp's name"
},
"project": {
"type": "string",
"description": "`REQUIRES`\n---\nProject's ID or slug"
},
"gitProvider": {
"type": "string",
"description": "`REQUIRES`\n---\nGit provider ID"
},
"shouldCreateGitRepo": {
"type": "boolean",
"description": "`OPTIONAL`\n---\nShould create new git repository on the selected git provider"
},
"force": {
"type": "boolean",
"description": "`OPTIONAL`\n---\n### [CAUTION]\nIf `TRUE`, it will delete the existing git repo, then create a new one.",
"default": "false"
}
},
"required": [
"name",
"project",
"gitProvider"
],
"type": "object",
"additionalProperties": false
},
"IPostQueryParams": {
"properties": {
"populate": {
"type": "string",
"description": "Fields to populate, seperated by commas, for example: `owner,workspace`"
},
"select": {
"type": "string"
},
"order": {
"type": "string",
"example": "-updatedAt,-createdAt"
},
"raw": {
"type": "boolean",
"description": "Disable the default `{$set: body}` of \"update\" query & update `{body}` directly to the items",
"default": "false"
}
},
"type": "object",
"additionalProperties": false
},
"Types.ObjectId": {
"type": "string"
},
"GitProviderType": {
"type": "string",
"enum": [
"bitbucket",
"github"
]
},
"BitbucketOAuthOptions": {
"properties": {
"consumer_key": {
"type": "string",
"description": "The CONSUMER_KEY for Bitbucket authentication:\nto create new repo, commit, pull & push changes to the repositories."
},
"consumer_secret": {
"type": "string",
"description": "The CONSUMER_SECRET for Bitbucket authentication:\nto create new repo, commit, pull & push changes to the repositories."
},
"username": {
"type": "string",
"description": "Your Bitbucket account's username"
},
"app_password": {
"type": "string",
"description": "The APP_PASSWORD for Bitbucket authentication:\nto create new repo, commit, pull & push changes to the repositories."
},
"verified": {
"type": "boolean",
"description": "`TRUE` if the REST API calling was successfully."
}
},
"type": "object",
"additionalProperties": false
},
"GithubOAuthOptions": {
"properties": {
"client_id": {
"type": "string",
"description": "The app's CLIENT_ID for Github authentication:\nto create new repo, commit, pull & push changes to the repositories."
},
"client_secret": {
"type": "string",
"description": "The app's CLIENT_SECRET for Github authentication:\nto create new repo, commit, pull & push changes to the repositories."
},
"username": {
"type": "string",
"description": "Your Github account's username"
},
"personal_access_token": {
"type": "string",
"description": "The PERSONAL ACCESS TOKEN for Github authentication:\nto create new repo, commit, pull & push changes to the repositories."
},
"verified": {
"type": "boolean",
"description": "`TRUE` if the REST API calling was successfully."
}
},
"type": "object",
"additionalProperties": false
},
"ProviderInfo": {
"properties": {
"name": {
"type": "string"
},
"user_id": {
"type": "string"
},
"access_token": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object",
"additionalProperties": false
},
"AccessTokenInfo": {
"properties": {
"access_token": {
"type": "string"
},
"refresh_token": {
"type": "string"
},
"expiredTimestamp": {
"type": "number",
"format": "double"
},
"expiredDate": {
"type": "string",
"format": "date-time"
},
"expiredDateGTM7": {
"type": "string"
}
},
"required": [
"access_token",
"expiredTimestamp",
"expiredDate",
"expiredDateGTM7"
],
"type": "object",
"additionalProperties": false
},
"IRoutePermission": {
"type": "string",
"enum": [
"public",
"full",
"own",
"create",
"read",
"update",
"delete"
]
},
"IRouteScope": {
"type": "string",
"enum": [
"project",
"workspace",
"all",
"team",
"app"
]
},
"RoleRoute": {
"properties": {
"path": {
"type": "string",
"description": "Route path"
},
"permissions": {
"items": {
"$ref": "#/components/schemas/IRoutePermission"
},
"type": "array",
"default": "[\"full\"]"
},
"scope": {
"items": {
"$ref": "#/components/schemas/IRouteScope"
},
"type": "array",
"description": "(TBC)",
"default": "all"
}
},
"required": [
"path",
"permissions"
],
"type": "object",
"additionalProperties": false
},
"IRole": {
"properties": {
"name": {
"type": "string"
},
"routes": {
"items": {
"$ref": "#/components/schemas/RoleRoute"
},
"type": "array"
},
"maskedFields": {
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"type": "string",
"description": "One of:\n- undefined | \"custom\": custom role\n- \"admin\"\t\t: \tdefault super admin role\n- \"moderator\"\t: \tdefault moderator role\n- \"member\"\t\t: \tdefault member role\n- \"guest\"\t\t: \tdefault guest role"
}
},
"required": [
"name",
"routes"
],
"type": "object",
"additionalProperties": false
},
"ITeam": {
"properties": {
"name": {
"type": "string"
},
"image": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object",
"additionalProperties": false
},
"RetentionType": {
"type": "string",
"enum": [
"limit",
"duration"
]
},
"CloudStorageProvider": {
"type": "string",
"enum": [
"cloudflare",
"aws_s3",
"do_space",
"google"
]
},
"IWorkspace": {
"properties": {
"name": {
"type": "string",
"description": "Workspace name"
},
"slug": {
"type": "string",
"description": "Workspace slug: auto-generated by \"name\" column"
},
"public": {
"type": "boolean",
"description": "Is this a `public` workspace that anyone can join, otherwise it's a `private` workspace that needs approval on joining request."
},
"image": {
"type": "string",
"description": "Workspace profile picture"
},
"domain": {
"type": "string",
"description": "Workspace domain name"
},
"dx_key": {
"type": "string",
"description": "DXSITE API Key"
},
"dx_id": {
"type": "string",
"description": "DXSITE Workspace ID"
},
"settings": {
"properties": {
"notification": {
"properties": {
"elasticEmail": {
"properties": {
"events": {
"items": {
"type": "string"
},
"type": "array"
},
"apiKey": {
"type": "string"
},
"enabled": {
"type": "boolean"
}
},
"required": [
"events",
"apiKey",
"enabled"
],
"type": "object"
},
"jojo": {
"properties": {
"events": {
"items": {
"type": "string"
},
"type": "array"
},
"apiKey": {
"type": "string"
},
"enabled": {
"type": "boolean"
}
},
"required": [
"events",
"apiKey",
"enabled"
],
"type": "object"
}
},
"type": "object"
},
"cloud_storage": {
"properties": {
"basePath": {
"type": "string"
},
"baseUrl": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"secretKey": {
"type": "string"
},
"accessKey": {
"type": "string"
},
"bucket": {
"type": "string"
},
"region": {
"type": "string"
},
"provider": {
"$ref": "#/components/schemas/CloudStorageProvider"
}
},
"required": [
"basePath",
"baseUrl",
"endpoint",
"secretKey",
"accessKey",
"bucket",
"region",
"provider"
],
"type": "object"
},
"system_log": {
"properties": {
"retention": {
"properties": {
"value": {
"type": "number",
"format": "double"
},
"type": {
"$ref": "#/components/schemas/RetentionType"
}
},
"required": [
"value",
"type"
],
"type": "object",
"description": "Data retention information\n- `type` is \"duration\", value is \"miliseconds\"\n- `type` is \"limit\", value is \"MAX AMOUNT OF BACKUPS\""
}
},
"type": "object"
},
"database_backup": {
"properties": {
"retention": {
"properties": {
"value": {
"type": "number",
"format": "double"
},
"type": {
"$ref": "#/components/schemas/RetentionType"
}
},
"required": [
"value",
"type"
],
"type": "object",
"description": "Data retention information\n- `type` is \"duration\", value is \"miliseconds\"\n- `type` is \"limit\", value is \"MAX AMOUNT OF BACKUPS\""
}
},
"type": "object"
},
"activity": {
"properties": {
"retention": {
"properties": {
"value": {
"type": "number",
"format": "double"
},
"type": {
"$ref": "#/components/schemas/RetentionType"
}
},
"required": [
"value",
"type"
],
"type": "object",
"description": "Data retention information\n- `type` is \"duration\", value is \"miliseconds\"\n- `type` is \"limit\", value is \"MAX AMOUNT OF BACKUPS\""
}
},
"type": "object"
},
"database": {},
"ai": {
"properties": {
"apiKey": {
"type": "string"
},
"model": {
"type": "string"
},
"apiBaseUrl": {
"type": "string"
},
"enabled": {
"type": "boolean"
}
},
"required": [
"apiKey",
"model",
"apiBaseUrl",
"enabled"
],
"type": "object"
}
},
"type": "object",
"description": "Workspace Settings"
}
},
"type": "object",
"additionalProperties": false
},
"BuildStatus": {
"type": "string",
"enum": [
"pending",
"start",
"building",
"failed",
"success",
"cancelled"
]
},
"DeployStatus": {
"type": "string",
"enum": [
"pending",
"failed",
"success",
"cancelled",
"in_progress"
]
},
"RegistryProviderType": {
"type": "string",
"enum": [
"gcloud",
"digitalocean",
"dockerhub"
]
},
"IContainerRegistry": {
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string",
"description": "Slug of an item, generated automatically by its \"name\""
},
"isVerified": {
"type": "boolean"
},
"isDefault": {
"type": "boolean",
"description": "Is this a default git provider"
},
"host": {
"type": "string",
"description": "The host (domain) of your container registry which you are using."
},
"organization": {
"type": "string",
"description": "Organization name in Docker Registry, or Project ID in Google/DigitalOcean Container Registry."
},
"imageBaseURL": {
"type": "string",
"description": "Base URL of the image, usually is the registry host URI combines with something else.\n- This will be used to combine with your project/app image path."
},
"provider": {
"$ref": "#/components/schemas/RegistryProviderType",
"description": "Provider's \"shortName\""
},
"serviceAccount": {
"type": "string",
"description": "Content of the Service Account credentials ti access services on this cloud provider\n- Apply for: Google Cloud, AWS,...\n- For example: Kubernetes Clusters, Single Sign-On,..."
},
"apiAccessToken": {
"type": "string",
"description": "Content of the API access token to use services on this cloud provider\n- Apply for: Digital Ocean"
},
"dockerServer": {
"type": "string",
"description": "`[For Docker Registry]` Docker registry server",
"default": "https://index.docker.io/v1/"
},
"dockerEmail": {
"type": "string",
"description": "`[For Docker Registry]` Docker email"
},
"dockerUsername": {
"type": "string",
"description": "`[For Docker Registry]` Docker username"
},
"dockerPassword": {
"type": "string",
"description": "`[For Docker Registry]` Docker password"
},
"imagePullSecret": {
"properties": {
"value": {
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"additionalProperties": false
},
"IGitProvider": {
"description": "An interface that extends IBase and describes the properties of a Git provider.",
"properties": {
"_id": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"slug": {
"type": "string",
"description": "Slug of an item, generated automatically by its \"name\""
},
"active": {
"type": "boolean"
},
"public": {
"type": "boolean",
"description": "`TRUE` -> any members can read\n`FALSE` -> only admins can read",
"default": "true"
},
"metadata": {},
"ownerSlug": {
"type": "string",
"description": "Owner's username"
},
"owner": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IUser"
},
{
"type": "string"
}
],
"description": "Owner ID of the app"
},
"ownerId": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"project": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IProject"
},
{
"type": "string"
}
],
"description": "ID of the project"
},
"projectId": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"workspace": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IWorkspace"
},
{
"type": "string"
}
],
"description": "ID of the workspace"
},
"workspaceId": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"workspaceSlug": {
"type": "string",
"description": "SLUG of the workspace"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Created date"
},
"deletedAt": {
"type": "string",
"format": "date-time",
"description": "Deleted date"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Updated date"
},
"migratedAt": {
"type": "string",
"format": "date-time",
"description": "Migrated date"
},
"updatedBy": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IUser"
},
{
"type": "string"
}
]
},
"updatedById": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"deletedBy": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IUser"
},
{
"type": "string"
}
]
},
"deletedById": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"name": {
"type": "string",
"description": "The name of the Git provider."
},
"isDefault": {
"type": "boolean",
"description": "Is this a default git provider"
},
"host": {
"type": "string",
"description": "The host of the Git provider."
},
"org": {
"type": "string",
"description": "The Git workspace (ORG) of the Git provider."
},
"gitWorkspace": {
"type": "string",
"description": "Alias of `org` field, will be remove soon.",
"deprecated": true
},
"repo": {
"properties": {
"sshPrefix": {
"type": "string",
"description": "The SSH prefix of the repository of the Git provider."
},
"url": {
"type": "string",
"description": "The URL of the repository of the Git provider."
}
},
"type": "object",
"description": "The repository of the Git provider."
},
"isOrg": {
"type": "boolean",
"description": "- `TRUE` if the git provider which connected by \"Administrator\"\n- `FALSE` if it was connected by workspace's members and won't be displayed on the dashboard."
},
"type": {
"$ref": "#/components/schemas/GitProviderType",
"description": "The type of the Git provider."
},
"bitbucket_oauth": {
"$ref": "#/components/schemas/BitbucketOAuthOptions",
"description": "Bitbucket OAuth Information"
},
"github_oauth": {
"$ref": "#/components/schemas/GithubOAuthOptions",
"description": "Github OAuth Information"
},
"method": {
"type": "string",
"enum": [
"bearer",
"basic"
],
"description": "Authorization header method"
},
"access_token": {
"type": "string",
"description": "The API access token of the Git provider,\nto create new repo, commit, pull & push changes to the repositories."
},
"refresh_token": {
"type": "string",
"description": "The API refresh token of the Git provider,\nto obtain new access token if it's expired"
},
"verified": {
"type": "boolean",
"description": "Verify status, `true` is successfully connected with the git workspace REST API."
}
},
"type": "object",
"additionalProperties": false
},
"AppGitInfo": {
"properties": {
"repoSSH": {
"type": "string",
"description": "`REQUIRES`\n---\nA SSH URI of the source code repository"
},
"repoURL": {
"type": "string",
"description": "OPTIONAL\n---\nA SSH URI of the source code repository"
},
"provider": {
"$ref": "#/components/schemas/GitProviderType",
"description": "OPTIONAL\n---\nGit provider's type: `github`, `bitbucket`, `gitlab`"
},
"providerID": {
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/components/schemas/IGitProvider"
}
],
"description": "OPTIONAL\n---\nGit provider's type: `github`, `bitbucket`, `gitlab`"
}
},
"required": [
"repoSSH"
],
"type": "object",
"additionalProperties": false
},
"IApp": {
"description": "An interface that extends IBase and describes the properties of an app.",
"properties": {
"name": {
"type": "string",
"description": "The name of the app."
},
"image": {
"type": "string",
"description": "OPTIONAL: The image URI of this app on the Container Registry (without `TAG`).\n\nCombined from: `<registry-image-base-url>/<project-slug>/<app-name-slug>`\n\n**Don't** specify `tag` at the end! (e.g., `latest`, `beta`,...)",
"example": "asia.gcr.io/my-workspace/my-project/my-app",
"default": "<registry-image-base-url>/<project-slug>/<app-name-slug>"
},
"slug": {
"type": "string",
"description": "The slug of the app."
},
"createdBy": {
"type": "string",
"description": "The user who created the app."
},
"lastUpdatedBy": {
"type": "string",
"description": "The user who last updated the app."
},
"gitProvider": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IGitProvider"
},
{
"type": "string"
}
],
"description": "Git Provider of this app"
},
"git": {
"$ref": "#/components/schemas/AppGitInfo",
"description": "The Git information of the app."
},
"framework": {
"properties": {
"repoSSH": {
"type": "string"
},
"repoURL": {
"type": "string"
},
"version": {
"type": "string"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
}
},
"type": "object",
"description": "The framework information of the app."
},
"environment": {
"properties": {},
"additionalProperties": {
"anyOf": [
{
"$ref": "#/components/schemas/DeployEnvironment"
},
{
"type": "string"
}
]
},
"type": "object",
"description": "The environment information of the app.",
"deprecated": true
},
"deployEnvironment": {
"properties": {},
"additionalProperties": {
"$ref": "#/components/schemas/DeployEnvironment"
},
"type": "object",
"description": "The deploy environment information of the app."
},
"latestBuild": {
"type": "string",
"description": "The latest build of the app."
},
"buildNumber": {
"type": "number",
"format": "double",
"description": "The incremental integer of build for this app"
},
"projectSlug": {
"type": "string",
"description": "The project slug of the app."
},
"archivedAt": {
"type": "string",
"format": "date-time",
"description": "Date when the application was archived (take down all deploy environments)"
}
},
"type": "object",
"additionalProperties": false
},
"KubeEnvironmentVariable": {
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"name",
"value"
],
"type": "object",
"additionalProperties": false
},
"ObjectId": {
"type": "string",
"description": "A class representation of the BSON ObjectId type."
},
"IUser": {
"properties": {
"name": {
"type": "string"
},
"username": {
"type": "string",
"description": "Unique username of a user\nThis equavilent with \"slug\""
},
"type": {
"type": "string"
},
"email": {
"type": "string",
"description": "User email address"
},
"verified": {
"type": "boolean",
"description": "Is this user's email or phone verified?"
},
"image": {
"type": "string",
"description": "User profile picture URL"
},
"providers": {
"items": {
"$ref": "#/components/schemas/ProviderInfo"
},
"type": "array",
"description": "List of Cloud Providers which this user can access to"
},
"password": {
"type": "string",
"description": "User password (hashed)"
},
"dxUserId": {
"type": "string",
"description": "User ID in DXUP.DEV"
},
"token": {
"$ref": "#/components/schemas/AccessTokenInfo",
"description": "User token"
},
"roles": {
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/IRole"
},
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"type": "array"
},
"activeRole": {
"anyOf": [
{
"$ref": "#/components/schemas/IRole"
},
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"teams": {
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/ITeam"
},
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"type": "array"
},
"workspaces": {
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/IWorkspace"
},
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"type": "array"
},
"activeWorkspace": {
"anyOf": [
{
"$ref": "#/components/schemas/IWorkspace"
},
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
]
},
"allowAccess": {
"$ref": "#/components/schemas/UserAccessPermissions",
"description": "User access permission settings"
},
"settings": {
"properties": {
"notification": {
"properties": {
"deploy": {
"items": {
"$ref": "#/components/schemas/WebhookChannel"
},
"type": "array"
},
"build": {
"items": {
"$ref": "#/components/schemas/WebhookChannel"
},
"type": "array"
},
"app": {
"items": {
"$ref": "#/components/schemas/WebhookChannel"
},
"type": "array"
},
"project": {
"items": {
"$ref": "#/components/schemas/WebhookChannel"
},
"type": "array"
},
"workspace": {
"items": {
"$ref": "#/components/schemas/WebhookChannel"
},
"type": "array"
}
},
"type": "object"
}
},
"required": [
"notification"
],
"type": "object",
"description": "User settings"
}
},
"required": [
"name",
"email"
],
"type": "object",
"additionalProperties": false
},
"AppStatus": {
"type": "string",
"enum": [
"failed",
"deploying",
"healthy",
"partial_healthy",
"undeployed",
"crashed",
"unknown"
]
},
"DeployEnvironmentVolume": {
"properties": {
"mountPath": {
"type": "string",
"description": "Location of mapped directory inside the container into this volume"
},
"type": {
"type": "string",
"description": "Type"
},
"hostPath": {
"type": "string",
"description": "Map directory on the host server to this volume"
},
"storageClass": {
"type": "string",
"description": "Kubernetes Storage Class"
},
"size": {
"type": "string",
"description": "Volume size"
},
"node": {
"type": "string",
"description": "Kubernetes node name"
},
"name": {
"type": "string",
"description": "Volume name"
}
},
"required": [
"mountPath",
"storageClass",
"size",
"node",
"name"
],
"type": "object"
},
"ResourceQuotaSize": {
"type": "string",
"enum": [
"none",
"1x",
"2x",
"3x",
"4x",
"5x",
"6x",
"7x",
"8x",
"9x",
"10x"
],
"description": "Container quota resources"
},
"SslType": {
"type": "string",
"enum": [
"none",
"letsencrypt",
"custom"
],
"default": "\"letsencrypt\""
},
"DeployEnvironment": {
"description": "A deployment's environment of the application.",
"properties": {
"imageURL": {
"type": "string",
"description": "Image URI of this app on the Container Registry.\n- Combined from: `<registry-image-base-url>/<project-slug>/<app-name-slug>`\n- If you build from the source code, don't specify `tag` at the end! (eg. `latest`, `beta`,...)"
},
"namespace": {
"type": "string",
"description": "Destination namespace name"
},
"registry": {
"type": "string",
"description": "Container registry slug"
},
"provider": {
"type": "string",
"description": "Cloud provider's short name"
},
"cluster": {
"type": "string",
"description": "Cluster's slug"
},
"project": {
"type": "string",
"description": "[Google Cloud] PROJECT_ID",
"deprecated": true
},
"region": {
"type": "string",
"description": "[Google Cloud] Region",
"deprecated": true
},
"zone": {
"type": "string",
"description": "[Google Cloud] Zone",
"deprecated": true
},
"size": {
"$ref": "#/components/schemas/ResourceQuotaSize",
"description": "Container quota resources"
},
"cpu": {
"type": "string",
"description": "Container's CPU"
},
"memory": {
"type": "string",
"description": "Container's memory"
},
"resources": {
"properties": {
"limits": {
"properties": {
"memory": {
"type": "string"
},
"cpu": {
"type": "string"
}
},
"type": "object"
},
"usage": {
"properties": {
"memory": {
"type": "string"
},
"cpu": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object",
"description": "Container's resources"
},
"shouldInherit": {
"type": "boolean",
"description": "Set to `false` if you DON'T want to inherit the Ingress YAML config from the previous deployment",
"default": "true"
},
"redirect": {
"type": "boolean",
"description": "Set to `false` if you don't want to redirect all the secondary domains to the primary domain.",
"default": "true"
},
"replicas": {
"type": "number",
"format": "double",
"description": "Container's scaling replicas",
"default": "1"
},
"port": {
"type": "number",
"format": "double",
"description": "Container's port"
},
"basePath": {
"type": "string",
"description": "Application base path in the endpoint URL",
"default": "\"/\""
},
"domains": {
"items": {
"type": "string"
},
"type": "array",
"description": "List of application's domains"
},
"cdn": {
"type": "boolean",
"description": "Flag to enable CDN for this application",
"default": "false;"
},
"ssl": {
"$ref": "#/components/schemas/SslType",
"description": "SSL Certificate Issuer"
},
"healthzPath": {
"type": "string",
"nullable": true,
"description": "Health check path",
"default": "\"/\""
},
"healthzPort": {
"type": "number",
"format": "double",
"nullable": true,
"description": "Healthz port",
"default": "`port`"
},
"tlsSecret": {
"type": "string",
"description": "Secret name to hold the key of SSL, will be automatically generated.\nOnly need to specify when using \"custom\" SSL (which is the SSL from third-party issuer)"
},
"ingress": {
"type": "string",
"description": "Kubernetes Ingress Class"
},
"name": {
"type": "string",
"description": "Name of the deploy environment"
},
"app": {
"$ref": "#/components/schemas/IApp",
"description": "App"
},
"appSlug": {
"type": "string"
},
"appName": {
"type": "string"
},
"projectSlug": {
"type": "string"
},
"buildId": {
"type": "string",
"description": "ObjectID of the build associated with this deploy environment."
},
"buildTag": {
"type": "string",
"description": "Build tag is image's tag (no special characters, eg. \"dot\" or \"comma\")"
},
"buildNumber": {
"type": "string",
"description": "A incremental number digit of a build."
},
"appVersion": {
"type": "string",
"description": "The app version"
},
"latestRelease": {
"type": "string",
"description": "ID of the latest release associated with this deploy environment."
},
"cliVersion": {
"type": "string",
"description": "The CLI version"
},
"namespaceYaml": {
"type": "string",
"description": "Content of namespace YAML file"
},
"deploymentName": {
"type": "string",
"description": "Name of the deployment"
},
"deploymentYaml": {
"type": "string",
"description": "Content of deployment YAML file"
},
"prereleaseDeploymentYaml": {
"type": "string",
"description": "Content of prerelease deployment YAML file"
},
"prereleaseUrl": {
"type": "string",
"description": "Prerelease endpoint URL"
},
"envVars": {
"items": {
"$ref": "#/components/schemas/KubeEnvironmentVariable"
},
"type": "array",
"description": "Collection array of environment variables"
},
"createdBy": {
"type": "string",
"description": "User name of the first person who deploy on this environment."
},
"lastUpdatedBy": {
"type": "string",
"description": "User name of the last person who deploy or update this environment."
},
"owner": {
"type": "string",
"description": "Owner"
},
"ownerSlug": {
"type": "string"
},
"creator": {
"anyOf": [
{
"$ref": "#/components/schemas/ObjectId"
},
{
"$ref": "#/components/schemas/IUser"
}
],
"description": "ID of the creator\n! DO NOT REMOVE THIS, OTHERWISE \"TSOA\" (Swagger) WILL BE BROKEN (I DON'T KNOW WHY...)"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Update time"
},
"sleepAt": {
"type": "string",
"format": "date-time",
"description": "Date when it's put to sleep"
},
"awakeAt": {
"type": "string",
"format": "date-time",
"description": "Date when it's awaken"
},
"tookDownAt": {
"type": "string",
"format": "date-time",
"description": "Date when it's taken down"
},
"status": {
"$ref": "#/components/schemas/AppStatus",
"description": "Deployment's status"
},
"readyCount": {
"type": "number",
"format": "double",
"description": "Amount of ready instances"
},
"screenshot": {
"type": "string",
"description": "A screenshot URL from build success"
},
"volumes": {
"items": {
"$ref": "#/components/schemas/DeployEnvironmentVolume"
},
"type": "array",
"description": "Persistent Volume"
}
},
"required": [
"buildTag"
],
"type": "object",
"additionalProperties": false
},
"IBuild": {
"properties": {
"name": {
"type": "string"
},
"image": {
"type": "string"
},
"tag": {
"type": "string",
"description": "Image tag is also \"buildTag\""
},
"num": {
"type": "number",
"format": "double",
"description": "Build number"
},
"startTime": {
"type": "string",
"format": "date-time",
"description": "Build start time"
},
"endTime": {
"type": "string",
"format": "date-time",
"description": "Build end time"
},
"duration": {
"type": "number",
"format": "double",
"description": "Build duration in miliseconds"
},
"env": {
"type": "string",
"description": "Build for which deploy environment\n- **[OPTIONAL] DO NOT rely on this!**\n- A build should be able to be used for any deploy environments."
},
"message": {
"type": "string",
"description": "Release revision message"
},
"branch": {
"type": "string",
"description": "Build from which git branch"
},
"cliVersion": {
"type": "string"
},
"serverVersion": {
"type": "string"
},
"serverLocation": {
"type": "string"
},
"createdBy": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/BuildStatus"
},
"deployStatus": {
"$ref": "#/components/schemas/DeployStatus"
},
"projectSlug": {
"type": "string"
},
"appSlug": {
"type": "string",
"description": "App's slug"
},
"logs": {
"type": "string"
},
"registry": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IContainerRegistry"
},
{
"type": "string"
}
],
"description": "ID of the container registry"
},
"app": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IApp"
},
{
"type": "string"
}
],
"description": "ID of the app"
}
},
"type": "object",
"additionalProperties": false
},
"IProject": {
"properties": {
"name": {
"type": "string"
},
"isDefault": {
"type": "boolean"
},
"image": {
"type": "string"
},
"slug": {
"type": "string",
"description": "Slug of an item, generated automatically by its \"name\""
},
"apiKey": {
"type": "string"
},
"clientId": {
"type": "string"
},
"clientSecret": {
"type": "string"
},
"createdBy": {
"type": "string"
},
"lastUpdatedBy": {
"type": "string"
},
"latestBuildTag": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"type": "string"
}
],
"description": "Latest build tag of an application in this project"
},
"latestBuild": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IBuild"
},
{
"type": "string"
}
],
"description": "Latest build ID or DOCUMENT"
},
"appSlugs": {
"items": {
"type": "string"
},
"type": "array",
"description": "List of App slugs"
},
"apps": {
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IApp"
},
{
"type": "string"
}
]
},
"type": "array",
"description": "List of App IDs"
},
"owner": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IUser"
},
{
"type": "string"
}
],
"description": "Owner ID of the app"
},
"workspace": {
"anyOf": [
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/IWorkspace"
},
{
"type": "string"
}
],
"description": "ID of the workspace"
},
"archivedAt": {
"type": "string",
"format": "date-time",
"description": "Date when the project was archived (take down all deploy environments)"
}
},
"type": "object",
"additionalProperties": false
},
"CloudProviderType": {
"type": "string",
"enum": [
"gcloud",
"digitalocean",
"custom"
]
},
"ICluster": {
"properties": {
"name": {
"type": "string",
"description": "Cluster name"
},
"slug": {
"type": "string",
"description": "Cluster slug"
},
"isVerified": {
"type": "boolean",
"description": "Is cluster verified"
},
"isDefault": {
"type": "boolean",
"description": "Is this a default cluster"
},
"shortName": {
"type": "string",
"description": "A cluster name on the cloud provider\n- **Applied for GKE & DOK only**"
},
"contextName": {
"type": "string",
"description": "Cluster context name (to access via `kubectl context`)"
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/components/schemas/Types.ObjectId"
},
{
"$ref": "#/components/schemas/ICloudProvider"
}
],
"description": "Cloud provider of this cluster"
},
"providerShortName": {
"$ref": "#/components/schemas/CloudProviderType",
"description": "Short name of the cloud provider"
},
"zone": {
"type": "string",
"description": "Cloud zone of this cluster"
},
"region": {
"type": "string",
"description": "Cloud region of this cluster"
},
"projectID": {
"type": "string",
"description": "[GOOGLE ONLY] Project ID of this cluster"
},
"primaryDomain": {
"type": "string",
"description": "#### `REQUIRES`\n---\nThe PRIMARY domain of this cluster"
},
"primaryIP": {
"type": "string",
"description": "The PRIMARY IP ADDRESS of this cluster"
},
"domains": {
"items": {
"type": "string"
},
"type": "array",
"description": "Alternative domains or project's domains of this cluster"
},
"kubeConfig": {
"type": "string",
"description": "The KUBECONFIG data to access to this cluster"
},
"serviceAccount": {
"type": "string",
"description": "Content of the Service Account credentials to access this cluster"
},
"apiAccessToken": {
"type": "string",
"description": "Content of the API ACCESS TOKEN to access this cluster"
}
},
"type": "object",
"additionalProperties": false
},
"ICloudProvider": {
"properties": {
"name": {
"type": "string",
"description": "Cloud provider name"
},
"shortName": {
"$ref": "#/components/schemas/CloudProviderType",
"description": "Cloud provider short name, without spacing & special characters"
},
"apiAccessToken": {
"type": "string",
"description": "Content of the API access token to use services on this cloud provider\n- Apply for: Digital Ocean"
},
"serviceAccount": {
"type": "string",
"description": "Content of the Service Account credentials ti access services on this cloud provider\n- Apply for: Google Cloud, AWS,...\n- For example: Kubernetes Clusters, Single Sign-On,..."
},
"clusters": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"items": {
"$ref": "#/components/schemas/ICluster"
},
"type": "array"
}
],
"description": "List of available clusters on this provider"
}
},
"type": "object",
"additionalProperties": false
},
"CloudDatabaseType": {
"type": "string",
"enum": [
"mongodb",
"mysql",
"mariadb",
"postgresql",
"sqlserver",
"sqlite",
"redis",
"dynamodb"
]
},
"RequestMethodType": {
"type": "string",
"enum": [
"GET",
"POST",
"PATCH",
"DELETE"
]
},
"Record_string.string_": {
"properties": {},
"type": "object",
"description": "Construct a type with a set of properties K of type T"
},
"CronjobRepeatUnit": {
"type": "string",
"enum": [
"minute",
"hour",
"day",
"month",
"year"
]
},
"CronjobRepeat": {
"properties": {
"unit": {
"$ref": "#/components/schemas/CronjobRepeatUnit"
},
"range": {
"type": "number",
"format": "double"
}
},
"type": "object"
},
"WeekDay": {
"type": "string",
"enum": [
"sun",
"mon",
"tue",
"wed",
"thu",
"fri",
"sat"
]
},
"CronjonRepeatCondition": {
"properties": {
"atMonths": {
"items": {
"type": "number",
"format": "double"
},
"type": "array",
"description": "Array of days from 0 to 11"
},
"atDays": {
"items": {
"type": "number",
"format": "double"
},
"type": "array",
"description": "Array of days from 1 to 31"
},
"atWeekDays": {
"items": {
"$ref": "#/components/schemas/WeekDay"
},
"type": "array",
"description": "Array of weekdays"
},
"atMins": {
"items": {
"type": "number",
"format": "double"
},
"type": "array",
"description": "