// File has been generated automatically by Eclipse Che TypeScript DTO generator


export namespace che.factory {

  // org.eclipse.che.api.factory.shared.dto.FactoryDto
  export interface Factory extends che.core.rest.Hyperlinks {
    workspace?: che.workspace.WorkspaceConfig;
    creator?: Author;
    devfile?: che.workspace.devfile.Devfile;
    v?: string;
    name?: string;
    policies?: Policies;
    links?: che.core.rest.Link[];
    source?: string;
    id?: string;
    ide?: Ide;
  } 

  // org.eclipse.che.api.factory.shared.dto.FactoryMetaDto
  export interface FactoryMeta extends che.core.rest.Hyperlinks {
    creator?: Author;
    v?: string;
    name?: string;
    policies?: Policies;
    links?: che.core.rest.Link[];
    source?: string;
    id?: string;
    ide?: Ide;
  } 

  // org.eclipse.che.api.factory.shared.dto.ScmInfoDto
  export interface ScmInfo  {
    scmProviderName?: string;
    branch?: string;
    repositoryUrl?: string;
  } 

  // org.eclipse.che.api.factory.shared.dto.OnAppClosedDto
  export interface OnAppClosed  {
    actions?: IdeAction[];
  } 

  // org.eclipse.che.api.factory.shared.dto.IdeActionDto
  export interface IdeAction  {
    id?: string;
    properties?:  { [key: string]: string; };
  } 

  // org.eclipse.che.api.factory.shared.dto.IdeDto
  export interface Ide  {
    onAppLoaded?: OnAppLoaded;
    onProjectsLoaded?: OnProjectsLoaded;
    onAppClosed?: OnAppClosed;
  } 

  // org.eclipse.che.api.factory.shared.dto.AuthorDto
  export interface Author  {
    created?: number;
    name?: string;
    userId?: string;
    email?: string;
  } 

  // org.eclipse.che.api.factory.shared.dto.OnProjectsLoadedDto
  export interface OnProjectsLoaded  {
    actions?: IdeAction[];
  } 

  // org.eclipse.che.api.factory.shared.dto.PoliciesDto
  export interface Policies  {
    referer?: string;
    create?: string;
    until?: number;
    since?: number;
  } 

  // org.eclipse.che.api.factory.shared.dto.OnAppLoadedDto
  export interface OnAppLoaded  {
    actions?: IdeAction[];
  } 

  // org.eclipse.che.api.factory.shared.dto.FactoryDevfileV2Dto
  export interface FactoryDevfileV2 extends che.core.rest.Hyperlinks {
    creator?: Author;
    scmInfo?: ScmInfo;
    devfile?:  { [key: string]: java.lang.Object; };
    v?: string;
    name?: string;
    policies?: Policies;
    links?: che.core.rest.Link[];
    source?: string;
    id?: string;
    ide?: Ide;
  } 

} 

export namespace che.system {

  // org.eclipse.che.api.system.shared.dto.SystemStateDto
  export interface SystemState extends che.core.rest.Hyperlinks {
    links?: che.core.rest.Link[];
    status?: 'RUNNING' | 'PREPARING_TO_SHUTDOWN' | 'READY_TO_SHUTDOWN';
  } 

  // org.eclipse.che.api.system.shared.dto.SystemStatusChangedEventDto
  export interface SystemStatusChangedEvent extends SystemEvent {
    prevStatus?: 'RUNNING' | 'PREPARING_TO_SHUTDOWN' | 'READY_TO_SHUTDOWN';
    type?: 'STATUS_CHANGED' | 'STOPPING_SERVICE' | 'SUSPENDING_SERVICE' | 'SERVICE_ITEM_STOPPED' | 'SERVICE_ITEM_SUSPENDED' | 'SERVICE_STOPPED' | 'SERVICE_SUSPENDED';
    status?: 'RUNNING' | 'PREPARING_TO_SHUTDOWN' | 'READY_TO_SHUTDOWN';
  } 

  // org.eclipse.che.api.system.shared.dto.SystemServiceEventDto
  export interface SystemServiceEvent extends SystemEvent {
    service?: string;
    type?: 'STATUS_CHANGED' | 'STOPPING_SERVICE' | 'SUSPENDING_SERVICE' | 'SERVICE_ITEM_STOPPED' | 'SERVICE_ITEM_SUSPENDED' | 'SERVICE_STOPPED' | 'SERVICE_SUSPENDED';
  } 

