/**
 * Kubernetes
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { V1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExecEnv } from './v1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExecEnv';
import { V1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExecGroup } from './v1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExecGroup';

/**
* CLI Command executed in an existing component container
*/
export class V1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExec {
    /**
    * The actual command-line string  Special variables that can be used:   - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component\'s sourceMapping.   - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/<project-name>). If there are multiple projects, this will point to the directory of the first one.
    */
    'commandLine'?: string;
    /**
    * Describes component to which given action relates
    */
    'component'?: string;
    /**
    * Optional list of environment variables that have to be set before running the command
    */
    'env'?: Array<V1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExecEnv>;
    'group'?: V1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExecGroup;
    /**
    * Whether the command is capable to reload itself when source code changes. If set to `true` the command won\'t be restarted and it is expected to handle file changes on its own.  Default value is `false`
    */
    'hotReloadCapable'?: boolean;
    /**
    * Optional label that provides a label for this command to be used in Editor UI menus for example
    */
    'label'?: string;
    /**
    * Working directory where the command should be executed  Special variables that can be used:   - `$PROJECTS_ROOT`: A path where projects sources are mounted as defined by container component\'s sourceMapping.   - `$PROJECT_SOURCE`: A path to a project source ($PROJECTS_ROOT/<project-name>). If there are multiple projects, this will point to the directory of the first one.
    */
    'workingDir'?: string;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "commandLine",
            "baseName": "commandLine",
            "type": "string"
        },
        {
            "name": "component",
            "baseName": "component",
            "type": "string"
        },
        {
            "name": "env",
            "baseName": "env",
            "type": "Array<V1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExecEnv>"
        },
        {
            "name": "group",
            "baseName": "group",
            "type": "V1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExecGroup"
        },
        {
            "name": "hotReloadCapable",
            "baseName": "hotReloadCapable",
            "type": "boolean"
        },
        {
            "name": "label",
            "baseName": "label",
            "type": "string"
        },
        {
            "name": "workingDir",
            "baseName": "workingDir",
            "type": "string"
        }    ];

    static getAttributeTypeMap() {
        return V1alpha2DevWorkspaceSpecTemplateParentCommandsItemsExec.attributeTypeMap;
    }
}

