/**
 * 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 { V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsContainer } from './v1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsContainer';
import { V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsImage } from './v1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsImage';
import { V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsKubernetes } from './v1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsKubernetes';
import { V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsOpenshift } from './v1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsOpenshift';
import { V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsVolume } from './v1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsVolume';

export class V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponents {
    /**
    * Map of implementation-dependant free-form YAML attributes.
    */
    'attributes'?: object;
    'container'?: V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsContainer;
    'image'?: V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsImage;
    'kubernetes'?: V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsKubernetes;
    /**
    * Mandatory name that allows referencing the component from other elements (such as commands) or from an external devfile that may reference this component through a parent or a plugin.
    */
    'name': string;
    'openshift'?: V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsOpenshift;
    'volume'?: V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsVolume;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "attributes",
            "baseName": "attributes",
            "type": "object"
        },
        {
            "name": "container",
            "baseName": "container",
            "type": "V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsContainer"
        },
        {
            "name": "image",
            "baseName": "image",
            "type": "V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsImage"
        },
        {
            "name": "kubernetes",
            "baseName": "kubernetes",
            "type": "V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsKubernetes"
        },
        {
            "name": "name",
            "baseName": "name",
            "type": "string"
        },
        {
            "name": "openshift",
            "baseName": "openshift",
            "type": "V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsOpenshift"
        },
        {
            "name": "volume",
            "baseName": "volume",
            "type": "V1alpha2DevWorkspaceTemplateSpecComponentsItemsPluginComponentsItemsVolume"
        }    ];

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

