/* eslint-disable */
/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */

export interface K8SWorkloadGroupV1Beta1 {
  /**
   * Describes a collection of workload instances. See more details at: https://istio.io/docs/reference/config/networking/workload-group.html
   */
  spec: {
    /**
     * Metadata that will be used for all corresponding `WorkloadEntries`.
     */
    metadata?: {
      annotations?: {
        [k: string]: string;
      };
      labels?: {
        [k: string]: string;
      };
    };
    /**
     * `ReadinessProbe` describes the configuration the user must provide for healthchecking on their workload.
     */
    probe?: {
      [k: string]: unknown;
    };
    /**
     * Template to be used for the generation of `WorkloadEntry` resources that belong to this `WorkloadGroup`.
     */
    template: {
      /**
       * Address associated with the network endpoint without the port.
       */
      address?: string;
      /**
       * One or more labels associated with the endpoint.
       */
      labels?: {
        [k: string]: string;
      };
      /**
       * The locality associated with the endpoint.
       */
      locality?: string;
      /**
       * Network enables Istio to group endpoints resident in the same L3 domain/network.
       */
      network?: string;
      /**
       * Set of ports associated with the endpoint.
       */
      ports?: {
        [k: string]: number;
      };
      /**
       * The service account associated with the workload if a sidecar is present in the workload.
       */
      serviceAccount?: string;
      /**
       * The load balancing weight associated with the endpoint.
       */
      weight?: number;
    };
  };
  status?: {
    /**
     * Current service state of the resource.
     */
    conditions?: {
      /**
       * Last time we probed the condition.
       */
      lastProbeTime?: string;
      /**
       * Last time the condition transitioned from one status to another.
       */
      lastTransitionTime?: string;
      /**
       * Human-readable message indicating details about last transition.
       */
      message?: string;
      /**
       * Unique, one-word, CamelCase reason for the condition's last transition.
       */
      reason?: string;
      /**
       * Status is the status of the condition.
       */
      status?: string;
      /**
       * Type is the type of the condition.
       */
      type?: string;
    }[];
    /**
     * Resource Generation to which the Reconciled Condition refers.
     */
    observedGeneration?: number | string;
    /**
     * Includes any errors or warnings detected by Istio's analyzers.
     */
    validationMessages?: {
      /**
       * A url pointing to the Istio documentation for this specific error type.
       */
      documentationUrl?: string;
      /**
       * Represents how severe a message is.
       *
       * Valid Options: UNKNOWN, ERROR, WARNING, INFO
       */
      level?: "UNKNOWN" | "ERROR" | "WARNING" | "INFO";
      type?: {
        /**
         * A 7 character code matching `^IST[0-9]{4}$` intended to uniquely identify the message type.
         */
        code?: string;
        /**
         * A human-readable name for the message type.
         */
        name?: string;
      };
    }[];
  };
}