  // org.eclipse.che.api.system.shared.dto.SystemServiceItemStoppedEventDto
  export interface SystemServiceItemStoppedEvent extends SystemServiceEvent {
    item?: string;
    current?: number;
    total?: number;
    service?: string;
    type?: 'STATUS_CHANGED' | 'STOPPING_SERVICE' | 'SUSPENDING_SERVICE' | 'SERVICE_ITEM_STOPPED' | 'SERVICE_ITEM_SUSPENDED' | 'SERVICE_STOPPED' | 'SERVICE_SUSPENDED';
  } 

  // org.eclipse.che.api.system.shared.dto.SystemEventDto
  export interface SystemEvent  {
    type?: 'STATUS_CHANGED' | 'STOPPING_SERVICE' | 'SUSPENDING_SERVICE' | 'SERVICE_ITEM_STOPPED' | 'SERVICE_ITEM_SUSPENDED' | 'SERVICE_STOPPED' | 'SERVICE_SUSPENDED';
  } 

} 

export namespace che.workspace.devfile {

  // org.eclipse.che.api.workspace.shared.dto.devfile.DevfileCommandDto
  export interface DevfileCommand  {
    previewUrl?: PreviewUrl;
    name?: string;
    attributes?:  { [key: string]: string; };
    actions?: DevfileAction[];
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.DevfileActionDto
  export interface DevfileAction  {
    reference?: string;
    component?: string;
    workdir?: string;
    referenceContent?: string;
    type?: string;
    command?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.ComponentDto
  export interface Component  {
    registryUrl?: string;
    image?: string;
    preferences?:  { [key: string]: string | number | boolean; };
    endpoints?: Endpoint[];
    cpuLimit?: string;
    volumes?: DevfileVolume[];
    memoryRequest?: string;
    type?: string;
    env?: Env[];
    command?: string[];
    cpuRequest?: string;
    args?: string[];
    reference?: string;
    automountWorkspaceSecrets?: boolean;
    alias?: string;
    referenceContent?: string;
    memoryLimit?: string;
    entrypoints?: Entrypoint[];
    selector?:  { [key: string]: string; };
    id?: string;
    mountSources?: boolean;
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.DevfileDto
  export interface Devfile  {
    components?: Component[];
    metadata?: Metadata;
    projects?: Project[];
    apiVersion?: string;
    name?: string;
    attributes?:  { [key: string]: string; };
    commands?: DevfileCommand[];
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.DevfileVolumeDto
  export interface DevfileVolume  {
    name?: string;
    containerPath?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.EnvDto
  export interface Env  {
    name?: string;
    value?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.PreviewUrlDto
  export interface PreviewUrl  {
    path?: string;
    port?: number;
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.ProjectDto
  export interface Project  {
    clonePath?: string;
    name?: string;
    source?: Source;
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.EntrypointDto
  export interface Entrypoint  {
    args?: string[];
    parentName?: string;
    containerName?: string;
    parentSelector?:  { [key: string]: string; };
    command?: string[];
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.EndpointDto
  export interface Endpoint  {
    port?: number;
    name?: string;
    attributes?:  { [key: string]: string; };
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.SourceDto
  export interface Source  {
    startPoint?: string;
    location?: string;
    tag?: string;
    commitId?: string;
    type?: string;
    branch?: string;
    sparseCheckoutDir?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.devfile.MetadataDto
  export interface Metadata  {
    name?: string;
    generateName?: string;
  } 

} 

export namespace che.workspace {

  // org.eclipse.che.api.workspace.shared.dto.ProjectConfigDto
  export interface ProjectConfig  {
    path?: string;
    mixins?: string[];
    name?: string;
    description?: string;
    links?: che.core.rest.Link[];
    attributes?:  { [key: string]: string[]; };
    source?: SourceStorage;
    type?: string;
    problems?: ProjectProblem[];
  } 

  // org.eclipse.che.api.workspace.shared.dto.CommandDto
  export interface Command  {
    previewUrl?: che.workspace.devfile.PreviewUrl;
    name?: string;
    attributes?:  { [key: string]: string; };
    commandLine?: string;
    type?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.WorkspaceConfigDto
  export interface WorkspaceConfig extends che.core.rest.Hyperlinks {
    projects?: ProjectConfig[];
    environments?:  { [key: string]: Environment; };
    devfile?: che.core.model.workspace.devfile.Devfile;
    name?: string;
    description?: string;
    links?: che.core.rest.Link[];
    attributes?:  { [key: string]: string; };
    commands?: Command[];
    defaultEnv?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.MachineConfigDto
  export interface MachineConfig  {
    servers?:  { [key: string]: ServerConfig; };
    volumes?:  { [key: string]: Volume; };
    attributes?:  { [key: string]: string; };
    env?:  { [key: string]: string; };
  } 

