// package: akkaserverless
// file: akkaserverless/eventing.proto

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

import * as jspb from "google-protobuf";
import * as google_protobuf_descriptor_pb from "google-protobuf/google/protobuf/descriptor_pb";

export class Eventing extends jspb.Message { 

    hasIn(): boolean;
    clearIn(): void;
    getIn(): EventSource | undefined;
    setIn(value?: EventSource): Eventing;

    hasOut(): boolean;
    clearOut(): void;
    getOut(): EventDestination | undefined;
    setOut(value?: EventDestination): Eventing;

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

export namespace Eventing {
    export type AsObject = {
        pb_in?: EventSource.AsObject,
        out?: EventDestination.AsObject,
    }
}

export class EventSource extends jspb.Message { 
    getConsumerGroup(): string;
    setConsumerGroup(value: string): EventSource;

    hasTopic(): boolean;
    clearTopic(): void;
    getTopic(): string;
    setTopic(value: string): EventSource;

    hasEventSourcedEntity(): boolean;
    clearEventSourcedEntity(): void;
    getEventSourcedEntity(): string;
    setEventSourcedEntity(value: string): EventSource;

    hasValueEntity(): boolean;
    clearValueEntity(): void;
    getValueEntity(): string;
    setValueEntity(value: string): EventSource;

    getSourceCase(): EventSource.SourceCase;

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

export namespace EventSource {
    export type AsObject = {
        consumerGroup: string,
        topic: string,
        eventSourcedEntity: string,
        valueEntity: string,
    }

    export enum SourceCase {
        SOURCE_NOT_SET = 0,
        TOPIC = 2,
        EVENT_SOURCED_ENTITY = 3,
        VALUE_ENTITY = 4,
    }

}

export class EventDestination extends jspb.Message { 

    hasTopic(): boolean;
    clearTopic(): void;
    getTopic(): string;
    setTopic(value: string): EventDestination;

    getDestinationCase(): EventDestination.DestinationCase;

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

export namespace EventDestination {
    export type AsObject = {
        topic: string,
    }

    export enum DestinationCase {
        DESTINATION_NOT_SET = 0,
        TOPIC = 1,
    }

}
