// @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';
import { IoK8sApiCoreV1EventSeries } from './ioK8sApiCoreV1EventSeries';
import { IoK8sApiCoreV1EventSource } from './ioK8sApiCoreV1EventSource';
import { IoK8sApiCoreV1ObjectReference } from './ioK8sApiCoreV1ObjectReference';
import { IoK8sApimachineryPkgApisMetaV1ObjectMeta } from './ioK8sApimachineryPkgApisMetaV1ObjectMeta';

/**
* Event is a report of an event somewhere in the cluster.  Events have a limited retention time and triggers and messages may evolve with time.  Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason.  Events should be treated as informative, best-effort, supplemental data.
*/
export class IoK8sApiCoreV1Event {
    /**
    * What action was taken/failed regarding to the Regarding object.
    */
    'action'?: string;
    /**
    * APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
    */
    'apiVersion'?: string;
    /**
    * The number of times this event has occurred.
    */
    'count'?: number;
    /**
    * MicroTime is version of Time with microsecond level precision.
    */
    'eventTime'?: Date;
    /**
    * Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON.  Wrappers are provided for many of the factory methods that the time package offers.
    */
    'firstTimestamp'?: Date;
    'involvedObject': IoK8sApiCoreV1ObjectReference;
    /**
    * Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
    */
    'kind'?: string;
    /**
    * Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON.  Wrappers are provided for many of the factory methods that the time package offers.
    */
    'lastTimestamp'?: Date;
    /**
    * A human-readable description of the status of this operation.
    */
    'message'?: string;
    'metadata': IoK8sApimachineryPkgApisMetaV1ObjectMeta;
    /**
    * This should be a short, machine understandable string that gives the reason for the transition into the object\'s current status.
    */
    'reason'?: string;
    'related'?: IoK8sApiCoreV1ObjectReference;
    /**
    * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
    */
    'reportingComponent'?: string;
    /**
    * ID of the controller instance, e.g. `kubelet-xyzf`.
    */
    'reportingInstance'?: string;
    'series'?: IoK8sApiCoreV1EventSeries;
    'source'?: IoK8sApiCoreV1EventSource;
    /**
    * Type of this event (Normal, Warning), new types could be added in the future
    */
    'type'?: string;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "action",
            "baseName": "action",
            "type": "string"
        },
        {
            "name": "apiVersion",
            "baseName": "apiVersion",
            "type": "string"
        },
        {
            "name": "count",
            "baseName": "count",
            "type": "number"
        },
        {
            "name": "eventTime",
            "baseName": "eventTime",
            "type": "Date"
        },
        {
            "name": "firstTimestamp",
            "baseName": "firstTimestamp",
            "type": "Date"
        },
        {
            "name": "involvedObject",
            "baseName": "involvedObject",
            "type": "IoK8sApiCoreV1ObjectReference"
        },
        {
            "name": "kind",
            "baseName": "kind",
            "type": "string"
        },
        {
            "name": "lastTimestamp",
            "baseName": "lastTimestamp",
            "type": "Date"
        },
        {
            "name": "message",
            "baseName": "message",
            "type": "string"
        },
        {
            "name": "metadata",
            "baseName": "metadata",
            "type": "IoK8sApimachineryPkgApisMetaV1ObjectMeta"
        },
        {
            "name": "reason",
            "baseName": "reason",
            "type": "string"
        },
        {
            "name": "related",
            "baseName": "related",
            "type": "IoK8sApiCoreV1ObjectReference"
        },
        {
            "name": "reportingComponent",
            "baseName": "reportingComponent",
            "type": "string"
        },
        {
            "name": "reportingInstance",
            "baseName": "reportingInstance",
            "type": "string"
        },
        {
            "name": "series",
            "baseName": "series",
            "type": "IoK8sApiCoreV1EventSeries"
        },
        {
            "name": "source",
            "baseName": "source",
            "type": "IoK8sApiCoreV1EventSource"
        },
        {
            "name": "type",
            "baseName": "type",
            "type": "string"
        }    ];

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

