evergreen.js
Version:
JavaScript/TypeScript library for the Evergreen REST API
644 lines (570 loc) • 15.4 kB
text/typescript
import { plainToClass } from "class-transformer";
// current as of 1370c53df007bf03b6d297a0a1e01b63843b08c7
export function ConvertToAdminSettings(raw: object): AdminSettings {
return plainToClass(AdminSettings, raw);
}
export function ConvertToAPITasks(raw: object): APITask {
return plainToClass(APITask, raw);
}
export function ConvertToAPITests(raw: object): APITest {
return plainToClass(APITest, raw);
}
export function ConvertToBuild(raw: object): Build {
return plainToClass(Build, raw);
}
export function ConvertToPatches(raw: object): Patches {
return plainToClass(Patches, raw);
}
/* tslint:disable:variable-name */
export class AdminSettings {
public alerts?: AlertsConfig;
public amboy?: AmboyConfig;
public api?: APIConfig;
public api_url?: string;
public auth?: AuthConfig;
public banner?: string;
public banner_theme?: string;
public bugsnag?: string;
public client_binaries_dir?: string;
public configdir?: string;
public container_pools?: ContainerPools;
public credentials?: object;
public jasper?: JasperConfig;
public expansions?: object;
public google_analytics?: string;
public github_pr_creator_org?: string;
public hostinit?: HostInitConfig;
public jira?: JiraConfig;
public jira_notifications?: JiraNotificationsConfig;
public keys?: object;
public logger_config?: LoggerConfig;
public log_path?: string;
public notify?: NotifyConfig;
public plugins?: object;
public pprof_port?: string;
public providers?: CloudProviders;
public repotracker?: RepoTrackerConfig;
public scheduler?: SchedulerConfig;
public service_flags?: ServiceFlags;
public slack?: SlackConfig;
public splunk?: SplunkConnectionInfo;
public superusers: string[];
public triggers: TriggerConfig;
public ui: UIConfig;
}
export class SMTPConfig {
public server?: string;
public port: number;
public use_ssl: boolean;
public username?: string;
public password?: string;
public from?: string;
public admin_email?: string[];
}
export class AlertsConfig {
public smtp?: SMTPConfig;
}
export class AmboyConfig {
public name?: string;
public single_name?: string;
public database?: string;
public pool_size_local: number;
public pool_size_remote: number;
public local_storage_size: number;
}
export class APIConfig {
public http_listen_addr?: string;
public github_webhook_secret?: string;
}
export class AuthConfig {
public ldap?: LDAPConfig;
public naive?: NaiveAuthConfig;
public github?: GithubAuthConfig;
}
export class LDAPConfig {
public url?: string;
public port?: string;
public path?: string;
public service_path?: string;
public group?: string;
public service_group?: string;
public expire_after_minutes?: string;
}
export class NaiveAuthConfig {
public users?: AuthUser[];
}
export class AuthUser {
public username?: string;
public display_name?: string;
public password?: string;
public email?: string;
}
export class GithubAuthConfig {
public client_id?: string;
public client_secret?: string;
public users?: string[];
public organization?: string;
}
export class HostInitConfig {
public ssh_timeout_secs: number;
}
export class JiraConfig {
public host?: string;
public username?: string;
public password?: string;
public default_project?: string;
}
export class LoggerConfig {
public buffer?: LogBuffering;
public default_level?: string;
public threshold_level?: string;
public logkeeper_url?: string;
}
export class LogBuffering {
public duration_seconds: number;
public count: number;
}
export class NotifyConfig {
public buffer_target_per_interval: number;
public buffer_interval_seconds: number;
public smtp?: SMTPConfig;
}
export class CloudProviders {
public aws?: AWSConfig;
public docker?: DockerConfig;
public gce?: GCEConfig;
public openstack?: OpenStackConfig;
public vsphere?: VSphereConfig;
}
export class ContainerPools {
public pools?: ContainerPool[];
}
export class ContainerPool {
public distro?: string;
public id?: string;
public max_containers: number;
public port: number;
}
export class AWSConfig {
public aws_secret?: string;
public aws_id?: string;
public s3_key?: string;
public s3_secret?: string;
public bucket?: string;
public s3_base_url?: string;
}
export class DockerConfig {
public api_version?: string;
}
export class GCEConfig {
public client_email?: string;
public private_key?: string;
public private_key_id?: string;
public token_uri?: string;
}
export class OpenStackConfig {
public identity_endpoint?: string;
public username?: string;
public password?: string;
public domain_name?: string;
public project_name?: string;
public project_id?: string;
public region?: string;
}
export class Patches {
public BuildsMap?: Record<string, BuildInfo[]>;
public UIPatches?: PatchInfo[];
public PageNum?: number;
}
export class UIVersion {
public Version?: Version;
public Builds?: UIBuild[];
public PatchInfo?: UIPatch;
public active_tasks?: number;
public repo_owner?: string;
public repo_name?: string;
public upstream?: UIUpstreamData;
}
export class UIBuild {
public Build?: Build;
public Version?: Version;
public PatchInfo?: UIPatch;
public Tasks?: UITask[];
public Elapsed?: number;
public CurrentTime?: number;
public repo_owner?: string;
public repo_name?: string;
public taskStatusCount?: TaskStatusCount;
public UpstreamData?: UIUpstreamData;
}
export class TaskStatusCount {
public succeeded?: number;
public failed?: number;
public started?: number;
public undispatched?: number;
public inactive?: number;
public dispatched?: number;
public timed_out?: number;
}
export class UITask {
public Task?: Task;
public Gitspec?: string;
public BuildDisplay?: string;
public TaskLog?: LogMessage[];
public NextTasks?: Task[];
public PreviousTasks?: Task[];
public Elapsed?: number;
public StartTime?: number;
public failed_test_names?: string[];
public expected_duration?: number;
}
export class Task {
}
export class LogMessage {
public t?: string;
public s?: string;
public m?: string;
public ts?: Time;
public v?: number;
}
export class UIPatch {
public Patch?: Patch;
public StatusDiffs?: object;
public base_time_taken?: number;
public BaseVersionId?: string;
public BaseBuildId?: string;
public BaseTaskId?: string;
}
export class UIUpstreamData {
public owner?: string;
public repo: string;
public revision?: string;
public project_name?: string;
public trigger_id?: string;
public trigger_type?: string;
}
export class Version {
public id?: string;
public create_time?: Time;
public start_time?: Time;
public finish_time?: Time;
public gitspec?: string;
public author?: string;
public author_email?: string;
public message?: string;
public status?: string;
public order?: number;
public config?: string;
public ignored?: boolean;
public owner_name?: string;
public repo_name?: string;
public branch_name?: string;
public repo_kind?: string;
public build_variants_status?: VersionBuildStatus[];
public builds?: string[];
public identifier?: string;
public remote?: boolean;
public remote_path?: string;
public requester?: string;
public errors?: string[];
public warnings?: string[];
public author_id?: string;
public satisfied_triggers?: string[];
public trigger_id?: string;
public trigger_type?: string;
public trigger_event?: string;
}
export class Build {
public _id: string;
public create_time: Date;
public start_time: Date;
public finish_time: Date;
public version: string;
public branch: string;
public git_hash: string;
public build_variant: string;
public build_number: string;
public status: string;
public activated: boolean;
public activated_by: string;
public activated_time: Date;
public order: number;
public tasks: BuildTaskCache[];
public time_taken: number;
public display_name: string;
public predicted_makespan: number;
public actual_makespan: number;
public r: string;
public trigger_id: string;
public trigger_type: string;
public trigger_event: string;
}
export class BuildTaskCache {
public id: string;
public display_name: string;
public status: string;
public task_end_details: string;
public start_time: Date;
public time_taken: number;
public activated: boolean;
}
export class VersionBuildStatus {
}
export class Patch {
public Id?: string;
public Description?: string;
public Project?: string;
public Githash?: string;
public PatchNumber?: number;
public Author?: string;
public Version?: string;
public Status?: string;
public CreateTime?: Time;
public StartTime?: Time;
public FinishTime?: Time;
public BuildVariants?: string[];
public Tasks?: string[];
public VariantTasks?: VariantTasks[];
public Patches?: ModulePatch[];
public Activated?: boolean;
public PatchedConfig?: string;
public Alias?: string;
public GithubPatchData?: GithubPatch;
}
export class Time {
public wall?: number;
public ext?: number;
public loc?: Location;
}
export class GithubPatch {
public pr_number?: number;
public base_owner?: string;
public base_repo?: string;
public base_branch?: string;
public head_owner?: string;
public head_repo?: string;
public head_hash?: string;
public author?: string;
public author_uid?: number;
public merge_commit_sha?: string;
}
export class ModulePatch {
public name?: string;
public githash?: string;
public patch_set?: PatchSet;
}
export class PatchSet {
public patch?: string;
public patch_file_id?: string;
public summary?: Summary[];
}
export class Summary {
public filename?: string;
public additions?: number;
public deletions?: number;
}
export class VariantTasks {
public Variant?: string;
public Tasks?: string[];
public DisplayTasks?: DisplayTask[];
}
export class DisplayTask {
public Name?: string;
public ExecTasks?: string[];
}
export class APITask {
public task_id?: string;
public project_id?: string;
public create_time: Time;
public dispatch_time: Time;
public scheduled_time: Time;
public start_time: Time;
public finish_time: Time;
public ingest_time: Time;
public version_id?: string;
public revision?: string;
public priority: number;
public activated: boolean;
public activated_by?: string;
public build_id?: string;
public distro_id?: string;
public build_variant?: string;
public depends_on: string[];
public display_name?: string;
public host_id?: string;
public restarts: number;
public execution: number;
public order: number;
public status?: string;
public status_details: APITaskEndDetail;
public logs: APITaskLogLinks;
public time_taken_ms: number;
public expected_duration_ms: number;
public est_wait_to_start_ms: number;
public estimated_cost: number;
public previous_executions: APITask[];
public generate_task: boolean;
public generated_by: string;
public artifacts: APIFile[];
public display_only: boolean;
public execution_tasks?: string[];
public mainline: boolean;
public task_group: string;
public task_group_max_hosts: number;
}
export class APIFile {
public name?: string;
public link?: string;
public visibility?: string;
public ignore_for_fetch: boolean;
}
export class APITaskEndDetail {
public status?: string;
public type?: string;
public description?: string;
public timed_out: boolean;
}
export class APITaskLogLinks {
public all_log?: string;
public task_log?: string;
public agent_log?: string;
public system_log?: string;
}
export class TestLogs {
public url?: string;
public line_num?: number;
public url_raw?: string;
public log_id?: string;
}
export class APITest {
public task_id?: string;
public status?: string;
public test_file?: string;
public logs?: TestLogs;
public exit_code?: number;
public start_time?: Time;
public end_time?: Time;
}
export class VSphereConfig {
public host?: string;
public username?: string;
public password?: string;
}
export class RepoTrackerConfig {
public revs_to_fetch: number;
public max_revs_to_search: number;
public max_con_requests: number;
}
export class SchedulerConfig {
public task_finder?: string;
public host_allocator?: string;
public free_host_fraction: number;
public cache_duration_seconds: number;
}
export class ServiceFlags {
public task_dispatch_disabled: boolean;
public host_init_disabled: boolean;
public monitor_disabled: boolean;
public alerts_disabled: boolean;
public agent_start_disabled: boolean;
public repotracker_disabled: boolean;
public scheduler_disabled: boolean;
public github_pr_testing_disabled: boolean;
public cli_updates_disabled: boolean;
public background_stats_disabled: boolean;
public task_logging_disabled: boolean;
public cache_stats_job_disabled: boolean;
public cache_stats_endpoint_disabled: boolean;
public commit_queue_disabled: boolean;
public planner_disabled: boolean;
public host_allocator_disabled: boolean;
public event_processing_disabled: boolean;
public jira_notifications_disabled: boolean;
public slack_notifications_disabled: boolean;
public email_notifications_disabled: boolean;
public webhook_notifications_disabled: boolean;
public github_status_api_disabled: boolean;
}
export class SlackConfig {
public options?: SlackOptions;
public token?: string;
public level?: string;
}
export class SlackOptions {
public channel?: string;
public hostname?: string;
public name?: string;
public username?: string;
public icon_url?: string;
public add_basic_metadata: boolean;
public use_fields: boolean;
public all_fields: boolean;
public fields: object;
}
export class SplunkConnectionInfo {
public url?: string;
public token?: string;
public channel?: string;
}
export class UIConfig {
public url?: string;
public help_url?: string;
public http_listen_addr?: string;
public secret?: string;
public default_project?: string;
public cache_templates: boolean;
public csrf_key?: string;
public cors_origin?: string;
}
export class JiraNotificationsConfig {
public custom_fields: object;
}
export class TriggerConfig {
public generate_distro?: string;
}
export class JasperConfig {
public binary_name?: string;
public download_file_name?: string;
public port?: number;
public url?: string;
public version?: string;
}
export class PatchInfo {
public id: string;
public version: string;
public author: string;
public create_time: Date;
public project: string;
public description: string;
public githash: string;
public status: string;
public base_version_id: string;
public alias: string;
}
export class LogInfo {
public command: string;
public url: string;
}
export class TaskLogs {
public agent: LogInfo[];
public system: LogInfo[];
public task: LogInfo[];
}
export class TaskEndDetail {
public status?: string;
public type?: string;
public desc?: string;
public timed_out?: boolean;
public logs?: TaskLogs | null;
}
export class TaskInfo {
public id: string;
public display_name: string;
public status: string;
public status_details: TaskEndDetail;
}
export class BuildInfo {
public id: string;
public display_name: string;
public tasks: TaskInfo[];
}