/**
 * reports
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * OpenAPI spec version: 999.0
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

import { Script } from '././script';
import { ConfigurationItem } from '././configurationItem';
import { Input } from '././input';
import { ParamsItem } from '././paramsItem';
import { Execution } from '././execution';
import { TaskModels } from '././taskModels';
import { Output } from '././output';
import { TaskStatusEnum } from '././taskStatusEnum';
import { LastMetricsEvent } from '././lastMetricsEvent';
import { TaskTypeEnum } from '././taskTypeEnum';


export interface Task {
    /**
     * Task id
     */
    id?: string;
    /**
     * Task Name
     */
    name?: string;
    /**
     * Associated user id
     */
    user?: string;
    /**
     * Company ID
     */
    company?: string;
    type?: TaskTypeEnum;
    status?: TaskStatusEnum;
    /**
     * Free text comment
     */
    comment?: string;
    /**
     * Task creation time (UTC) 
     */
    created?: string;
    /**
     * Task start time (UTC)
     */
    started?: string;
    /**
     * Task end time (UTC)
     */
    completed?: string;
    /**
     * Task duration time (seconds)
     */
    active_duration?: number;
    /**
     * Parent task id
     */
    parent?: string;
    /**
     * Project ID of the project to which this task is assigned
     */
    project?: string;
    input?: Input;
    output?: Output;
    execution?: Execution;
    /**
     * Docker container parameters
     */
    container?: object;
    models?: TaskModels;
    script?: Script;
    /**
     * User-defined tags list
     */
    tags?: Array<string>;
    /**
     * System tags list. This field is reserved for system use, please don\'t use it.
     */
    system_tags?: Array<string>;
    /**
     * Last status change time
     */
    status_changed?: string;
    /**
     * free text string representing info about the status
     */
    status_message?: string;
    /**
     * Reason for last status change
     */
    status_reason?: string;
    /**
     * Task publish time
     */
    published?: string;
    /**
     * ID of last worker that handled the task
     */
    last_worker?: string;
    /**
     * Last time a worker reported while working on this task
     */
    last_worker_report?: string;
    /**
     * Last time this task was created, edited, changed or events for this task were reported
     */
    last_update?: string;
    /**
     * Last time any update was done to the task
     */
    last_change?: string;
    /**
     * Last iteration reported for this task
     */
    last_iteration?: number;
    /**
     * Last metric variants (hash to events), one for each metric hash
     */
    last_metrics?: { [key: string]: { [key: string]: LastMetricsEvent; }; };
    /**
     * Task hyper params per section
     */
    hyperparams?: { [key: string]: { [key: string]: ParamsItem; }; };
    /**
     * Task configuration params
     */
    configuration?: { [key: string]: ConfigurationItem; };
    /**
     * Task runtime mapping
     */
    runtime?: object;
}
