// package: akkaserverless
// file: akkaserverless/jwt.proto

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

import * as jspb from "google-protobuf";

export class JwtFieldOptions extends jspb.Message { 
    getClaim(): JwtFieldOptions.JwtClaimInclude;
    setClaim(value: JwtFieldOptions.JwtClaimInclude): JwtFieldOptions;
    getName(): string;
    setName(value: string): JwtFieldOptions;
    getToken(): boolean;
    setToken(value: boolean): JwtFieldOptions;
    getIncludeParentClaims(): boolean;
    setIncludeParentClaims(value: boolean): JwtFieldOptions;
    clearIncludeBearerTokenClaimList(): void;
    getIncludeBearerTokenClaimList(): Array<string>;
    setIncludeBearerTokenClaimList(value: Array<string>): JwtFieldOptions;
    addIncludeBearerTokenClaim(value: string, index?: number): string;
    clearIssuerList(): void;
    getIssuerList(): Array<string>;
    setIssuerList(value: Array<string>): JwtFieldOptions;
    addIssuer(value: string, index?: number): string;
    getExpiresSeconds(): number;
    setExpiresSeconds(value: number): JwtFieldOptions;

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

export namespace JwtFieldOptions {
    export type AsObject = {
        claim: JwtFieldOptions.JwtClaimInclude,
        name: string,
        token: boolean,
        includeParentClaims: boolean,
        includeBearerTokenClaimList: Array<string>,
        issuerList: Array<string>,
        expiresSeconds: number,
    }

    export enum JwtClaimInclude {
    UNSPECIFIED = 0,
    INCLUDE = 1,
    EXTRACT = 2,
    DESCEND = 3,
    NEST = 4,
    RAW = 5,
    }

}

export class JwtMessageOptions extends jspb.Message { 
    getValidateBearerToken(): boolean;
    setValidateBearerToken(value: boolean): JwtMessageOptions;

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

export namespace JwtMessageOptions {
    export type AsObject = {
        validateBearerToken: boolean,
    }
}

export class JwtMethodOptions extends jspb.Message { 
    clearValidateList(): void;
    getValidateList(): Array<JwtMethodOptions.JwtMethodMode>;
    setValidateList(value: Array<JwtMethodOptions.JwtMethodMode>): JwtMethodOptions;
    addValidate(value: JwtMethodOptions.JwtMethodMode, index?: number): JwtMethodOptions.JwtMethodMode;
    clearSignList(): void;
    getSignList(): Array<JwtMethodOptions.JwtMethodMode>;
    setSignList(value: Array<JwtMethodOptions.JwtMethodMode>): JwtMethodOptions;
    addSign(value: JwtMethodOptions.JwtMethodMode, index?: number): JwtMethodOptions.JwtMethodMode;
    clearBearerTokenIssuerList(): void;
    getBearerTokenIssuerList(): Array<string>;
    setBearerTokenIssuerList(value: Array<string>): JwtMethodOptions;
    addBearerTokenIssuer(value: string, index?: number): string;

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

export namespace JwtMethodOptions {
    export type AsObject = {
        validateList: Array<JwtMethodOptions.JwtMethodMode>,
        signList: Array<JwtMethodOptions.JwtMethodMode>,
        bearerTokenIssuerList: Array<string>,
    }

    export enum JwtMethodMode {
    UNSPECIFIED = 0,
    BEARER_TOKEN = 1,
    MESSAGE = 2,
    }

}
