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

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

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

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

/** Kind id supported for HTTP Invoke */
export enum HTTPInvoke_KindEnums {
  HTTPInvoke = "HTTPInvoke",
}

/** The message specified the information related to the response processing */
export interface HTTPInvoke_ResponseProcess {
  transformations?: Any | undefined;
  set?: Set[] | undefined;
  copyEntireResponse?: boolean | undefined;
  abortAPIExecutionForFailure?: string | undefined;
}

export interface HTTPInvoke_Spec {
  condition?: string | undefined;
  endpoint?:
    | Ref
    | undefined;
  /**
   * Field 'request_processing' with JSON name 'request-processing' accepts the value of either 'request_processing' or 'request-processing' from the YAML file.
   * If both 'request_processing' and 'request-processing' are specified, the value of 'request-processing' takes priority.
   * Single instances of request processing can be given with JSON name "request-processing".
   */
  "request-processing"?:
    | RequestProcess
    | undefined;
  /**
   * Field 'response_processing' with JSON name 'response-processing' accepts the value of either 'response_processing' or 'response-processing' from the YAML file.
   * If both 'response_processing' and 'response-processing' are specified, the value of 'response-processing' takes priority.
   * Single instances of response processing can be given with JSON name "response-processing".
   */
  "response-processing"?:
    | HTTPInvoke_ResponseProcess
    | undefined;
  /** Multiple instances of namespace can be given */
  namespaces?: Namespaces[] | undefined;
}
