UNPKG

@topgroup/diginext

Version:

A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.

2,122 lines 692 kB
{ "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": "