/**
 * 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 { V1alpha2DevWorkspaceSpecTemplateParentCommands } from './v1alpha2DevWorkspaceSpecTemplateParentCommands';
import { V1alpha2DevWorkspaceSpecTemplateParentComponents } from './v1alpha2DevWorkspaceSpecTemplateParentComponents';
import { V1alpha2DevWorkspaceSpecTemplateParentKubernetes } from './v1alpha2DevWorkspaceSpecTemplateParentKubernetes';
import { V1alpha2DevWorkspaceSpecTemplateParentProjects } from './v1alpha2DevWorkspaceSpecTemplateParentProjects';
import { V1alpha2DevWorkspaceSpecTemplateParentStarterProjects } from './v1alpha2DevWorkspaceSpecTemplateParentStarterProjects';

/**
* Parent devworkspace template
*/
export class V1alpha2DevWorkspaceSpecTemplateParent {
    /**
    * Overrides of attributes encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.
    */
    'attributes'?: object;
    /**
    * Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.
    */
    'commands'?: Array<V1alpha2DevWorkspaceSpecTemplateParentCommands>;
    /**
    * Overrides of components encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.
    */
    'components'?: Array<V1alpha2DevWorkspaceSpecTemplateParentComponents>;
    /**
    * Id in a registry that contains a Devfile yaml file
    */
    'id'?: string;
    'kubernetes'?: V1alpha2DevWorkspaceSpecTemplateParentKubernetes;
    /**
    * Overrides of projects encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.
    */
    'projects'?: Array<V1alpha2DevWorkspaceSpecTemplateParentProjects>;
    /**
    * Registry URL to pull the parent devfile from when using id in the parent reference. To ensure the parent devfile gets resolved consistently in different environments, it is recommended to always specify the `registryUrl` when `id` is used.
    */
    'registryUrl'?: string;
    /**
    * Overrides of starterProjects encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.
    */
    'starterProjects'?: Array<V1alpha2DevWorkspaceSpecTemplateParentStarterProjects>;
    /**
    * URI Reference of a parent devfile YAML file. It can be a full URL or a relative URI with the current devfile as the base URI.
    */
    'uri'?: string;
    /**
    * Overrides of variables encapsulated in a parent devfile. Overriding is done according to K8S strategic merge patch standard rules.
    */
    'variables'?: { [key: string]: string; };

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "attributes",
            "baseName": "attributes",
            "type": "object"
        },
        {
            "name": "commands",
            "baseName": "commands",
            "type": "Array<V1alpha2DevWorkspaceSpecTemplateParentCommands>"
        },
        {
            "name": "components",
            "baseName": "components",
            "type": "Array<V1alpha2DevWorkspaceSpecTemplateParentComponents>"
        },
        {
            "name": "id",
            "baseName": "id",
            "type": "string"
        },
        {
            "name": "kubernetes",
            "baseName": "kubernetes",
            "type": "V1alpha2DevWorkspaceSpecTemplateParentKubernetes"
        },
        {
            "name": "projects",
            "baseName": "projects",
            "type": "Array<V1alpha2DevWorkspaceSpecTemplateParentProjects>"
        },
        {
            "name": "registryUrl",
            "baseName": "registryUrl",
            "type": "string"
        },
        {
            "name": "starterProjects",
            "baseName": "starterProjects",
            "type": "Array<V1alpha2DevWorkspaceSpecTemplateParentStarterProjects>"
        },
        {
            "name": "uri",
            "baseName": "uri",
            "type": "string"
        },
        {
            "name": "variables",
            "baseName": "variables",
            "type": "{ [key: string]: string; }"
        }    ];

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

