// @ts-nocheck
/**
 * Argo Workflows API
 * Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. For more information, please see https://argoproj.github.io/argo-workflows/
 *
 * The version of the OpenAPI document: VERSION
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { RequestFile } from './models';

/**
* A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
*/
export class IoK8sApiCoreV1NodeSelectorRequirement {
    /**
    * The label key that the selector applies to.
    */
    'key': string;
    /**
    * Represents a key\'s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.  Possible enum values:  - `\"DoesNotExist\"`  - `\"Exists\"`  - `\"Gt\"`  - `\"In\"`  - `\"Lt\"`  - `\"NotIn\"`
    */
    'operator': IoK8sApiCoreV1NodeSelectorRequirement.OperatorEnum;
    /**
    * An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
    */
    'values'?: Array<string>;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "key",
            "baseName": "key",
            "type": "string"
        },
        {
            "name": "operator",
            "baseName": "operator",
            "type": "IoK8sApiCoreV1NodeSelectorRequirement.OperatorEnum"
        },
        {
            "name": "values",
            "baseName": "values",
            "type": "Array<string>"
        }    ];

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

export namespace IoK8sApiCoreV1NodeSelectorRequirement {
    export enum OperatorEnum {
        DoesNotExist = <any> 'DoesNotExist',
        Exists = <any> 'Exists',
        Gt = <any> 'Gt',
        In = <any> 'In',
        Lt = <any> 'Lt',
        NotIn = <any> 'NotIn'
    }
}
