/**
 * 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 { V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginCommands } from './v1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginCommands';
import { V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponents } from './v1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponents';
import { V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginKubernetes } from './v1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginKubernetes';

/**
* Allows importing a plugin.  Plugins are mainly imported devfiles that contribute components, commands and events as a consistent single unit. They are defined in either YAML files following the devfile syntax, or as `DevWorkspaceTemplate` Kubernetes Custom Resources
*/
export class V1alpha2DevWorkspaceTemplateSpecComponentsItemsPlugin {
    /**
    * Overrides of commands encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.
    */
    'commands'?: Array<V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginCommands>;
    /**
    * Overrides of components encapsulated in a parent devfile or a plugin. Overriding is done according to K8S strategic merge patch standard rules.
    */
    'components'?: Array<V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponents>;
    /**
    * Id in a registry that contains a Devfile yaml file
    */
    'id'?: string;
    'kubernetes'?: V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginKubernetes;
    /**
    * 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;
    /**
    * 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;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "commands",
            "baseName": "commands",
            "type": "Array<V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginCommands>"
        },
        {
            "name": "components",
            "baseName": "components",
            "type": "Array<V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponents>"
        },
        {
            "name": "id",
            "baseName": "id",
            "type": "string"
        },
        {
            "name": "kubernetes",
            "baseName": "kubernetes",
            "type": "V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginKubernetes"
        },
        {
            "name": "registryUrl",
            "baseName": "registryUrl",
            "type": "string"
        },
        {
            "name": "uri",
            "baseName": "uri",
            "type": "string"
        }    ];

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

