// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
//   protoc-gen-ts_proto  v2.6.1
//   protoc               v3.17.1
// source: policy/monitoring/MSLA.proto

/* eslint-disable */
import { type Any } from "google-protobuf/google/protobuf/any_pb.js";
import { type Metadata } from "../../common/Metadata.js";

/** Copyright Super iPaaS Integration LLC, an IBM Company 2024 */

/** The MSLA related information is captured in the message MSLA */
export interface MSLA {
  kind?: string | undefined;
  apiVersion?:
    | string
    | undefined;
  /** common metadata to identify a specific asset in the files */
  metadata?: Metadata | undefined;
  kindEnum?: MSLA_KindEnums | undefined;
  spec?: MSLA_Spec | undefined;
}

/** Kind id supported for Error Processing */
export enum MSLA_KindEnums {
  MonitorTraffic = "MonitorTraffic",
  MonitorPerformance = "MonitorPerformance",
}

/** The message specified the information related to the Alert Configuration */
export interface MSLA_AlertConfiguration {
  interval?: string | undefined;
  frequency?: string | undefined;
  message?: string | undefined;
}

/** The Spec is used to define the list of condition, application, alert configuration, notify o breach */
export interface MSLA_Spec {
  /** Single instance of condition can be given */
  condition?:
    | string
    | undefined;
  /** Multiple instance of application can be given */
  applications?:
    | string[]
    | undefined;
  /**
   * Field 'alert_configuration' with JSON name 'alert-configuration' accepts the value of either 'alert_configuration' or 'alert-configuration' from the YAML file.
   * If both 'alert_configuration' and 'alert-configuration' are specified, the value of 'alert-configuration' takes priority.
   * Multiple instances of alert configuration can be given with JSON name "alert-configuration".
   */
  "alert-configuration"?:
    | MSLA_AlertConfiguration
    | undefined;
  /**
   * Field 'notify_on_breach' with JSON name 'notify-on-breach' accepts the value of either 'notify_on_breach' or 'notify-on-breach' from the YAML file.
   * If both 'notify_on_breach' and 'notify-on-breach' are specified, the value of 'notify-on-breach' takes priority.
   * Multiple instances of notify on breach can be given with JSON name "notify-on-breach".
   */
  "notify-on-breach"?: Any[] | undefined;
}
