/** * Copyright © 2018 Emu Analytics */ export interface IQuery { filter?: { [key: string]: any; }; attributes?: string | string[]; join?: string | string[]; limit?: number; offset?: number; sort?: string | string[]; } export interface IBaseResource { id: string; } export interface IMetadata { [key: string]: any; } export interface IPermissions { [key: string]: { [key: string]: string; }; } export interface IApiKey extends IBaseResource { applicationId: string; application?: IApplication; id: string; description: string; type: 'app' | 'master'; permissions: IPermissions; metadata: IMetadata; userId: string; createdAt: string; updatedAt: string; } export interface IApplication extends IBaseResource { id: string; name: string; databases?: IDatabase[]; description: string; contact: string; metadata: IMetadata; createdAt: string; updatedAt: string; } export interface IAppConfig extends IBaseResource { applicationId: string; config: object; } export interface IDatabase extends IBaseResource { applicationId: string; application?: IApplication; id: string; type: string; name: string; default: boolean; description: string; host: string; port: number; user: string; password: string; db: string; createdAt: string; updatedAt: string; } export interface IDatasetAttribute { attribute: string; type: string; dbType: string; isGeometry?: boolean; srid?: number; extent?: number[]; extentLngLat?: number[]; primaryKey?: boolean; default?: string; nullable?: boolean; description?: string; } export interface IDataset extends IBaseResource { applicationId: string; application?: IApplication; id: string; type: 'table' | 'sql'; source: string; name: string; databaseId: string; database?: IDatabase; description: string; bytes: number; metadata: IMetadata; ownerId: string; createdAt: string; updatedAt: string; attributes: IDatasetAttribute[]; options?: { [key: string]: any; }; } export interface IMapLayer extends IBaseResource { applicationId: string; application?: IApplication; ownerId: string; createdAt: string; updatedAt: string; id: string; name: string; description: string; layerSpec: any; type: string; group: string; metadata: IMetadata; } export type FileExportFormat = 'geojson' | 'gpkg' | 'shapefile'; export interface ITileSource extends IBaseResource { applicationId: string; application?: IApplication; metadata: IMetadata; id: string; type: string; source: string; attribution: string; minZoom: number; maxZoom: number; headers: { [key: string]: string; }; extentLngLat: number[]; createdAt: string; updatedAt: string; } export interface IUpload extends IBaseResource { id: string; fileName: string; path: string; options: { name: string; description?: string; datasetId: string; attribution?: string; schema?: string; }; size: number; status: string; error: { message: string; stdout: string; stderr: string; }; applicationId: string; application?: IApplication; ownerId: string; updatedAt: string; createdAt: string; } export interface IUser extends IBaseResource { [key: string]: any; } export interface IStyle extends IBaseResource { [key: string]: any; } export interface ITileSpec { [key: string]: any; } export interface IConfig { version: { tag: string; hash: string; timestamp: number; }; } export interface ILoginResponse { accessToken: string; refreshToken: string; } export interface ITokenRefreshResponse { accessToken: string; } export interface UsersMeResponse { applicationId: string; email: string; firstName: string; id: string; lastName: string; metadata: object; roles: string[]; } export type JobStatus = 'pending' | 'processing' | 'done' | 'cancelled' | 'error'; export interface IJob { id: string; applicationId: string; ownerId?: string; metadata: IMetadata; type: string; name?: string; description?: string; params: any; status: JobStatus; error?: object; progress?: number; progressText?: string; datasetId?: string; createdAt: string; updatedAt: string; } export interface IJobStatus { status?: JobStatus; error?: object; progress?: number; progressText?: string; } export interface IJobSubmission { type: string; name?: string; description?: string; params: any; } export interface IJobRequest { type: string; } export type IngestAction = 'insert' | 'upsert' | 'delete'; export interface IIngestMessage { datasetId: string; action: IngestAction; data: any; } export interface IPipeline extends IBaseResource { applicationId: string; application?: IApplication; id: string; environment: string; description: string; config: Record; metadata: IMetadata; startedAt: string; heartbeatAt: string; createdAt: string; updatedAt: string; components?: IPipelineComponent[]; } export interface IPipelineComponent extends IBaseResource { id: string; description: string; config: Record; class: string; type: string; metadata: IMetadata; index: number; createdAt: string; updatedAt: string; metrics?: IPipelineMetric[]; } export interface IPipelineMetric extends IBaseResource { id: string; applicationId: string; pipelineId: string; componentId: string; name: string; type: string; timestamp: string; value: number; labels: Record; createdAt: string; updatedAt: string; } /** * Contact point resource. */ export interface IContactPoint extends IBaseResource { id: string; applicationId: string; type: string; description: string; templates: string[]; recipients: string[]; /** Driver-specific host configuration for the contact point */ host: string; /** Driver-specific port configuration for the contact point */ port: number; /** Driver-specific user configuration for the contact point */ user: string; /** Driver-specific password configuration for the contact point */ password: string; metadata: IMetadata; createdAt: string; updatedAt: string; } /** * Request body for sending a notification to a contact point. */ export interface IContactPointSendRequest { /** ID of the template to use for the notification */ template?: string; /** Subject of the notification */ subject?: string; /** Recipients of the notification */ recipients?: string[]; /** Template key/value data for expanding the notification template */ data?: any; } /** * Media resource. */ export interface IMedia extends IBaseResource { id: string; applicationId: string; type: string; mimeType: string; fileName: string; metadata: IMetadata; createdAt: string; updatedAt: string; } //# sourceMappingURL=api-interfaces.d.ts.map