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

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

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

/** The message identifies the scope */
export interface Scope {
  kind?:
    | string
    | undefined;
  /** common metadata to identify a specific asset in the files */
  metadata?: Metadata | undefined;
  spec?: Scope_Spec | undefined;
  kindEnum?: Scope_KindEnums | undefined;
  apiVersion?: string | undefined;
}

/** Kind id supported for scope */
export enum Scope_KindEnums {
  Scope = "Scope",
}

/** The Spec is used to define the list of resources, policies and policy sequences */
export interface Scope_Spec {
  /** Multiple instances of resources can be given */
  resources?:
    | Scope_Spec_Resources[]
    | 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"?: Scope_Spec_PolicySequence[] | undefined;
}

/** The message specifies the references for the policies */
export interface Scope_Spec_PolicySequence {
  /**
   * Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file.
   * If both 'ref' and '$ref' are specified, the value of '$ref' takes priority.
   */
  $ref?: string | undefined;
}

/** Multiple instances of methods for each resource can be given */
export interface Scope_Spec_Resources {
  path?: string | undefined;
  methods?: string[] | undefined;
}
