@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
179 lines • 5.32 kB
TypeScript
/// <reference types="mongoose/types/aggregate" />
/// <reference types="mongoose/types/callback" />
/// <reference types="mongoose/types/collection" />
/// <reference types="mongoose/types/connection" />
/// <reference types="mongoose/types/cursor" />
/// <reference types="mongoose/types/document" />
/// <reference types="mongoose/types/error" />
/// <reference types="mongoose/types/expressions" />
/// <reference types="mongoose/types/helpers" />
/// <reference types="mongoose/types/middlewares" />
/// <reference types="mongoose/types/indexes" />
/// <reference types="mongoose/types/models" />
/// <reference types="mongoose/types/mongooseoptions" />
/// <reference types="mongoose/types/pipelinestage" />
/// <reference types="mongoose/types/populate" />
/// <reference types="mongoose/types/query" />
/// <reference types="mongoose/types/schemaoptions" />
/// <reference types="mongoose/types/schematypes" />
/// <reference types="mongoose/types/session" />
/// <reference types="mongoose/types/types" />
/// <reference types="mongoose/types/utility" />
/// <reference types="mongoose/types/validation" />
/// <reference types="mongoose/types/virtuals" />
/// <reference types="mongoose/types/inferschematype" />
import type { Types } from "mongoose";
import { Schema } from "mongoose";
import type { HiddenBodyKeys } from "../interfaces";
import type { DeployEnvironment } from "../interfaces/DeployEnvironment";
import type { GitProviderType } from "../interfaces/SystemTypes";
import type { IBase } from "./Base";
import type { IGitProvider } from "./GitProvider";
export interface AppGitInfo {
/**
* `REQUIRES`
* ---
* A SSH URI of the source code repository
* @example git@bitbucket.org:digitopvn/example-repo.git
*/
repoSSH: string;
/**
* OPTIONAL
* ---
* A SSH URI of the source code repository
* @example https://bitbucket.org/digitopvn/example-repo
*/
repoURL?: string;
/**
* OPTIONAL
* ---
* Git provider's type: `github`, `bitbucket`, `gitlab`
*/
provider?: GitProviderType;
/**
* OPTIONAL
* ---
* Git provider's type: `github`, `bitbucket`, `gitlab`
*/
providerID?: string | IGitProvider;
}
/**
* An interface that extends IBase and describes the properties of an app.
*
* @interface IApp
* @extends {IBase}
*/
export interface IApp extends IBase {
/**
* The name of the app.
*
* @type {string}
* @memberof IApp
*/
name?: string;
/**
* OPTIONAL: The image URI of this app on the Container Registry (without `TAG`).
*
* Combined from: `<registry-image-base-url>/<project-slug>/<app-name-slug>`
*
* **Don't** specify `tag` at the end! (e.g., `latest`, `beta`,...)
*
* @type {string}
* @memberof IApp
* @default <registry-image-base-url>/<project-slug>/<app-name-slug>
* @example "asia.gcr.io/my-workspace/my-project/my-app"
*/
image?: string;
/**
* The slug of the app.
*
* @type {string}
* @memberof IApp
*/
slug?: string;
/**
* The user who created the app.
*
* @type {string}
* @memberof IApp
*/
createdBy?: string;
/**
* The user who last updated the app.
*
* @type {string}
* @memberof IApp
*/
lastUpdatedBy?: string;
/**
* Git Provider of this app
*/
gitProvider?: Types.ObjectId | IGitProvider | string;
/**
* The Git information of the app.
*
* @type {AppGitInfo}
* @memberof IApp
*/
git?: AppGitInfo;
/**
* The framework information of the app.
*
* @memberof IApp
*/
framework?: {
name?: string;
slug?: string;
version?: string;
repoURL?: string;
repoSSH?: string;
};
/**
* The environment information of the app.
*
* @type {{ [key: string]: DeployEnvironment | string }}
* @memberof IApp
* @deprecated
*/
environment?: {
[key: string]: DeployEnvironment | string;
};
/**
* The deploy environment information of the app.
*
* @type {{ [key: string]: DeployEnvironment }}
* @memberof IApp
*/
deployEnvironment?: {
[key: string]: DeployEnvironment;
};
/**
* The latest build of the app.
*
* @type {string}
* @memberof IApp
*/
latestBuild?: string;
/**
* The incremental integer of build for this app
*/
buildNumber?: number;
/**
* The project slug of the app.
*
* @type {string}
* @memberof IApp
*/
projectSlug?: string;
/**
* Date when the application was archived (take down all deploy environments)
*/
archivedAt?: Date;
}
export type AppDto = Omit<IApp, keyof HiddenBodyKeys>;
export declare const appSchema: Schema<IApp, import("mongoose").Model<IApp, any, any, any, import("mongoose").Document<unknown, any, IApp> & IApp & Required<{
_id: string | Types.ObjectId;
}>, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, IApp, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<IApp>> & import("mongoose").FlatRecord<IApp> & Required<{
_id: string | Types.ObjectId;
}>>;
//# sourceMappingURL=App.d.ts.map