// package: skywalking.v3
// file: service-mesh-probe/service-mesh.proto

/* tslint:disable */
/* eslint-disable */

import * as jspb from "google-protobuf";
import * as common_Common_pb from "../common/Common_pb";

export class ServiceMeshMetric extends jspb.Message { 
    getStarttime(): number;
    setStarttime(value: number): ServiceMeshMetric;
    getEndtime(): number;
    setEndtime(value: number): ServiceMeshMetric;
    getSourceservicename(): string;
    setSourceservicename(value: string): ServiceMeshMetric;
    getSourceserviceinstance(): string;
    setSourceserviceinstance(value: string): ServiceMeshMetric;
    getDestservicename(): string;
    setDestservicename(value: string): ServiceMeshMetric;
    getDestserviceinstance(): string;
    setDestserviceinstance(value: string): ServiceMeshMetric;
    getEndpoint(): string;
    setEndpoint(value: string): ServiceMeshMetric;
    getLatency(): number;
    setLatency(value: number): ServiceMeshMetric;
    getResponsecode(): number;
    setResponsecode(value: number): ServiceMeshMetric;
    getStatus(): boolean;
    setStatus(value: boolean): ServiceMeshMetric;
    getProtocol(): Protocol;
    setProtocol(value: Protocol): ServiceMeshMetric;
    getDetectpoint(): common_Common_pb.DetectPoint;
    setDetectpoint(value: common_Common_pb.DetectPoint): ServiceMeshMetric;
    getTlsmode(): string;
    setTlsmode(value: string): ServiceMeshMetric;
    getInternalerrorcode(): string;
    setInternalerrorcode(value: string): ServiceMeshMetric;

    hasTcp(): boolean;
    clearTcp(): void;
    getTcp(): TCPInfo | undefined;
    setTcp(value?: TCPInfo): ServiceMeshMetric;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): ServiceMeshMetric.AsObject;
    static toObject(includeInstance: boolean, msg: ServiceMeshMetric): ServiceMeshMetric.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: ServiceMeshMetric, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): ServiceMeshMetric;
    static deserializeBinaryFromReader(message: ServiceMeshMetric, reader: jspb.BinaryReader): ServiceMeshMetric;
}

export namespace ServiceMeshMetric {
    export type AsObject = {
        starttime: number,
        endtime: number,
        sourceservicename: string,
        sourceserviceinstance: string,
        destservicename: string,
        destserviceinstance: string,
        endpoint: string,
        latency: number,
        responsecode: number,
        status: boolean,
        protocol: Protocol,
        detectpoint: common_Common_pb.DetectPoint,
        tlsmode: string,
        internalerrorcode: string,
        tcp?: TCPInfo.AsObject,
    }
}

export class TCPInfo extends jspb.Message { 
    getReceivedbytes(): number;
    setReceivedbytes(value: number): TCPInfo;
    getSentbytes(): number;
    setSentbytes(value: number): TCPInfo;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): TCPInfo.AsObject;
    static toObject(includeInstance: boolean, msg: TCPInfo): TCPInfo.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: TCPInfo, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): TCPInfo;
    static deserializeBinaryFromReader(message: TCPInfo, reader: jspb.BinaryReader): TCPInfo;
}

export namespace TCPInfo {
    export type AsObject = {
        receivedbytes: number,
        sentbytes: number,
    }
}

export class MeshProbeDownstream extends jspb.Message { 

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): MeshProbeDownstream.AsObject;
    static toObject(includeInstance: boolean, msg: MeshProbeDownstream): MeshProbeDownstream.AsObject;
    static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
    static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
    static serializeBinaryToWriter(message: MeshProbeDownstream, writer: jspb.BinaryWriter): void;
    static deserializeBinary(bytes: Uint8Array): MeshProbeDownstream;
    static deserializeBinaryFromReader(message: MeshProbeDownstream, reader: jspb.BinaryReader): MeshProbeDownstream;
}

export namespace MeshProbeDownstream {
    export type AsObject = {
    }
}

export enum Protocol {
    HTTP = 0,
    GRPC = 1,
    TCP = 2,
}
