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

/* eslint-disable */
import { type Metadata } from "../common/Metadata.js";
import { type Path } from "../common/Path.js";
import { type Ref } from "../common/Ref.js";

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

export interface Api {
  kind?:
    | string
    | undefined;
  /** common metadata to identify a specific asset in the files */
  metadata?: Metadata | undefined;
  spec?: Api_Spec | undefined;
  kindEnum?: Api_KindEnums | undefined;
  apiVersion?: string | undefined;
}

/** Kind id supported for api */
export enum Api_KindEnums {
  API = "API",
}

/** The Spec is used to define the list of api specification, scopes and policy sequences */
export interface Api_Spec {
  /**
   * Field 'api_spec' with JSON name 'api-spec' accepts the value of either 'api_spec' or 'api-spec' from the YAML file.
   * If both 'api_spec' and 'api-spec' are specified, the value of 'api-spec' takes priority.
   * Single instance of api_spec can be given with JSON name "api-spec"
   */
  "api-spec"?:
    | Path
    | undefined;
  /** Multiple instances of scopes can be given */
  scopes?:
    | Ref[]
    | undefined;
  /**
   * Field 'policy_seq' with JSON name 'policy-seq' accepts the value of either 'policy_seq' or 'policy-seq' from the YAML file.
   * If both 'policy_seq' and 'policy-seq' are specified, the value of 'policy-seq' takes priority.
   * Multiple instances of policy sequences can be given with JSON name "policy-seq".
   */
  "policy-sequence"?:
    | Ref[]
    | undefined;
  /** Field mock accepts true/false, which identifies the deploying API to be mocked or invoke the actual downstream application */
  mocked?: boolean | undefined;
}