  // org.eclipse.che.api.workspace.shared.dto.EnvironmentDto
  export interface Environment  {
    recipe?: Recipe;
    machines?:  { [key: string]: MachineConfig; };
  } 

  // org.eclipse.che.api.workspace.shared.dto.ServerDto
  export interface Server  {
    attributes?:  { [key: string]: string; };
    url?: string;
    status?: 'RUNNING' | 'STOPPED' | 'UNKNOWN';
  } 

  // org.eclipse.che.api.workspace.shared.dto.VolumeDto
  export interface Volume  {
    path?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.RecipeDto
  export interface Recipe  {
    location?: string;
    type?: string;
    contentType?: string;
    content?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.ServerConfigDto
  export interface ServerConfig  {
    path?: string;
    protocol?: string;
    internal?: boolean;
    requireSubdomain?: boolean;
    port?: string;
    discoverable?: boolean;
    unique?: boolean;
    cookiesAuthEnabled?: boolean;
    attributes?:  { [key: string]: string; };
    secure?: boolean;
    unsecuredPaths?: string[];
    endpointOrigin?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.RuntimeIdentityDto
  export interface RuntimeIdentity  {
    infrastructureNamespace?: string;
    envName?: string;
    ownerId?: string;
    workspaceId?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.MachineDto
  export interface Machine  {
    servers?:  { [key: string]: Server; };
    attributes?:  { [key: string]: string; };
    status?: 'STARTING' | 'RUNNING' | 'STOPPED' | 'FAILED';
  } 

  // org.eclipse.che.api.workspace.shared.dto.WorkspaceDto
  export interface Workspace  {
    temporary?: boolean;
    devfile?: che.workspace.devfile.Devfile;
    namespace?: string;
    runtime?: Runtime;
    links?:  { [key: string]: string; };
    attributes?:  { [key: string]: string; };
    id?: string;
    config?: WorkspaceConfig;
    status?: 'STARTING' | 'RUNNING' | 'STOPPING' | 'STOPPED';
  } 

  // org.eclipse.che.api.workspace.shared.dto.SourceStorageDto
  export interface SourceStorage  {
    location?: string;
    type?: string;
    parameters?:  { [key: string]: string; };
  } 

  // org.eclipse.che.api.workspace.shared.dto.WarningDto
  export interface Warning  {
    code?: number;
    message?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.ProjectProblemDto
  export interface ProjectProblem  {
    code?: number;
    message?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.RuntimeDto
  export interface Runtime extends che.core.rest.Hyperlinks {
    owner?: string;
    warnings?: Warning[];
    machineToken?: string;
    activeEnv?: string;
    links?: che.core.rest.Link[];
    machines?:  { [key: string]: Machine; };
    commands?: Command[];
  } 

} 

export namespace che.ssh {

  // org.eclipse.che.api.ssh.shared.dto.SshPairDto
  export interface SshPair extends che.core.rest.Hyperlinks {
    privateKey?: string;
    service?: string;
    name?: string;
    links?: che.core.rest.Link[];
    publicKey?: string;
  } 

  // org.eclipse.che.api.ssh.shared.dto.GenerateSshPairRequest
  export interface GenerateSshPairRequest  {
    service?: string;
    name?: string;
  } 

} 

export namespace che.user {

  // org.eclipse.che.api.user.shared.dto.UserDto
  export interface User  {
    password?: string;
    aliases?: string[];
    name?: string;
    links?: che.core.rest.Link[];
    id?: string;
    email?: string;
  } 

  // org.eclipse.che.api.user.shared.dto.ProfileDto
  export interface Profile  {
    links?: che.core.rest.Link[];
    attributes?:  { [key: string]: string; };
    userId?: string;
    email?: string;
  } 

} 

export namespace che.core.notification {

  // org.eclipse.che.api.core.notification.dto.EventSubscription
  export interface EventSubscription  {
    method?: string;
    scope?:  { [key: string]: string; };
  } 

} 

export namespace che.workspace.event {

  // org.eclipse.che.api.workspace.shared.dto.event.ServerStatusEvent
  export interface ServerStatusEvent  {
    identity?: che.workspace.RuntimeIdentity;
    serverUrl?: string;
    serverName?: string;
    machineName?: string;
    status?: 'RUNNING' | 'STOPPED' | 'UNKNOWN';
  } 

  // org.eclipse.che.api.workspace.shared.dto.event.MachineLogEvent
  export interface MachineLogEvent  {
    stream?: string;
    text?: string;
    time?: string;
    machineName?: string;
    runtimeId?: che.workspace.RuntimeIdentity;
  } 

  // org.eclipse.che.api.workspace.shared.dto.event.WorkspaceStatusEvent
  export interface WorkspaceStatusEvent  {
    prevStatus?: 'STARTING' | 'RUNNING' | 'STOPPING' | 'STOPPED';
    options?:  { [key: string]: string; };
    error?: string;
    status?: 'STARTING' | 'RUNNING' | 'STOPPING' | 'STOPPED';
    workspaceId?: string;
    initiatedByUser?: boolean;
  } 

  // org.eclipse.che.api.workspace.shared.dto.event.RuntimeLogEvent
  export interface RuntimeLogEvent  {
    stream?: string;
    text?: string;
    time?: string;
    machineName?: string;
    runtimeId?: che.workspace.RuntimeIdentity;
  } 

  // org.eclipse.che.api.workspace.shared.dto.event.BrokerStatusChangedEvent
  export interface BrokerStatusChangedEvent  {
    tooling?: string;
    error?: string;
    runtimeId?: che.workspace.RuntimeIdentity;
    status?: 'STARTED' | 'DONE' | 'FAILED';
  } 

  // org.eclipse.che.api.workspace.shared.dto.event.RuntimeStatusEvent
  export interface RuntimeStatusEvent  {
    prevStatus?: string;
    identity?: che.workspace.RuntimeIdentity;
    failed?: boolean;
    error?: string;
    status?: string;
  } 

  // org.eclipse.che.api.workspace.shared.dto.event.BrokerLogEvent
  export interface BrokerLogEvent  {
    text?: string;
    time?: string;
    runtimeId?: che.workspace.RuntimeIdentity;
  } 

  // org.eclipse.che.api.workspace.shared.dto.event.BootstrapperStatusEvent
  export interface BootstrapperStatusEvent  {
    time?: string;
    error?: string;
    machineName?: string;
    runtimeId?: che.workspace.RuntimeIdentity;
    status?: 'STARTING' | 'DONE' | 'FAILED';
  } 

  // org.eclipse.che.api.workspace.shared.dto.event.MachineStatusEvent
  export interface MachineStatusEvent  {
    identity?: che.workspace.RuntimeIdentity;
    eventType?: 'STARTING' | 'RUNNING' | 'STOPPED' | 'FAILED';
    error?: string;
    machineName?: string;
  } 

} 

export namespace che.core.rest {

  // org.eclipse.che.api.core.rest.shared.dto.ServiceDescriptor
  export interface ServiceDescriptor extends Hyperlinks {
    description?: string;
    links?: Link[];
    href?: string;
    version?: string;
  } 

  // org.eclipse.che.api.core.rest.shared.dto.ServiceError
  export interface ServiceError  {
    message?: string;
  } 

  // org.eclipse.che.api.core.rest.shared.dto.ApiInfo
  export interface ApiInfo  {
    specificationVendor?: string;
    ideVersion?: string;
    specificationTitle?: string;
    implementationVersion?: string;
    buildInfo?: string;
    implementationVendor?: string;
    scmRevision?: string;
    specificationVersion?: string;
  } 

  // org.eclipse.che.api.core.rest.shared.dto.RequestBodyDescriptor
  export interface RequestBodyDescriptor  {
    description?: string;
  } 

  // org.eclipse.che.api.core.rest.shared.dto.ExtendedError
  export interface ExtendedError extends ServiceError {
    errorCode?: number;
    attributes?:  { [key: string]: string; };
    message?: string;
  } 

  // org.eclipse.che.api.core.rest.shared.dto.Hyperlinks
  export interface Hyperlinks  {
    links?: Link[];
  } 

  // org.eclipse.che.api.core.rest.shared.dto.LinkParameter
  export interface LinkParameter  {
    valid?: string[];
    defaultValue?: string;
    name?: string;
    description?: string;
    type?: 'String' | 'Number' | 'Boolean' | 'Array' | 'Object';
    required?: boolean;
  } 

  // org.eclipse.che.api.core.rest.shared.dto.Link
  export interface Link  {
    method?: string;
    requestBody?: RequestBodyDescriptor;
    rel?: string;
    produces?: string;
    href?: string;
    parameters?: LinkParameter[];
    consumes?: string;
  } 

} 

