// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import type {protobuf as $protobuf} from "google-gax";
import Long = require("long");
/** Namespace google. */
export namespace google {

    /** Namespace privacy. */
    namespace privacy {

        /** Namespace dlp. */
        namespace dlp {

            /** Namespace v2. */
            namespace v2 {

                /** Represents a DlpService */
                class DlpService extends $protobuf.rpc.Service {

                    /**
                     * Constructs a new DlpService service.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     */
                    constructor(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean);

                    /**
                     * Creates new DlpService service using the specified rpc implementation.
                     * @param rpcImpl RPC implementation
                     * @param [requestDelimited=false] Whether requests are length-delimited
                     * @param [responseDelimited=false] Whether responses are length-delimited
                     * @returns RPC service. Useful where requests and/or responses are streamed.
                     */
                    public static create(rpcImpl: $protobuf.RPCImpl, requestDelimited?: boolean, responseDelimited?: boolean): DlpService;

                    /**
                     * Calls InspectContent.
                     * @param request InspectContentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InspectContentResponse
                     */
                    public inspectContent(request: google.privacy.dlp.v2.IInspectContentRequest, callback: google.privacy.dlp.v2.DlpService.InspectContentCallback): void;

                    /**
                     * Calls InspectContent.
                     * @param request InspectContentRequest message or plain object
                     * @returns Promise
                     */
                    public inspectContent(request: google.privacy.dlp.v2.IInspectContentRequest): Promise<google.privacy.dlp.v2.InspectContentResponse>;

                    /**
                     * Calls RedactImage.
                     * @param request RedactImageRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and RedactImageResponse
                     */
                    public redactImage(request: google.privacy.dlp.v2.IRedactImageRequest, callback: google.privacy.dlp.v2.DlpService.RedactImageCallback): void;

                    /**
                     * Calls RedactImage.
                     * @param request RedactImageRequest message or plain object
                     * @returns Promise
                     */
                    public redactImage(request: google.privacy.dlp.v2.IRedactImageRequest): Promise<google.privacy.dlp.v2.RedactImageResponse>;

                    /**
                     * Calls DeidentifyContent.
                     * @param request DeidentifyContentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeidentifyContentResponse
                     */
                    public deidentifyContent(request: google.privacy.dlp.v2.IDeidentifyContentRequest, callback: google.privacy.dlp.v2.DlpService.DeidentifyContentCallback): void;

                    /**
                     * Calls DeidentifyContent.
                     * @param request DeidentifyContentRequest message or plain object
                     * @returns Promise
                     */
                    public deidentifyContent(request: google.privacy.dlp.v2.IDeidentifyContentRequest): Promise<google.privacy.dlp.v2.DeidentifyContentResponse>;

                    /**
                     * Calls ReidentifyContent.
                     * @param request ReidentifyContentRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ReidentifyContentResponse
                     */
                    public reidentifyContent(request: google.privacy.dlp.v2.IReidentifyContentRequest, callback: google.privacy.dlp.v2.DlpService.ReidentifyContentCallback): void;

                    /**
                     * Calls ReidentifyContent.
                     * @param request ReidentifyContentRequest message or plain object
                     * @returns Promise
                     */
                    public reidentifyContent(request: google.privacy.dlp.v2.IReidentifyContentRequest): Promise<google.privacy.dlp.v2.ReidentifyContentResponse>;

                    /**
                     * Calls ListInfoTypes.
                     * @param request ListInfoTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListInfoTypesResponse
                     */
                    public listInfoTypes(request: google.privacy.dlp.v2.IListInfoTypesRequest, callback: google.privacy.dlp.v2.DlpService.ListInfoTypesCallback): void;

                    /**
                     * Calls ListInfoTypes.
                     * @param request ListInfoTypesRequest message or plain object
                     * @returns Promise
                     */
                    public listInfoTypes(request: google.privacy.dlp.v2.IListInfoTypesRequest): Promise<google.privacy.dlp.v2.ListInfoTypesResponse>;

                    /**
                     * Calls CreateInspectTemplate.
                     * @param request CreateInspectTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InspectTemplate
                     */
                    public createInspectTemplate(request: google.privacy.dlp.v2.ICreateInspectTemplateRequest, callback: google.privacy.dlp.v2.DlpService.CreateInspectTemplateCallback): void;

                    /**
                     * Calls CreateInspectTemplate.
                     * @param request CreateInspectTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public createInspectTemplate(request: google.privacy.dlp.v2.ICreateInspectTemplateRequest): Promise<google.privacy.dlp.v2.InspectTemplate>;

                    /**
                     * Calls UpdateInspectTemplate.
                     * @param request UpdateInspectTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InspectTemplate
                     */
                    public updateInspectTemplate(request: google.privacy.dlp.v2.IUpdateInspectTemplateRequest, callback: google.privacy.dlp.v2.DlpService.UpdateInspectTemplateCallback): void;

                    /**
                     * Calls UpdateInspectTemplate.
                     * @param request UpdateInspectTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public updateInspectTemplate(request: google.privacy.dlp.v2.IUpdateInspectTemplateRequest): Promise<google.privacy.dlp.v2.InspectTemplate>;

                    /**
                     * Calls GetInspectTemplate.
                     * @param request GetInspectTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and InspectTemplate
                     */
                    public getInspectTemplate(request: google.privacy.dlp.v2.IGetInspectTemplateRequest, callback: google.privacy.dlp.v2.DlpService.GetInspectTemplateCallback): void;

                    /**
                     * Calls GetInspectTemplate.
                     * @param request GetInspectTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public getInspectTemplate(request: google.privacy.dlp.v2.IGetInspectTemplateRequest): Promise<google.privacy.dlp.v2.InspectTemplate>;

                    /**
                     * Calls ListInspectTemplates.
                     * @param request ListInspectTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListInspectTemplatesResponse
                     */
                    public listInspectTemplates(request: google.privacy.dlp.v2.IListInspectTemplatesRequest, callback: google.privacy.dlp.v2.DlpService.ListInspectTemplatesCallback): void;

                    /**
                     * Calls ListInspectTemplates.
                     * @param request ListInspectTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public listInspectTemplates(request: google.privacy.dlp.v2.IListInspectTemplatesRequest): Promise<google.privacy.dlp.v2.ListInspectTemplatesResponse>;

                    /**
                     * Calls DeleteInspectTemplate.
                     * @param request DeleteInspectTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteInspectTemplate(request: google.privacy.dlp.v2.IDeleteInspectTemplateRequest, callback: google.privacy.dlp.v2.DlpService.DeleteInspectTemplateCallback): void;

                    /**
                     * Calls DeleteInspectTemplate.
                     * @param request DeleteInspectTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public deleteInspectTemplate(request: google.privacy.dlp.v2.IDeleteInspectTemplateRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls CreateDeidentifyTemplate.
                     * @param request CreateDeidentifyTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeidentifyTemplate
                     */
                    public createDeidentifyTemplate(request: google.privacy.dlp.v2.ICreateDeidentifyTemplateRequest, callback: google.privacy.dlp.v2.DlpService.CreateDeidentifyTemplateCallback): void;

                    /**
                     * Calls CreateDeidentifyTemplate.
                     * @param request CreateDeidentifyTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public createDeidentifyTemplate(request: google.privacy.dlp.v2.ICreateDeidentifyTemplateRequest): Promise<google.privacy.dlp.v2.DeidentifyTemplate>;

                    /**
                     * Calls UpdateDeidentifyTemplate.
                     * @param request UpdateDeidentifyTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeidentifyTemplate
                     */
                    public updateDeidentifyTemplate(request: google.privacy.dlp.v2.IUpdateDeidentifyTemplateRequest, callback: google.privacy.dlp.v2.DlpService.UpdateDeidentifyTemplateCallback): void;

                    /**
                     * Calls UpdateDeidentifyTemplate.
                     * @param request UpdateDeidentifyTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public updateDeidentifyTemplate(request: google.privacy.dlp.v2.IUpdateDeidentifyTemplateRequest): Promise<google.privacy.dlp.v2.DeidentifyTemplate>;

                    /**
                     * Calls GetDeidentifyTemplate.
                     * @param request GetDeidentifyTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DeidentifyTemplate
                     */
                    public getDeidentifyTemplate(request: google.privacy.dlp.v2.IGetDeidentifyTemplateRequest, callback: google.privacy.dlp.v2.DlpService.GetDeidentifyTemplateCallback): void;

                    /**
                     * Calls GetDeidentifyTemplate.
                     * @param request GetDeidentifyTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public getDeidentifyTemplate(request: google.privacy.dlp.v2.IGetDeidentifyTemplateRequest): Promise<google.privacy.dlp.v2.DeidentifyTemplate>;

                    /**
                     * Calls ListDeidentifyTemplates.
                     * @param request ListDeidentifyTemplatesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListDeidentifyTemplatesResponse
                     */
                    public listDeidentifyTemplates(request: google.privacy.dlp.v2.IListDeidentifyTemplatesRequest, callback: google.privacy.dlp.v2.DlpService.ListDeidentifyTemplatesCallback): void;

                    /**
                     * Calls ListDeidentifyTemplates.
                     * @param request ListDeidentifyTemplatesRequest message or plain object
                     * @returns Promise
                     */
                    public listDeidentifyTemplates(request: google.privacy.dlp.v2.IListDeidentifyTemplatesRequest): Promise<google.privacy.dlp.v2.ListDeidentifyTemplatesResponse>;

                    /**
                     * Calls DeleteDeidentifyTemplate.
                     * @param request DeleteDeidentifyTemplateRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteDeidentifyTemplate(request: google.privacy.dlp.v2.IDeleteDeidentifyTemplateRequest, callback: google.privacy.dlp.v2.DlpService.DeleteDeidentifyTemplateCallback): void;

                    /**
                     * Calls DeleteDeidentifyTemplate.
                     * @param request DeleteDeidentifyTemplateRequest message or plain object
                     * @returns Promise
                     */
                    public deleteDeidentifyTemplate(request: google.privacy.dlp.v2.IDeleteDeidentifyTemplateRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls CreateJobTrigger.
                     * @param request CreateJobTriggerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and JobTrigger
                     */
                    public createJobTrigger(request: google.privacy.dlp.v2.ICreateJobTriggerRequest, callback: google.privacy.dlp.v2.DlpService.CreateJobTriggerCallback): void;

                    /**
                     * Calls CreateJobTrigger.
                     * @param request CreateJobTriggerRequest message or plain object
                     * @returns Promise
                     */
                    public createJobTrigger(request: google.privacy.dlp.v2.ICreateJobTriggerRequest): Promise<google.privacy.dlp.v2.JobTrigger>;

                    /**
                     * Calls UpdateJobTrigger.
                     * @param request UpdateJobTriggerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and JobTrigger
                     */
                    public updateJobTrigger(request: google.privacy.dlp.v2.IUpdateJobTriggerRequest, callback: google.privacy.dlp.v2.DlpService.UpdateJobTriggerCallback): void;

                    /**
                     * Calls UpdateJobTrigger.
                     * @param request UpdateJobTriggerRequest message or plain object
                     * @returns Promise
                     */
                    public updateJobTrigger(request: google.privacy.dlp.v2.IUpdateJobTriggerRequest): Promise<google.privacy.dlp.v2.JobTrigger>;

                    /**
                     * Calls HybridInspectJobTrigger.
                     * @param request HybridInspectJobTriggerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HybridInspectResponse
                     */
                    public hybridInspectJobTrigger(request: google.privacy.dlp.v2.IHybridInspectJobTriggerRequest, callback: google.privacy.dlp.v2.DlpService.HybridInspectJobTriggerCallback): void;

                    /**
                     * Calls HybridInspectJobTrigger.
                     * @param request HybridInspectJobTriggerRequest message or plain object
                     * @returns Promise
                     */
                    public hybridInspectJobTrigger(request: google.privacy.dlp.v2.IHybridInspectJobTriggerRequest): Promise<google.privacy.dlp.v2.HybridInspectResponse>;

                    /**
                     * Calls GetJobTrigger.
                     * @param request GetJobTriggerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and JobTrigger
                     */
                    public getJobTrigger(request: google.privacy.dlp.v2.IGetJobTriggerRequest, callback: google.privacy.dlp.v2.DlpService.GetJobTriggerCallback): void;

                    /**
                     * Calls GetJobTrigger.
                     * @param request GetJobTriggerRequest message or plain object
                     * @returns Promise
                     */
                    public getJobTrigger(request: google.privacy.dlp.v2.IGetJobTriggerRequest): Promise<google.privacy.dlp.v2.JobTrigger>;

                    /**
                     * Calls ListJobTriggers.
                     * @param request ListJobTriggersRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListJobTriggersResponse
                     */
                    public listJobTriggers(request: google.privacy.dlp.v2.IListJobTriggersRequest, callback: google.privacy.dlp.v2.DlpService.ListJobTriggersCallback): void;

                    /**
                     * Calls ListJobTriggers.
                     * @param request ListJobTriggersRequest message or plain object
                     * @returns Promise
                     */
                    public listJobTriggers(request: google.privacy.dlp.v2.IListJobTriggersRequest): Promise<google.privacy.dlp.v2.ListJobTriggersResponse>;

                    /**
                     * Calls DeleteJobTrigger.
                     * @param request DeleteJobTriggerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteJobTrigger(request: google.privacy.dlp.v2.IDeleteJobTriggerRequest, callback: google.privacy.dlp.v2.DlpService.DeleteJobTriggerCallback): void;

                    /**
                     * Calls DeleteJobTrigger.
                     * @param request DeleteJobTriggerRequest message or plain object
                     * @returns Promise
                     */
                    public deleteJobTrigger(request: google.privacy.dlp.v2.IDeleteJobTriggerRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls ActivateJobTrigger.
                     * @param request ActivateJobTriggerRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DlpJob
                     */
                    public activateJobTrigger(request: google.privacy.dlp.v2.IActivateJobTriggerRequest, callback: google.privacy.dlp.v2.DlpService.ActivateJobTriggerCallback): void;

                    /**
                     * Calls ActivateJobTrigger.
                     * @param request ActivateJobTriggerRequest message or plain object
                     * @returns Promise
                     */
                    public activateJobTrigger(request: google.privacy.dlp.v2.IActivateJobTriggerRequest): Promise<google.privacy.dlp.v2.DlpJob>;

                    /**
                     * Calls CreateDlpJob.
                     * @param request CreateDlpJobRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DlpJob
                     */
                    public createDlpJob(request: google.privacy.dlp.v2.ICreateDlpJobRequest, callback: google.privacy.dlp.v2.DlpService.CreateDlpJobCallback): void;

                    /**
                     * Calls CreateDlpJob.
                     * @param request CreateDlpJobRequest message or plain object
                     * @returns Promise
                     */
                    public createDlpJob(request: google.privacy.dlp.v2.ICreateDlpJobRequest): Promise<google.privacy.dlp.v2.DlpJob>;

                    /**
                     * Calls ListDlpJobs.
                     * @param request ListDlpJobsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListDlpJobsResponse
                     */
                    public listDlpJobs(request: google.privacy.dlp.v2.IListDlpJobsRequest, callback: google.privacy.dlp.v2.DlpService.ListDlpJobsCallback): void;

                    /**
                     * Calls ListDlpJobs.
                     * @param request ListDlpJobsRequest message or plain object
                     * @returns Promise
                     */
                    public listDlpJobs(request: google.privacy.dlp.v2.IListDlpJobsRequest): Promise<google.privacy.dlp.v2.ListDlpJobsResponse>;

                    /**
                     * Calls GetDlpJob.
                     * @param request GetDlpJobRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DlpJob
                     */
                    public getDlpJob(request: google.privacy.dlp.v2.IGetDlpJobRequest, callback: google.privacy.dlp.v2.DlpService.GetDlpJobCallback): void;

                    /**
                     * Calls GetDlpJob.
                     * @param request GetDlpJobRequest message or plain object
                     * @returns Promise
                     */
                    public getDlpJob(request: google.privacy.dlp.v2.IGetDlpJobRequest): Promise<google.privacy.dlp.v2.DlpJob>;

                    /**
                     * Calls DeleteDlpJob.
                     * @param request DeleteDlpJobRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteDlpJob(request: google.privacy.dlp.v2.IDeleteDlpJobRequest, callback: google.privacy.dlp.v2.DlpService.DeleteDlpJobCallback): void;

                    /**
                     * Calls DeleteDlpJob.
                     * @param request DeleteDlpJobRequest message or plain object
                     * @returns Promise
                     */
                    public deleteDlpJob(request: google.privacy.dlp.v2.IDeleteDlpJobRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls CancelDlpJob.
                     * @param request CancelDlpJobRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public cancelDlpJob(request: google.privacy.dlp.v2.ICancelDlpJobRequest, callback: google.privacy.dlp.v2.DlpService.CancelDlpJobCallback): void;

                    /**
                     * Calls CancelDlpJob.
                     * @param request CancelDlpJobRequest message or plain object
                     * @returns Promise
                     */
                    public cancelDlpJob(request: google.privacy.dlp.v2.ICancelDlpJobRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls CreateStoredInfoType.
                     * @param request CreateStoredInfoTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoredInfoType
                     */
                    public createStoredInfoType(request: google.privacy.dlp.v2.ICreateStoredInfoTypeRequest, callback: google.privacy.dlp.v2.DlpService.CreateStoredInfoTypeCallback): void;

                    /**
                     * Calls CreateStoredInfoType.
                     * @param request CreateStoredInfoTypeRequest message or plain object
                     * @returns Promise
                     */
                    public createStoredInfoType(request: google.privacy.dlp.v2.ICreateStoredInfoTypeRequest): Promise<google.privacy.dlp.v2.StoredInfoType>;

                    /**
                     * Calls UpdateStoredInfoType.
                     * @param request UpdateStoredInfoTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoredInfoType
                     */
                    public updateStoredInfoType(request: google.privacy.dlp.v2.IUpdateStoredInfoTypeRequest, callback: google.privacy.dlp.v2.DlpService.UpdateStoredInfoTypeCallback): void;

                    /**
                     * Calls UpdateStoredInfoType.
                     * @param request UpdateStoredInfoTypeRequest message or plain object
                     * @returns Promise
                     */
                    public updateStoredInfoType(request: google.privacy.dlp.v2.IUpdateStoredInfoTypeRequest): Promise<google.privacy.dlp.v2.StoredInfoType>;

                    /**
                     * Calls GetStoredInfoType.
                     * @param request GetStoredInfoTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and StoredInfoType
                     */
                    public getStoredInfoType(request: google.privacy.dlp.v2.IGetStoredInfoTypeRequest, callback: google.privacy.dlp.v2.DlpService.GetStoredInfoTypeCallback): void;

                    /**
                     * Calls GetStoredInfoType.
                     * @param request GetStoredInfoTypeRequest message or plain object
                     * @returns Promise
                     */
                    public getStoredInfoType(request: google.privacy.dlp.v2.IGetStoredInfoTypeRequest): Promise<google.privacy.dlp.v2.StoredInfoType>;

                    /**
                     * Calls ListStoredInfoTypes.
                     * @param request ListStoredInfoTypesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListStoredInfoTypesResponse
                     */
                    public listStoredInfoTypes(request: google.privacy.dlp.v2.IListStoredInfoTypesRequest, callback: google.privacy.dlp.v2.DlpService.ListStoredInfoTypesCallback): void;

                    /**
                     * Calls ListStoredInfoTypes.
                     * @param request ListStoredInfoTypesRequest message or plain object
                     * @returns Promise
                     */
                    public listStoredInfoTypes(request: google.privacy.dlp.v2.IListStoredInfoTypesRequest): Promise<google.privacy.dlp.v2.ListStoredInfoTypesResponse>;

                    /**
                     * Calls DeleteStoredInfoType.
                     * @param request DeleteStoredInfoTypeRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteStoredInfoType(request: google.privacy.dlp.v2.IDeleteStoredInfoTypeRequest, callback: google.privacy.dlp.v2.DlpService.DeleteStoredInfoTypeCallback): void;

                    /**
                     * Calls DeleteStoredInfoType.
                     * @param request DeleteStoredInfoTypeRequest message or plain object
                     * @returns Promise
                     */
                    public deleteStoredInfoType(request: google.privacy.dlp.v2.IDeleteStoredInfoTypeRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls HybridInspectDlpJob.
                     * @param request HybridInspectDlpJobRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and HybridInspectResponse
                     */
                    public hybridInspectDlpJob(request: google.privacy.dlp.v2.IHybridInspectDlpJobRequest, callback: google.privacy.dlp.v2.DlpService.HybridInspectDlpJobCallback): void;

                    /**
                     * Calls HybridInspectDlpJob.
                     * @param request HybridInspectDlpJobRequest message or plain object
                     * @returns Promise
                     */
                    public hybridInspectDlpJob(request: google.privacy.dlp.v2.IHybridInspectDlpJobRequest): Promise<google.privacy.dlp.v2.HybridInspectResponse>;

                    /**
                     * Calls FinishDlpJob.
                     * @param request FinishDlpJobRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public finishDlpJob(request: google.privacy.dlp.v2.IFinishDlpJobRequest, callback: google.privacy.dlp.v2.DlpService.FinishDlpJobCallback): void;

                    /**
                     * Calls FinishDlpJob.
                     * @param request FinishDlpJobRequest message or plain object
                     * @returns Promise
                     */
                    public finishDlpJob(request: google.privacy.dlp.v2.IFinishDlpJobRequest): Promise<google.protobuf.Empty>;
                }

                namespace DlpService {

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|inspectContent}.
                     * @param error Error, if any
                     * @param [response] InspectContentResponse
                     */
                    type InspectContentCallback = (error: (Error|null), response?: google.privacy.dlp.v2.InspectContentResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|redactImage}.
                     * @param error Error, if any
                     * @param [response] RedactImageResponse
                     */
                    type RedactImageCallback = (error: (Error|null), response?: google.privacy.dlp.v2.RedactImageResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|deidentifyContent}.
                     * @param error Error, if any
                     * @param [response] DeidentifyContentResponse
                     */
                    type DeidentifyContentCallback = (error: (Error|null), response?: google.privacy.dlp.v2.DeidentifyContentResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|reidentifyContent}.
                     * @param error Error, if any
                     * @param [response] ReidentifyContentResponse
                     */
                    type ReidentifyContentCallback = (error: (Error|null), response?: google.privacy.dlp.v2.ReidentifyContentResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|listInfoTypes}.
                     * @param error Error, if any
                     * @param [response] ListInfoTypesResponse
                     */
                    type ListInfoTypesCallback = (error: (Error|null), response?: google.privacy.dlp.v2.ListInfoTypesResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|createInspectTemplate}.
                     * @param error Error, if any
                     * @param [response] InspectTemplate
                     */
                    type CreateInspectTemplateCallback = (error: (Error|null), response?: google.privacy.dlp.v2.InspectTemplate) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|updateInspectTemplate}.
                     * @param error Error, if any
                     * @param [response] InspectTemplate
                     */
                    type UpdateInspectTemplateCallback = (error: (Error|null), response?: google.privacy.dlp.v2.InspectTemplate) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|getInspectTemplate}.
                     * @param error Error, if any
                     * @param [response] InspectTemplate
                     */
                    type GetInspectTemplateCallback = (error: (Error|null), response?: google.privacy.dlp.v2.InspectTemplate) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|listInspectTemplates}.
                     * @param error Error, if any
                     * @param [response] ListInspectTemplatesResponse
                     */
                    type ListInspectTemplatesCallback = (error: (Error|null), response?: google.privacy.dlp.v2.ListInspectTemplatesResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|deleteInspectTemplate}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteInspectTemplateCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|createDeidentifyTemplate}.
                     * @param error Error, if any
                     * @param [response] DeidentifyTemplate
                     */
                    type CreateDeidentifyTemplateCallback = (error: (Error|null), response?: google.privacy.dlp.v2.DeidentifyTemplate) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|updateDeidentifyTemplate}.
                     * @param error Error, if any
                     * @param [response] DeidentifyTemplate
                     */
                    type UpdateDeidentifyTemplateCallback = (error: (Error|null), response?: google.privacy.dlp.v2.DeidentifyTemplate) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|getDeidentifyTemplate}.
                     * @param error Error, if any
                     * @param [response] DeidentifyTemplate
                     */
                    type GetDeidentifyTemplateCallback = (error: (Error|null), response?: google.privacy.dlp.v2.DeidentifyTemplate) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|listDeidentifyTemplates}.
                     * @param error Error, if any
                     * @param [response] ListDeidentifyTemplatesResponse
                     */
                    type ListDeidentifyTemplatesCallback = (error: (Error|null), response?: google.privacy.dlp.v2.ListDeidentifyTemplatesResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|deleteDeidentifyTemplate}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteDeidentifyTemplateCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|createJobTrigger}.
                     * @param error Error, if any
                     * @param [response] JobTrigger
                     */
                    type CreateJobTriggerCallback = (error: (Error|null), response?: google.privacy.dlp.v2.JobTrigger) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|updateJobTrigger}.
                     * @param error Error, if any
                     * @param [response] JobTrigger
                     */
                    type UpdateJobTriggerCallback = (error: (Error|null), response?: google.privacy.dlp.v2.JobTrigger) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|hybridInspectJobTrigger}.
                     * @param error Error, if any
                     * @param [response] HybridInspectResponse
                     */
                    type HybridInspectJobTriggerCallback = (error: (Error|null), response?: google.privacy.dlp.v2.HybridInspectResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|getJobTrigger}.
                     * @param error Error, if any
                     * @param [response] JobTrigger
                     */
                    type GetJobTriggerCallback = (error: (Error|null), response?: google.privacy.dlp.v2.JobTrigger) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|listJobTriggers}.
                     * @param error Error, if any
                     * @param [response] ListJobTriggersResponse
                     */
                    type ListJobTriggersCallback = (error: (Error|null), response?: google.privacy.dlp.v2.ListJobTriggersResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|deleteJobTrigger}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteJobTriggerCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|activateJobTrigger}.
                     * @param error Error, if any
                     * @param [response] DlpJob
                     */
                    type ActivateJobTriggerCallback = (error: (Error|null), response?: google.privacy.dlp.v2.DlpJob) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|createDlpJob}.
                     * @param error Error, if any
                     * @param [response] DlpJob
                     */
                    type CreateDlpJobCallback = (error: (Error|null), response?: google.privacy.dlp.v2.DlpJob) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|listDlpJobs}.
                     * @param error Error, if any
                     * @param [response] ListDlpJobsResponse
                     */
                    type ListDlpJobsCallback = (error: (Error|null), response?: google.privacy.dlp.v2.ListDlpJobsResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|getDlpJob}.
                     * @param error Error, if any
                     * @param [response] DlpJob
                     */
                    type GetDlpJobCallback = (error: (Error|null), response?: google.privacy.dlp.v2.DlpJob) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|deleteDlpJob}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteDlpJobCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|cancelDlpJob}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type CancelDlpJobCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|createStoredInfoType}.
                     * @param error Error, if any
                     * @param [response] StoredInfoType
                     */
                    type CreateStoredInfoTypeCallback = (error: (Error|null), response?: google.privacy.dlp.v2.StoredInfoType) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|updateStoredInfoType}.
                     * @param error Error, if any
                     * @param [response] StoredInfoType
                     */
                    type UpdateStoredInfoTypeCallback = (error: (Error|null), response?: google.privacy.dlp.v2.StoredInfoType) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|getStoredInfoType}.
                     * @param error Error, if any
                     * @param [response] StoredInfoType
                     */
                    type GetStoredInfoTypeCallback = (error: (Error|null), response?: google.privacy.dlp.v2.StoredInfoType) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|listStoredInfoTypes}.
                     * @param error Error, if any
                     * @param [response] ListStoredInfoTypesResponse
                     */
                    type ListStoredInfoTypesCallback = (error: (Error|null), response?: google.privacy.dlp.v2.ListStoredInfoTypesResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|deleteStoredInfoType}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteStoredInfoTypeCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|hybridInspectDlpJob}.
                     * @param error Error, if any
                     * @param [response] HybridInspectResponse
                     */
                    type HybridInspectDlpJobCallback = (error: (Error|null), response?: google.privacy.dlp.v2.HybridInspectResponse) => void;

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|finishDlpJob}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type FinishDlpJobCallback = (error: (Error|null), response?: google.protobuf.Empty) => void;
                }

                /** Properties of an ExcludeInfoTypes. */
                interface IExcludeInfoTypes {

                    /** ExcludeInfoTypes infoTypes */
                    infoTypes?: (google.privacy.dlp.v2.IInfoType[]|null);
                }

                /** Represents an ExcludeInfoTypes. */
                class ExcludeInfoTypes implements IExcludeInfoTypes {

                    /**
                     * Constructs a new ExcludeInfoTypes.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IExcludeInfoTypes);

                    /** ExcludeInfoTypes infoTypes. */
                    public infoTypes: google.privacy.dlp.v2.IInfoType[];

                    /**
                     * Creates a new ExcludeInfoTypes instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExcludeInfoTypes instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IExcludeInfoTypes): google.privacy.dlp.v2.ExcludeInfoTypes;

                    /**
                     * Encodes the specified ExcludeInfoTypes message. Does not implicitly {@link google.privacy.dlp.v2.ExcludeInfoTypes.verify|verify} messages.
                     * @param message ExcludeInfoTypes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IExcludeInfoTypes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExcludeInfoTypes message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ExcludeInfoTypes.verify|verify} messages.
                     * @param message ExcludeInfoTypes message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IExcludeInfoTypes, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExcludeInfoTypes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExcludeInfoTypes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ExcludeInfoTypes;

                    /**
                     * Decodes an ExcludeInfoTypes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExcludeInfoTypes
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ExcludeInfoTypes;

                    /**
                     * Verifies an ExcludeInfoTypes message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an ExcludeInfoTypes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExcludeInfoTypes
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ExcludeInfoTypes;

                    /**
                     * Creates a plain object from an ExcludeInfoTypes message. Also converts values to other types if specified.
                     * @param message ExcludeInfoTypes
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ExcludeInfoTypes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExcludeInfoTypes to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExcludeInfoTypes
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExcludeByHotword. */
                interface IExcludeByHotword {

                    /** ExcludeByHotword hotwordRegex */
                    hotwordRegex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);

                    /** ExcludeByHotword proximity */
                    proximity?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.IProximity|null);
                }

                /** Represents an ExcludeByHotword. */
                class ExcludeByHotword implements IExcludeByHotword {

                    /**
                     * Constructs a new ExcludeByHotword.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IExcludeByHotword);

                    /** ExcludeByHotword hotwordRegex. */
                    public hotwordRegex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);

                    /** ExcludeByHotword proximity. */
                    public proximity?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.IProximity|null);

                    /**
                     * Creates a new ExcludeByHotword instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExcludeByHotword instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IExcludeByHotword): google.privacy.dlp.v2.ExcludeByHotword;

                    /**
                     * Encodes the specified ExcludeByHotword message. Does not implicitly {@link google.privacy.dlp.v2.ExcludeByHotword.verify|verify} messages.
                     * @param message ExcludeByHotword message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IExcludeByHotword, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExcludeByHotword message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ExcludeByHotword.verify|verify} messages.
                     * @param message ExcludeByHotword message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IExcludeByHotword, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExcludeByHotword message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExcludeByHotword
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ExcludeByHotword;

                    /**
                     * Decodes an ExcludeByHotword message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExcludeByHotword
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ExcludeByHotword;

                    /**
                     * Verifies an ExcludeByHotword message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an ExcludeByHotword message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExcludeByHotword
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ExcludeByHotword;

                    /**
                     * Creates a plain object from an ExcludeByHotword message. Also converts values to other types if specified.
                     * @param message ExcludeByHotword
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ExcludeByHotword, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExcludeByHotword to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExcludeByHotword
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ExclusionRule. */
                interface IExclusionRule {

                    /** ExclusionRule dictionary */
                    dictionary?: (google.privacy.dlp.v2.CustomInfoType.IDictionary|null);

                    /** ExclusionRule regex */
                    regex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);

                    /** ExclusionRule excludeInfoTypes */
                    excludeInfoTypes?: (google.privacy.dlp.v2.IExcludeInfoTypes|null);

                    /** ExclusionRule excludeByHotword */
                    excludeByHotword?: (google.privacy.dlp.v2.IExcludeByHotword|null);

                    /** ExclusionRule matchingType */
                    matchingType?: (google.privacy.dlp.v2.MatchingType|keyof typeof google.privacy.dlp.v2.MatchingType|null);
                }

                /** Represents an ExclusionRule. */
                class ExclusionRule implements IExclusionRule {

                    /**
                     * Constructs a new ExclusionRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IExclusionRule);

                    /** ExclusionRule dictionary. */
                    public dictionary?: (google.privacy.dlp.v2.CustomInfoType.IDictionary|null);

                    /** ExclusionRule regex. */
                    public regex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);

                    /** ExclusionRule excludeInfoTypes. */
                    public excludeInfoTypes?: (google.privacy.dlp.v2.IExcludeInfoTypes|null);

                    /** ExclusionRule excludeByHotword. */
                    public excludeByHotword?: (google.privacy.dlp.v2.IExcludeByHotword|null);

                    /** ExclusionRule matchingType. */
                    public matchingType: (google.privacy.dlp.v2.MatchingType|keyof typeof google.privacy.dlp.v2.MatchingType);

                    /** ExclusionRule type. */
                    public type?: ("dictionary"|"regex"|"excludeInfoTypes"|"excludeByHotword");

                    /**
                     * Creates a new ExclusionRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ExclusionRule instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IExclusionRule): google.privacy.dlp.v2.ExclusionRule;

                    /**
                     * Encodes the specified ExclusionRule message. Does not implicitly {@link google.privacy.dlp.v2.ExclusionRule.verify|verify} messages.
                     * @param message ExclusionRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IExclusionRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ExclusionRule message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ExclusionRule.verify|verify} messages.
                     * @param message ExclusionRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IExclusionRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ExclusionRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExclusionRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ExclusionRule;

                    /**
                     * Decodes an ExclusionRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExclusionRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ExclusionRule;

                    /**
                     * Verifies an ExclusionRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an ExclusionRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExclusionRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ExclusionRule;

                    /**
                     * Creates a plain object from an ExclusionRule message. Also converts values to other types if specified.
                     * @param message ExclusionRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ExclusionRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ExclusionRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ExclusionRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InspectionRule. */
                interface IInspectionRule {

                    /** InspectionRule hotwordRule */
                    hotwordRule?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.IHotwordRule|null);

                    /** InspectionRule exclusionRule */
                    exclusionRule?: (google.privacy.dlp.v2.IExclusionRule|null);
                }

                /** Represents an InspectionRule. */
                class InspectionRule implements IInspectionRule {

                    /**
                     * Constructs a new InspectionRule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInspectionRule);

                    /** InspectionRule hotwordRule. */
                    public hotwordRule?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.IHotwordRule|null);

                    /** InspectionRule exclusionRule. */
                    public exclusionRule?: (google.privacy.dlp.v2.IExclusionRule|null);

                    /** InspectionRule type. */
                    public type?: ("hotwordRule"|"exclusionRule");

                    /**
                     * Creates a new InspectionRule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InspectionRule instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInspectionRule): google.privacy.dlp.v2.InspectionRule;

                    /**
                     * Encodes the specified InspectionRule message. Does not implicitly {@link google.privacy.dlp.v2.InspectionRule.verify|verify} messages.
                     * @param message InspectionRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInspectionRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InspectionRule message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectionRule.verify|verify} messages.
                     * @param message InspectionRule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInspectionRule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InspectionRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InspectionRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectionRule;

                    /**
                     * Decodes an InspectionRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InspectionRule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectionRule;

                    /**
                     * Verifies an InspectionRule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InspectionRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InspectionRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectionRule;

                    /**
                     * Creates a plain object from an InspectionRule message. Also converts values to other types if specified.
                     * @param message InspectionRule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InspectionRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InspectionRule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InspectionRule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InspectionRuleSet. */
                interface IInspectionRuleSet {

                    /** InspectionRuleSet infoTypes */
                    infoTypes?: (google.privacy.dlp.v2.IInfoType[]|null);

                    /** InspectionRuleSet rules */
                    rules?: (google.privacy.dlp.v2.IInspectionRule[]|null);
                }

                /** Represents an InspectionRuleSet. */
                class InspectionRuleSet implements IInspectionRuleSet {

                    /**
                     * Constructs a new InspectionRuleSet.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInspectionRuleSet);

                    /** InspectionRuleSet infoTypes. */
                    public infoTypes: google.privacy.dlp.v2.IInfoType[];

                    /** InspectionRuleSet rules. */
                    public rules: google.privacy.dlp.v2.IInspectionRule[];

                    /**
                     * Creates a new InspectionRuleSet instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InspectionRuleSet instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInspectionRuleSet): google.privacy.dlp.v2.InspectionRuleSet;

                    /**
                     * Encodes the specified InspectionRuleSet message. Does not implicitly {@link google.privacy.dlp.v2.InspectionRuleSet.verify|verify} messages.
                     * @param message InspectionRuleSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInspectionRuleSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InspectionRuleSet message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectionRuleSet.verify|verify} messages.
                     * @param message InspectionRuleSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInspectionRuleSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InspectionRuleSet message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InspectionRuleSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectionRuleSet;

                    /**
                     * Decodes an InspectionRuleSet message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InspectionRuleSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectionRuleSet;

                    /**
                     * Verifies an InspectionRuleSet message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InspectionRuleSet message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InspectionRuleSet
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectionRuleSet;

                    /**
                     * Creates a plain object from an InspectionRuleSet message. Also converts values to other types if specified.
                     * @param message InspectionRuleSet
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InspectionRuleSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InspectionRuleSet to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InspectionRuleSet
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InspectConfig. */
                interface IInspectConfig {

                    /** InspectConfig infoTypes */
                    infoTypes?: (google.privacy.dlp.v2.IInfoType[]|null);

                    /** InspectConfig minLikelihood */
                    minLikelihood?: (google.privacy.dlp.v2.Likelihood|keyof typeof google.privacy.dlp.v2.Likelihood|null);

                    /** InspectConfig limits */
                    limits?: (google.privacy.dlp.v2.InspectConfig.IFindingLimits|null);

                    /** InspectConfig includeQuote */
                    includeQuote?: (boolean|null);

                    /** InspectConfig excludeInfoTypes */
                    excludeInfoTypes?: (boolean|null);

                    /** InspectConfig customInfoTypes */
                    customInfoTypes?: (google.privacy.dlp.v2.ICustomInfoType[]|null);

                    /** InspectConfig contentOptions */
                    contentOptions?: (google.privacy.dlp.v2.ContentOption[]|null);

                    /** InspectConfig ruleSet */
                    ruleSet?: (google.privacy.dlp.v2.IInspectionRuleSet[]|null);
                }

                /** Represents an InspectConfig. */
                class InspectConfig implements IInspectConfig {

                    /**
                     * Constructs a new InspectConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInspectConfig);

                    /** InspectConfig infoTypes. */
                    public infoTypes: google.privacy.dlp.v2.IInfoType[];

                    /** InspectConfig minLikelihood. */
                    public minLikelihood: (google.privacy.dlp.v2.Likelihood|keyof typeof google.privacy.dlp.v2.Likelihood);

                    /** InspectConfig limits. */
                    public limits?: (google.privacy.dlp.v2.InspectConfig.IFindingLimits|null);

                    /** InspectConfig includeQuote. */
                    public includeQuote: boolean;

                    /** InspectConfig excludeInfoTypes. */
                    public excludeInfoTypes: boolean;

                    /** InspectConfig customInfoTypes. */
                    public customInfoTypes: google.privacy.dlp.v2.ICustomInfoType[];

                    /** InspectConfig contentOptions. */
                    public contentOptions: google.privacy.dlp.v2.ContentOption[];

                    /** InspectConfig ruleSet. */
                    public ruleSet: google.privacy.dlp.v2.IInspectionRuleSet[];

                    /**
                     * Creates a new InspectConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InspectConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInspectConfig): google.privacy.dlp.v2.InspectConfig;

                    /**
                     * Encodes the specified InspectConfig message. Does not implicitly {@link google.privacy.dlp.v2.InspectConfig.verify|verify} messages.
                     * @param message InspectConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInspectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InspectConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectConfig.verify|verify} messages.
                     * @param message InspectConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInspectConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InspectConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InspectConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectConfig;

                    /**
                     * Decodes an InspectConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InspectConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectConfig;

                    /**
                     * Verifies an InspectConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InspectConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InspectConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectConfig;

                    /**
                     * Creates a plain object from an InspectConfig message. Also converts values to other types if specified.
                     * @param message InspectConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InspectConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InspectConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InspectConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InspectConfig {

                    /** Properties of a FindingLimits. */
                    interface IFindingLimits {

                        /** FindingLimits maxFindingsPerItem */
                        maxFindingsPerItem?: (number|null);

                        /** FindingLimits maxFindingsPerRequest */
                        maxFindingsPerRequest?: (number|null);

                        /** FindingLimits maxFindingsPerInfoType */
                        maxFindingsPerInfoType?: (google.privacy.dlp.v2.InspectConfig.FindingLimits.IInfoTypeLimit[]|null);
                    }

                    /** Represents a FindingLimits. */
                    class FindingLimits implements IFindingLimits {

                        /**
                         * Constructs a new FindingLimits.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.InspectConfig.IFindingLimits);

                        /** FindingLimits maxFindingsPerItem. */
                        public maxFindingsPerItem: number;

                        /** FindingLimits maxFindingsPerRequest. */
                        public maxFindingsPerRequest: number;

                        /** FindingLimits maxFindingsPerInfoType. */
                        public maxFindingsPerInfoType: google.privacy.dlp.v2.InspectConfig.FindingLimits.IInfoTypeLimit[];

                        /**
                         * Creates a new FindingLimits instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FindingLimits instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.InspectConfig.IFindingLimits): google.privacy.dlp.v2.InspectConfig.FindingLimits;

                        /**
                         * Encodes the specified FindingLimits message. Does not implicitly {@link google.privacy.dlp.v2.InspectConfig.FindingLimits.verify|verify} messages.
                         * @param message FindingLimits message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.InspectConfig.IFindingLimits, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FindingLimits message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectConfig.FindingLimits.verify|verify} messages.
                         * @param message FindingLimits message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.InspectConfig.IFindingLimits, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FindingLimits message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FindingLimits
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectConfig.FindingLimits;

                        /**
                         * Decodes a FindingLimits message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FindingLimits
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectConfig.FindingLimits;

                        /**
                         * Verifies a FindingLimits message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a FindingLimits message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FindingLimits
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectConfig.FindingLimits;

                        /**
                         * Creates a plain object from a FindingLimits message. Also converts values to other types if specified.
                         * @param message FindingLimits
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.InspectConfig.FindingLimits, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FindingLimits to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for FindingLimits
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace FindingLimits {

                        /** Properties of an InfoTypeLimit. */
                        interface IInfoTypeLimit {

                            /** InfoTypeLimit infoType */
                            infoType?: (google.privacy.dlp.v2.IInfoType|null);

                            /** InfoTypeLimit maxFindings */
                            maxFindings?: (number|null);
                        }

                        /** Represents an InfoTypeLimit. */
                        class InfoTypeLimit implements IInfoTypeLimit {

                            /**
                             * Constructs a new InfoTypeLimit.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.InspectConfig.FindingLimits.IInfoTypeLimit);

                            /** InfoTypeLimit infoType. */
                            public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                            /** InfoTypeLimit maxFindings. */
                            public maxFindings: number;

                            /**
                             * Creates a new InfoTypeLimit instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns InfoTypeLimit instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.InspectConfig.FindingLimits.IInfoTypeLimit): google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit;

                            /**
                             * Encodes the specified InfoTypeLimit message. Does not implicitly {@link google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit.verify|verify} messages.
                             * @param message InfoTypeLimit message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.InspectConfig.FindingLimits.IInfoTypeLimit, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified InfoTypeLimit message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit.verify|verify} messages.
                             * @param message InfoTypeLimit message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.InspectConfig.FindingLimits.IInfoTypeLimit, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an InfoTypeLimit message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns InfoTypeLimit
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit;

                            /**
                             * Decodes an InfoTypeLimit message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns InfoTypeLimit
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit;

                            /**
                             * Verifies an InfoTypeLimit message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates an InfoTypeLimit message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns InfoTypeLimit
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit;

                            /**
                             * Creates a plain object from an InfoTypeLimit message. Also converts values to other types if specified.
                             * @param message InfoTypeLimit
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this InfoTypeLimit to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for InfoTypeLimit
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }
                }

                /** Properties of a ByteContentItem. */
                interface IByteContentItem {

                    /** ByteContentItem type */
                    type?: (google.privacy.dlp.v2.ByteContentItem.BytesType|keyof typeof google.privacy.dlp.v2.ByteContentItem.BytesType|null);

                    /** ByteContentItem data */
                    data?: (Uint8Array|string|null);
                }

                /** Represents a ByteContentItem. */
                class ByteContentItem implements IByteContentItem {

                    /**
                     * Constructs a new ByteContentItem.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IByteContentItem);

                    /** ByteContentItem type. */
                    public type: (google.privacy.dlp.v2.ByteContentItem.BytesType|keyof typeof google.privacy.dlp.v2.ByteContentItem.BytesType);

                    /** ByteContentItem data. */
                    public data: (Uint8Array|string);

                    /**
                     * Creates a new ByteContentItem instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ByteContentItem instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IByteContentItem): google.privacy.dlp.v2.ByteContentItem;

                    /**
                     * Encodes the specified ByteContentItem message. Does not implicitly {@link google.privacy.dlp.v2.ByteContentItem.verify|verify} messages.
                     * @param message ByteContentItem message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IByteContentItem, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ByteContentItem message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ByteContentItem.verify|verify} messages.
                     * @param message ByteContentItem message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IByteContentItem, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ByteContentItem message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ByteContentItem
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ByteContentItem;

                    /**
                     * Decodes a ByteContentItem message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ByteContentItem
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ByteContentItem;

                    /**
                     * Verifies a ByteContentItem message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ByteContentItem message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ByteContentItem
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ByteContentItem;

                    /**
                     * Creates a plain object from a ByteContentItem message. Also converts values to other types if specified.
                     * @param message ByteContentItem
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ByteContentItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ByteContentItem to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ByteContentItem
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ByteContentItem {

                    /** BytesType enum. */
                    enum BytesType {
                        BYTES_TYPE_UNSPECIFIED = 0,
                        IMAGE = 6,
                        IMAGE_JPEG = 1,
                        IMAGE_BMP = 2,
                        IMAGE_PNG = 3,
                        IMAGE_SVG = 4,
                        TEXT_UTF8 = 5,
                        WORD_DOCUMENT = 7,
                        PDF = 8,
                        POWERPOINT_DOCUMENT = 9,
                        EXCEL_DOCUMENT = 10,
                        AVRO = 11,
                        CSV = 12,
                        TSV = 13
                    }
                }

                /** Properties of a ContentItem. */
                interface IContentItem {

                    /** ContentItem value */
                    value?: (string|null);

                    /** ContentItem table */
                    table?: (google.privacy.dlp.v2.ITable|null);

                    /** ContentItem byteItem */
                    byteItem?: (google.privacy.dlp.v2.IByteContentItem|null);
                }

                /** Represents a ContentItem. */
                class ContentItem implements IContentItem {

                    /**
                     * Constructs a new ContentItem.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IContentItem);

                    /** ContentItem value. */
                    public value?: (string|null);

                    /** ContentItem table. */
                    public table?: (google.privacy.dlp.v2.ITable|null);

                    /** ContentItem byteItem. */
                    public byteItem?: (google.privacy.dlp.v2.IByteContentItem|null);

                    /** ContentItem dataItem. */
                    public dataItem?: ("value"|"table"|"byteItem");

                    /**
                     * Creates a new ContentItem instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ContentItem instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IContentItem): google.privacy.dlp.v2.ContentItem;

                    /**
                     * Encodes the specified ContentItem message. Does not implicitly {@link google.privacy.dlp.v2.ContentItem.verify|verify} messages.
                     * @param message ContentItem message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IContentItem, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ContentItem message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ContentItem.verify|verify} messages.
                     * @param message ContentItem message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IContentItem, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ContentItem message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ContentItem
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ContentItem;

                    /**
                     * Decodes a ContentItem message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ContentItem
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ContentItem;

                    /**
                     * Verifies a ContentItem message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ContentItem message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ContentItem
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ContentItem;

                    /**
                     * Creates a plain object from a ContentItem message. Also converts values to other types if specified.
                     * @param message ContentItem
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ContentItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ContentItem to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ContentItem
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Table. */
                interface ITable {

                    /** Table headers */
                    headers?: (google.privacy.dlp.v2.IFieldId[]|null);

                    /** Table rows */
                    rows?: (google.privacy.dlp.v2.Table.IRow[]|null);
                }

                /** Represents a Table. */
                class Table implements ITable {

                    /**
                     * Constructs a new Table.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITable);

                    /** Table headers. */
                    public headers: google.privacy.dlp.v2.IFieldId[];

                    /** Table rows. */
                    public rows: google.privacy.dlp.v2.Table.IRow[];

                    /**
                     * Creates a new Table instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Table instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITable): google.privacy.dlp.v2.Table;

                    /**
                     * Encodes the specified Table message. Does not implicitly {@link google.privacy.dlp.v2.Table.verify|verify} messages.
                     * @param message Table message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Table message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Table.verify|verify} messages.
                     * @param message Table message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Table message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Table
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Table;

                    /**
                     * Decodes a Table message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Table
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Table;

                    /**
                     * Verifies a Table message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Table message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Table
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Table;

                    /**
                     * Creates a plain object from a Table message. Also converts values to other types if specified.
                     * @param message Table
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Table, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Table to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Table
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Table {

                    /** Properties of a Row. */
                    interface IRow {

                        /** Row values */
                        values?: (google.privacy.dlp.v2.IValue[]|null);
                    }

                    /** Represents a Row. */
                    class Row implements IRow {

                        /**
                         * Constructs a new Row.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.Table.IRow);

                        /** Row values. */
                        public values: google.privacy.dlp.v2.IValue[];

                        /**
                         * Creates a new Row instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Row instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.Table.IRow): google.privacy.dlp.v2.Table.Row;

                        /**
                         * Encodes the specified Row message. Does not implicitly {@link google.privacy.dlp.v2.Table.Row.verify|verify} messages.
                         * @param message Row message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.Table.IRow, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Row message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Table.Row.verify|verify} messages.
                         * @param message Row message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.Table.IRow, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Row message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Row
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Table.Row;

                        /**
                         * Decodes a Row message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Row
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Table.Row;

                        /**
                         * Verifies a Row message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Row message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Row
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Table.Row;

                        /**
                         * Creates a plain object from a Row message. Also converts values to other types if specified.
                         * @param message Row
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.Table.Row, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Row to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Row
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of an InspectResult. */
                interface IInspectResult {

                    /** InspectResult findings */
                    findings?: (google.privacy.dlp.v2.IFinding[]|null);

                    /** InspectResult findingsTruncated */
                    findingsTruncated?: (boolean|null);
                }

                /** Represents an InspectResult. */
                class InspectResult implements IInspectResult {

                    /**
                     * Constructs a new InspectResult.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInspectResult);

                    /** InspectResult findings. */
                    public findings: google.privacy.dlp.v2.IFinding[];

                    /** InspectResult findingsTruncated. */
                    public findingsTruncated: boolean;

                    /**
                     * Creates a new InspectResult instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InspectResult instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInspectResult): google.privacy.dlp.v2.InspectResult;

                    /**
                     * Encodes the specified InspectResult message. Does not implicitly {@link google.privacy.dlp.v2.InspectResult.verify|verify} messages.
                     * @param message InspectResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInspectResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InspectResult message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectResult.verify|verify} messages.
                     * @param message InspectResult message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInspectResult, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InspectResult message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InspectResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectResult;

                    /**
                     * Decodes an InspectResult message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InspectResult
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectResult;

                    /**
                     * Verifies an InspectResult message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InspectResult message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InspectResult
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectResult;

                    /**
                     * Creates a plain object from an InspectResult message. Also converts values to other types if specified.
                     * @param message InspectResult
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InspectResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InspectResult to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InspectResult
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Finding. */
                interface IFinding {

                    /** Finding name */
                    name?: (string|null);

                    /** Finding quote */
                    quote?: (string|null);

                    /** Finding infoType */
                    infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** Finding likelihood */
                    likelihood?: (google.privacy.dlp.v2.Likelihood|keyof typeof google.privacy.dlp.v2.Likelihood|null);

                    /** Finding location */
                    location?: (google.privacy.dlp.v2.ILocation|null);

                    /** Finding createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** Finding quoteInfo */
                    quoteInfo?: (google.privacy.dlp.v2.IQuoteInfo|null);

                    /** Finding resourceName */
                    resourceName?: (string|null);

                    /** Finding triggerName */
                    triggerName?: (string|null);

                    /** Finding labels */
                    labels?: ({ [k: string]: string }|null);

                    /** Finding jobCreateTime */
                    jobCreateTime?: (google.protobuf.ITimestamp|null);

                    /** Finding jobName */
                    jobName?: (string|null);

                    /** Finding findingId */
                    findingId?: (string|null);
                }

                /** Represents a Finding. */
                class Finding implements IFinding {

                    /**
                     * Constructs a new Finding.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IFinding);

                    /** Finding name. */
                    public name: string;

                    /** Finding quote. */
                    public quote: string;

                    /** Finding infoType. */
                    public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** Finding likelihood. */
                    public likelihood: (google.privacy.dlp.v2.Likelihood|keyof typeof google.privacy.dlp.v2.Likelihood);

                    /** Finding location. */
                    public location?: (google.privacy.dlp.v2.ILocation|null);

                    /** Finding createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** Finding quoteInfo. */
                    public quoteInfo?: (google.privacy.dlp.v2.IQuoteInfo|null);

                    /** Finding resourceName. */
                    public resourceName: string;

                    /** Finding triggerName. */
                    public triggerName: string;

                    /** Finding labels. */
                    public labels: { [k: string]: string };

                    /** Finding jobCreateTime. */
                    public jobCreateTime?: (google.protobuf.ITimestamp|null);

                    /** Finding jobName. */
                    public jobName: string;

                    /** Finding findingId. */
                    public findingId: string;

                    /**
                     * Creates a new Finding instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Finding instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFinding): google.privacy.dlp.v2.Finding;

                    /**
                     * Encodes the specified Finding message. Does not implicitly {@link google.privacy.dlp.v2.Finding.verify|verify} messages.
                     * @param message Finding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Finding message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Finding.verify|verify} messages.
                     * @param message Finding message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFinding, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Finding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Finding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Finding;

                    /**
                     * Decodes a Finding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Finding
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Finding;

                    /**
                     * Verifies a Finding message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Finding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Finding
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Finding;

                    /**
                     * Creates a plain object from a Finding message. Also converts values to other types if specified.
                     * @param message Finding
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Finding, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Finding to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Finding
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Location. */
                interface ILocation {

                    /** Location byteRange */
                    byteRange?: (google.privacy.dlp.v2.IRange|null);

                    /** Location codepointRange */
                    codepointRange?: (google.privacy.dlp.v2.IRange|null);

                    /** Location contentLocations */
                    contentLocations?: (google.privacy.dlp.v2.IContentLocation[]|null);

                    /** Location container */
                    container?: (google.privacy.dlp.v2.IContainer|null);
                }

                /** Represents a Location. */
                class Location implements ILocation {

                    /**
                     * Constructs a new Location.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ILocation);

                    /** Location byteRange. */
                    public byteRange?: (google.privacy.dlp.v2.IRange|null);

                    /** Location codepointRange. */
                    public codepointRange?: (google.privacy.dlp.v2.IRange|null);

                    /** Location contentLocations. */
                    public contentLocations: google.privacy.dlp.v2.IContentLocation[];

                    /** Location container. */
                    public container?: (google.privacy.dlp.v2.IContainer|null);

                    /**
                     * Creates a new Location instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Location instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ILocation): google.privacy.dlp.v2.Location;

                    /**
                     * Encodes the specified Location message. Does not implicitly {@link google.privacy.dlp.v2.Location.verify|verify} messages.
                     * @param message Location message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Location message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Location.verify|verify} messages.
                     * @param message Location message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Location message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Location
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Location;

                    /**
                     * Decodes a Location message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Location
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Location;

                    /**
                     * Verifies a Location message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Location message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Location
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Location;

                    /**
                     * Creates a plain object from a Location message. Also converts values to other types if specified.
                     * @param message Location
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Location, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Location to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Location
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ContentLocation. */
                interface IContentLocation {

                    /** ContentLocation containerName */
                    containerName?: (string|null);

                    /** ContentLocation recordLocation */
                    recordLocation?: (google.privacy.dlp.v2.IRecordLocation|null);

                    /** ContentLocation imageLocation */
                    imageLocation?: (google.privacy.dlp.v2.IImageLocation|null);

                    /** ContentLocation documentLocation */
                    documentLocation?: (google.privacy.dlp.v2.IDocumentLocation|null);

                    /** ContentLocation metadataLocation */
                    metadataLocation?: (google.privacy.dlp.v2.IMetadataLocation|null);

                    /** ContentLocation containerTimestamp */
                    containerTimestamp?: (google.protobuf.ITimestamp|null);

                    /** ContentLocation containerVersion */
                    containerVersion?: (string|null);
                }

                /** Represents a ContentLocation. */
                class ContentLocation implements IContentLocation {

                    /**
                     * Constructs a new ContentLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IContentLocation);

                    /** ContentLocation containerName. */
                    public containerName: string;

                    /** ContentLocation recordLocation. */
                    public recordLocation?: (google.privacy.dlp.v2.IRecordLocation|null);

                    /** ContentLocation imageLocation. */
                    public imageLocation?: (google.privacy.dlp.v2.IImageLocation|null);

                    /** ContentLocation documentLocation. */
                    public documentLocation?: (google.privacy.dlp.v2.IDocumentLocation|null);

                    /** ContentLocation metadataLocation. */
                    public metadataLocation?: (google.privacy.dlp.v2.IMetadataLocation|null);

                    /** ContentLocation containerTimestamp. */
                    public containerTimestamp?: (google.protobuf.ITimestamp|null);

                    /** ContentLocation containerVersion. */
                    public containerVersion: string;

                    /** ContentLocation location. */
                    public location?: ("recordLocation"|"imageLocation"|"documentLocation"|"metadataLocation");

                    /**
                     * Creates a new ContentLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ContentLocation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IContentLocation): google.privacy.dlp.v2.ContentLocation;

                    /**
                     * Encodes the specified ContentLocation message. Does not implicitly {@link google.privacy.dlp.v2.ContentLocation.verify|verify} messages.
                     * @param message ContentLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IContentLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ContentLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ContentLocation.verify|verify} messages.
                     * @param message ContentLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IContentLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ContentLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ContentLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ContentLocation;

                    /**
                     * Decodes a ContentLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ContentLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ContentLocation;

                    /**
                     * Verifies a ContentLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ContentLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ContentLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ContentLocation;

                    /**
                     * Creates a plain object from a ContentLocation message. Also converts values to other types if specified.
                     * @param message ContentLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ContentLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ContentLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ContentLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a MetadataLocation. */
                interface IMetadataLocation {

                    /** MetadataLocation type */
                    type?: (google.privacy.dlp.v2.MetadataType|keyof typeof google.privacy.dlp.v2.MetadataType|null);

                    /** MetadataLocation storageLabel */
                    storageLabel?: (google.privacy.dlp.v2.IStorageMetadataLabel|null);
                }

                /** Represents a MetadataLocation. */
                class MetadataLocation implements IMetadataLocation {

                    /**
                     * Constructs a new MetadataLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IMetadataLocation);

                    /** MetadataLocation type. */
                    public type: (google.privacy.dlp.v2.MetadataType|keyof typeof google.privacy.dlp.v2.MetadataType);

                    /** MetadataLocation storageLabel. */
                    public storageLabel?: (google.privacy.dlp.v2.IStorageMetadataLabel|null);

                    /** MetadataLocation label. */
                    public label?: "storageLabel";

                    /**
                     * Creates a new MetadataLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns MetadataLocation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IMetadataLocation): google.privacy.dlp.v2.MetadataLocation;

                    /**
                     * Encodes the specified MetadataLocation message. Does not implicitly {@link google.privacy.dlp.v2.MetadataLocation.verify|verify} messages.
                     * @param message MetadataLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IMetadataLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified MetadataLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.MetadataLocation.verify|verify} messages.
                     * @param message MetadataLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IMetadataLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a MetadataLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns MetadataLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.MetadataLocation;

                    /**
                     * Decodes a MetadataLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns MetadataLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.MetadataLocation;

                    /**
                     * Verifies a MetadataLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a MetadataLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns MetadataLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.MetadataLocation;

                    /**
                     * Creates a plain object from a MetadataLocation message. Also converts values to other types if specified.
                     * @param message MetadataLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.MetadataLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this MetadataLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for MetadataLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StorageMetadataLabel. */
                interface IStorageMetadataLabel {

                    /** StorageMetadataLabel key */
                    key?: (string|null);
                }

                /** Represents a StorageMetadataLabel. */
                class StorageMetadataLabel implements IStorageMetadataLabel {

                    /**
                     * Constructs a new StorageMetadataLabel.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IStorageMetadataLabel);

                    /** StorageMetadataLabel key. */
                    public key: string;

                    /**
                     * Creates a new StorageMetadataLabel instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StorageMetadataLabel instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IStorageMetadataLabel): google.privacy.dlp.v2.StorageMetadataLabel;

                    /**
                     * Encodes the specified StorageMetadataLabel message. Does not implicitly {@link google.privacy.dlp.v2.StorageMetadataLabel.verify|verify} messages.
                     * @param message StorageMetadataLabel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IStorageMetadataLabel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StorageMetadataLabel message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StorageMetadataLabel.verify|verify} messages.
                     * @param message StorageMetadataLabel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IStorageMetadataLabel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StorageMetadataLabel message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StorageMetadataLabel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StorageMetadataLabel;

                    /**
                     * Decodes a StorageMetadataLabel message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StorageMetadataLabel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StorageMetadataLabel;

                    /**
                     * Verifies a StorageMetadataLabel message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StorageMetadataLabel message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StorageMetadataLabel
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StorageMetadataLabel;

                    /**
                     * Creates a plain object from a StorageMetadataLabel message. Also converts values to other types if specified.
                     * @param message StorageMetadataLabel
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.StorageMetadataLabel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StorageMetadataLabel to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StorageMetadataLabel
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DocumentLocation. */
                interface IDocumentLocation {

                    /** DocumentLocation fileOffset */
                    fileOffset?: (number|Long|string|null);
                }

                /** Represents a DocumentLocation. */
                class DocumentLocation implements IDocumentLocation {

                    /**
                     * Constructs a new DocumentLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDocumentLocation);

                    /** DocumentLocation fileOffset. */
                    public fileOffset: (number|Long|string);

                    /**
                     * Creates a new DocumentLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DocumentLocation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDocumentLocation): google.privacy.dlp.v2.DocumentLocation;

                    /**
                     * Encodes the specified DocumentLocation message. Does not implicitly {@link google.privacy.dlp.v2.DocumentLocation.verify|verify} messages.
                     * @param message DocumentLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDocumentLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DocumentLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DocumentLocation.verify|verify} messages.
                     * @param message DocumentLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDocumentLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DocumentLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DocumentLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DocumentLocation;

                    /**
                     * Decodes a DocumentLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DocumentLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DocumentLocation;

                    /**
                     * Verifies a DocumentLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DocumentLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DocumentLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DocumentLocation;

                    /**
                     * Creates a plain object from a DocumentLocation message. Also converts values to other types if specified.
                     * @param message DocumentLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DocumentLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DocumentLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DocumentLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RecordLocation. */
                interface IRecordLocation {

                    /** RecordLocation recordKey */
                    recordKey?: (google.privacy.dlp.v2.IRecordKey|null);

                    /** RecordLocation fieldId */
                    fieldId?: (google.privacy.dlp.v2.IFieldId|null);

                    /** RecordLocation tableLocation */
                    tableLocation?: (google.privacy.dlp.v2.ITableLocation|null);
                }

                /** Represents a RecordLocation. */
                class RecordLocation implements IRecordLocation {

                    /**
                     * Constructs a new RecordLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRecordLocation);

                    /** RecordLocation recordKey. */
                    public recordKey?: (google.privacy.dlp.v2.IRecordKey|null);

                    /** RecordLocation fieldId. */
                    public fieldId?: (google.privacy.dlp.v2.IFieldId|null);

                    /** RecordLocation tableLocation. */
                    public tableLocation?: (google.privacy.dlp.v2.ITableLocation|null);

                    /**
                     * Creates a new RecordLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecordLocation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRecordLocation): google.privacy.dlp.v2.RecordLocation;

                    /**
                     * Encodes the specified RecordLocation message. Does not implicitly {@link google.privacy.dlp.v2.RecordLocation.verify|verify} messages.
                     * @param message RecordLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRecordLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecordLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RecordLocation.verify|verify} messages.
                     * @param message RecordLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRecordLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecordLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecordLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RecordLocation;

                    /**
                     * Decodes a RecordLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecordLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RecordLocation;

                    /**
                     * Verifies a RecordLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecordLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecordLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RecordLocation;

                    /**
                     * Creates a plain object from a RecordLocation message. Also converts values to other types if specified.
                     * @param message RecordLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RecordLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecordLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecordLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TableLocation. */
                interface ITableLocation {

                    /** TableLocation rowIndex */
                    rowIndex?: (number|Long|string|null);
                }

                /** Represents a TableLocation. */
                class TableLocation implements ITableLocation {

                    /**
                     * Constructs a new TableLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITableLocation);

                    /** TableLocation rowIndex. */
                    public rowIndex: (number|Long|string);

                    /**
                     * Creates a new TableLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TableLocation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITableLocation): google.privacy.dlp.v2.TableLocation;

                    /**
                     * Encodes the specified TableLocation message. Does not implicitly {@link google.privacy.dlp.v2.TableLocation.verify|verify} messages.
                     * @param message TableLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITableLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TableLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TableLocation.verify|verify} messages.
                     * @param message TableLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITableLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TableLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TableLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TableLocation;

                    /**
                     * Decodes a TableLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TableLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TableLocation;

                    /**
                     * Verifies a TableLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TableLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TableLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TableLocation;

                    /**
                     * Creates a plain object from a TableLocation message. Also converts values to other types if specified.
                     * @param message TableLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TableLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TableLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TableLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Container. */
                interface IContainer {

                    /** Container type */
                    type?: (string|null);

                    /** Container projectId */
                    projectId?: (string|null);

                    /** Container fullPath */
                    fullPath?: (string|null);

                    /** Container rootPath */
                    rootPath?: (string|null);

                    /** Container relativePath */
                    relativePath?: (string|null);

                    /** Container updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** Container version */
                    version?: (string|null);
                }

                /** Represents a Container. */
                class Container implements IContainer {

                    /**
                     * Constructs a new Container.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IContainer);

                    /** Container type. */
                    public type: string;

                    /** Container projectId. */
                    public projectId: string;

                    /** Container fullPath. */
                    public fullPath: string;

                    /** Container rootPath. */
                    public rootPath: string;

                    /** Container relativePath. */
                    public relativePath: string;

                    /** Container updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** Container version. */
                    public version: string;

                    /**
                     * Creates a new Container instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Container instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IContainer): google.privacy.dlp.v2.Container;

                    /**
                     * Encodes the specified Container message. Does not implicitly {@link google.privacy.dlp.v2.Container.verify|verify} messages.
                     * @param message Container message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IContainer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Container message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Container.verify|verify} messages.
                     * @param message Container message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IContainer, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Container message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Container
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Container;

                    /**
                     * Decodes a Container message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Container
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Container;

                    /**
                     * Verifies a Container message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Container message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Container
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Container;

                    /**
                     * Creates a plain object from a Container message. Also converts values to other types if specified.
                     * @param message Container
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Container, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Container to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Container
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Range. */
                interface IRange {

                    /** Range start */
                    start?: (number|Long|string|null);

                    /** Range end */
                    end?: (number|Long|string|null);
                }

                /** Represents a Range. */
                class Range implements IRange {

                    /**
                     * Constructs a new Range.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRange);

                    /** Range start. */
                    public start: (number|Long|string);

                    /** Range end. */
                    public end: (number|Long|string);

                    /**
                     * Creates a new Range instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Range instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRange): google.privacy.dlp.v2.Range;

                    /**
                     * Encodes the specified Range message. Does not implicitly {@link google.privacy.dlp.v2.Range.verify|verify} messages.
                     * @param message Range message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Range message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Range.verify|verify} messages.
                     * @param message Range message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRange, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Range message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Range
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Range;

                    /**
                     * Decodes a Range message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Range
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Range;

                    /**
                     * Verifies a Range message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Range message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Range
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Range;

                    /**
                     * Creates a plain object from a Range message. Also converts values to other types if specified.
                     * @param message Range
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Range, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Range to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Range
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImageLocation. */
                interface IImageLocation {

                    /** ImageLocation boundingBoxes */
                    boundingBoxes?: (google.privacy.dlp.v2.IBoundingBox[]|null);
                }

                /** Represents an ImageLocation. */
                class ImageLocation implements IImageLocation {

                    /**
                     * Constructs a new ImageLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IImageLocation);

                    /** ImageLocation boundingBoxes. */
                    public boundingBoxes: google.privacy.dlp.v2.IBoundingBox[];

                    /**
                     * Creates a new ImageLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImageLocation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IImageLocation): google.privacy.dlp.v2.ImageLocation;

                    /**
                     * Encodes the specified ImageLocation message. Does not implicitly {@link google.privacy.dlp.v2.ImageLocation.verify|verify} messages.
                     * @param message ImageLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IImageLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImageLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ImageLocation.verify|verify} messages.
                     * @param message ImageLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IImageLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImageLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImageLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ImageLocation;

                    /**
                     * Decodes an ImageLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImageLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ImageLocation;

                    /**
                     * Verifies an ImageLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an ImageLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImageLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ImageLocation;

                    /**
                     * Creates a plain object from an ImageLocation message. Also converts values to other types if specified.
                     * @param message ImageLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ImageLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImageLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImageLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BoundingBox. */
                interface IBoundingBox {

                    /** BoundingBox top */
                    top?: (number|null);

                    /** BoundingBox left */
                    left?: (number|null);

                    /** BoundingBox width */
                    width?: (number|null);

                    /** BoundingBox height */
                    height?: (number|null);
                }

                /** Represents a BoundingBox. */
                class BoundingBox implements IBoundingBox {

                    /**
                     * Constructs a new BoundingBox.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IBoundingBox);

                    /** BoundingBox top. */
                    public top: number;

                    /** BoundingBox left. */
                    public left: number;

                    /** BoundingBox width. */
                    public width: number;

                    /** BoundingBox height. */
                    public height: number;

                    /**
                     * Creates a new BoundingBox instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BoundingBox instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IBoundingBox): google.privacy.dlp.v2.BoundingBox;

                    /**
                     * Encodes the specified BoundingBox message. Does not implicitly {@link google.privacy.dlp.v2.BoundingBox.verify|verify} messages.
                     * @param message BoundingBox message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IBoundingBox, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BoundingBox message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.BoundingBox.verify|verify} messages.
                     * @param message BoundingBox message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IBoundingBox, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BoundingBox message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BoundingBox
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.BoundingBox;

                    /**
                     * Decodes a BoundingBox message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BoundingBox
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.BoundingBox;

                    /**
                     * Verifies a BoundingBox message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BoundingBox message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BoundingBox
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BoundingBox;

                    /**
                     * Creates a plain object from a BoundingBox message. Also converts values to other types if specified.
                     * @param message BoundingBox
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.BoundingBox, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BoundingBox to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BoundingBox
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RedactImageRequest. */
                interface IRedactImageRequest {

                    /** RedactImageRequest parent */
                    parent?: (string|null);

                    /** RedactImageRequest locationId */
                    locationId?: (string|null);

                    /** RedactImageRequest inspectConfig */
                    inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** RedactImageRequest imageRedactionConfigs */
                    imageRedactionConfigs?: (google.privacy.dlp.v2.RedactImageRequest.IImageRedactionConfig[]|null);

                    /** RedactImageRequest includeFindings */
                    includeFindings?: (boolean|null);

                    /** RedactImageRequest byteItem */
                    byteItem?: (google.privacy.dlp.v2.IByteContentItem|null);
                }

                /** Represents a RedactImageRequest. */
                class RedactImageRequest implements IRedactImageRequest {

                    /**
                     * Constructs a new RedactImageRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRedactImageRequest);

                    /** RedactImageRequest parent. */
                    public parent: string;

                    /** RedactImageRequest locationId. */
                    public locationId: string;

                    /** RedactImageRequest inspectConfig. */
                    public inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** RedactImageRequest imageRedactionConfigs. */
                    public imageRedactionConfigs: google.privacy.dlp.v2.RedactImageRequest.IImageRedactionConfig[];

                    /** RedactImageRequest includeFindings. */
                    public includeFindings: boolean;

                    /** RedactImageRequest byteItem. */
                    public byteItem?: (google.privacy.dlp.v2.IByteContentItem|null);

                    /**
                     * Creates a new RedactImageRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RedactImageRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRedactImageRequest): google.privacy.dlp.v2.RedactImageRequest;

                    /**
                     * Encodes the specified RedactImageRequest message. Does not implicitly {@link google.privacy.dlp.v2.RedactImageRequest.verify|verify} messages.
                     * @param message RedactImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRedactImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RedactImageRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RedactImageRequest.verify|verify} messages.
                     * @param message RedactImageRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRedactImageRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RedactImageRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RedactImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RedactImageRequest;

                    /**
                     * Decodes a RedactImageRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RedactImageRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RedactImageRequest;

                    /**
                     * Verifies a RedactImageRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RedactImageRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RedactImageRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RedactImageRequest;

                    /**
                     * Creates a plain object from a RedactImageRequest message. Also converts values to other types if specified.
                     * @param message RedactImageRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RedactImageRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RedactImageRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RedactImageRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RedactImageRequest {

                    /** Properties of an ImageRedactionConfig. */
                    interface IImageRedactionConfig {

                        /** ImageRedactionConfig infoType */
                        infoType?: (google.privacy.dlp.v2.IInfoType|null);

                        /** ImageRedactionConfig redactAllText */
                        redactAllText?: (boolean|null);

                        /** ImageRedactionConfig redactionColor */
                        redactionColor?: (google.privacy.dlp.v2.IColor|null);
                    }

                    /** Represents an ImageRedactionConfig. */
                    class ImageRedactionConfig implements IImageRedactionConfig {

                        /**
                         * Constructs a new ImageRedactionConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.RedactImageRequest.IImageRedactionConfig);

                        /** ImageRedactionConfig infoType. */
                        public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                        /** ImageRedactionConfig redactAllText. */
                        public redactAllText?: (boolean|null);

                        /** ImageRedactionConfig redactionColor. */
                        public redactionColor?: (google.privacy.dlp.v2.IColor|null);

                        /** ImageRedactionConfig target. */
                        public target?: ("infoType"|"redactAllText");

                        /**
                         * Creates a new ImageRedactionConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ImageRedactionConfig instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.RedactImageRequest.IImageRedactionConfig): google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig;

                        /**
                         * Encodes the specified ImageRedactionConfig message. Does not implicitly {@link google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig.verify|verify} messages.
                         * @param message ImageRedactionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.RedactImageRequest.IImageRedactionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ImageRedactionConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig.verify|verify} messages.
                         * @param message ImageRedactionConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.RedactImageRequest.IImageRedactionConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ImageRedactionConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ImageRedactionConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig;

                        /**
                         * Decodes an ImageRedactionConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ImageRedactionConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig;

                        /**
                         * Verifies an ImageRedactionConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an ImageRedactionConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ImageRedactionConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig;

                        /**
                         * Creates a plain object from an ImageRedactionConfig message. Also converts values to other types if specified.
                         * @param message ImageRedactionConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ImageRedactionConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ImageRedactionConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a Color. */
                interface IColor {

                    /** Color red */
                    red?: (number|null);

                    /** Color green */
                    green?: (number|null);

                    /** Color blue */
                    blue?: (number|null);
                }

                /** Represents a Color. */
                class Color implements IColor {

                    /**
                     * Constructs a new Color.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IColor);

                    /** Color red. */
                    public red: number;

                    /** Color green. */
                    public green: number;

                    /** Color blue. */
                    public blue: number;

                    /**
                     * Creates a new Color instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Color instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IColor): google.privacy.dlp.v2.Color;

                    /**
                     * Encodes the specified Color message. Does not implicitly {@link google.privacy.dlp.v2.Color.verify|verify} messages.
                     * @param message Color message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IColor, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Color message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Color.verify|verify} messages.
                     * @param message Color message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IColor, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Color message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Color
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Color;

                    /**
                     * Decodes a Color message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Color
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Color;

                    /**
                     * Verifies a Color message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Color message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Color
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Color;

                    /**
                     * Creates a plain object from a Color message. Also converts values to other types if specified.
                     * @param message Color
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Color, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Color to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Color
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RedactImageResponse. */
                interface IRedactImageResponse {

                    /** RedactImageResponse redactedImage */
                    redactedImage?: (Uint8Array|string|null);

                    /** RedactImageResponse extractedText */
                    extractedText?: (string|null);

                    /** RedactImageResponse inspectResult */
                    inspectResult?: (google.privacy.dlp.v2.IInspectResult|null);
                }

                /** Represents a RedactImageResponse. */
                class RedactImageResponse implements IRedactImageResponse {

                    /**
                     * Constructs a new RedactImageResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRedactImageResponse);

                    /** RedactImageResponse redactedImage. */
                    public redactedImage: (Uint8Array|string);

                    /** RedactImageResponse extractedText. */
                    public extractedText: string;

                    /** RedactImageResponse inspectResult. */
                    public inspectResult?: (google.privacy.dlp.v2.IInspectResult|null);

                    /**
                     * Creates a new RedactImageResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RedactImageResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRedactImageResponse): google.privacy.dlp.v2.RedactImageResponse;

                    /**
                     * Encodes the specified RedactImageResponse message. Does not implicitly {@link google.privacy.dlp.v2.RedactImageResponse.verify|verify} messages.
                     * @param message RedactImageResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRedactImageResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RedactImageResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RedactImageResponse.verify|verify} messages.
                     * @param message RedactImageResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRedactImageResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RedactImageResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RedactImageResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RedactImageResponse;

                    /**
                     * Decodes a RedactImageResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RedactImageResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RedactImageResponse;

                    /**
                     * Verifies a RedactImageResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RedactImageResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RedactImageResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RedactImageResponse;

                    /**
                     * Creates a plain object from a RedactImageResponse message. Also converts values to other types if specified.
                     * @param message RedactImageResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RedactImageResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RedactImageResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RedactImageResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeidentifyContentRequest. */
                interface IDeidentifyContentRequest {

                    /** DeidentifyContentRequest parent */
                    parent?: (string|null);

                    /** DeidentifyContentRequest deidentifyConfig */
                    deidentifyConfig?: (google.privacy.dlp.v2.IDeidentifyConfig|null);

                    /** DeidentifyContentRequest inspectConfig */
                    inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** DeidentifyContentRequest item */
                    item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** DeidentifyContentRequest inspectTemplateName */
                    inspectTemplateName?: (string|null);

                    /** DeidentifyContentRequest deidentifyTemplateName */
                    deidentifyTemplateName?: (string|null);

                    /** DeidentifyContentRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a DeidentifyContentRequest. */
                class DeidentifyContentRequest implements IDeidentifyContentRequest {

                    /**
                     * Constructs a new DeidentifyContentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeidentifyContentRequest);

                    /** DeidentifyContentRequest parent. */
                    public parent: string;

                    /** DeidentifyContentRequest deidentifyConfig. */
                    public deidentifyConfig?: (google.privacy.dlp.v2.IDeidentifyConfig|null);

                    /** DeidentifyContentRequest inspectConfig. */
                    public inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** DeidentifyContentRequest item. */
                    public item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** DeidentifyContentRequest inspectTemplateName. */
                    public inspectTemplateName: string;

                    /** DeidentifyContentRequest deidentifyTemplateName. */
                    public deidentifyTemplateName: string;

                    /** DeidentifyContentRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new DeidentifyContentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeidentifyContentRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeidentifyContentRequest): google.privacy.dlp.v2.DeidentifyContentRequest;

                    /**
                     * Encodes the specified DeidentifyContentRequest message. Does not implicitly {@link google.privacy.dlp.v2.DeidentifyContentRequest.verify|verify} messages.
                     * @param message DeidentifyContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeidentifyContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeidentifyContentRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeidentifyContentRequest.verify|verify} messages.
                     * @param message DeidentifyContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeidentifyContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeidentifyContentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeidentifyContentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DeidentifyContentRequest;

                    /**
                     * Decodes a DeidentifyContentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeidentifyContentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DeidentifyContentRequest;

                    /**
                     * Verifies a DeidentifyContentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeidentifyContentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeidentifyContentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeidentifyContentRequest;

                    /**
                     * Creates a plain object from a DeidentifyContentRequest message. Also converts values to other types if specified.
                     * @param message DeidentifyContentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeidentifyContentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeidentifyContentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeidentifyContentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeidentifyContentResponse. */
                interface IDeidentifyContentResponse {

                    /** DeidentifyContentResponse item */
                    item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** DeidentifyContentResponse overview */
                    overview?: (google.privacy.dlp.v2.ITransformationOverview|null);
                }

                /** Represents a DeidentifyContentResponse. */
                class DeidentifyContentResponse implements IDeidentifyContentResponse {

                    /**
                     * Constructs a new DeidentifyContentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeidentifyContentResponse);

                    /** DeidentifyContentResponse item. */
                    public item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** DeidentifyContentResponse overview. */
                    public overview?: (google.privacy.dlp.v2.ITransformationOverview|null);

                    /**
                     * Creates a new DeidentifyContentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeidentifyContentResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeidentifyContentResponse): google.privacy.dlp.v2.DeidentifyContentResponse;

                    /**
                     * Encodes the specified DeidentifyContentResponse message. Does not implicitly {@link google.privacy.dlp.v2.DeidentifyContentResponse.verify|verify} messages.
                     * @param message DeidentifyContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeidentifyContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeidentifyContentResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeidentifyContentResponse.verify|verify} messages.
                     * @param message DeidentifyContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeidentifyContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeidentifyContentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeidentifyContentResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DeidentifyContentResponse;

                    /**
                     * Decodes a DeidentifyContentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeidentifyContentResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DeidentifyContentResponse;

                    /**
                     * Verifies a DeidentifyContentResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeidentifyContentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeidentifyContentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeidentifyContentResponse;

                    /**
                     * Creates a plain object from a DeidentifyContentResponse message. Also converts values to other types if specified.
                     * @param message DeidentifyContentResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeidentifyContentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeidentifyContentResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeidentifyContentResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReidentifyContentRequest. */
                interface IReidentifyContentRequest {

                    /** ReidentifyContentRequest parent */
                    parent?: (string|null);

                    /** ReidentifyContentRequest reidentifyConfig */
                    reidentifyConfig?: (google.privacy.dlp.v2.IDeidentifyConfig|null);

                    /** ReidentifyContentRequest inspectConfig */
                    inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** ReidentifyContentRequest item */
                    item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** ReidentifyContentRequest inspectTemplateName */
                    inspectTemplateName?: (string|null);

                    /** ReidentifyContentRequest reidentifyTemplateName */
                    reidentifyTemplateName?: (string|null);

                    /** ReidentifyContentRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a ReidentifyContentRequest. */
                class ReidentifyContentRequest implements IReidentifyContentRequest {

                    /**
                     * Constructs a new ReidentifyContentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IReidentifyContentRequest);

                    /** ReidentifyContentRequest parent. */
                    public parent: string;

                    /** ReidentifyContentRequest reidentifyConfig. */
                    public reidentifyConfig?: (google.privacy.dlp.v2.IDeidentifyConfig|null);

                    /** ReidentifyContentRequest inspectConfig. */
                    public inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** ReidentifyContentRequest item. */
                    public item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** ReidentifyContentRequest inspectTemplateName. */
                    public inspectTemplateName: string;

                    /** ReidentifyContentRequest reidentifyTemplateName. */
                    public reidentifyTemplateName: string;

                    /** ReidentifyContentRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new ReidentifyContentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReidentifyContentRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IReidentifyContentRequest): google.privacy.dlp.v2.ReidentifyContentRequest;

                    /**
                     * Encodes the specified ReidentifyContentRequest message. Does not implicitly {@link google.privacy.dlp.v2.ReidentifyContentRequest.verify|verify} messages.
                     * @param message ReidentifyContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IReidentifyContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReidentifyContentRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ReidentifyContentRequest.verify|verify} messages.
                     * @param message ReidentifyContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IReidentifyContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReidentifyContentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReidentifyContentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ReidentifyContentRequest;

                    /**
                     * Decodes a ReidentifyContentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReidentifyContentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ReidentifyContentRequest;

                    /**
                     * Verifies a ReidentifyContentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReidentifyContentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReidentifyContentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ReidentifyContentRequest;

                    /**
                     * Creates a plain object from a ReidentifyContentRequest message. Also converts values to other types if specified.
                     * @param message ReidentifyContentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ReidentifyContentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReidentifyContentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReidentifyContentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReidentifyContentResponse. */
                interface IReidentifyContentResponse {

                    /** ReidentifyContentResponse item */
                    item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** ReidentifyContentResponse overview */
                    overview?: (google.privacy.dlp.v2.ITransformationOverview|null);
                }

                /** Represents a ReidentifyContentResponse. */
                class ReidentifyContentResponse implements IReidentifyContentResponse {

                    /**
                     * Constructs a new ReidentifyContentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IReidentifyContentResponse);

                    /** ReidentifyContentResponse item. */
                    public item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** ReidentifyContentResponse overview. */
                    public overview?: (google.privacy.dlp.v2.ITransformationOverview|null);

                    /**
                     * Creates a new ReidentifyContentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReidentifyContentResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IReidentifyContentResponse): google.privacy.dlp.v2.ReidentifyContentResponse;

                    /**
                     * Encodes the specified ReidentifyContentResponse message. Does not implicitly {@link google.privacy.dlp.v2.ReidentifyContentResponse.verify|verify} messages.
                     * @param message ReidentifyContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IReidentifyContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReidentifyContentResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ReidentifyContentResponse.verify|verify} messages.
                     * @param message ReidentifyContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IReidentifyContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReidentifyContentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReidentifyContentResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ReidentifyContentResponse;

                    /**
                     * Decodes a ReidentifyContentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReidentifyContentResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ReidentifyContentResponse;

                    /**
                     * Verifies a ReidentifyContentResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReidentifyContentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReidentifyContentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ReidentifyContentResponse;

                    /**
                     * Creates a plain object from a ReidentifyContentResponse message. Also converts values to other types if specified.
                     * @param message ReidentifyContentResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ReidentifyContentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReidentifyContentResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReidentifyContentResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InspectContentRequest. */
                interface IInspectContentRequest {

                    /** InspectContentRequest parent */
                    parent?: (string|null);

                    /** InspectContentRequest inspectConfig */
                    inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** InspectContentRequest item */
                    item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** InspectContentRequest inspectTemplateName */
                    inspectTemplateName?: (string|null);

                    /** InspectContentRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents an InspectContentRequest. */
                class InspectContentRequest implements IInspectContentRequest {

                    /**
                     * Constructs a new InspectContentRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInspectContentRequest);

                    /** InspectContentRequest parent. */
                    public parent: string;

                    /** InspectContentRequest inspectConfig. */
                    public inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** InspectContentRequest item. */
                    public item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** InspectContentRequest inspectTemplateName. */
                    public inspectTemplateName: string;

                    /** InspectContentRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new InspectContentRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InspectContentRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInspectContentRequest): google.privacy.dlp.v2.InspectContentRequest;

                    /**
                     * Encodes the specified InspectContentRequest message. Does not implicitly {@link google.privacy.dlp.v2.InspectContentRequest.verify|verify} messages.
                     * @param message InspectContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInspectContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InspectContentRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectContentRequest.verify|verify} messages.
                     * @param message InspectContentRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInspectContentRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InspectContentRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InspectContentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectContentRequest;

                    /**
                     * Decodes an InspectContentRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InspectContentRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectContentRequest;

                    /**
                     * Verifies an InspectContentRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InspectContentRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InspectContentRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectContentRequest;

                    /**
                     * Creates a plain object from an InspectContentRequest message. Also converts values to other types if specified.
                     * @param message InspectContentRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InspectContentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InspectContentRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InspectContentRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InspectContentResponse. */
                interface IInspectContentResponse {

                    /** InspectContentResponse result */
                    result?: (google.privacy.dlp.v2.IInspectResult|null);
                }

                /** Represents an InspectContentResponse. */
                class InspectContentResponse implements IInspectContentResponse {

                    /**
                     * Constructs a new InspectContentResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInspectContentResponse);

                    /** InspectContentResponse result. */
                    public result?: (google.privacy.dlp.v2.IInspectResult|null);

                    /**
                     * Creates a new InspectContentResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InspectContentResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInspectContentResponse): google.privacy.dlp.v2.InspectContentResponse;

                    /**
                     * Encodes the specified InspectContentResponse message. Does not implicitly {@link google.privacy.dlp.v2.InspectContentResponse.verify|verify} messages.
                     * @param message InspectContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInspectContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InspectContentResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectContentResponse.verify|verify} messages.
                     * @param message InspectContentResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInspectContentResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InspectContentResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InspectContentResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectContentResponse;

                    /**
                     * Decodes an InspectContentResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InspectContentResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectContentResponse;

                    /**
                     * Verifies an InspectContentResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InspectContentResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InspectContentResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectContentResponse;

                    /**
                     * Creates a plain object from an InspectContentResponse message. Also converts values to other types if specified.
                     * @param message InspectContentResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InspectContentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InspectContentResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InspectContentResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OutputStorageConfig. */
                interface IOutputStorageConfig {

                    /** OutputStorageConfig table */
                    table?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** OutputStorageConfig outputSchema */
                    outputSchema?: (google.privacy.dlp.v2.OutputStorageConfig.OutputSchema|keyof typeof google.privacy.dlp.v2.OutputStorageConfig.OutputSchema|null);
                }

                /** Represents an OutputStorageConfig. */
                class OutputStorageConfig implements IOutputStorageConfig {

                    /**
                     * Constructs a new OutputStorageConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IOutputStorageConfig);

                    /** OutputStorageConfig table. */
                    public table?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** OutputStorageConfig outputSchema. */
                    public outputSchema: (google.privacy.dlp.v2.OutputStorageConfig.OutputSchema|keyof typeof google.privacy.dlp.v2.OutputStorageConfig.OutputSchema);

                    /** OutputStorageConfig type. */
                    public type?: "table";

                    /**
                     * Creates a new OutputStorageConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OutputStorageConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IOutputStorageConfig): google.privacy.dlp.v2.OutputStorageConfig;

                    /**
                     * Encodes the specified OutputStorageConfig message. Does not implicitly {@link google.privacy.dlp.v2.OutputStorageConfig.verify|verify} messages.
                     * @param message OutputStorageConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IOutputStorageConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OutputStorageConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.OutputStorageConfig.verify|verify} messages.
                     * @param message OutputStorageConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IOutputStorageConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OutputStorageConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OutputStorageConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.OutputStorageConfig;

                    /**
                     * Decodes an OutputStorageConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OutputStorageConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.OutputStorageConfig;

                    /**
                     * Verifies an OutputStorageConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OutputStorageConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OutputStorageConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.OutputStorageConfig;

                    /**
                     * Creates a plain object from an OutputStorageConfig message. Also converts values to other types if specified.
                     * @param message OutputStorageConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.OutputStorageConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OutputStorageConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OutputStorageConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace OutputStorageConfig {

                    /** OutputSchema enum. */
                    enum OutputSchema {
                        OUTPUT_SCHEMA_UNSPECIFIED = 0,
                        BASIC_COLUMNS = 1,
                        GCS_COLUMNS = 2,
                        DATASTORE_COLUMNS = 3,
                        BIG_QUERY_COLUMNS = 4,
                        ALL_COLUMNS = 5
                    }
                }

                /** Properties of an InfoTypeStats. */
                interface IInfoTypeStats {

                    /** InfoTypeStats infoType */
                    infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** InfoTypeStats count */
                    count?: (number|Long|string|null);
                }

                /** Represents an InfoTypeStats. */
                class InfoTypeStats implements IInfoTypeStats {

                    /**
                     * Constructs a new InfoTypeStats.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInfoTypeStats);

                    /** InfoTypeStats infoType. */
                    public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** InfoTypeStats count. */
                    public count: (number|Long|string);

                    /**
                     * Creates a new InfoTypeStats instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InfoTypeStats instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInfoTypeStats): google.privacy.dlp.v2.InfoTypeStats;

                    /**
                     * Encodes the specified InfoTypeStats message. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeStats.verify|verify} messages.
                     * @param message InfoTypeStats message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInfoTypeStats, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InfoTypeStats message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeStats.verify|verify} messages.
                     * @param message InfoTypeStats message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInfoTypeStats, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InfoTypeStats message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InfoTypeStats
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InfoTypeStats;

                    /**
                     * Decodes an InfoTypeStats message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InfoTypeStats
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InfoTypeStats;

                    /**
                     * Verifies an InfoTypeStats message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InfoTypeStats message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InfoTypeStats
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InfoTypeStats;

                    /**
                     * Creates a plain object from an InfoTypeStats message. Also converts values to other types if specified.
                     * @param message InfoTypeStats
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InfoTypeStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InfoTypeStats to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InfoTypeStats
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InspectDataSourceDetails. */
                interface IInspectDataSourceDetails {

                    /** InspectDataSourceDetails requestedOptions */
                    requestedOptions?: (google.privacy.dlp.v2.InspectDataSourceDetails.IRequestedOptions|null);

                    /** InspectDataSourceDetails result */
                    result?: (google.privacy.dlp.v2.InspectDataSourceDetails.IResult|null);
                }

                /** Represents an InspectDataSourceDetails. */
                class InspectDataSourceDetails implements IInspectDataSourceDetails {

                    /**
                     * Constructs a new InspectDataSourceDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInspectDataSourceDetails);

                    /** InspectDataSourceDetails requestedOptions. */
                    public requestedOptions?: (google.privacy.dlp.v2.InspectDataSourceDetails.IRequestedOptions|null);

                    /** InspectDataSourceDetails result. */
                    public result?: (google.privacy.dlp.v2.InspectDataSourceDetails.IResult|null);

                    /**
                     * Creates a new InspectDataSourceDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InspectDataSourceDetails instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInspectDataSourceDetails): google.privacy.dlp.v2.InspectDataSourceDetails;

                    /**
                     * Encodes the specified InspectDataSourceDetails message. Does not implicitly {@link google.privacy.dlp.v2.InspectDataSourceDetails.verify|verify} messages.
                     * @param message InspectDataSourceDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInspectDataSourceDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InspectDataSourceDetails message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectDataSourceDetails.verify|verify} messages.
                     * @param message InspectDataSourceDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInspectDataSourceDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InspectDataSourceDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InspectDataSourceDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectDataSourceDetails;

                    /**
                     * Decodes an InspectDataSourceDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InspectDataSourceDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectDataSourceDetails;

                    /**
                     * Verifies an InspectDataSourceDetails message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InspectDataSourceDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InspectDataSourceDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectDataSourceDetails;

                    /**
                     * Creates a plain object from an InspectDataSourceDetails message. Also converts values to other types if specified.
                     * @param message InspectDataSourceDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InspectDataSourceDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InspectDataSourceDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InspectDataSourceDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InspectDataSourceDetails {

                    /** Properties of a RequestedOptions. */
                    interface IRequestedOptions {

                        /** RequestedOptions snapshotInspectTemplate */
                        snapshotInspectTemplate?: (google.privacy.dlp.v2.IInspectTemplate|null);

                        /** RequestedOptions jobConfig */
                        jobConfig?: (google.privacy.dlp.v2.IInspectJobConfig|null);
                    }

                    /** Represents a RequestedOptions. */
                    class RequestedOptions implements IRequestedOptions {

                        /**
                         * Constructs a new RequestedOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.InspectDataSourceDetails.IRequestedOptions);

                        /** RequestedOptions snapshotInspectTemplate. */
                        public snapshotInspectTemplate?: (google.privacy.dlp.v2.IInspectTemplate|null);

                        /** RequestedOptions jobConfig. */
                        public jobConfig?: (google.privacy.dlp.v2.IInspectJobConfig|null);

                        /**
                         * Creates a new RequestedOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RequestedOptions instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.InspectDataSourceDetails.IRequestedOptions): google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions;

                        /**
                         * Encodes the specified RequestedOptions message. Does not implicitly {@link google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions.verify|verify} messages.
                         * @param message RequestedOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.InspectDataSourceDetails.IRequestedOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RequestedOptions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions.verify|verify} messages.
                         * @param message RequestedOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.InspectDataSourceDetails.IRequestedOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a RequestedOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RequestedOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions;

                        /**
                         * Decodes a RequestedOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RequestedOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions;

                        /**
                         * Verifies a RequestedOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a RequestedOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RequestedOptions
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions;

                        /**
                         * Creates a plain object from a RequestedOptions message. Also converts values to other types if specified.
                         * @param message RequestedOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this RequestedOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for RequestedOptions
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Result. */
                    interface IResult {

                        /** Result processedBytes */
                        processedBytes?: (number|Long|string|null);

                        /** Result totalEstimatedBytes */
                        totalEstimatedBytes?: (number|Long|string|null);

                        /** Result infoTypeStats */
                        infoTypeStats?: (google.privacy.dlp.v2.IInfoTypeStats[]|null);

                        /** Result hybridStats */
                        hybridStats?: (google.privacy.dlp.v2.IHybridInspectStatistics|null);
                    }

                    /** Represents a Result. */
                    class Result implements IResult {

                        /**
                         * Constructs a new Result.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.InspectDataSourceDetails.IResult);

                        /** Result processedBytes. */
                        public processedBytes: (number|Long|string);

                        /** Result totalEstimatedBytes. */
                        public totalEstimatedBytes: (number|Long|string);

                        /** Result infoTypeStats. */
                        public infoTypeStats: google.privacy.dlp.v2.IInfoTypeStats[];

                        /** Result hybridStats. */
                        public hybridStats?: (google.privacy.dlp.v2.IHybridInspectStatistics|null);

                        /**
                         * Creates a new Result instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Result instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.InspectDataSourceDetails.IResult): google.privacy.dlp.v2.InspectDataSourceDetails.Result;

                        /**
                         * Encodes the specified Result message. Does not implicitly {@link google.privacy.dlp.v2.InspectDataSourceDetails.Result.verify|verify} messages.
                         * @param message Result message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.InspectDataSourceDetails.IResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Result message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectDataSourceDetails.Result.verify|verify} messages.
                         * @param message Result message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.InspectDataSourceDetails.IResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Result message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Result
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectDataSourceDetails.Result;

                        /**
                         * Decodes a Result message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Result
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectDataSourceDetails.Result;

                        /**
                         * Verifies a Result message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Result message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Result
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectDataSourceDetails.Result;

                        /**
                         * Creates a plain object from a Result message. Also converts values to other types if specified.
                         * @param message Result
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.InspectDataSourceDetails.Result, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Result to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Result
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a HybridInspectStatistics. */
                interface IHybridInspectStatistics {

                    /** HybridInspectStatistics processedCount */
                    processedCount?: (number|Long|string|null);

                    /** HybridInspectStatistics abortedCount */
                    abortedCount?: (number|Long|string|null);

                    /** HybridInspectStatistics pendingCount */
                    pendingCount?: (number|Long|string|null);
                }

                /** Represents a HybridInspectStatistics. */
                class HybridInspectStatistics implements IHybridInspectStatistics {

                    /**
                     * Constructs a new HybridInspectStatistics.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IHybridInspectStatistics);

                    /** HybridInspectStatistics processedCount. */
                    public processedCount: (number|Long|string);

                    /** HybridInspectStatistics abortedCount. */
                    public abortedCount: (number|Long|string);

                    /** HybridInspectStatistics pendingCount. */
                    public pendingCount: (number|Long|string);

                    /**
                     * Creates a new HybridInspectStatistics instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HybridInspectStatistics instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IHybridInspectStatistics): google.privacy.dlp.v2.HybridInspectStatistics;

                    /**
                     * Encodes the specified HybridInspectStatistics message. Does not implicitly {@link google.privacy.dlp.v2.HybridInspectStatistics.verify|verify} messages.
                     * @param message HybridInspectStatistics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IHybridInspectStatistics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HybridInspectStatistics message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.HybridInspectStatistics.verify|verify} messages.
                     * @param message HybridInspectStatistics message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IHybridInspectStatistics, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HybridInspectStatistics message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HybridInspectStatistics
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.HybridInspectStatistics;

                    /**
                     * Decodes a HybridInspectStatistics message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HybridInspectStatistics
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.HybridInspectStatistics;

                    /**
                     * Verifies a HybridInspectStatistics message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HybridInspectStatistics message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HybridInspectStatistics
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.HybridInspectStatistics;

                    /**
                     * Creates a plain object from a HybridInspectStatistics message. Also converts values to other types if specified.
                     * @param message HybridInspectStatistics
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.HybridInspectStatistics, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HybridInspectStatistics to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HybridInspectStatistics
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InfoTypeDescription. */
                interface IInfoTypeDescription {

                    /** InfoTypeDescription name */
                    name?: (string|null);

                    /** InfoTypeDescription displayName */
                    displayName?: (string|null);

                    /** InfoTypeDescription supportedBy */
                    supportedBy?: (google.privacy.dlp.v2.InfoTypeSupportedBy[]|null);

                    /** InfoTypeDescription description */
                    description?: (string|null);

                    /** InfoTypeDescription versions */
                    versions?: (google.privacy.dlp.v2.IVersionDescription[]|null);

                    /** InfoTypeDescription categories */
                    categories?: (google.privacy.dlp.v2.IInfoTypeCategory[]|null);
                }

                /** Represents an InfoTypeDescription. */
                class InfoTypeDescription implements IInfoTypeDescription {

                    /**
                     * Constructs a new InfoTypeDescription.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInfoTypeDescription);

                    /** InfoTypeDescription name. */
                    public name: string;

                    /** InfoTypeDescription displayName. */
                    public displayName: string;

                    /** InfoTypeDescription supportedBy. */
                    public supportedBy: google.privacy.dlp.v2.InfoTypeSupportedBy[];

                    /** InfoTypeDescription description. */
                    public description: string;

                    /** InfoTypeDescription versions. */
                    public versions: google.privacy.dlp.v2.IVersionDescription[];

                    /** InfoTypeDescription categories. */
                    public categories: google.privacy.dlp.v2.IInfoTypeCategory[];

                    /**
                     * Creates a new InfoTypeDescription instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InfoTypeDescription instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInfoTypeDescription): google.privacy.dlp.v2.InfoTypeDescription;

                    /**
                     * Encodes the specified InfoTypeDescription message. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeDescription.verify|verify} messages.
                     * @param message InfoTypeDescription message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInfoTypeDescription, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InfoTypeDescription message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeDescription.verify|verify} messages.
                     * @param message InfoTypeDescription message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInfoTypeDescription, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InfoTypeDescription message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InfoTypeDescription
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InfoTypeDescription;

                    /**
                     * Decodes an InfoTypeDescription message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InfoTypeDescription
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InfoTypeDescription;

                    /**
                     * Verifies an InfoTypeDescription message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InfoTypeDescription message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InfoTypeDescription
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InfoTypeDescription;

                    /**
                     * Creates a plain object from an InfoTypeDescription message. Also converts values to other types if specified.
                     * @param message InfoTypeDescription
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InfoTypeDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InfoTypeDescription to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InfoTypeDescription
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InfoTypeCategory. */
                interface IInfoTypeCategory {

                    /** InfoTypeCategory locationCategory */
                    locationCategory?: (google.privacy.dlp.v2.InfoTypeCategory.LocationCategory|keyof typeof google.privacy.dlp.v2.InfoTypeCategory.LocationCategory|null);

                    /** InfoTypeCategory industryCategory */
                    industryCategory?: (google.privacy.dlp.v2.InfoTypeCategory.IndustryCategory|keyof typeof google.privacy.dlp.v2.InfoTypeCategory.IndustryCategory|null);

                    /** InfoTypeCategory typeCategory */
                    typeCategory?: (google.privacy.dlp.v2.InfoTypeCategory.TypeCategory|keyof typeof google.privacy.dlp.v2.InfoTypeCategory.TypeCategory|null);
                }

                /** Represents an InfoTypeCategory. */
                class InfoTypeCategory implements IInfoTypeCategory {

                    /**
                     * Constructs a new InfoTypeCategory.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInfoTypeCategory);

                    /** InfoTypeCategory locationCategory. */
                    public locationCategory?: (google.privacy.dlp.v2.InfoTypeCategory.LocationCategory|keyof typeof google.privacy.dlp.v2.InfoTypeCategory.LocationCategory|null);

                    /** InfoTypeCategory industryCategory. */
                    public industryCategory?: (google.privacy.dlp.v2.InfoTypeCategory.IndustryCategory|keyof typeof google.privacy.dlp.v2.InfoTypeCategory.IndustryCategory|null);

                    /** InfoTypeCategory typeCategory. */
                    public typeCategory?: (google.privacy.dlp.v2.InfoTypeCategory.TypeCategory|keyof typeof google.privacy.dlp.v2.InfoTypeCategory.TypeCategory|null);

                    /** InfoTypeCategory category. */
                    public category?: ("locationCategory"|"industryCategory"|"typeCategory");

                    /**
                     * Creates a new InfoTypeCategory instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InfoTypeCategory instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInfoTypeCategory): google.privacy.dlp.v2.InfoTypeCategory;

                    /**
                     * Encodes the specified InfoTypeCategory message. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeCategory.verify|verify} messages.
                     * @param message InfoTypeCategory message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInfoTypeCategory, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InfoTypeCategory message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeCategory.verify|verify} messages.
                     * @param message InfoTypeCategory message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInfoTypeCategory, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InfoTypeCategory message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InfoTypeCategory
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InfoTypeCategory;

                    /**
                     * Decodes an InfoTypeCategory message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InfoTypeCategory
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InfoTypeCategory;

                    /**
                     * Verifies an InfoTypeCategory message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InfoTypeCategory message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InfoTypeCategory
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InfoTypeCategory;

                    /**
                     * Creates a plain object from an InfoTypeCategory message. Also converts values to other types if specified.
                     * @param message InfoTypeCategory
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InfoTypeCategory, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InfoTypeCategory to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InfoTypeCategory
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InfoTypeCategory {

                    /** LocationCategory enum. */
                    enum LocationCategory {
                        LOCATION_UNSPECIFIED = 0,
                        GLOBAL = 1,
                        ARGENTINA = 2,
                        AUSTRALIA = 3,
                        BELGIUM = 4,
                        BRAZIL = 5,
                        CANADA = 6,
                        CHILE = 7,
                        CHINA = 8,
                        COLOMBIA = 9,
                        DENMARK = 10,
                        FRANCE = 11,
                        FINLAND = 12,
                        GERMANY = 13,
                        HONG_KONG = 14,
                        INDIA = 15,
                        INDONESIA = 16,
                        IRELAND = 17,
                        ISRAEL = 18,
                        ITALY = 19,
                        JAPAN = 20,
                        KOREA = 21,
                        MEXICO = 22,
                        THE_NETHERLANDS = 23,
                        NORWAY = 24,
                        PARAGUAY = 25,
                        PERU = 26,
                        POLAND = 27,
                        PORTUGAL = 28,
                        SINGAPORE = 29,
                        SOUTH_AFRICA = 30,
                        SPAIN = 31,
                        SWEDEN = 32,
                        TAIWAN = 33,
                        THAILAND = 34,
                        TURKEY = 35,
                        UNITED_KINGDOM = 36,
                        UNITED_STATES = 37,
                        URUGUAY = 38,
                        VENEZUELA = 39,
                        INTERNAL = 40,
                        NEW_ZEALAND = 41
                    }

                    /** IndustryCategory enum. */
                    enum IndustryCategory {
                        INDUSTRY_UNSPECIFIED = 0,
                        FINANCE = 1,
                        HEALTH = 2,
                        TELECOMMUNICATIONS = 3
                    }

                    /** TypeCategory enum. */
                    enum TypeCategory {
                        TYPE_UNSPECIFIED = 0,
                        PII = 1,
                        SPII = 2,
                        DEMOGRAPHIC = 3,
                        CREDENTIAL = 4,
                        GOVERNMENT_ID = 5,
                        DOCUMENT = 6,
                        CONTEXTUAL_INFORMATION = 7
                    }
                }

                /** Properties of a VersionDescription. */
                interface IVersionDescription {

                    /** VersionDescription version */
                    version?: (string|null);

                    /** VersionDescription description */
                    description?: (string|null);
                }

                /** Represents a VersionDescription. */
                class VersionDescription implements IVersionDescription {

                    /**
                     * Constructs a new VersionDescription.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IVersionDescription);

                    /** VersionDescription version. */
                    public version: string;

                    /** VersionDescription description. */
                    public description: string;

                    /**
                     * Creates a new VersionDescription instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns VersionDescription instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IVersionDescription): google.privacy.dlp.v2.VersionDescription;

                    /**
                     * Encodes the specified VersionDescription message. Does not implicitly {@link google.privacy.dlp.v2.VersionDescription.verify|verify} messages.
                     * @param message VersionDescription message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IVersionDescription, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified VersionDescription message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.VersionDescription.verify|verify} messages.
                     * @param message VersionDescription message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IVersionDescription, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a VersionDescription message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VersionDescription
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.VersionDescription;

                    /**
                     * Decodes a VersionDescription message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VersionDescription
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.VersionDescription;

                    /**
                     * Verifies a VersionDescription message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a VersionDescription message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VersionDescription
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.VersionDescription;

                    /**
                     * Creates a plain object from a VersionDescription message. Also converts values to other types if specified.
                     * @param message VersionDescription
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.VersionDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this VersionDescription to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for VersionDescription
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInfoTypesRequest. */
                interface IListInfoTypesRequest {

                    /** ListInfoTypesRequest parent */
                    parent?: (string|null);

                    /** ListInfoTypesRequest languageCode */
                    languageCode?: (string|null);

                    /** ListInfoTypesRequest filter */
                    filter?: (string|null);

                    /** ListInfoTypesRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a ListInfoTypesRequest. */
                class ListInfoTypesRequest implements IListInfoTypesRequest {

                    /**
                     * Constructs a new ListInfoTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListInfoTypesRequest);

                    /** ListInfoTypesRequest parent. */
                    public parent: string;

                    /** ListInfoTypesRequest languageCode. */
                    public languageCode: string;

                    /** ListInfoTypesRequest filter. */
                    public filter: string;

                    /** ListInfoTypesRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new ListInfoTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInfoTypesRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListInfoTypesRequest): google.privacy.dlp.v2.ListInfoTypesRequest;

                    /**
                     * Encodes the specified ListInfoTypesRequest message. Does not implicitly {@link google.privacy.dlp.v2.ListInfoTypesRequest.verify|verify} messages.
                     * @param message ListInfoTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListInfoTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInfoTypesRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListInfoTypesRequest.verify|verify} messages.
                     * @param message ListInfoTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListInfoTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInfoTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInfoTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListInfoTypesRequest;

                    /**
                     * Decodes a ListInfoTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInfoTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListInfoTypesRequest;

                    /**
                     * Verifies a ListInfoTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInfoTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInfoTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListInfoTypesRequest;

                    /**
                     * Creates a plain object from a ListInfoTypesRequest message. Also converts values to other types if specified.
                     * @param message ListInfoTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListInfoTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInfoTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInfoTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInfoTypesResponse. */
                interface IListInfoTypesResponse {

                    /** ListInfoTypesResponse infoTypes */
                    infoTypes?: (google.privacy.dlp.v2.IInfoTypeDescription[]|null);
                }

                /** Represents a ListInfoTypesResponse. */
                class ListInfoTypesResponse implements IListInfoTypesResponse {

                    /**
                     * Constructs a new ListInfoTypesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListInfoTypesResponse);

                    /** ListInfoTypesResponse infoTypes. */
                    public infoTypes: google.privacy.dlp.v2.IInfoTypeDescription[];

                    /**
                     * Creates a new ListInfoTypesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInfoTypesResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListInfoTypesResponse): google.privacy.dlp.v2.ListInfoTypesResponse;

                    /**
                     * Encodes the specified ListInfoTypesResponse message. Does not implicitly {@link google.privacy.dlp.v2.ListInfoTypesResponse.verify|verify} messages.
                     * @param message ListInfoTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListInfoTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInfoTypesResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListInfoTypesResponse.verify|verify} messages.
                     * @param message ListInfoTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListInfoTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInfoTypesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInfoTypesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListInfoTypesResponse;

                    /**
                     * Decodes a ListInfoTypesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInfoTypesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListInfoTypesResponse;

                    /**
                     * Verifies a ListInfoTypesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInfoTypesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInfoTypesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListInfoTypesResponse;

                    /**
                     * Creates a plain object from a ListInfoTypesResponse message. Also converts values to other types if specified.
                     * @param message ListInfoTypesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListInfoTypesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInfoTypesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInfoTypesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RiskAnalysisJobConfig. */
                interface IRiskAnalysisJobConfig {

                    /** RiskAnalysisJobConfig privacyMetric */
                    privacyMetric?: (google.privacy.dlp.v2.IPrivacyMetric|null);

                    /** RiskAnalysisJobConfig sourceTable */
                    sourceTable?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** RiskAnalysisJobConfig actions */
                    actions?: (google.privacy.dlp.v2.IAction[]|null);
                }

                /** Represents a RiskAnalysisJobConfig. */
                class RiskAnalysisJobConfig implements IRiskAnalysisJobConfig {

                    /**
                     * Constructs a new RiskAnalysisJobConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRiskAnalysisJobConfig);

                    /** RiskAnalysisJobConfig privacyMetric. */
                    public privacyMetric?: (google.privacy.dlp.v2.IPrivacyMetric|null);

                    /** RiskAnalysisJobConfig sourceTable. */
                    public sourceTable?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** RiskAnalysisJobConfig actions. */
                    public actions: google.privacy.dlp.v2.IAction[];

                    /**
                     * Creates a new RiskAnalysisJobConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RiskAnalysisJobConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRiskAnalysisJobConfig): google.privacy.dlp.v2.RiskAnalysisJobConfig;

                    /**
                     * Encodes the specified RiskAnalysisJobConfig message. Does not implicitly {@link google.privacy.dlp.v2.RiskAnalysisJobConfig.verify|verify} messages.
                     * @param message RiskAnalysisJobConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRiskAnalysisJobConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RiskAnalysisJobConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RiskAnalysisJobConfig.verify|verify} messages.
                     * @param message RiskAnalysisJobConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRiskAnalysisJobConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RiskAnalysisJobConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RiskAnalysisJobConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RiskAnalysisJobConfig;

                    /**
                     * Decodes a RiskAnalysisJobConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RiskAnalysisJobConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RiskAnalysisJobConfig;

                    /**
                     * Verifies a RiskAnalysisJobConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RiskAnalysisJobConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RiskAnalysisJobConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RiskAnalysisJobConfig;

                    /**
                     * Creates a plain object from a RiskAnalysisJobConfig message. Also converts values to other types if specified.
                     * @param message RiskAnalysisJobConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RiskAnalysisJobConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RiskAnalysisJobConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RiskAnalysisJobConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a QuasiId. */
                interface IQuasiId {

                    /** QuasiId field */
                    field?: (google.privacy.dlp.v2.IFieldId|null);

                    /** QuasiId infoType */
                    infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** QuasiId customTag */
                    customTag?: (string|null);

                    /** QuasiId inferred */
                    inferred?: (google.protobuf.IEmpty|null);
                }

                /** Represents a QuasiId. */
                class QuasiId implements IQuasiId {

                    /**
                     * Constructs a new QuasiId.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IQuasiId);

                    /** QuasiId field. */
                    public field?: (google.privacy.dlp.v2.IFieldId|null);

                    /** QuasiId infoType. */
                    public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** QuasiId customTag. */
                    public customTag?: (string|null);

                    /** QuasiId inferred. */
                    public inferred?: (google.protobuf.IEmpty|null);

                    /** QuasiId tag. */
                    public tag?: ("infoType"|"customTag"|"inferred");

                    /**
                     * Creates a new QuasiId instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QuasiId instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IQuasiId): google.privacy.dlp.v2.QuasiId;

                    /**
                     * Encodes the specified QuasiId message. Does not implicitly {@link google.privacy.dlp.v2.QuasiId.verify|verify} messages.
                     * @param message QuasiId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IQuasiId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QuasiId message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.QuasiId.verify|verify} messages.
                     * @param message QuasiId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IQuasiId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QuasiId message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QuasiId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.QuasiId;

                    /**
                     * Decodes a QuasiId message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QuasiId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.QuasiId;

                    /**
                     * Verifies a QuasiId message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a QuasiId message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QuasiId
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.QuasiId;

                    /**
                     * Creates a plain object from a QuasiId message. Also converts values to other types if specified.
                     * @param message QuasiId
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.QuasiId, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QuasiId to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QuasiId
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StatisticalTable. */
                interface IStatisticalTable {

                    /** StatisticalTable table */
                    table?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** StatisticalTable quasiIds */
                    quasiIds?: (google.privacy.dlp.v2.StatisticalTable.IQuasiIdentifierField[]|null);

                    /** StatisticalTable relativeFrequency */
                    relativeFrequency?: (google.privacy.dlp.v2.IFieldId|null);
                }

                /** Represents a StatisticalTable. */
                class StatisticalTable implements IStatisticalTable {

                    /**
                     * Constructs a new StatisticalTable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IStatisticalTable);

                    /** StatisticalTable table. */
                    public table?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** StatisticalTable quasiIds. */
                    public quasiIds: google.privacy.dlp.v2.StatisticalTable.IQuasiIdentifierField[];

                    /** StatisticalTable relativeFrequency. */
                    public relativeFrequency?: (google.privacy.dlp.v2.IFieldId|null);

                    /**
                     * Creates a new StatisticalTable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StatisticalTable instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IStatisticalTable): google.privacy.dlp.v2.StatisticalTable;

                    /**
                     * Encodes the specified StatisticalTable message. Does not implicitly {@link google.privacy.dlp.v2.StatisticalTable.verify|verify} messages.
                     * @param message StatisticalTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IStatisticalTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StatisticalTable message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StatisticalTable.verify|verify} messages.
                     * @param message StatisticalTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IStatisticalTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StatisticalTable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StatisticalTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StatisticalTable;

                    /**
                     * Decodes a StatisticalTable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StatisticalTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StatisticalTable;

                    /**
                     * Verifies a StatisticalTable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StatisticalTable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StatisticalTable
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StatisticalTable;

                    /**
                     * Creates a plain object from a StatisticalTable message. Also converts values to other types if specified.
                     * @param message StatisticalTable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.StatisticalTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StatisticalTable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StatisticalTable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StatisticalTable {

                    /** Properties of a QuasiIdentifierField. */
                    interface IQuasiIdentifierField {

                        /** QuasiIdentifierField field */
                        field?: (google.privacy.dlp.v2.IFieldId|null);

                        /** QuasiIdentifierField customTag */
                        customTag?: (string|null);
                    }

                    /** Represents a QuasiIdentifierField. */
                    class QuasiIdentifierField implements IQuasiIdentifierField {

                        /**
                         * Constructs a new QuasiIdentifierField.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.StatisticalTable.IQuasiIdentifierField);

                        /** QuasiIdentifierField field. */
                        public field?: (google.privacy.dlp.v2.IFieldId|null);

                        /** QuasiIdentifierField customTag. */
                        public customTag: string;

                        /**
                         * Creates a new QuasiIdentifierField instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns QuasiIdentifierField instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.StatisticalTable.IQuasiIdentifierField): google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField;

                        /**
                         * Encodes the specified QuasiIdentifierField message. Does not implicitly {@link google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField.verify|verify} messages.
                         * @param message QuasiIdentifierField message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.StatisticalTable.IQuasiIdentifierField, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified QuasiIdentifierField message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField.verify|verify} messages.
                         * @param message QuasiIdentifierField message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.StatisticalTable.IQuasiIdentifierField, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a QuasiIdentifierField message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns QuasiIdentifierField
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField;

                        /**
                         * Decodes a QuasiIdentifierField message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns QuasiIdentifierField
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField;

                        /**
                         * Verifies a QuasiIdentifierField message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a QuasiIdentifierField message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns QuasiIdentifierField
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField;

                        /**
                         * Creates a plain object from a QuasiIdentifierField message. Also converts values to other types if specified.
                         * @param message QuasiIdentifierField
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this QuasiIdentifierField to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for QuasiIdentifierField
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a PrivacyMetric. */
                interface IPrivacyMetric {

                    /** PrivacyMetric numericalStatsConfig */
                    numericalStatsConfig?: (google.privacy.dlp.v2.PrivacyMetric.INumericalStatsConfig|null);

                    /** PrivacyMetric categoricalStatsConfig */
                    categoricalStatsConfig?: (google.privacy.dlp.v2.PrivacyMetric.ICategoricalStatsConfig|null);

                    /** PrivacyMetric kAnonymityConfig */
                    kAnonymityConfig?: (google.privacy.dlp.v2.PrivacyMetric.IKAnonymityConfig|null);

                    /** PrivacyMetric lDiversityConfig */
                    lDiversityConfig?: (google.privacy.dlp.v2.PrivacyMetric.ILDiversityConfig|null);

                    /** PrivacyMetric kMapEstimationConfig */
                    kMapEstimationConfig?: (google.privacy.dlp.v2.PrivacyMetric.IKMapEstimationConfig|null);

                    /** PrivacyMetric deltaPresenceEstimationConfig */
                    deltaPresenceEstimationConfig?: (google.privacy.dlp.v2.PrivacyMetric.IDeltaPresenceEstimationConfig|null);
                }

                /** Represents a PrivacyMetric. */
                class PrivacyMetric implements IPrivacyMetric {

                    /**
                     * Constructs a new PrivacyMetric.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IPrivacyMetric);

                    /** PrivacyMetric numericalStatsConfig. */
                    public numericalStatsConfig?: (google.privacy.dlp.v2.PrivacyMetric.INumericalStatsConfig|null);

                    /** PrivacyMetric categoricalStatsConfig. */
                    public categoricalStatsConfig?: (google.privacy.dlp.v2.PrivacyMetric.ICategoricalStatsConfig|null);

                    /** PrivacyMetric kAnonymityConfig. */
                    public kAnonymityConfig?: (google.privacy.dlp.v2.PrivacyMetric.IKAnonymityConfig|null);

                    /** PrivacyMetric lDiversityConfig. */
                    public lDiversityConfig?: (google.privacy.dlp.v2.PrivacyMetric.ILDiversityConfig|null);

                    /** PrivacyMetric kMapEstimationConfig. */
                    public kMapEstimationConfig?: (google.privacy.dlp.v2.PrivacyMetric.IKMapEstimationConfig|null);

                    /** PrivacyMetric deltaPresenceEstimationConfig. */
                    public deltaPresenceEstimationConfig?: (google.privacy.dlp.v2.PrivacyMetric.IDeltaPresenceEstimationConfig|null);

                    /** PrivacyMetric type. */
                    public type?: ("numericalStatsConfig"|"categoricalStatsConfig"|"kAnonymityConfig"|"lDiversityConfig"|"kMapEstimationConfig"|"deltaPresenceEstimationConfig");

                    /**
                     * Creates a new PrivacyMetric instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PrivacyMetric instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IPrivacyMetric): google.privacy.dlp.v2.PrivacyMetric;

                    /**
                     * Encodes the specified PrivacyMetric message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.verify|verify} messages.
                     * @param message PrivacyMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IPrivacyMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PrivacyMetric message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.verify|verify} messages.
                     * @param message PrivacyMetric message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IPrivacyMetric, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PrivacyMetric message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PrivacyMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric;

                    /**
                     * Decodes a PrivacyMetric message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PrivacyMetric
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric;

                    /**
                     * Verifies a PrivacyMetric message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PrivacyMetric message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PrivacyMetric
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric;

                    /**
                     * Creates a plain object from a PrivacyMetric message. Also converts values to other types if specified.
                     * @param message PrivacyMetric
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.PrivacyMetric, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PrivacyMetric to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PrivacyMetric
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace PrivacyMetric {

                    /** Properties of a NumericalStatsConfig. */
                    interface INumericalStatsConfig {

                        /** NumericalStatsConfig field */
                        field?: (google.privacy.dlp.v2.IFieldId|null);
                    }

                    /** Represents a NumericalStatsConfig. */
                    class NumericalStatsConfig implements INumericalStatsConfig {

                        /**
                         * Constructs a new NumericalStatsConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.PrivacyMetric.INumericalStatsConfig);

                        /** NumericalStatsConfig field. */
                        public field?: (google.privacy.dlp.v2.IFieldId|null);

                        /**
                         * Creates a new NumericalStatsConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NumericalStatsConfig instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.PrivacyMetric.INumericalStatsConfig): google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig;

                        /**
                         * Encodes the specified NumericalStatsConfig message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig.verify|verify} messages.
                         * @param message NumericalStatsConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.PrivacyMetric.INumericalStatsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NumericalStatsConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig.verify|verify} messages.
                         * @param message NumericalStatsConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.PrivacyMetric.INumericalStatsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NumericalStatsConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NumericalStatsConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig;

                        /**
                         * Decodes a NumericalStatsConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NumericalStatsConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig;

                        /**
                         * Verifies a NumericalStatsConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NumericalStatsConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NumericalStatsConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig;

                        /**
                         * Creates a plain object from a NumericalStatsConfig message. Also converts values to other types if specified.
                         * @param message NumericalStatsConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NumericalStatsConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for NumericalStatsConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a CategoricalStatsConfig. */
                    interface ICategoricalStatsConfig {

                        /** CategoricalStatsConfig field */
                        field?: (google.privacy.dlp.v2.IFieldId|null);
                    }

                    /** Represents a CategoricalStatsConfig. */
                    class CategoricalStatsConfig implements ICategoricalStatsConfig {

                        /**
                         * Constructs a new CategoricalStatsConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.PrivacyMetric.ICategoricalStatsConfig);

                        /** CategoricalStatsConfig field. */
                        public field?: (google.privacy.dlp.v2.IFieldId|null);

                        /**
                         * Creates a new CategoricalStatsConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CategoricalStatsConfig instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.PrivacyMetric.ICategoricalStatsConfig): google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig;

                        /**
                         * Encodes the specified CategoricalStatsConfig message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig.verify|verify} messages.
                         * @param message CategoricalStatsConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.PrivacyMetric.ICategoricalStatsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CategoricalStatsConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig.verify|verify} messages.
                         * @param message CategoricalStatsConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.PrivacyMetric.ICategoricalStatsConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CategoricalStatsConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CategoricalStatsConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig;

                        /**
                         * Decodes a CategoricalStatsConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CategoricalStatsConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig;

                        /**
                         * Verifies a CategoricalStatsConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a CategoricalStatsConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CategoricalStatsConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig;

                        /**
                         * Creates a plain object from a CategoricalStatsConfig message. Also converts values to other types if specified.
                         * @param message CategoricalStatsConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CategoricalStatsConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for CategoricalStatsConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a KAnonymityConfig. */
                    interface IKAnonymityConfig {

                        /** KAnonymityConfig quasiIds */
                        quasiIds?: (google.privacy.dlp.v2.IFieldId[]|null);

                        /** KAnonymityConfig entityId */
                        entityId?: (google.privacy.dlp.v2.IEntityId|null);
                    }

                    /** Represents a KAnonymityConfig. */
                    class KAnonymityConfig implements IKAnonymityConfig {

                        /**
                         * Constructs a new KAnonymityConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.PrivacyMetric.IKAnonymityConfig);

                        /** KAnonymityConfig quasiIds. */
                        public quasiIds: google.privacy.dlp.v2.IFieldId[];

                        /** KAnonymityConfig entityId. */
                        public entityId?: (google.privacy.dlp.v2.IEntityId|null);

                        /**
                         * Creates a new KAnonymityConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KAnonymityConfig instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.PrivacyMetric.IKAnonymityConfig): google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig;

                        /**
                         * Encodes the specified KAnonymityConfig message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig.verify|verify} messages.
                         * @param message KAnonymityConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.PrivacyMetric.IKAnonymityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KAnonymityConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig.verify|verify} messages.
                         * @param message KAnonymityConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.PrivacyMetric.IKAnonymityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KAnonymityConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KAnonymityConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig;

                        /**
                         * Decodes a KAnonymityConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KAnonymityConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig;

                        /**
                         * Verifies a KAnonymityConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a KAnonymityConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KAnonymityConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig;

                        /**
                         * Creates a plain object from a KAnonymityConfig message. Also converts values to other types if specified.
                         * @param message KAnonymityConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this KAnonymityConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for KAnonymityConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a LDiversityConfig. */
                    interface ILDiversityConfig {

                        /** LDiversityConfig quasiIds */
                        quasiIds?: (google.privacy.dlp.v2.IFieldId[]|null);

                        /** LDiversityConfig sensitiveAttribute */
                        sensitiveAttribute?: (google.privacy.dlp.v2.IFieldId|null);
                    }

                    /** Represents a LDiversityConfig. */
                    class LDiversityConfig implements ILDiversityConfig {

                        /**
                         * Constructs a new LDiversityConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.PrivacyMetric.ILDiversityConfig);

                        /** LDiversityConfig quasiIds. */
                        public quasiIds: google.privacy.dlp.v2.IFieldId[];

                        /** LDiversityConfig sensitiveAttribute. */
                        public sensitiveAttribute?: (google.privacy.dlp.v2.IFieldId|null);

                        /**
                         * Creates a new LDiversityConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LDiversityConfig instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.PrivacyMetric.ILDiversityConfig): google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig;

                        /**
                         * Encodes the specified LDiversityConfig message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig.verify|verify} messages.
                         * @param message LDiversityConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.PrivacyMetric.ILDiversityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LDiversityConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig.verify|verify} messages.
                         * @param message LDiversityConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.PrivacyMetric.ILDiversityConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LDiversityConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LDiversityConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig;

                        /**
                         * Decodes a LDiversityConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LDiversityConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig;

                        /**
                         * Verifies a LDiversityConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LDiversityConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LDiversityConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig;

                        /**
                         * Creates a plain object from a LDiversityConfig message. Also converts values to other types if specified.
                         * @param message LDiversityConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LDiversityConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for LDiversityConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a KMapEstimationConfig. */
                    interface IKMapEstimationConfig {

                        /** KMapEstimationConfig quasiIds */
                        quasiIds?: (google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.ITaggedField[]|null);

                        /** KMapEstimationConfig regionCode */
                        regionCode?: (string|null);

                        /** KMapEstimationConfig auxiliaryTables */
                        auxiliaryTables?: (google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.IAuxiliaryTable[]|null);
                    }

                    /** Represents a KMapEstimationConfig. */
                    class KMapEstimationConfig implements IKMapEstimationConfig {

                        /**
                         * Constructs a new KMapEstimationConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.PrivacyMetric.IKMapEstimationConfig);

                        /** KMapEstimationConfig quasiIds. */
                        public quasiIds: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.ITaggedField[];

                        /** KMapEstimationConfig regionCode. */
                        public regionCode: string;

                        /** KMapEstimationConfig auxiliaryTables. */
                        public auxiliaryTables: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.IAuxiliaryTable[];

                        /**
                         * Creates a new KMapEstimationConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KMapEstimationConfig instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.PrivacyMetric.IKMapEstimationConfig): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig;

                        /**
                         * Encodes the specified KMapEstimationConfig message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.verify|verify} messages.
                         * @param message KMapEstimationConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.PrivacyMetric.IKMapEstimationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KMapEstimationConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.verify|verify} messages.
                         * @param message KMapEstimationConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.PrivacyMetric.IKMapEstimationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KMapEstimationConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KMapEstimationConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig;

                        /**
                         * Decodes a KMapEstimationConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KMapEstimationConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig;

                        /**
                         * Verifies a KMapEstimationConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a KMapEstimationConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KMapEstimationConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig;

                        /**
                         * Creates a plain object from a KMapEstimationConfig message. Also converts values to other types if specified.
                         * @param message KMapEstimationConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this KMapEstimationConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for KMapEstimationConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace KMapEstimationConfig {

                        /** Properties of a TaggedField. */
                        interface ITaggedField {

                            /** TaggedField field */
                            field?: (google.privacy.dlp.v2.IFieldId|null);

                            /** TaggedField infoType */
                            infoType?: (google.privacy.dlp.v2.IInfoType|null);

                            /** TaggedField customTag */
                            customTag?: (string|null);

                            /** TaggedField inferred */
                            inferred?: (google.protobuf.IEmpty|null);
                        }

                        /** Represents a TaggedField. */
                        class TaggedField implements ITaggedField {

                            /**
                             * Constructs a new TaggedField.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.ITaggedField);

                            /** TaggedField field. */
                            public field?: (google.privacy.dlp.v2.IFieldId|null);

                            /** TaggedField infoType. */
                            public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                            /** TaggedField customTag. */
                            public customTag?: (string|null);

                            /** TaggedField inferred. */
                            public inferred?: (google.protobuf.IEmpty|null);

                            /** TaggedField tag. */
                            public tag?: ("infoType"|"customTag"|"inferred");

                            /**
                             * Creates a new TaggedField instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns TaggedField instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.ITaggedField): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField;

                            /**
                             * Encodes the specified TaggedField message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField.verify|verify} messages.
                             * @param message TaggedField message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.ITaggedField, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified TaggedField message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField.verify|verify} messages.
                             * @param message TaggedField message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.ITaggedField, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a TaggedField message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TaggedField
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField;

                            /**
                             * Decodes a TaggedField message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TaggedField
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField;

                            /**
                             * Verifies a TaggedField message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a TaggedField message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TaggedField
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField;

                            /**
                             * Creates a plain object from a TaggedField message. Also converts values to other types if specified.
                             * @param message TaggedField
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this TaggedField to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for TaggedField
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of an AuxiliaryTable. */
                        interface IAuxiliaryTable {

                            /** AuxiliaryTable table */
                            table?: (google.privacy.dlp.v2.IBigQueryTable|null);

                            /** AuxiliaryTable quasiIds */
                            quasiIds?: (google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.IQuasiIdField[]|null);

                            /** AuxiliaryTable relativeFrequency */
                            relativeFrequency?: (google.privacy.dlp.v2.IFieldId|null);
                        }

                        /** Represents an AuxiliaryTable. */
                        class AuxiliaryTable implements IAuxiliaryTable {

                            /**
                             * Constructs a new AuxiliaryTable.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.IAuxiliaryTable);

                            /** AuxiliaryTable table. */
                            public table?: (google.privacy.dlp.v2.IBigQueryTable|null);

                            /** AuxiliaryTable quasiIds. */
                            public quasiIds: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.IQuasiIdField[];

                            /** AuxiliaryTable relativeFrequency. */
                            public relativeFrequency?: (google.privacy.dlp.v2.IFieldId|null);

                            /**
                             * Creates a new AuxiliaryTable instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns AuxiliaryTable instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.IAuxiliaryTable): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable;

                            /**
                             * Encodes the specified AuxiliaryTable message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.verify|verify} messages.
                             * @param message AuxiliaryTable message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.IAuxiliaryTable, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified AuxiliaryTable message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.verify|verify} messages.
                             * @param message AuxiliaryTable message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.IAuxiliaryTable, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an AuxiliaryTable message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns AuxiliaryTable
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable;

                            /**
                             * Decodes an AuxiliaryTable message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns AuxiliaryTable
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable;

                            /**
                             * Verifies an AuxiliaryTable message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates an AuxiliaryTable message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns AuxiliaryTable
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable;

                            /**
                             * Creates a plain object from an AuxiliaryTable message. Also converts values to other types if specified.
                             * @param message AuxiliaryTable
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this AuxiliaryTable to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for AuxiliaryTable
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        namespace AuxiliaryTable {

                            /** Properties of a QuasiIdField. */
                            interface IQuasiIdField {

                                /** QuasiIdField field */
                                field?: (google.privacy.dlp.v2.IFieldId|null);

                                /** QuasiIdField customTag */
                                customTag?: (string|null);
                            }

                            /** Represents a QuasiIdField. */
                            class QuasiIdField implements IQuasiIdField {

                                /**
                                 * Constructs a new QuasiIdField.
                                 * @param [properties] Properties to set
                                 */
                                constructor(properties?: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.IQuasiIdField);

                                /** QuasiIdField field. */
                                public field?: (google.privacy.dlp.v2.IFieldId|null);

                                /** QuasiIdField customTag. */
                                public customTag: string;

                                /**
                                 * Creates a new QuasiIdField instance using the specified properties.
                                 * @param [properties] Properties to set
                                 * @returns QuasiIdField instance
                                 */
                                public static create(properties?: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.IQuasiIdField): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField;

                                /**
                                 * Encodes the specified QuasiIdField message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField.verify|verify} messages.
                                 * @param message QuasiIdField message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encode(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.IQuasiIdField, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Encodes the specified QuasiIdField message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField.verify|verify} messages.
                                 * @param message QuasiIdField message or plain object to encode
                                 * @param [writer] Writer to encode to
                                 * @returns Writer
                                 */
                                public static encodeDelimited(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.IQuasiIdField, writer?: $protobuf.Writer): $protobuf.Writer;

                                /**
                                 * Decodes a QuasiIdField message from the specified reader or buffer.
                                 * @param reader Reader or buffer to decode from
                                 * @param [length] Message length if known beforehand
                                 * @returns QuasiIdField
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField;

                                /**
                                 * Decodes a QuasiIdField message from the specified reader or buffer, length delimited.
                                 * @param reader Reader or buffer to decode from
                                 * @returns QuasiIdField
                                 * @throws {Error} If the payload is not a reader or valid buffer
                                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                                 */
                                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField;

                                /**
                                 * Verifies a QuasiIdField message.
                                 * @param message Plain object to verify
                                 * @returns `null` if valid, otherwise the reason why it is not
                                 */
                                public static verify(message: { [k: string]: any }): (string|null);

                                /**
                                 * Creates a QuasiIdField message from a plain object. Also converts values to their respective internal types.
                                 * @param object Plain object
                                 * @returns QuasiIdField
                                 */
                                public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField;

                                /**
                                 * Creates a plain object from a QuasiIdField message. Also converts values to other types if specified.
                                 * @param message QuasiIdField
                                 * @param [options] Conversion options
                                 * @returns Plain object
                                 */
                                public static toObject(message: google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField, options?: $protobuf.IConversionOptions): { [k: string]: any };

                                /**
                                 * Converts this QuasiIdField to JSON.
                                 * @returns JSON object
                                 */
                                public toJSON(): { [k: string]: any };

                                /**
                                 * Gets the default type url for QuasiIdField
                                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                                 * @returns The default type url
                                 */
                                public static getTypeUrl(typeUrlPrefix?: string): string;
                            }
                        }
                    }

                    /** Properties of a DeltaPresenceEstimationConfig. */
                    interface IDeltaPresenceEstimationConfig {

                        /** DeltaPresenceEstimationConfig quasiIds */
                        quasiIds?: (google.privacy.dlp.v2.IQuasiId[]|null);

                        /** DeltaPresenceEstimationConfig regionCode */
                        regionCode?: (string|null);

                        /** DeltaPresenceEstimationConfig auxiliaryTables */
                        auxiliaryTables?: (google.privacy.dlp.v2.IStatisticalTable[]|null);
                    }

                    /** Represents a DeltaPresenceEstimationConfig. */
                    class DeltaPresenceEstimationConfig implements IDeltaPresenceEstimationConfig {

                        /**
                         * Constructs a new DeltaPresenceEstimationConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.PrivacyMetric.IDeltaPresenceEstimationConfig);

                        /** DeltaPresenceEstimationConfig quasiIds. */
                        public quasiIds: google.privacy.dlp.v2.IQuasiId[];

                        /** DeltaPresenceEstimationConfig regionCode. */
                        public regionCode: string;

                        /** DeltaPresenceEstimationConfig auxiliaryTables. */
                        public auxiliaryTables: google.privacy.dlp.v2.IStatisticalTable[];

                        /**
                         * Creates a new DeltaPresenceEstimationConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DeltaPresenceEstimationConfig instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.PrivacyMetric.IDeltaPresenceEstimationConfig): google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig;

                        /**
                         * Encodes the specified DeltaPresenceEstimationConfig message. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig.verify|verify} messages.
                         * @param message DeltaPresenceEstimationConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.PrivacyMetric.IDeltaPresenceEstimationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DeltaPresenceEstimationConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig.verify|verify} messages.
                         * @param message DeltaPresenceEstimationConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.PrivacyMetric.IDeltaPresenceEstimationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DeltaPresenceEstimationConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DeltaPresenceEstimationConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig;

                        /**
                         * Decodes a DeltaPresenceEstimationConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DeltaPresenceEstimationConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig;

                        /**
                         * Verifies a DeltaPresenceEstimationConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DeltaPresenceEstimationConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DeltaPresenceEstimationConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig;

                        /**
                         * Creates a plain object from a DeltaPresenceEstimationConfig message. Also converts values to other types if specified.
                         * @param message DeltaPresenceEstimationConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DeltaPresenceEstimationConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DeltaPresenceEstimationConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of an AnalyzeDataSourceRiskDetails. */
                interface IAnalyzeDataSourceRiskDetails {

                    /** AnalyzeDataSourceRiskDetails requestedPrivacyMetric */
                    requestedPrivacyMetric?: (google.privacy.dlp.v2.IPrivacyMetric|null);

                    /** AnalyzeDataSourceRiskDetails requestedSourceTable */
                    requestedSourceTable?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** AnalyzeDataSourceRiskDetails numericalStatsResult */
                    numericalStatsResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.INumericalStatsResult|null);

                    /** AnalyzeDataSourceRiskDetails categoricalStatsResult */
                    categoricalStatsResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ICategoricalStatsResult|null);

                    /** AnalyzeDataSourceRiskDetails kAnonymityResult */
                    kAnonymityResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKAnonymityResult|null);

                    /** AnalyzeDataSourceRiskDetails lDiversityResult */
                    lDiversityResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ILDiversityResult|null);

                    /** AnalyzeDataSourceRiskDetails kMapEstimationResult */
                    kMapEstimationResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKMapEstimationResult|null);

                    /** AnalyzeDataSourceRiskDetails deltaPresenceEstimationResult */
                    deltaPresenceEstimationResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IDeltaPresenceEstimationResult|null);

                    /** AnalyzeDataSourceRiskDetails requestedOptions */
                    requestedOptions?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IRequestedRiskAnalysisOptions|null);
                }

                /** Represents an AnalyzeDataSourceRiskDetails. */
                class AnalyzeDataSourceRiskDetails implements IAnalyzeDataSourceRiskDetails {

                    /**
                     * Constructs a new AnalyzeDataSourceRiskDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IAnalyzeDataSourceRiskDetails);

                    /** AnalyzeDataSourceRiskDetails requestedPrivacyMetric. */
                    public requestedPrivacyMetric?: (google.privacy.dlp.v2.IPrivacyMetric|null);

                    /** AnalyzeDataSourceRiskDetails requestedSourceTable. */
                    public requestedSourceTable?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** AnalyzeDataSourceRiskDetails numericalStatsResult. */
                    public numericalStatsResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.INumericalStatsResult|null);

                    /** AnalyzeDataSourceRiskDetails categoricalStatsResult. */
                    public categoricalStatsResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ICategoricalStatsResult|null);

                    /** AnalyzeDataSourceRiskDetails kAnonymityResult. */
                    public kAnonymityResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKAnonymityResult|null);

                    /** AnalyzeDataSourceRiskDetails lDiversityResult. */
                    public lDiversityResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ILDiversityResult|null);

                    /** AnalyzeDataSourceRiskDetails kMapEstimationResult. */
                    public kMapEstimationResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKMapEstimationResult|null);

                    /** AnalyzeDataSourceRiskDetails deltaPresenceEstimationResult. */
                    public deltaPresenceEstimationResult?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IDeltaPresenceEstimationResult|null);

                    /** AnalyzeDataSourceRiskDetails requestedOptions. */
                    public requestedOptions?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IRequestedRiskAnalysisOptions|null);

                    /** AnalyzeDataSourceRiskDetails result. */
                    public result?: ("numericalStatsResult"|"categoricalStatsResult"|"kAnonymityResult"|"lDiversityResult"|"kMapEstimationResult"|"deltaPresenceEstimationResult");

                    /**
                     * Creates a new AnalyzeDataSourceRiskDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns AnalyzeDataSourceRiskDetails instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IAnalyzeDataSourceRiskDetails): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails;

                    /**
                     * Encodes the specified AnalyzeDataSourceRiskDetails message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.verify|verify} messages.
                     * @param message AnalyzeDataSourceRiskDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IAnalyzeDataSourceRiskDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified AnalyzeDataSourceRiskDetails message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.verify|verify} messages.
                     * @param message AnalyzeDataSourceRiskDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IAnalyzeDataSourceRiskDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an AnalyzeDataSourceRiskDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AnalyzeDataSourceRiskDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails;

                    /**
                     * Decodes an AnalyzeDataSourceRiskDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AnalyzeDataSourceRiskDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails;

                    /**
                     * Verifies an AnalyzeDataSourceRiskDetails message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an AnalyzeDataSourceRiskDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AnalyzeDataSourceRiskDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails;

                    /**
                     * Creates a plain object from an AnalyzeDataSourceRiskDetails message. Also converts values to other types if specified.
                     * @param message AnalyzeDataSourceRiskDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this AnalyzeDataSourceRiskDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for AnalyzeDataSourceRiskDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace AnalyzeDataSourceRiskDetails {

                    /** Properties of a NumericalStatsResult. */
                    interface INumericalStatsResult {

                        /** NumericalStatsResult minValue */
                        minValue?: (google.privacy.dlp.v2.IValue|null);

                        /** NumericalStatsResult maxValue */
                        maxValue?: (google.privacy.dlp.v2.IValue|null);

                        /** NumericalStatsResult quantileValues */
                        quantileValues?: (google.privacy.dlp.v2.IValue[]|null);
                    }

                    /** Represents a NumericalStatsResult. */
                    class NumericalStatsResult implements INumericalStatsResult {

                        /**
                         * Constructs a new NumericalStatsResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.INumericalStatsResult);

                        /** NumericalStatsResult minValue. */
                        public minValue?: (google.privacy.dlp.v2.IValue|null);

                        /** NumericalStatsResult maxValue. */
                        public maxValue?: (google.privacy.dlp.v2.IValue|null);

                        /** NumericalStatsResult quantileValues. */
                        public quantileValues: google.privacy.dlp.v2.IValue[];

                        /**
                         * Creates a new NumericalStatsResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns NumericalStatsResult instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.INumericalStatsResult): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult;

                        /**
                         * Encodes the specified NumericalStatsResult message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult.verify|verify} messages.
                         * @param message NumericalStatsResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.INumericalStatsResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified NumericalStatsResult message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult.verify|verify} messages.
                         * @param message NumericalStatsResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.INumericalStatsResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a NumericalStatsResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns NumericalStatsResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult;

                        /**
                         * Decodes a NumericalStatsResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns NumericalStatsResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult;

                        /**
                         * Verifies a NumericalStatsResult message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a NumericalStatsResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns NumericalStatsResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult;

                        /**
                         * Creates a plain object from a NumericalStatsResult message. Also converts values to other types if specified.
                         * @param message NumericalStatsResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this NumericalStatsResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for NumericalStatsResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a CategoricalStatsResult. */
                    interface ICategoricalStatsResult {

                        /** CategoricalStatsResult valueFrequencyHistogramBuckets */
                        valueFrequencyHistogramBuckets?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.ICategoricalStatsHistogramBucket[]|null);
                    }

                    /** Represents a CategoricalStatsResult. */
                    class CategoricalStatsResult implements ICategoricalStatsResult {

                        /**
                         * Constructs a new CategoricalStatsResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ICategoricalStatsResult);

                        /** CategoricalStatsResult valueFrequencyHistogramBuckets. */
                        public valueFrequencyHistogramBuckets: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.ICategoricalStatsHistogramBucket[];

                        /**
                         * Creates a new CategoricalStatsResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns CategoricalStatsResult instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ICategoricalStatsResult): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult;

                        /**
                         * Encodes the specified CategoricalStatsResult message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.verify|verify} messages.
                         * @param message CategoricalStatsResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ICategoricalStatsResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified CategoricalStatsResult message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.verify|verify} messages.
                         * @param message CategoricalStatsResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ICategoricalStatsResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a CategoricalStatsResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns CategoricalStatsResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult;

                        /**
                         * Decodes a CategoricalStatsResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns CategoricalStatsResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult;

                        /**
                         * Verifies a CategoricalStatsResult message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a CategoricalStatsResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns CategoricalStatsResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult;

                        /**
                         * Creates a plain object from a CategoricalStatsResult message. Also converts values to other types if specified.
                         * @param message CategoricalStatsResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this CategoricalStatsResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for CategoricalStatsResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace CategoricalStatsResult {

                        /** Properties of a CategoricalStatsHistogramBucket. */
                        interface ICategoricalStatsHistogramBucket {

                            /** CategoricalStatsHistogramBucket valueFrequencyLowerBound */
                            valueFrequencyLowerBound?: (number|Long|string|null);

                            /** CategoricalStatsHistogramBucket valueFrequencyUpperBound */
                            valueFrequencyUpperBound?: (number|Long|string|null);

                            /** CategoricalStatsHistogramBucket bucketSize */
                            bucketSize?: (number|Long|string|null);

                            /** CategoricalStatsHistogramBucket bucketValues */
                            bucketValues?: (google.privacy.dlp.v2.IValueFrequency[]|null);

                            /** CategoricalStatsHistogramBucket bucketValueCount */
                            bucketValueCount?: (number|Long|string|null);
                        }

                        /** Represents a CategoricalStatsHistogramBucket. */
                        class CategoricalStatsHistogramBucket implements ICategoricalStatsHistogramBucket {

                            /**
                             * Constructs a new CategoricalStatsHistogramBucket.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.ICategoricalStatsHistogramBucket);

                            /** CategoricalStatsHistogramBucket valueFrequencyLowerBound. */
                            public valueFrequencyLowerBound: (number|Long|string);

                            /** CategoricalStatsHistogramBucket valueFrequencyUpperBound. */
                            public valueFrequencyUpperBound: (number|Long|string);

                            /** CategoricalStatsHistogramBucket bucketSize. */
                            public bucketSize: (number|Long|string);

                            /** CategoricalStatsHistogramBucket bucketValues. */
                            public bucketValues: google.privacy.dlp.v2.IValueFrequency[];

                            /** CategoricalStatsHistogramBucket bucketValueCount. */
                            public bucketValueCount: (number|Long|string);

                            /**
                             * Creates a new CategoricalStatsHistogramBucket instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns CategoricalStatsHistogramBucket instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.ICategoricalStatsHistogramBucket): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket;

                            /**
                             * Encodes the specified CategoricalStatsHistogramBucket message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket.verify|verify} messages.
                             * @param message CategoricalStatsHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.ICategoricalStatsHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified CategoricalStatsHistogramBucket message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket.verify|verify} messages.
                             * @param message CategoricalStatsHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.ICategoricalStatsHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a CategoricalStatsHistogramBucket message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns CategoricalStatsHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket;

                            /**
                             * Decodes a CategoricalStatsHistogramBucket message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns CategoricalStatsHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket;

                            /**
                             * Verifies a CategoricalStatsHistogramBucket message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a CategoricalStatsHistogramBucket message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns CategoricalStatsHistogramBucket
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket;

                            /**
                             * Creates a plain object from a CategoricalStatsHistogramBucket message. Also converts values to other types if specified.
                             * @param message CategoricalStatsHistogramBucket
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this CategoricalStatsHistogramBucket to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for CategoricalStatsHistogramBucket
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a KAnonymityResult. */
                    interface IKAnonymityResult {

                        /** KAnonymityResult equivalenceClassHistogramBuckets */
                        equivalenceClassHistogramBuckets?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityHistogramBucket[]|null);
                    }

                    /** Represents a KAnonymityResult. */
                    class KAnonymityResult implements IKAnonymityResult {

                        /**
                         * Constructs a new KAnonymityResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKAnonymityResult);

                        /** KAnonymityResult equivalenceClassHistogramBuckets. */
                        public equivalenceClassHistogramBuckets: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityHistogramBucket[];

                        /**
                         * Creates a new KAnonymityResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KAnonymityResult instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKAnonymityResult): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult;

                        /**
                         * Encodes the specified KAnonymityResult message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.verify|verify} messages.
                         * @param message KAnonymityResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKAnonymityResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KAnonymityResult message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.verify|verify} messages.
                         * @param message KAnonymityResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKAnonymityResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KAnonymityResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KAnonymityResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult;

                        /**
                         * Decodes a KAnonymityResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KAnonymityResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult;

                        /**
                         * Verifies a KAnonymityResult message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a KAnonymityResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KAnonymityResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult;

                        /**
                         * Creates a plain object from a KAnonymityResult message. Also converts values to other types if specified.
                         * @param message KAnonymityResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this KAnonymityResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for KAnonymityResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace KAnonymityResult {

                        /** Properties of a KAnonymityEquivalenceClass. */
                        interface IKAnonymityEquivalenceClass {

                            /** KAnonymityEquivalenceClass quasiIdsValues */
                            quasiIdsValues?: (google.privacy.dlp.v2.IValue[]|null);

                            /** KAnonymityEquivalenceClass equivalenceClassSize */
                            equivalenceClassSize?: (number|Long|string|null);
                        }

                        /** Represents a KAnonymityEquivalenceClass. */
                        class KAnonymityEquivalenceClass implements IKAnonymityEquivalenceClass {

                            /**
                             * Constructs a new KAnonymityEquivalenceClass.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityEquivalenceClass);

                            /** KAnonymityEquivalenceClass quasiIdsValues. */
                            public quasiIdsValues: google.privacy.dlp.v2.IValue[];

                            /** KAnonymityEquivalenceClass equivalenceClassSize. */
                            public equivalenceClassSize: (number|Long|string);

                            /**
                             * Creates a new KAnonymityEquivalenceClass instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns KAnonymityEquivalenceClass instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityEquivalenceClass): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass;

                            /**
                             * Encodes the specified KAnonymityEquivalenceClass message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass.verify|verify} messages.
                             * @param message KAnonymityEquivalenceClass message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityEquivalenceClass, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified KAnonymityEquivalenceClass message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass.verify|verify} messages.
                             * @param message KAnonymityEquivalenceClass message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityEquivalenceClass, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a KAnonymityEquivalenceClass message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns KAnonymityEquivalenceClass
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass;

                            /**
                             * Decodes a KAnonymityEquivalenceClass message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns KAnonymityEquivalenceClass
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass;

                            /**
                             * Verifies a KAnonymityEquivalenceClass message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a KAnonymityEquivalenceClass message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns KAnonymityEquivalenceClass
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass;

                            /**
                             * Creates a plain object from a KAnonymityEquivalenceClass message. Also converts values to other types if specified.
                             * @param message KAnonymityEquivalenceClass
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this KAnonymityEquivalenceClass to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for KAnonymityEquivalenceClass
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a KAnonymityHistogramBucket. */
                        interface IKAnonymityHistogramBucket {

                            /** KAnonymityHistogramBucket equivalenceClassSizeLowerBound */
                            equivalenceClassSizeLowerBound?: (number|Long|string|null);

                            /** KAnonymityHistogramBucket equivalenceClassSizeUpperBound */
                            equivalenceClassSizeUpperBound?: (number|Long|string|null);

                            /** KAnonymityHistogramBucket bucketSize */
                            bucketSize?: (number|Long|string|null);

                            /** KAnonymityHistogramBucket bucketValues */
                            bucketValues?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityEquivalenceClass[]|null);

                            /** KAnonymityHistogramBucket bucketValueCount */
                            bucketValueCount?: (number|Long|string|null);
                        }

                        /** Represents a KAnonymityHistogramBucket. */
                        class KAnonymityHistogramBucket implements IKAnonymityHistogramBucket {

                            /**
                             * Constructs a new KAnonymityHistogramBucket.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityHistogramBucket);

                            /** KAnonymityHistogramBucket equivalenceClassSizeLowerBound. */
                            public equivalenceClassSizeLowerBound: (number|Long|string);

                            /** KAnonymityHistogramBucket equivalenceClassSizeUpperBound. */
                            public equivalenceClassSizeUpperBound: (number|Long|string);

                            /** KAnonymityHistogramBucket bucketSize. */
                            public bucketSize: (number|Long|string);

                            /** KAnonymityHistogramBucket bucketValues. */
                            public bucketValues: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityEquivalenceClass[];

                            /** KAnonymityHistogramBucket bucketValueCount. */
                            public bucketValueCount: (number|Long|string);

                            /**
                             * Creates a new KAnonymityHistogramBucket instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns KAnonymityHistogramBucket instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityHistogramBucket): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket;

                            /**
                             * Encodes the specified KAnonymityHistogramBucket message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket.verify|verify} messages.
                             * @param message KAnonymityHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified KAnonymityHistogramBucket message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket.verify|verify} messages.
                             * @param message KAnonymityHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.IKAnonymityHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a KAnonymityHistogramBucket message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns KAnonymityHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket;

                            /**
                             * Decodes a KAnonymityHistogramBucket message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns KAnonymityHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket;

                            /**
                             * Verifies a KAnonymityHistogramBucket message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a KAnonymityHistogramBucket message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns KAnonymityHistogramBucket
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket;

                            /**
                             * Creates a plain object from a KAnonymityHistogramBucket message. Also converts values to other types if specified.
                             * @param message KAnonymityHistogramBucket
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this KAnonymityHistogramBucket to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for KAnonymityHistogramBucket
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a LDiversityResult. */
                    interface ILDiversityResult {

                        /** LDiversityResult sensitiveValueFrequencyHistogramBuckets */
                        sensitiveValueFrequencyHistogramBuckets?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityHistogramBucket[]|null);
                    }

                    /** Represents a LDiversityResult. */
                    class LDiversityResult implements ILDiversityResult {

                        /**
                         * Constructs a new LDiversityResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ILDiversityResult);

                        /** LDiversityResult sensitiveValueFrequencyHistogramBuckets. */
                        public sensitiveValueFrequencyHistogramBuckets: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityHistogramBucket[];

                        /**
                         * Creates a new LDiversityResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LDiversityResult instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ILDiversityResult): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult;

                        /**
                         * Encodes the specified LDiversityResult message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.verify|verify} messages.
                         * @param message LDiversityResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ILDiversityResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LDiversityResult message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.verify|verify} messages.
                         * @param message LDiversityResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.ILDiversityResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LDiversityResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LDiversityResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult;

                        /**
                         * Decodes a LDiversityResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LDiversityResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult;

                        /**
                         * Verifies a LDiversityResult message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LDiversityResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LDiversityResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult;

                        /**
                         * Creates a plain object from a LDiversityResult message. Also converts values to other types if specified.
                         * @param message LDiversityResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LDiversityResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for LDiversityResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace LDiversityResult {

                        /** Properties of a LDiversityEquivalenceClass. */
                        interface ILDiversityEquivalenceClass {

                            /** LDiversityEquivalenceClass quasiIdsValues */
                            quasiIdsValues?: (google.privacy.dlp.v2.IValue[]|null);

                            /** LDiversityEquivalenceClass equivalenceClassSize */
                            equivalenceClassSize?: (number|Long|string|null);

                            /** LDiversityEquivalenceClass numDistinctSensitiveValues */
                            numDistinctSensitiveValues?: (number|Long|string|null);

                            /** LDiversityEquivalenceClass topSensitiveValues */
                            topSensitiveValues?: (google.privacy.dlp.v2.IValueFrequency[]|null);
                        }

                        /** Represents a LDiversityEquivalenceClass. */
                        class LDiversityEquivalenceClass implements ILDiversityEquivalenceClass {

                            /**
                             * Constructs a new LDiversityEquivalenceClass.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityEquivalenceClass);

                            /** LDiversityEquivalenceClass quasiIdsValues. */
                            public quasiIdsValues: google.privacy.dlp.v2.IValue[];

                            /** LDiversityEquivalenceClass equivalenceClassSize. */
                            public equivalenceClassSize: (number|Long|string);

                            /** LDiversityEquivalenceClass numDistinctSensitiveValues. */
                            public numDistinctSensitiveValues: (number|Long|string);

                            /** LDiversityEquivalenceClass topSensitiveValues. */
                            public topSensitiveValues: google.privacy.dlp.v2.IValueFrequency[];

                            /**
                             * Creates a new LDiversityEquivalenceClass instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns LDiversityEquivalenceClass instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityEquivalenceClass): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass;

                            /**
                             * Encodes the specified LDiversityEquivalenceClass message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass.verify|verify} messages.
                             * @param message LDiversityEquivalenceClass message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityEquivalenceClass, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified LDiversityEquivalenceClass message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass.verify|verify} messages.
                             * @param message LDiversityEquivalenceClass message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityEquivalenceClass, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a LDiversityEquivalenceClass message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns LDiversityEquivalenceClass
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass;

                            /**
                             * Decodes a LDiversityEquivalenceClass message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns LDiversityEquivalenceClass
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass;

                            /**
                             * Verifies a LDiversityEquivalenceClass message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a LDiversityEquivalenceClass message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns LDiversityEquivalenceClass
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass;

                            /**
                             * Creates a plain object from a LDiversityEquivalenceClass message. Also converts values to other types if specified.
                             * @param message LDiversityEquivalenceClass
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this LDiversityEquivalenceClass to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for LDiversityEquivalenceClass
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a LDiversityHistogramBucket. */
                        interface ILDiversityHistogramBucket {

                            /** LDiversityHistogramBucket sensitiveValueFrequencyLowerBound */
                            sensitiveValueFrequencyLowerBound?: (number|Long|string|null);

                            /** LDiversityHistogramBucket sensitiveValueFrequencyUpperBound */
                            sensitiveValueFrequencyUpperBound?: (number|Long|string|null);

                            /** LDiversityHistogramBucket bucketSize */
                            bucketSize?: (number|Long|string|null);

                            /** LDiversityHistogramBucket bucketValues */
                            bucketValues?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityEquivalenceClass[]|null);

                            /** LDiversityHistogramBucket bucketValueCount */
                            bucketValueCount?: (number|Long|string|null);
                        }

                        /** Represents a LDiversityHistogramBucket. */
                        class LDiversityHistogramBucket implements ILDiversityHistogramBucket {

                            /**
                             * Constructs a new LDiversityHistogramBucket.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityHistogramBucket);

                            /** LDiversityHistogramBucket sensitiveValueFrequencyLowerBound. */
                            public sensitiveValueFrequencyLowerBound: (number|Long|string);

                            /** LDiversityHistogramBucket sensitiveValueFrequencyUpperBound. */
                            public sensitiveValueFrequencyUpperBound: (number|Long|string);

                            /** LDiversityHistogramBucket bucketSize. */
                            public bucketSize: (number|Long|string);

                            /** LDiversityHistogramBucket bucketValues. */
                            public bucketValues: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityEquivalenceClass[];

                            /** LDiversityHistogramBucket bucketValueCount. */
                            public bucketValueCount: (number|Long|string);

                            /**
                             * Creates a new LDiversityHistogramBucket instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns LDiversityHistogramBucket instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityHistogramBucket): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket;

                            /**
                             * Encodes the specified LDiversityHistogramBucket message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket.verify|verify} messages.
                             * @param message LDiversityHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified LDiversityHistogramBucket message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket.verify|verify} messages.
                             * @param message LDiversityHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.ILDiversityHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a LDiversityHistogramBucket message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns LDiversityHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket;

                            /**
                             * Decodes a LDiversityHistogramBucket message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns LDiversityHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket;

                            /**
                             * Verifies a LDiversityHistogramBucket message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a LDiversityHistogramBucket message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns LDiversityHistogramBucket
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket;

                            /**
                             * Creates a plain object from a LDiversityHistogramBucket message. Also converts values to other types if specified.
                             * @param message LDiversityHistogramBucket
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this LDiversityHistogramBucket to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for LDiversityHistogramBucket
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a KMapEstimationResult. */
                    interface IKMapEstimationResult {

                        /** KMapEstimationResult kMapEstimationHistogram */
                        kMapEstimationHistogram?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationHistogramBucket[]|null);
                    }

                    /** Represents a KMapEstimationResult. */
                    class KMapEstimationResult implements IKMapEstimationResult {

                        /**
                         * Constructs a new KMapEstimationResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKMapEstimationResult);

                        /** KMapEstimationResult kMapEstimationHistogram. */
                        public kMapEstimationHistogram: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationHistogramBucket[];

                        /**
                         * Creates a new KMapEstimationResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns KMapEstimationResult instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKMapEstimationResult): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult;

                        /**
                         * Encodes the specified KMapEstimationResult message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.verify|verify} messages.
                         * @param message KMapEstimationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKMapEstimationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified KMapEstimationResult message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.verify|verify} messages.
                         * @param message KMapEstimationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IKMapEstimationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a KMapEstimationResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns KMapEstimationResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult;

                        /**
                         * Decodes a KMapEstimationResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns KMapEstimationResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult;

                        /**
                         * Verifies a KMapEstimationResult message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a KMapEstimationResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns KMapEstimationResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult;

                        /**
                         * Creates a plain object from a KMapEstimationResult message. Also converts values to other types if specified.
                         * @param message KMapEstimationResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this KMapEstimationResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for KMapEstimationResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace KMapEstimationResult {

                        /** Properties of a KMapEstimationQuasiIdValues. */
                        interface IKMapEstimationQuasiIdValues {

                            /** KMapEstimationQuasiIdValues quasiIdsValues */
                            quasiIdsValues?: (google.privacy.dlp.v2.IValue[]|null);

                            /** KMapEstimationQuasiIdValues estimatedAnonymity */
                            estimatedAnonymity?: (number|Long|string|null);
                        }

                        /** Represents a KMapEstimationQuasiIdValues. */
                        class KMapEstimationQuasiIdValues implements IKMapEstimationQuasiIdValues {

                            /**
                             * Constructs a new KMapEstimationQuasiIdValues.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationQuasiIdValues);

                            /** KMapEstimationQuasiIdValues quasiIdsValues. */
                            public quasiIdsValues: google.privacy.dlp.v2.IValue[];

                            /** KMapEstimationQuasiIdValues estimatedAnonymity. */
                            public estimatedAnonymity: (number|Long|string);

                            /**
                             * Creates a new KMapEstimationQuasiIdValues instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns KMapEstimationQuasiIdValues instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationQuasiIdValues): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues;

                            /**
                             * Encodes the specified KMapEstimationQuasiIdValues message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues.verify|verify} messages.
                             * @param message KMapEstimationQuasiIdValues message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationQuasiIdValues, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified KMapEstimationQuasiIdValues message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues.verify|verify} messages.
                             * @param message KMapEstimationQuasiIdValues message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationQuasiIdValues, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a KMapEstimationQuasiIdValues message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns KMapEstimationQuasiIdValues
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues;

                            /**
                             * Decodes a KMapEstimationQuasiIdValues message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns KMapEstimationQuasiIdValues
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues;

                            /**
                             * Verifies a KMapEstimationQuasiIdValues message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a KMapEstimationQuasiIdValues message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns KMapEstimationQuasiIdValues
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues;

                            /**
                             * Creates a plain object from a KMapEstimationQuasiIdValues message. Also converts values to other types if specified.
                             * @param message KMapEstimationQuasiIdValues
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this KMapEstimationQuasiIdValues to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for KMapEstimationQuasiIdValues
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a KMapEstimationHistogramBucket. */
                        interface IKMapEstimationHistogramBucket {

                            /** KMapEstimationHistogramBucket minAnonymity */
                            minAnonymity?: (number|Long|string|null);

                            /** KMapEstimationHistogramBucket maxAnonymity */
                            maxAnonymity?: (number|Long|string|null);

                            /** KMapEstimationHistogramBucket bucketSize */
                            bucketSize?: (number|Long|string|null);

                            /** KMapEstimationHistogramBucket bucketValues */
                            bucketValues?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationQuasiIdValues[]|null);

                            /** KMapEstimationHistogramBucket bucketValueCount */
                            bucketValueCount?: (number|Long|string|null);
                        }

                        /** Represents a KMapEstimationHistogramBucket. */
                        class KMapEstimationHistogramBucket implements IKMapEstimationHistogramBucket {

                            /**
                             * Constructs a new KMapEstimationHistogramBucket.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationHistogramBucket);

                            /** KMapEstimationHistogramBucket minAnonymity. */
                            public minAnonymity: (number|Long|string);

                            /** KMapEstimationHistogramBucket maxAnonymity. */
                            public maxAnonymity: (number|Long|string);

                            /** KMapEstimationHistogramBucket bucketSize. */
                            public bucketSize: (number|Long|string);

                            /** KMapEstimationHistogramBucket bucketValues. */
                            public bucketValues: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationQuasiIdValues[];

                            /** KMapEstimationHistogramBucket bucketValueCount. */
                            public bucketValueCount: (number|Long|string);

                            /**
                             * Creates a new KMapEstimationHistogramBucket instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns KMapEstimationHistogramBucket instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationHistogramBucket): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket;

                            /**
                             * Encodes the specified KMapEstimationHistogramBucket message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket.verify|verify} messages.
                             * @param message KMapEstimationHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified KMapEstimationHistogramBucket message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket.verify|verify} messages.
                             * @param message KMapEstimationHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.IKMapEstimationHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a KMapEstimationHistogramBucket message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns KMapEstimationHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket;

                            /**
                             * Decodes a KMapEstimationHistogramBucket message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns KMapEstimationHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket;

                            /**
                             * Verifies a KMapEstimationHistogramBucket message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a KMapEstimationHistogramBucket message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns KMapEstimationHistogramBucket
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket;

                            /**
                             * Creates a plain object from a KMapEstimationHistogramBucket message. Also converts values to other types if specified.
                             * @param message KMapEstimationHistogramBucket
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this KMapEstimationHistogramBucket to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for KMapEstimationHistogramBucket
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a DeltaPresenceEstimationResult. */
                    interface IDeltaPresenceEstimationResult {

                        /** DeltaPresenceEstimationResult deltaPresenceEstimationHistogram */
                        deltaPresenceEstimationHistogram?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationHistogramBucket[]|null);
                    }

                    /** Represents a DeltaPresenceEstimationResult. */
                    class DeltaPresenceEstimationResult implements IDeltaPresenceEstimationResult {

                        /**
                         * Constructs a new DeltaPresenceEstimationResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IDeltaPresenceEstimationResult);

                        /** DeltaPresenceEstimationResult deltaPresenceEstimationHistogram. */
                        public deltaPresenceEstimationHistogram: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationHistogramBucket[];

                        /**
                         * Creates a new DeltaPresenceEstimationResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DeltaPresenceEstimationResult instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IDeltaPresenceEstimationResult): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult;

                        /**
                         * Encodes the specified DeltaPresenceEstimationResult message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.verify|verify} messages.
                         * @param message DeltaPresenceEstimationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IDeltaPresenceEstimationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DeltaPresenceEstimationResult message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.verify|verify} messages.
                         * @param message DeltaPresenceEstimationResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IDeltaPresenceEstimationResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DeltaPresenceEstimationResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DeltaPresenceEstimationResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult;

                        /**
                         * Decodes a DeltaPresenceEstimationResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DeltaPresenceEstimationResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult;

                        /**
                         * Verifies a DeltaPresenceEstimationResult message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DeltaPresenceEstimationResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DeltaPresenceEstimationResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult;

                        /**
                         * Creates a plain object from a DeltaPresenceEstimationResult message. Also converts values to other types if specified.
                         * @param message DeltaPresenceEstimationResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DeltaPresenceEstimationResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DeltaPresenceEstimationResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace DeltaPresenceEstimationResult {

                        /** Properties of a DeltaPresenceEstimationQuasiIdValues. */
                        interface IDeltaPresenceEstimationQuasiIdValues {

                            /** DeltaPresenceEstimationQuasiIdValues quasiIdsValues */
                            quasiIdsValues?: (google.privacy.dlp.v2.IValue[]|null);

                            /** DeltaPresenceEstimationQuasiIdValues estimatedProbability */
                            estimatedProbability?: (number|null);
                        }

                        /** Represents a DeltaPresenceEstimationQuasiIdValues. */
                        class DeltaPresenceEstimationQuasiIdValues implements IDeltaPresenceEstimationQuasiIdValues {

                            /**
                             * Constructs a new DeltaPresenceEstimationQuasiIdValues.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationQuasiIdValues);

                            /** DeltaPresenceEstimationQuasiIdValues quasiIdsValues. */
                            public quasiIdsValues: google.privacy.dlp.v2.IValue[];

                            /** DeltaPresenceEstimationQuasiIdValues estimatedProbability. */
                            public estimatedProbability: number;

                            /**
                             * Creates a new DeltaPresenceEstimationQuasiIdValues instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DeltaPresenceEstimationQuasiIdValues instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationQuasiIdValues): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues;

                            /**
                             * Encodes the specified DeltaPresenceEstimationQuasiIdValues message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues.verify|verify} messages.
                             * @param message DeltaPresenceEstimationQuasiIdValues message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationQuasiIdValues, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DeltaPresenceEstimationQuasiIdValues message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues.verify|verify} messages.
                             * @param message DeltaPresenceEstimationQuasiIdValues message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationQuasiIdValues, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DeltaPresenceEstimationQuasiIdValues message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DeltaPresenceEstimationQuasiIdValues
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues;

                            /**
                             * Decodes a DeltaPresenceEstimationQuasiIdValues message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DeltaPresenceEstimationQuasiIdValues
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues;

                            /**
                             * Verifies a DeltaPresenceEstimationQuasiIdValues message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a DeltaPresenceEstimationQuasiIdValues message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DeltaPresenceEstimationQuasiIdValues
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues;

                            /**
                             * Creates a plain object from a DeltaPresenceEstimationQuasiIdValues message. Also converts values to other types if specified.
                             * @param message DeltaPresenceEstimationQuasiIdValues
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this DeltaPresenceEstimationQuasiIdValues to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for DeltaPresenceEstimationQuasiIdValues
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a DeltaPresenceEstimationHistogramBucket. */
                        interface IDeltaPresenceEstimationHistogramBucket {

                            /** DeltaPresenceEstimationHistogramBucket minProbability */
                            minProbability?: (number|null);

                            /** DeltaPresenceEstimationHistogramBucket maxProbability */
                            maxProbability?: (number|null);

                            /** DeltaPresenceEstimationHistogramBucket bucketSize */
                            bucketSize?: (number|Long|string|null);

                            /** DeltaPresenceEstimationHistogramBucket bucketValues */
                            bucketValues?: (google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationQuasiIdValues[]|null);

                            /** DeltaPresenceEstimationHistogramBucket bucketValueCount */
                            bucketValueCount?: (number|Long|string|null);
                        }

                        /** Represents a DeltaPresenceEstimationHistogramBucket. */
                        class DeltaPresenceEstimationHistogramBucket implements IDeltaPresenceEstimationHistogramBucket {

                            /**
                             * Constructs a new DeltaPresenceEstimationHistogramBucket.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationHistogramBucket);

                            /** DeltaPresenceEstimationHistogramBucket minProbability. */
                            public minProbability: number;

                            /** DeltaPresenceEstimationHistogramBucket maxProbability. */
                            public maxProbability: number;

                            /** DeltaPresenceEstimationHistogramBucket bucketSize. */
                            public bucketSize: (number|Long|string);

                            /** DeltaPresenceEstimationHistogramBucket bucketValues. */
                            public bucketValues: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationQuasiIdValues[];

                            /** DeltaPresenceEstimationHistogramBucket bucketValueCount. */
                            public bucketValueCount: (number|Long|string);

                            /**
                             * Creates a new DeltaPresenceEstimationHistogramBucket instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns DeltaPresenceEstimationHistogramBucket instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationHistogramBucket): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket;

                            /**
                             * Encodes the specified DeltaPresenceEstimationHistogramBucket message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket.verify|verify} messages.
                             * @param message DeltaPresenceEstimationHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified DeltaPresenceEstimationHistogramBucket message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket.verify|verify} messages.
                             * @param message DeltaPresenceEstimationHistogramBucket message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.IDeltaPresenceEstimationHistogramBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a DeltaPresenceEstimationHistogramBucket message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns DeltaPresenceEstimationHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket;

                            /**
                             * Decodes a DeltaPresenceEstimationHistogramBucket message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns DeltaPresenceEstimationHistogramBucket
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket;

                            /**
                             * Verifies a DeltaPresenceEstimationHistogramBucket message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a DeltaPresenceEstimationHistogramBucket message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns DeltaPresenceEstimationHistogramBucket
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket;

                            /**
                             * Creates a plain object from a DeltaPresenceEstimationHistogramBucket message. Also converts values to other types if specified.
                             * @param message DeltaPresenceEstimationHistogramBucket
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this DeltaPresenceEstimationHistogramBucket to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for DeltaPresenceEstimationHistogramBucket
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a RequestedRiskAnalysisOptions. */
                    interface IRequestedRiskAnalysisOptions {

                        /** RequestedRiskAnalysisOptions jobConfig */
                        jobConfig?: (google.privacy.dlp.v2.IRiskAnalysisJobConfig|null);
                    }

                    /** Represents a RequestedRiskAnalysisOptions. */
                    class RequestedRiskAnalysisOptions implements IRequestedRiskAnalysisOptions {

                        /**
                         * Constructs a new RequestedRiskAnalysisOptions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IRequestedRiskAnalysisOptions);

                        /** RequestedRiskAnalysisOptions jobConfig. */
                        public jobConfig?: (google.privacy.dlp.v2.IRiskAnalysisJobConfig|null);

                        /**
                         * Creates a new RequestedRiskAnalysisOptions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns RequestedRiskAnalysisOptions instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IRequestedRiskAnalysisOptions): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions;

                        /**
                         * Encodes the specified RequestedRiskAnalysisOptions message. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions.verify|verify} messages.
                         * @param message RequestedRiskAnalysisOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IRequestedRiskAnalysisOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified RequestedRiskAnalysisOptions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions.verify|verify} messages.
                         * @param message RequestedRiskAnalysisOptions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.IRequestedRiskAnalysisOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a RequestedRiskAnalysisOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RequestedRiskAnalysisOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions;

                        /**
                         * Decodes a RequestedRiskAnalysisOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RequestedRiskAnalysisOptions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions;

                        /**
                         * Verifies a RequestedRiskAnalysisOptions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a RequestedRiskAnalysisOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RequestedRiskAnalysisOptions
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions;

                        /**
                         * Creates a plain object from a RequestedRiskAnalysisOptions message. Also converts values to other types if specified.
                         * @param message RequestedRiskAnalysisOptions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.RequestedRiskAnalysisOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this RequestedRiskAnalysisOptions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for RequestedRiskAnalysisOptions
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a ValueFrequency. */
                interface IValueFrequency {

                    /** ValueFrequency value */
                    value?: (google.privacy.dlp.v2.IValue|null);

                    /** ValueFrequency count */
                    count?: (number|Long|string|null);
                }

                /** Represents a ValueFrequency. */
                class ValueFrequency implements IValueFrequency {

                    /**
                     * Constructs a new ValueFrequency.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IValueFrequency);

                    /** ValueFrequency value. */
                    public value?: (google.privacy.dlp.v2.IValue|null);

                    /** ValueFrequency count. */
                    public count: (number|Long|string);

                    /**
                     * Creates a new ValueFrequency instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ValueFrequency instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IValueFrequency): google.privacy.dlp.v2.ValueFrequency;

                    /**
                     * Encodes the specified ValueFrequency message. Does not implicitly {@link google.privacy.dlp.v2.ValueFrequency.verify|verify} messages.
                     * @param message ValueFrequency message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IValueFrequency, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ValueFrequency message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ValueFrequency.verify|verify} messages.
                     * @param message ValueFrequency message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IValueFrequency, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ValueFrequency message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ValueFrequency
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ValueFrequency;

                    /**
                     * Decodes a ValueFrequency message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ValueFrequency
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ValueFrequency;

                    /**
                     * Verifies a ValueFrequency message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ValueFrequency message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ValueFrequency
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ValueFrequency;

                    /**
                     * Creates a plain object from a ValueFrequency message. Also converts values to other types if specified.
                     * @param message ValueFrequency
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ValueFrequency, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ValueFrequency to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ValueFrequency
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Value. */
                interface IValue {

                    /** Value integerValue */
                    integerValue?: (number|Long|string|null);

                    /** Value floatValue */
                    floatValue?: (number|null);

                    /** Value stringValue */
                    stringValue?: (string|null);

                    /** Value booleanValue */
                    booleanValue?: (boolean|null);

                    /** Value timestampValue */
                    timestampValue?: (google.protobuf.ITimestamp|null);

                    /** Value timeValue */
                    timeValue?: (google.type.ITimeOfDay|null);

                    /** Value dateValue */
                    dateValue?: (google.type.IDate|null);

                    /** Value dayOfWeekValue */
                    dayOfWeekValue?: (google.type.DayOfWeek|keyof typeof google.type.DayOfWeek|null);
                }

                /** Represents a Value. */
                class Value implements IValue {

                    /**
                     * Constructs a new Value.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IValue);

                    /** Value integerValue. */
                    public integerValue?: (number|Long|string|null);

                    /** Value floatValue. */
                    public floatValue?: (number|null);

                    /** Value stringValue. */
                    public stringValue?: (string|null);

                    /** Value booleanValue. */
                    public booleanValue?: (boolean|null);

                    /** Value timestampValue. */
                    public timestampValue?: (google.protobuf.ITimestamp|null);

                    /** Value timeValue. */
                    public timeValue?: (google.type.ITimeOfDay|null);

                    /** Value dateValue. */
                    public dateValue?: (google.type.IDate|null);

                    /** Value dayOfWeekValue. */
                    public dayOfWeekValue?: (google.type.DayOfWeek|keyof typeof google.type.DayOfWeek|null);

                    /** Value type. */
                    public type?: ("integerValue"|"floatValue"|"stringValue"|"booleanValue"|"timestampValue"|"timeValue"|"dateValue"|"dayOfWeekValue");

                    /**
                     * Creates a new Value instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Value instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IValue): google.privacy.dlp.v2.Value;

                    /**
                     * Encodes the specified Value message. Does not implicitly {@link google.privacy.dlp.v2.Value.verify|verify} messages.
                     * @param message Value message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Value message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Value.verify|verify} messages.
                     * @param message Value message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IValue, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Value message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Value
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Value;

                    /**
                     * Decodes a Value message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Value
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Value;

                    /**
                     * Verifies a Value message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Value message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Value
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Value;

                    /**
                     * Creates a plain object from a Value message. Also converts values to other types if specified.
                     * @param message Value
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Value, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Value to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Value
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a QuoteInfo. */
                interface IQuoteInfo {

                    /** QuoteInfo dateTime */
                    dateTime?: (google.privacy.dlp.v2.IDateTime|null);
                }

                /** Represents a QuoteInfo. */
                class QuoteInfo implements IQuoteInfo {

                    /**
                     * Constructs a new QuoteInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IQuoteInfo);

                    /** QuoteInfo dateTime. */
                    public dateTime?: (google.privacy.dlp.v2.IDateTime|null);

                    /** QuoteInfo parsedQuote. */
                    public parsedQuote?: "dateTime";

                    /**
                     * Creates a new QuoteInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns QuoteInfo instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IQuoteInfo): google.privacy.dlp.v2.QuoteInfo;

                    /**
                     * Encodes the specified QuoteInfo message. Does not implicitly {@link google.privacy.dlp.v2.QuoteInfo.verify|verify} messages.
                     * @param message QuoteInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IQuoteInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified QuoteInfo message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.QuoteInfo.verify|verify} messages.
                     * @param message QuoteInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IQuoteInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a QuoteInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns QuoteInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.QuoteInfo;

                    /**
                     * Decodes a QuoteInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns QuoteInfo
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.QuoteInfo;

                    /**
                     * Verifies a QuoteInfo message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a QuoteInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns QuoteInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.QuoteInfo;

                    /**
                     * Creates a plain object from a QuoteInfo message. Also converts values to other types if specified.
                     * @param message QuoteInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.QuoteInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this QuoteInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for QuoteInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DateTime. */
                interface IDateTime {

                    /** DateTime date */
                    date?: (google.type.IDate|null);

                    /** DateTime dayOfWeek */
                    dayOfWeek?: (google.type.DayOfWeek|keyof typeof google.type.DayOfWeek|null);

                    /** DateTime time */
                    time?: (google.type.ITimeOfDay|null);

                    /** DateTime timeZone */
                    timeZone?: (google.privacy.dlp.v2.DateTime.ITimeZone|null);
                }

                /** Represents a DateTime. */
                class DateTime implements IDateTime {

                    /**
                     * Constructs a new DateTime.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDateTime);

                    /** DateTime date. */
                    public date?: (google.type.IDate|null);

                    /** DateTime dayOfWeek. */
                    public dayOfWeek: (google.type.DayOfWeek|keyof typeof google.type.DayOfWeek);

                    /** DateTime time. */
                    public time?: (google.type.ITimeOfDay|null);

                    /** DateTime timeZone. */
                    public timeZone?: (google.privacy.dlp.v2.DateTime.ITimeZone|null);

                    /**
                     * Creates a new DateTime instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DateTime instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDateTime): google.privacy.dlp.v2.DateTime;

                    /**
                     * Encodes the specified DateTime message. Does not implicitly {@link google.privacy.dlp.v2.DateTime.verify|verify} messages.
                     * @param message DateTime message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDateTime, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DateTime message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DateTime.verify|verify} messages.
                     * @param message DateTime message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDateTime, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DateTime message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DateTime
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DateTime;

                    /**
                     * Decodes a DateTime message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DateTime
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DateTime;

                    /**
                     * Verifies a DateTime message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DateTime message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DateTime
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DateTime;

                    /**
                     * Creates a plain object from a DateTime message. Also converts values to other types if specified.
                     * @param message DateTime
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DateTime, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DateTime to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DateTime
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DateTime {

                    /** Properties of a TimeZone. */
                    interface ITimeZone {

                        /** TimeZone offsetMinutes */
                        offsetMinutes?: (number|null);
                    }

                    /** Represents a TimeZone. */
                    class TimeZone implements ITimeZone {

                        /**
                         * Constructs a new TimeZone.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.DateTime.ITimeZone);

                        /** TimeZone offsetMinutes. */
                        public offsetMinutes: number;

                        /**
                         * Creates a new TimeZone instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TimeZone instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.DateTime.ITimeZone): google.privacy.dlp.v2.DateTime.TimeZone;

                        /**
                         * Encodes the specified TimeZone message. Does not implicitly {@link google.privacy.dlp.v2.DateTime.TimeZone.verify|verify} messages.
                         * @param message TimeZone message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.DateTime.ITimeZone, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TimeZone message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DateTime.TimeZone.verify|verify} messages.
                         * @param message TimeZone message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.DateTime.ITimeZone, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TimeZone message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TimeZone
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DateTime.TimeZone;

                        /**
                         * Decodes a TimeZone message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TimeZone
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DateTime.TimeZone;

                        /**
                         * Verifies a TimeZone message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a TimeZone message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TimeZone
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DateTime.TimeZone;

                        /**
                         * Creates a plain object from a TimeZone message. Also converts values to other types if specified.
                         * @param message TimeZone
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.DateTime.TimeZone, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TimeZone to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TimeZone
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a DeidentifyConfig. */
                interface IDeidentifyConfig {

                    /** DeidentifyConfig infoTypeTransformations */
                    infoTypeTransformations?: (google.privacy.dlp.v2.IInfoTypeTransformations|null);

                    /** DeidentifyConfig recordTransformations */
                    recordTransformations?: (google.privacy.dlp.v2.IRecordTransformations|null);

                    /** DeidentifyConfig imageTransformations */
                    imageTransformations?: (google.privacy.dlp.v2.IImageTransformations|null);

                    /** DeidentifyConfig transformationErrorHandling */
                    transformationErrorHandling?: (google.privacy.dlp.v2.ITransformationErrorHandling|null);
                }

                /** Represents a DeidentifyConfig. */
                class DeidentifyConfig implements IDeidentifyConfig {

                    /**
                     * Constructs a new DeidentifyConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeidentifyConfig);

                    /** DeidentifyConfig infoTypeTransformations. */
                    public infoTypeTransformations?: (google.privacy.dlp.v2.IInfoTypeTransformations|null);

                    /** DeidentifyConfig recordTransformations. */
                    public recordTransformations?: (google.privacy.dlp.v2.IRecordTransformations|null);

                    /** DeidentifyConfig imageTransformations. */
                    public imageTransformations?: (google.privacy.dlp.v2.IImageTransformations|null);

                    /** DeidentifyConfig transformationErrorHandling. */
                    public transformationErrorHandling?: (google.privacy.dlp.v2.ITransformationErrorHandling|null);

                    /** DeidentifyConfig transformation. */
                    public transformation?: ("infoTypeTransformations"|"recordTransformations"|"imageTransformations");

                    /**
                     * Creates a new DeidentifyConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeidentifyConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeidentifyConfig): google.privacy.dlp.v2.DeidentifyConfig;

                    /**
                     * Encodes the specified DeidentifyConfig message. Does not implicitly {@link google.privacy.dlp.v2.DeidentifyConfig.verify|verify} messages.
                     * @param message DeidentifyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeidentifyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeidentifyConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeidentifyConfig.verify|verify} messages.
                     * @param message DeidentifyConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeidentifyConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeidentifyConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeidentifyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DeidentifyConfig;

                    /**
                     * Decodes a DeidentifyConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeidentifyConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DeidentifyConfig;

                    /**
                     * Verifies a DeidentifyConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeidentifyConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeidentifyConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeidentifyConfig;

                    /**
                     * Creates a plain object from a DeidentifyConfig message. Also converts values to other types if specified.
                     * @param message DeidentifyConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeidentifyConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeidentifyConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeidentifyConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ImageTransformations. */
                interface IImageTransformations {

                    /** ImageTransformations transforms */
                    transforms?: (google.privacy.dlp.v2.ImageTransformations.IImageTransformation[]|null);
                }

                /** Represents an ImageTransformations. */
                class ImageTransformations implements IImageTransformations {

                    /**
                     * Constructs a new ImageTransformations.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IImageTransformations);

                    /** ImageTransformations transforms. */
                    public transforms: google.privacy.dlp.v2.ImageTransformations.IImageTransformation[];

                    /**
                     * Creates a new ImageTransformations instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ImageTransformations instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IImageTransformations): google.privacy.dlp.v2.ImageTransformations;

                    /**
                     * Encodes the specified ImageTransformations message. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.verify|verify} messages.
                     * @param message ImageTransformations message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IImageTransformations, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ImageTransformations message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.verify|verify} messages.
                     * @param message ImageTransformations message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IImageTransformations, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ImageTransformations message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImageTransformations
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ImageTransformations;

                    /**
                     * Decodes an ImageTransformations message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImageTransformations
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ImageTransformations;

                    /**
                     * Verifies an ImageTransformations message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an ImageTransformations message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImageTransformations
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ImageTransformations;

                    /**
                     * Creates a plain object from an ImageTransformations message. Also converts values to other types if specified.
                     * @param message ImageTransformations
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ImageTransformations, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ImageTransformations to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ImageTransformations
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ImageTransformations {

                    /** Properties of an ImageTransformation. */
                    interface IImageTransformation {

                        /** ImageTransformation selectedInfoTypes */
                        selectedInfoTypes?: (google.privacy.dlp.v2.ImageTransformations.ImageTransformation.ISelectedInfoTypes|null);

                        /** ImageTransformation allInfoTypes */
                        allInfoTypes?: (google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllInfoTypes|null);

                        /** ImageTransformation allText */
                        allText?: (google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllText|null);

                        /** ImageTransformation redactionColor */
                        redactionColor?: (google.privacy.dlp.v2.IColor|null);
                    }

                    /** Represents an ImageTransformation. */
                    class ImageTransformation implements IImageTransformation {

                        /**
                         * Constructs a new ImageTransformation.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.ImageTransformations.IImageTransformation);

                        /** ImageTransformation selectedInfoTypes. */
                        public selectedInfoTypes?: (google.privacy.dlp.v2.ImageTransformations.ImageTransformation.ISelectedInfoTypes|null);

                        /** ImageTransformation allInfoTypes. */
                        public allInfoTypes?: (google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllInfoTypes|null);

                        /** ImageTransformation allText. */
                        public allText?: (google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllText|null);

                        /** ImageTransformation redactionColor. */
                        public redactionColor?: (google.privacy.dlp.v2.IColor|null);

                        /** ImageTransformation target. */
                        public target?: ("selectedInfoTypes"|"allInfoTypes"|"allText");

                        /**
                         * Creates a new ImageTransformation instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ImageTransformation instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.ImageTransformations.IImageTransformation): google.privacy.dlp.v2.ImageTransformations.ImageTransformation;

                        /**
                         * Encodes the specified ImageTransformation message. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.ImageTransformation.verify|verify} messages.
                         * @param message ImageTransformation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.ImageTransformations.IImageTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ImageTransformation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.ImageTransformation.verify|verify} messages.
                         * @param message ImageTransformation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.ImageTransformations.IImageTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ImageTransformation message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ImageTransformation
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ImageTransformations.ImageTransformation;

                        /**
                         * Decodes an ImageTransformation message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ImageTransformation
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ImageTransformations.ImageTransformation;

                        /**
                         * Verifies an ImageTransformation message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an ImageTransformation message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ImageTransformation
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ImageTransformations.ImageTransformation;

                        /**
                         * Creates a plain object from an ImageTransformation message. Also converts values to other types if specified.
                         * @param message ImageTransformation
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ImageTransformation to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ImageTransformation
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace ImageTransformation {

                        /** Properties of a SelectedInfoTypes. */
                        interface ISelectedInfoTypes {

                            /** SelectedInfoTypes infoTypes */
                            infoTypes?: (google.privacy.dlp.v2.IInfoType[]|null);
                        }

                        /** Represents a SelectedInfoTypes. */
                        class SelectedInfoTypes implements ISelectedInfoTypes {

                            /**
                             * Constructs a new SelectedInfoTypes.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.ISelectedInfoTypes);

                            /** SelectedInfoTypes infoTypes. */
                            public infoTypes: google.privacy.dlp.v2.IInfoType[];

                            /**
                             * Creates a new SelectedInfoTypes instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns SelectedInfoTypes instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.ISelectedInfoTypes): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypes;

                            /**
                             * Encodes the specified SelectedInfoTypes message. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypes.verify|verify} messages.
                             * @param message SelectedInfoTypes message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.ISelectedInfoTypes, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified SelectedInfoTypes message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypes.verify|verify} messages.
                             * @param message SelectedInfoTypes message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.ISelectedInfoTypes, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a SelectedInfoTypes message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns SelectedInfoTypes
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypes;

                            /**
                             * Decodes a SelectedInfoTypes message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns SelectedInfoTypes
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypes;

                            /**
                             * Verifies a SelectedInfoTypes message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a SelectedInfoTypes message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns SelectedInfoTypes
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypes;

                            /**
                             * Creates a plain object from a SelectedInfoTypes message. Also converts values to other types if specified.
                             * @param message SelectedInfoTypes
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.SelectedInfoTypes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this SelectedInfoTypes to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for SelectedInfoTypes
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of an AllInfoTypes. */
                        interface IAllInfoTypes {
                        }

                        /** Represents an AllInfoTypes. */
                        class AllInfoTypes implements IAllInfoTypes {

                            /**
                             * Constructs a new AllInfoTypes.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllInfoTypes);

                            /**
                             * Creates a new AllInfoTypes instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns AllInfoTypes instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllInfoTypes): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypes;

                            /**
                             * Encodes the specified AllInfoTypes message. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypes.verify|verify} messages.
                             * @param message AllInfoTypes message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllInfoTypes, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified AllInfoTypes message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypes.verify|verify} messages.
                             * @param message AllInfoTypes message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllInfoTypes, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an AllInfoTypes message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns AllInfoTypes
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypes;

                            /**
                             * Decodes an AllInfoTypes message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns AllInfoTypes
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypes;

                            /**
                             * Verifies an AllInfoTypes message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates an AllInfoTypes message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns AllInfoTypes
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypes;

                            /**
                             * Creates a plain object from an AllInfoTypes message. Also converts values to other types if specified.
                             * @param message AllInfoTypes
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllInfoTypes, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this AllInfoTypes to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for AllInfoTypes
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of an AllText. */
                        interface IAllText {
                        }

                        /** Represents an AllText. */
                        class AllText implements IAllText {

                            /**
                             * Constructs a new AllText.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllText);

                            /**
                             * Creates a new AllText instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns AllText instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllText): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllText;

                            /**
                             * Encodes the specified AllText message. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllText.verify|verify} messages.
                             * @param message AllText message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllText, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified AllText message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllText.verify|verify} messages.
                             * @param message AllText message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.IAllText, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes an AllText message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns AllText
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllText;

                            /**
                             * Decodes an AllText message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns AllText
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllText;

                            /**
                             * Verifies an AllText message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates an AllText message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns AllText
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllText;

                            /**
                             * Creates a plain object from an AllText message. Also converts values to other types if specified.
                             * @param message AllText
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.ImageTransformations.ImageTransformation.AllText, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this AllText to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for AllText
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }
                }

                /** Properties of a TransformationErrorHandling. */
                interface ITransformationErrorHandling {

                    /** TransformationErrorHandling throwError */
                    throwError?: (google.privacy.dlp.v2.TransformationErrorHandling.IThrowError|null);

                    /** TransformationErrorHandling leaveUntransformed */
                    leaveUntransformed?: (google.privacy.dlp.v2.TransformationErrorHandling.ILeaveUntransformed|null);
                }

                /** Represents a TransformationErrorHandling. */
                class TransformationErrorHandling implements ITransformationErrorHandling {

                    /**
                     * Constructs a new TransformationErrorHandling.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransformationErrorHandling);

                    /** TransformationErrorHandling throwError. */
                    public throwError?: (google.privacy.dlp.v2.TransformationErrorHandling.IThrowError|null);

                    /** TransformationErrorHandling leaveUntransformed. */
                    public leaveUntransformed?: (google.privacy.dlp.v2.TransformationErrorHandling.ILeaveUntransformed|null);

                    /** TransformationErrorHandling mode. */
                    public mode?: ("throwError"|"leaveUntransformed");

                    /**
                     * Creates a new TransformationErrorHandling instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransformationErrorHandling instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransformationErrorHandling): google.privacy.dlp.v2.TransformationErrorHandling;

                    /**
                     * Encodes the specified TransformationErrorHandling message. Does not implicitly {@link google.privacy.dlp.v2.TransformationErrorHandling.verify|verify} messages.
                     * @param message TransformationErrorHandling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransformationErrorHandling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransformationErrorHandling message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationErrorHandling.verify|verify} messages.
                     * @param message TransformationErrorHandling message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransformationErrorHandling, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransformationErrorHandling message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransformationErrorHandling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationErrorHandling;

                    /**
                     * Decodes a TransformationErrorHandling message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransformationErrorHandling
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationErrorHandling;

                    /**
                     * Verifies a TransformationErrorHandling message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransformationErrorHandling message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransformationErrorHandling
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationErrorHandling;

                    /**
                     * Creates a plain object from a TransformationErrorHandling message. Also converts values to other types if specified.
                     * @param message TransformationErrorHandling
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransformationErrorHandling, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransformationErrorHandling to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransformationErrorHandling
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TransformationErrorHandling {

                    /** Properties of a ThrowError. */
                    interface IThrowError {
                    }

                    /** Represents a ThrowError. */
                    class ThrowError implements IThrowError {

                        /**
                         * Constructs a new ThrowError.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.TransformationErrorHandling.IThrowError);

                        /**
                         * Creates a new ThrowError instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ThrowError instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.TransformationErrorHandling.IThrowError): google.privacy.dlp.v2.TransformationErrorHandling.ThrowError;

                        /**
                         * Encodes the specified ThrowError message. Does not implicitly {@link google.privacy.dlp.v2.TransformationErrorHandling.ThrowError.verify|verify} messages.
                         * @param message ThrowError message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.TransformationErrorHandling.IThrowError, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ThrowError message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationErrorHandling.ThrowError.verify|verify} messages.
                         * @param message ThrowError message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.TransformationErrorHandling.IThrowError, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a ThrowError message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ThrowError
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationErrorHandling.ThrowError;

                        /**
                         * Decodes a ThrowError message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ThrowError
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationErrorHandling.ThrowError;

                        /**
                         * Verifies a ThrowError message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a ThrowError message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ThrowError
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationErrorHandling.ThrowError;

                        /**
                         * Creates a plain object from a ThrowError message. Also converts values to other types if specified.
                         * @param message ThrowError
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.TransformationErrorHandling.ThrowError, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ThrowError to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ThrowError
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a LeaveUntransformed. */
                    interface ILeaveUntransformed {
                    }

                    /** Represents a LeaveUntransformed. */
                    class LeaveUntransformed implements ILeaveUntransformed {

                        /**
                         * Constructs a new LeaveUntransformed.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.TransformationErrorHandling.ILeaveUntransformed);

                        /**
                         * Creates a new LeaveUntransformed instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns LeaveUntransformed instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.TransformationErrorHandling.ILeaveUntransformed): google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed;

                        /**
                         * Encodes the specified LeaveUntransformed message. Does not implicitly {@link google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed.verify|verify} messages.
                         * @param message LeaveUntransformed message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.TransformationErrorHandling.ILeaveUntransformed, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified LeaveUntransformed message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed.verify|verify} messages.
                         * @param message LeaveUntransformed message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.TransformationErrorHandling.ILeaveUntransformed, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a LeaveUntransformed message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns LeaveUntransformed
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed;

                        /**
                         * Decodes a LeaveUntransformed message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns LeaveUntransformed
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed;

                        /**
                         * Verifies a LeaveUntransformed message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a LeaveUntransformed message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns LeaveUntransformed
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed;

                        /**
                         * Creates a plain object from a LeaveUntransformed message. Also converts values to other types if specified.
                         * @param message LeaveUntransformed
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.TransformationErrorHandling.LeaveUntransformed, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this LeaveUntransformed to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for LeaveUntransformed
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a PrimitiveTransformation. */
                interface IPrimitiveTransformation {

                    /** PrimitiveTransformation replaceConfig */
                    replaceConfig?: (google.privacy.dlp.v2.IReplaceValueConfig|null);

                    /** PrimitiveTransformation redactConfig */
                    redactConfig?: (google.privacy.dlp.v2.IRedactConfig|null);

                    /** PrimitiveTransformation characterMaskConfig */
                    characterMaskConfig?: (google.privacy.dlp.v2.ICharacterMaskConfig|null);

                    /** PrimitiveTransformation cryptoReplaceFfxFpeConfig */
                    cryptoReplaceFfxFpeConfig?: (google.privacy.dlp.v2.ICryptoReplaceFfxFpeConfig|null);

                    /** PrimitiveTransformation fixedSizeBucketingConfig */
                    fixedSizeBucketingConfig?: (google.privacy.dlp.v2.IFixedSizeBucketingConfig|null);

                    /** PrimitiveTransformation bucketingConfig */
                    bucketingConfig?: (google.privacy.dlp.v2.IBucketingConfig|null);

                    /** PrimitiveTransformation replaceWithInfoTypeConfig */
                    replaceWithInfoTypeConfig?: (google.privacy.dlp.v2.IReplaceWithInfoTypeConfig|null);

                    /** PrimitiveTransformation timePartConfig */
                    timePartConfig?: (google.privacy.dlp.v2.ITimePartConfig|null);

                    /** PrimitiveTransformation cryptoHashConfig */
                    cryptoHashConfig?: (google.privacy.dlp.v2.ICryptoHashConfig|null);

                    /** PrimitiveTransformation dateShiftConfig */
                    dateShiftConfig?: (google.privacy.dlp.v2.IDateShiftConfig|null);

                    /** PrimitiveTransformation cryptoDeterministicConfig */
                    cryptoDeterministicConfig?: (google.privacy.dlp.v2.ICryptoDeterministicConfig|null);

                    /** PrimitiveTransformation replaceDictionaryConfig */
                    replaceDictionaryConfig?: (google.privacy.dlp.v2.IReplaceDictionaryConfig|null);
                }

                /** Represents a PrimitiveTransformation. */
                class PrimitiveTransformation implements IPrimitiveTransformation {

                    /**
                     * Constructs a new PrimitiveTransformation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IPrimitiveTransformation);

                    /** PrimitiveTransformation replaceConfig. */
                    public replaceConfig?: (google.privacy.dlp.v2.IReplaceValueConfig|null);

                    /** PrimitiveTransformation redactConfig. */
                    public redactConfig?: (google.privacy.dlp.v2.IRedactConfig|null);

                    /** PrimitiveTransformation characterMaskConfig. */
                    public characterMaskConfig?: (google.privacy.dlp.v2.ICharacterMaskConfig|null);

                    /** PrimitiveTransformation cryptoReplaceFfxFpeConfig. */
                    public cryptoReplaceFfxFpeConfig?: (google.privacy.dlp.v2.ICryptoReplaceFfxFpeConfig|null);

                    /** PrimitiveTransformation fixedSizeBucketingConfig. */
                    public fixedSizeBucketingConfig?: (google.privacy.dlp.v2.IFixedSizeBucketingConfig|null);

                    /** PrimitiveTransformation bucketingConfig. */
                    public bucketingConfig?: (google.privacy.dlp.v2.IBucketingConfig|null);

                    /** PrimitiveTransformation replaceWithInfoTypeConfig. */
                    public replaceWithInfoTypeConfig?: (google.privacy.dlp.v2.IReplaceWithInfoTypeConfig|null);

                    /** PrimitiveTransformation timePartConfig. */
                    public timePartConfig?: (google.privacy.dlp.v2.ITimePartConfig|null);

                    /** PrimitiveTransformation cryptoHashConfig. */
                    public cryptoHashConfig?: (google.privacy.dlp.v2.ICryptoHashConfig|null);

                    /** PrimitiveTransformation dateShiftConfig. */
                    public dateShiftConfig?: (google.privacy.dlp.v2.IDateShiftConfig|null);

                    /** PrimitiveTransformation cryptoDeterministicConfig. */
                    public cryptoDeterministicConfig?: (google.privacy.dlp.v2.ICryptoDeterministicConfig|null);

                    /** PrimitiveTransformation replaceDictionaryConfig. */
                    public replaceDictionaryConfig?: (google.privacy.dlp.v2.IReplaceDictionaryConfig|null);

                    /** PrimitiveTransformation transformation. */
                    public transformation?: ("replaceConfig"|"redactConfig"|"characterMaskConfig"|"cryptoReplaceFfxFpeConfig"|"fixedSizeBucketingConfig"|"bucketingConfig"|"replaceWithInfoTypeConfig"|"timePartConfig"|"cryptoHashConfig"|"dateShiftConfig"|"cryptoDeterministicConfig"|"replaceDictionaryConfig");

                    /**
                     * Creates a new PrimitiveTransformation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PrimitiveTransformation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IPrimitiveTransformation): google.privacy.dlp.v2.PrimitiveTransformation;

                    /**
                     * Encodes the specified PrimitiveTransformation message. Does not implicitly {@link google.privacy.dlp.v2.PrimitiveTransformation.verify|verify} messages.
                     * @param message PrimitiveTransformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IPrimitiveTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PrimitiveTransformation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PrimitiveTransformation.verify|verify} messages.
                     * @param message PrimitiveTransformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IPrimitiveTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PrimitiveTransformation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PrimitiveTransformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PrimitiveTransformation;

                    /**
                     * Decodes a PrimitiveTransformation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PrimitiveTransformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PrimitiveTransformation;

                    /**
                     * Verifies a PrimitiveTransformation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PrimitiveTransformation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PrimitiveTransformation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PrimitiveTransformation;

                    /**
                     * Creates a plain object from a PrimitiveTransformation message. Also converts values to other types if specified.
                     * @param message PrimitiveTransformation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.PrimitiveTransformation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PrimitiveTransformation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PrimitiveTransformation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TimePartConfig. */
                interface ITimePartConfig {

                    /** TimePartConfig partToExtract */
                    partToExtract?: (google.privacy.dlp.v2.TimePartConfig.TimePart|keyof typeof google.privacy.dlp.v2.TimePartConfig.TimePart|null);
                }

                /** Represents a TimePartConfig. */
                class TimePartConfig implements ITimePartConfig {

                    /**
                     * Constructs a new TimePartConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITimePartConfig);

                    /** TimePartConfig partToExtract. */
                    public partToExtract: (google.privacy.dlp.v2.TimePartConfig.TimePart|keyof typeof google.privacy.dlp.v2.TimePartConfig.TimePart);

                    /**
                     * Creates a new TimePartConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TimePartConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITimePartConfig): google.privacy.dlp.v2.TimePartConfig;

                    /**
                     * Encodes the specified TimePartConfig message. Does not implicitly {@link google.privacy.dlp.v2.TimePartConfig.verify|verify} messages.
                     * @param message TimePartConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITimePartConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TimePartConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TimePartConfig.verify|verify} messages.
                     * @param message TimePartConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITimePartConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TimePartConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TimePartConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TimePartConfig;

                    /**
                     * Decodes a TimePartConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TimePartConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TimePartConfig;

                    /**
                     * Verifies a TimePartConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TimePartConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TimePartConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TimePartConfig;

                    /**
                     * Creates a plain object from a TimePartConfig message. Also converts values to other types if specified.
                     * @param message TimePartConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TimePartConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TimePartConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TimePartConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TimePartConfig {

                    /** TimePart enum. */
                    enum TimePart {
                        TIME_PART_UNSPECIFIED = 0,
                        YEAR = 1,
                        MONTH = 2,
                        DAY_OF_MONTH = 3,
                        DAY_OF_WEEK = 4,
                        WEEK_OF_YEAR = 5,
                        HOUR_OF_DAY = 6
                    }
                }

                /** Properties of a CryptoHashConfig. */
                interface ICryptoHashConfig {

                    /** CryptoHashConfig cryptoKey */
                    cryptoKey?: (google.privacy.dlp.v2.ICryptoKey|null);
                }

                /** Represents a CryptoHashConfig. */
                class CryptoHashConfig implements ICryptoHashConfig {

                    /**
                     * Constructs a new CryptoHashConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICryptoHashConfig);

                    /** CryptoHashConfig cryptoKey. */
                    public cryptoKey?: (google.privacy.dlp.v2.ICryptoKey|null);

                    /**
                     * Creates a new CryptoHashConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CryptoHashConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICryptoHashConfig): google.privacy.dlp.v2.CryptoHashConfig;

                    /**
                     * Encodes the specified CryptoHashConfig message. Does not implicitly {@link google.privacy.dlp.v2.CryptoHashConfig.verify|verify} messages.
                     * @param message CryptoHashConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICryptoHashConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CryptoHashConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CryptoHashConfig.verify|verify} messages.
                     * @param message CryptoHashConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICryptoHashConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CryptoHashConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CryptoHashConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CryptoHashConfig;

                    /**
                     * Decodes a CryptoHashConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CryptoHashConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CryptoHashConfig;

                    /**
                     * Verifies a CryptoHashConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CryptoHashConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CryptoHashConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CryptoHashConfig;

                    /**
                     * Creates a plain object from a CryptoHashConfig message. Also converts values to other types if specified.
                     * @param message CryptoHashConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CryptoHashConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CryptoHashConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CryptoHashConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CryptoDeterministicConfig. */
                interface ICryptoDeterministicConfig {

                    /** CryptoDeterministicConfig cryptoKey */
                    cryptoKey?: (google.privacy.dlp.v2.ICryptoKey|null);

                    /** CryptoDeterministicConfig surrogateInfoType */
                    surrogateInfoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** CryptoDeterministicConfig context */
                    context?: (google.privacy.dlp.v2.IFieldId|null);
                }

                /** Represents a CryptoDeterministicConfig. */
                class CryptoDeterministicConfig implements ICryptoDeterministicConfig {

                    /**
                     * Constructs a new CryptoDeterministicConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICryptoDeterministicConfig);

                    /** CryptoDeterministicConfig cryptoKey. */
                    public cryptoKey?: (google.privacy.dlp.v2.ICryptoKey|null);

                    /** CryptoDeterministicConfig surrogateInfoType. */
                    public surrogateInfoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** CryptoDeterministicConfig context. */
                    public context?: (google.privacy.dlp.v2.IFieldId|null);

                    /**
                     * Creates a new CryptoDeterministicConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CryptoDeterministicConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICryptoDeterministicConfig): google.privacy.dlp.v2.CryptoDeterministicConfig;

                    /**
                     * Encodes the specified CryptoDeterministicConfig message. Does not implicitly {@link google.privacy.dlp.v2.CryptoDeterministicConfig.verify|verify} messages.
                     * @param message CryptoDeterministicConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICryptoDeterministicConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CryptoDeterministicConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CryptoDeterministicConfig.verify|verify} messages.
                     * @param message CryptoDeterministicConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICryptoDeterministicConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CryptoDeterministicConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CryptoDeterministicConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CryptoDeterministicConfig;

                    /**
                     * Decodes a CryptoDeterministicConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CryptoDeterministicConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CryptoDeterministicConfig;

                    /**
                     * Verifies a CryptoDeterministicConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CryptoDeterministicConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CryptoDeterministicConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CryptoDeterministicConfig;

                    /**
                     * Creates a plain object from a CryptoDeterministicConfig message. Also converts values to other types if specified.
                     * @param message CryptoDeterministicConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CryptoDeterministicConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CryptoDeterministicConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CryptoDeterministicConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReplaceValueConfig. */
                interface IReplaceValueConfig {

                    /** ReplaceValueConfig newValue */
                    newValue?: (google.privacy.dlp.v2.IValue|null);
                }

                /** Represents a ReplaceValueConfig. */
                class ReplaceValueConfig implements IReplaceValueConfig {

                    /**
                     * Constructs a new ReplaceValueConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IReplaceValueConfig);

                    /** ReplaceValueConfig newValue. */
                    public newValue?: (google.privacy.dlp.v2.IValue|null);

                    /**
                     * Creates a new ReplaceValueConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReplaceValueConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IReplaceValueConfig): google.privacy.dlp.v2.ReplaceValueConfig;

                    /**
                     * Encodes the specified ReplaceValueConfig message. Does not implicitly {@link google.privacy.dlp.v2.ReplaceValueConfig.verify|verify} messages.
                     * @param message ReplaceValueConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IReplaceValueConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReplaceValueConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ReplaceValueConfig.verify|verify} messages.
                     * @param message ReplaceValueConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IReplaceValueConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReplaceValueConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReplaceValueConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ReplaceValueConfig;

                    /**
                     * Decodes a ReplaceValueConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReplaceValueConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ReplaceValueConfig;

                    /**
                     * Verifies a ReplaceValueConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReplaceValueConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReplaceValueConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ReplaceValueConfig;

                    /**
                     * Creates a plain object from a ReplaceValueConfig message. Also converts values to other types if specified.
                     * @param message ReplaceValueConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ReplaceValueConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReplaceValueConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReplaceValueConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReplaceDictionaryConfig. */
                interface IReplaceDictionaryConfig {

                    /** ReplaceDictionaryConfig wordList */
                    wordList?: (google.privacy.dlp.v2.CustomInfoType.Dictionary.IWordList|null);
                }

                /** Represents a ReplaceDictionaryConfig. */
                class ReplaceDictionaryConfig implements IReplaceDictionaryConfig {

                    /**
                     * Constructs a new ReplaceDictionaryConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IReplaceDictionaryConfig);

                    /** ReplaceDictionaryConfig wordList. */
                    public wordList?: (google.privacy.dlp.v2.CustomInfoType.Dictionary.IWordList|null);

                    /** ReplaceDictionaryConfig type. */
                    public type?: "wordList";

                    /**
                     * Creates a new ReplaceDictionaryConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReplaceDictionaryConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IReplaceDictionaryConfig): google.privacy.dlp.v2.ReplaceDictionaryConfig;

                    /**
                     * Encodes the specified ReplaceDictionaryConfig message. Does not implicitly {@link google.privacy.dlp.v2.ReplaceDictionaryConfig.verify|verify} messages.
                     * @param message ReplaceDictionaryConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IReplaceDictionaryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReplaceDictionaryConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ReplaceDictionaryConfig.verify|verify} messages.
                     * @param message ReplaceDictionaryConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IReplaceDictionaryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReplaceDictionaryConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReplaceDictionaryConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ReplaceDictionaryConfig;

                    /**
                     * Decodes a ReplaceDictionaryConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReplaceDictionaryConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ReplaceDictionaryConfig;

                    /**
                     * Verifies a ReplaceDictionaryConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReplaceDictionaryConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReplaceDictionaryConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ReplaceDictionaryConfig;

                    /**
                     * Creates a plain object from a ReplaceDictionaryConfig message. Also converts values to other types if specified.
                     * @param message ReplaceDictionaryConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ReplaceDictionaryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReplaceDictionaryConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReplaceDictionaryConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ReplaceWithInfoTypeConfig. */
                interface IReplaceWithInfoTypeConfig {
                }

                /** Represents a ReplaceWithInfoTypeConfig. */
                class ReplaceWithInfoTypeConfig implements IReplaceWithInfoTypeConfig {

                    /**
                     * Constructs a new ReplaceWithInfoTypeConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IReplaceWithInfoTypeConfig);

                    /**
                     * Creates a new ReplaceWithInfoTypeConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ReplaceWithInfoTypeConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IReplaceWithInfoTypeConfig): google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;

                    /**
                     * Encodes the specified ReplaceWithInfoTypeConfig message. Does not implicitly {@link google.privacy.dlp.v2.ReplaceWithInfoTypeConfig.verify|verify} messages.
                     * @param message ReplaceWithInfoTypeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IReplaceWithInfoTypeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ReplaceWithInfoTypeConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ReplaceWithInfoTypeConfig.verify|verify} messages.
                     * @param message ReplaceWithInfoTypeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IReplaceWithInfoTypeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ReplaceWithInfoTypeConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ReplaceWithInfoTypeConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;

                    /**
                     * Decodes a ReplaceWithInfoTypeConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ReplaceWithInfoTypeConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;

                    /**
                     * Verifies a ReplaceWithInfoTypeConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ReplaceWithInfoTypeConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ReplaceWithInfoTypeConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ReplaceWithInfoTypeConfig;

                    /**
                     * Creates a plain object from a ReplaceWithInfoTypeConfig message. Also converts values to other types if specified.
                     * @param message ReplaceWithInfoTypeConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ReplaceWithInfoTypeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ReplaceWithInfoTypeConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ReplaceWithInfoTypeConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RedactConfig. */
                interface IRedactConfig {
                }

                /** Represents a RedactConfig. */
                class RedactConfig implements IRedactConfig {

                    /**
                     * Constructs a new RedactConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRedactConfig);

                    /**
                     * Creates a new RedactConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RedactConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRedactConfig): google.privacy.dlp.v2.RedactConfig;

                    /**
                     * Encodes the specified RedactConfig message. Does not implicitly {@link google.privacy.dlp.v2.RedactConfig.verify|verify} messages.
                     * @param message RedactConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRedactConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RedactConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RedactConfig.verify|verify} messages.
                     * @param message RedactConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRedactConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RedactConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RedactConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RedactConfig;

                    /**
                     * Decodes a RedactConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RedactConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RedactConfig;

                    /**
                     * Verifies a RedactConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RedactConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RedactConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RedactConfig;

                    /**
                     * Creates a plain object from a RedactConfig message. Also converts values to other types if specified.
                     * @param message RedactConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RedactConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RedactConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RedactConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CharsToIgnore. */
                interface ICharsToIgnore {

                    /** CharsToIgnore charactersToSkip */
                    charactersToSkip?: (string|null);

                    /** CharsToIgnore commonCharactersToIgnore */
                    commonCharactersToIgnore?: (google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnore|keyof typeof google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnore|null);
                }

                /** Represents a CharsToIgnore. */
                class CharsToIgnore implements ICharsToIgnore {

                    /**
                     * Constructs a new CharsToIgnore.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICharsToIgnore);

                    /** CharsToIgnore charactersToSkip. */
                    public charactersToSkip?: (string|null);

                    /** CharsToIgnore commonCharactersToIgnore. */
                    public commonCharactersToIgnore?: (google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnore|keyof typeof google.privacy.dlp.v2.CharsToIgnore.CommonCharsToIgnore|null);

                    /** CharsToIgnore characters. */
                    public characters?: ("charactersToSkip"|"commonCharactersToIgnore");

                    /**
                     * Creates a new CharsToIgnore instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CharsToIgnore instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICharsToIgnore): google.privacy.dlp.v2.CharsToIgnore;

                    /**
                     * Encodes the specified CharsToIgnore message. Does not implicitly {@link google.privacy.dlp.v2.CharsToIgnore.verify|verify} messages.
                     * @param message CharsToIgnore message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICharsToIgnore, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CharsToIgnore message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CharsToIgnore.verify|verify} messages.
                     * @param message CharsToIgnore message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICharsToIgnore, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CharsToIgnore message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CharsToIgnore
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CharsToIgnore;

                    /**
                     * Decodes a CharsToIgnore message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CharsToIgnore
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CharsToIgnore;

                    /**
                     * Verifies a CharsToIgnore message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CharsToIgnore message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CharsToIgnore
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CharsToIgnore;

                    /**
                     * Creates a plain object from a CharsToIgnore message. Also converts values to other types if specified.
                     * @param message CharsToIgnore
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CharsToIgnore, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CharsToIgnore to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CharsToIgnore
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CharsToIgnore {

                    /** CommonCharsToIgnore enum. */
                    enum CommonCharsToIgnore {
                        COMMON_CHARS_TO_IGNORE_UNSPECIFIED = 0,
                        NUMERIC = 1,
                        ALPHA_UPPER_CASE = 2,
                        ALPHA_LOWER_CASE = 3,
                        PUNCTUATION = 4,
                        WHITESPACE = 5
                    }
                }

                /** Properties of a CharacterMaskConfig. */
                interface ICharacterMaskConfig {

                    /** CharacterMaskConfig maskingCharacter */
                    maskingCharacter?: (string|null);

                    /** CharacterMaskConfig numberToMask */
                    numberToMask?: (number|null);

                    /** CharacterMaskConfig reverseOrder */
                    reverseOrder?: (boolean|null);

                    /** CharacterMaskConfig charactersToIgnore */
                    charactersToIgnore?: (google.privacy.dlp.v2.ICharsToIgnore[]|null);
                }

                /** Represents a CharacterMaskConfig. */
                class CharacterMaskConfig implements ICharacterMaskConfig {

                    /**
                     * Constructs a new CharacterMaskConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICharacterMaskConfig);

                    /** CharacterMaskConfig maskingCharacter. */
                    public maskingCharacter: string;

                    /** CharacterMaskConfig numberToMask. */
                    public numberToMask: number;

                    /** CharacterMaskConfig reverseOrder. */
                    public reverseOrder: boolean;

                    /** CharacterMaskConfig charactersToIgnore. */
                    public charactersToIgnore: google.privacy.dlp.v2.ICharsToIgnore[];

                    /**
                     * Creates a new CharacterMaskConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CharacterMaskConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICharacterMaskConfig): google.privacy.dlp.v2.CharacterMaskConfig;

                    /**
                     * Encodes the specified CharacterMaskConfig message. Does not implicitly {@link google.privacy.dlp.v2.CharacterMaskConfig.verify|verify} messages.
                     * @param message CharacterMaskConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICharacterMaskConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CharacterMaskConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CharacterMaskConfig.verify|verify} messages.
                     * @param message CharacterMaskConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICharacterMaskConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CharacterMaskConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CharacterMaskConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CharacterMaskConfig;

                    /**
                     * Decodes a CharacterMaskConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CharacterMaskConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CharacterMaskConfig;

                    /**
                     * Verifies a CharacterMaskConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CharacterMaskConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CharacterMaskConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CharacterMaskConfig;

                    /**
                     * Creates a plain object from a CharacterMaskConfig message. Also converts values to other types if specified.
                     * @param message CharacterMaskConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CharacterMaskConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CharacterMaskConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CharacterMaskConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FixedSizeBucketingConfig. */
                interface IFixedSizeBucketingConfig {

                    /** FixedSizeBucketingConfig lowerBound */
                    lowerBound?: (google.privacy.dlp.v2.IValue|null);

                    /** FixedSizeBucketingConfig upperBound */
                    upperBound?: (google.privacy.dlp.v2.IValue|null);

                    /** FixedSizeBucketingConfig bucketSize */
                    bucketSize?: (number|null);
                }

                /** Represents a FixedSizeBucketingConfig. */
                class FixedSizeBucketingConfig implements IFixedSizeBucketingConfig {

                    /**
                     * Constructs a new FixedSizeBucketingConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IFixedSizeBucketingConfig);

                    /** FixedSizeBucketingConfig lowerBound. */
                    public lowerBound?: (google.privacy.dlp.v2.IValue|null);

                    /** FixedSizeBucketingConfig upperBound. */
                    public upperBound?: (google.privacy.dlp.v2.IValue|null);

                    /** FixedSizeBucketingConfig bucketSize. */
                    public bucketSize: number;

                    /**
                     * Creates a new FixedSizeBucketingConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FixedSizeBucketingConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFixedSizeBucketingConfig): google.privacy.dlp.v2.FixedSizeBucketingConfig;

                    /**
                     * Encodes the specified FixedSizeBucketingConfig message. Does not implicitly {@link google.privacy.dlp.v2.FixedSizeBucketingConfig.verify|verify} messages.
                     * @param message FixedSizeBucketingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFixedSizeBucketingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FixedSizeBucketingConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.FixedSizeBucketingConfig.verify|verify} messages.
                     * @param message FixedSizeBucketingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFixedSizeBucketingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FixedSizeBucketingConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FixedSizeBucketingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.FixedSizeBucketingConfig;

                    /**
                     * Decodes a FixedSizeBucketingConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FixedSizeBucketingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.FixedSizeBucketingConfig;

                    /**
                     * Verifies a FixedSizeBucketingConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FixedSizeBucketingConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FixedSizeBucketingConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FixedSizeBucketingConfig;

                    /**
                     * Creates a plain object from a FixedSizeBucketingConfig message. Also converts values to other types if specified.
                     * @param message FixedSizeBucketingConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.FixedSizeBucketingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FixedSizeBucketingConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FixedSizeBucketingConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BucketingConfig. */
                interface IBucketingConfig {

                    /** BucketingConfig buckets */
                    buckets?: (google.privacy.dlp.v2.BucketingConfig.IBucket[]|null);
                }

                /** Represents a BucketingConfig. */
                class BucketingConfig implements IBucketingConfig {

                    /**
                     * Constructs a new BucketingConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IBucketingConfig);

                    /** BucketingConfig buckets. */
                    public buckets: google.privacy.dlp.v2.BucketingConfig.IBucket[];

                    /**
                     * Creates a new BucketingConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BucketingConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IBucketingConfig): google.privacy.dlp.v2.BucketingConfig;

                    /**
                     * Encodes the specified BucketingConfig message. Does not implicitly {@link google.privacy.dlp.v2.BucketingConfig.verify|verify} messages.
                     * @param message BucketingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IBucketingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BucketingConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.BucketingConfig.verify|verify} messages.
                     * @param message BucketingConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IBucketingConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BucketingConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BucketingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.BucketingConfig;

                    /**
                     * Decodes a BucketingConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BucketingConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.BucketingConfig;

                    /**
                     * Verifies a BucketingConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BucketingConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BucketingConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BucketingConfig;

                    /**
                     * Creates a plain object from a BucketingConfig message. Also converts values to other types if specified.
                     * @param message BucketingConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.BucketingConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BucketingConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BucketingConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BucketingConfig {

                    /** Properties of a Bucket. */
                    interface IBucket {

                        /** Bucket min */
                        min?: (google.privacy.dlp.v2.IValue|null);

                        /** Bucket max */
                        max?: (google.privacy.dlp.v2.IValue|null);

                        /** Bucket replacementValue */
                        replacementValue?: (google.privacy.dlp.v2.IValue|null);
                    }

                    /** Represents a Bucket. */
                    class Bucket implements IBucket {

                        /**
                         * Constructs a new Bucket.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.BucketingConfig.IBucket);

                        /** Bucket min. */
                        public min?: (google.privacy.dlp.v2.IValue|null);

                        /** Bucket max. */
                        public max?: (google.privacy.dlp.v2.IValue|null);

                        /** Bucket replacementValue. */
                        public replacementValue?: (google.privacy.dlp.v2.IValue|null);

                        /**
                         * Creates a new Bucket instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Bucket instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.BucketingConfig.IBucket): google.privacy.dlp.v2.BucketingConfig.Bucket;

                        /**
                         * Encodes the specified Bucket message. Does not implicitly {@link google.privacy.dlp.v2.BucketingConfig.Bucket.verify|verify} messages.
                         * @param message Bucket message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.BucketingConfig.IBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Bucket message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.BucketingConfig.Bucket.verify|verify} messages.
                         * @param message Bucket message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.BucketingConfig.IBucket, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Bucket message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Bucket
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.BucketingConfig.Bucket;

                        /**
                         * Decodes a Bucket message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Bucket
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.BucketingConfig.Bucket;

                        /**
                         * Verifies a Bucket message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Bucket message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Bucket
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BucketingConfig.Bucket;

                        /**
                         * Creates a plain object from a Bucket message. Also converts values to other types if specified.
                         * @param message Bucket
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.BucketingConfig.Bucket, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Bucket to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Bucket
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a CryptoReplaceFfxFpeConfig. */
                interface ICryptoReplaceFfxFpeConfig {

                    /** CryptoReplaceFfxFpeConfig cryptoKey */
                    cryptoKey?: (google.privacy.dlp.v2.ICryptoKey|null);

                    /** CryptoReplaceFfxFpeConfig context */
                    context?: (google.privacy.dlp.v2.IFieldId|null);

                    /** CryptoReplaceFfxFpeConfig commonAlphabet */
                    commonAlphabet?: (google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet|keyof typeof google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet|null);

                    /** CryptoReplaceFfxFpeConfig customAlphabet */
                    customAlphabet?: (string|null);

                    /** CryptoReplaceFfxFpeConfig radix */
                    radix?: (number|null);

                    /** CryptoReplaceFfxFpeConfig surrogateInfoType */
                    surrogateInfoType?: (google.privacy.dlp.v2.IInfoType|null);
                }

                /** Represents a CryptoReplaceFfxFpeConfig. */
                class CryptoReplaceFfxFpeConfig implements ICryptoReplaceFfxFpeConfig {

                    /**
                     * Constructs a new CryptoReplaceFfxFpeConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICryptoReplaceFfxFpeConfig);

                    /** CryptoReplaceFfxFpeConfig cryptoKey. */
                    public cryptoKey?: (google.privacy.dlp.v2.ICryptoKey|null);

                    /** CryptoReplaceFfxFpeConfig context. */
                    public context?: (google.privacy.dlp.v2.IFieldId|null);

                    /** CryptoReplaceFfxFpeConfig commonAlphabet. */
                    public commonAlphabet?: (google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet|keyof typeof google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.FfxCommonNativeAlphabet|null);

                    /** CryptoReplaceFfxFpeConfig customAlphabet. */
                    public customAlphabet?: (string|null);

                    /** CryptoReplaceFfxFpeConfig radix. */
                    public radix?: (number|null);

                    /** CryptoReplaceFfxFpeConfig surrogateInfoType. */
                    public surrogateInfoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** CryptoReplaceFfxFpeConfig alphabet. */
                    public alphabet?: ("commonAlphabet"|"customAlphabet"|"radix");

                    /**
                     * Creates a new CryptoReplaceFfxFpeConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CryptoReplaceFfxFpeConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICryptoReplaceFfxFpeConfig): google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;

                    /**
                     * Encodes the specified CryptoReplaceFfxFpeConfig message. Does not implicitly {@link google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.verify|verify} messages.
                     * @param message CryptoReplaceFfxFpeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICryptoReplaceFfxFpeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CryptoReplaceFfxFpeConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig.verify|verify} messages.
                     * @param message CryptoReplaceFfxFpeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICryptoReplaceFfxFpeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CryptoReplaceFfxFpeConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CryptoReplaceFfxFpeConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;

                    /**
                     * Decodes a CryptoReplaceFfxFpeConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CryptoReplaceFfxFpeConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;

                    /**
                     * Verifies a CryptoReplaceFfxFpeConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CryptoReplaceFfxFpeConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CryptoReplaceFfxFpeConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig;

                    /**
                     * Creates a plain object from a CryptoReplaceFfxFpeConfig message. Also converts values to other types if specified.
                     * @param message CryptoReplaceFfxFpeConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CryptoReplaceFfxFpeConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CryptoReplaceFfxFpeConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CryptoReplaceFfxFpeConfig {

                    /** FfxCommonNativeAlphabet enum. */
                    enum FfxCommonNativeAlphabet {
                        FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED = 0,
                        NUMERIC = 1,
                        HEXADECIMAL = 2,
                        UPPER_CASE_ALPHA_NUMERIC = 3,
                        ALPHA_NUMERIC = 4
                    }
                }

                /** Properties of a CryptoKey. */
                interface ICryptoKey {

                    /** CryptoKey transient */
                    transient?: (google.privacy.dlp.v2.ITransientCryptoKey|null);

                    /** CryptoKey unwrapped */
                    unwrapped?: (google.privacy.dlp.v2.IUnwrappedCryptoKey|null);

                    /** CryptoKey kmsWrapped */
                    kmsWrapped?: (google.privacy.dlp.v2.IKmsWrappedCryptoKey|null);
                }

                /** Represents a CryptoKey. */
                class CryptoKey implements ICryptoKey {

                    /**
                     * Constructs a new CryptoKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICryptoKey);

                    /** CryptoKey transient. */
                    public transient?: (google.privacy.dlp.v2.ITransientCryptoKey|null);

                    /** CryptoKey unwrapped. */
                    public unwrapped?: (google.privacy.dlp.v2.IUnwrappedCryptoKey|null);

                    /** CryptoKey kmsWrapped. */
                    public kmsWrapped?: (google.privacy.dlp.v2.IKmsWrappedCryptoKey|null);

                    /** CryptoKey source. */
                    public source?: ("transient"|"unwrapped"|"kmsWrapped");

                    /**
                     * Creates a new CryptoKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CryptoKey instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICryptoKey): google.privacy.dlp.v2.CryptoKey;

                    /**
                     * Encodes the specified CryptoKey message. Does not implicitly {@link google.privacy.dlp.v2.CryptoKey.verify|verify} messages.
                     * @param message CryptoKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICryptoKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CryptoKey message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CryptoKey.verify|verify} messages.
                     * @param message CryptoKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICryptoKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CryptoKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CryptoKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CryptoKey;

                    /**
                     * Decodes a CryptoKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CryptoKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CryptoKey;

                    /**
                     * Verifies a CryptoKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CryptoKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CryptoKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CryptoKey;

                    /**
                     * Creates a plain object from a CryptoKey message. Also converts values to other types if specified.
                     * @param message CryptoKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CryptoKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CryptoKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CryptoKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TransientCryptoKey. */
                interface ITransientCryptoKey {

                    /** TransientCryptoKey name */
                    name?: (string|null);
                }

                /** Represents a TransientCryptoKey. */
                class TransientCryptoKey implements ITransientCryptoKey {

                    /**
                     * Constructs a new TransientCryptoKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransientCryptoKey);

                    /** TransientCryptoKey name. */
                    public name: string;

                    /**
                     * Creates a new TransientCryptoKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransientCryptoKey instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransientCryptoKey): google.privacy.dlp.v2.TransientCryptoKey;

                    /**
                     * Encodes the specified TransientCryptoKey message. Does not implicitly {@link google.privacy.dlp.v2.TransientCryptoKey.verify|verify} messages.
                     * @param message TransientCryptoKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransientCryptoKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransientCryptoKey message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransientCryptoKey.verify|verify} messages.
                     * @param message TransientCryptoKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransientCryptoKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransientCryptoKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransientCryptoKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransientCryptoKey;

                    /**
                     * Decodes a TransientCryptoKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransientCryptoKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransientCryptoKey;

                    /**
                     * Verifies a TransientCryptoKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransientCryptoKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransientCryptoKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransientCryptoKey;

                    /**
                     * Creates a plain object from a TransientCryptoKey message. Also converts values to other types if specified.
                     * @param message TransientCryptoKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransientCryptoKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransientCryptoKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransientCryptoKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UnwrappedCryptoKey. */
                interface IUnwrappedCryptoKey {

                    /** UnwrappedCryptoKey key */
                    key?: (Uint8Array|string|null);
                }

                /** Represents an UnwrappedCryptoKey. */
                class UnwrappedCryptoKey implements IUnwrappedCryptoKey {

                    /**
                     * Constructs a new UnwrappedCryptoKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IUnwrappedCryptoKey);

                    /** UnwrappedCryptoKey key. */
                    public key: (Uint8Array|string);

                    /**
                     * Creates a new UnwrappedCryptoKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UnwrappedCryptoKey instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IUnwrappedCryptoKey): google.privacy.dlp.v2.UnwrappedCryptoKey;

                    /**
                     * Encodes the specified UnwrappedCryptoKey message. Does not implicitly {@link google.privacy.dlp.v2.UnwrappedCryptoKey.verify|verify} messages.
                     * @param message UnwrappedCryptoKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IUnwrappedCryptoKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UnwrappedCryptoKey message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.UnwrappedCryptoKey.verify|verify} messages.
                     * @param message UnwrappedCryptoKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IUnwrappedCryptoKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UnwrappedCryptoKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UnwrappedCryptoKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.UnwrappedCryptoKey;

                    /**
                     * Decodes an UnwrappedCryptoKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UnwrappedCryptoKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.UnwrappedCryptoKey;

                    /**
                     * Verifies an UnwrappedCryptoKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UnwrappedCryptoKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UnwrappedCryptoKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.UnwrappedCryptoKey;

                    /**
                     * Creates a plain object from an UnwrappedCryptoKey message. Also converts values to other types if specified.
                     * @param message UnwrappedCryptoKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.UnwrappedCryptoKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UnwrappedCryptoKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UnwrappedCryptoKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a KmsWrappedCryptoKey. */
                interface IKmsWrappedCryptoKey {

                    /** KmsWrappedCryptoKey wrappedKey */
                    wrappedKey?: (Uint8Array|string|null);

                    /** KmsWrappedCryptoKey cryptoKeyName */
                    cryptoKeyName?: (string|null);
                }

                /** Represents a KmsWrappedCryptoKey. */
                class KmsWrappedCryptoKey implements IKmsWrappedCryptoKey {

                    /**
                     * Constructs a new KmsWrappedCryptoKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IKmsWrappedCryptoKey);

                    /** KmsWrappedCryptoKey wrappedKey. */
                    public wrappedKey: (Uint8Array|string);

                    /** KmsWrappedCryptoKey cryptoKeyName. */
                    public cryptoKeyName: string;

                    /**
                     * Creates a new KmsWrappedCryptoKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KmsWrappedCryptoKey instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IKmsWrappedCryptoKey): google.privacy.dlp.v2.KmsWrappedCryptoKey;

                    /**
                     * Encodes the specified KmsWrappedCryptoKey message. Does not implicitly {@link google.privacy.dlp.v2.KmsWrappedCryptoKey.verify|verify} messages.
                     * @param message KmsWrappedCryptoKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IKmsWrappedCryptoKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified KmsWrappedCryptoKey message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.KmsWrappedCryptoKey.verify|verify} messages.
                     * @param message KmsWrappedCryptoKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IKmsWrappedCryptoKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a KmsWrappedCryptoKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KmsWrappedCryptoKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.KmsWrappedCryptoKey;

                    /**
                     * Decodes a KmsWrappedCryptoKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KmsWrappedCryptoKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.KmsWrappedCryptoKey;

                    /**
                     * Verifies a KmsWrappedCryptoKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a KmsWrappedCryptoKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KmsWrappedCryptoKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.KmsWrappedCryptoKey;

                    /**
                     * Creates a plain object from a KmsWrappedCryptoKey message. Also converts values to other types if specified.
                     * @param message KmsWrappedCryptoKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.KmsWrappedCryptoKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this KmsWrappedCryptoKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for KmsWrappedCryptoKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DateShiftConfig. */
                interface IDateShiftConfig {

                    /** DateShiftConfig upperBoundDays */
                    upperBoundDays?: (number|null);

                    /** DateShiftConfig lowerBoundDays */
                    lowerBoundDays?: (number|null);

                    /** DateShiftConfig context */
                    context?: (google.privacy.dlp.v2.IFieldId|null);

                    /** DateShiftConfig cryptoKey */
                    cryptoKey?: (google.privacy.dlp.v2.ICryptoKey|null);
                }

                /** Represents a DateShiftConfig. */
                class DateShiftConfig implements IDateShiftConfig {

                    /**
                     * Constructs a new DateShiftConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDateShiftConfig);

                    /** DateShiftConfig upperBoundDays. */
                    public upperBoundDays: number;

                    /** DateShiftConfig lowerBoundDays. */
                    public lowerBoundDays: number;

                    /** DateShiftConfig context. */
                    public context?: (google.privacy.dlp.v2.IFieldId|null);

                    /** DateShiftConfig cryptoKey. */
                    public cryptoKey?: (google.privacy.dlp.v2.ICryptoKey|null);

                    /** DateShiftConfig method. */
                    public method?: "cryptoKey";

                    /**
                     * Creates a new DateShiftConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DateShiftConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDateShiftConfig): google.privacy.dlp.v2.DateShiftConfig;

                    /**
                     * Encodes the specified DateShiftConfig message. Does not implicitly {@link google.privacy.dlp.v2.DateShiftConfig.verify|verify} messages.
                     * @param message DateShiftConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDateShiftConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DateShiftConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DateShiftConfig.verify|verify} messages.
                     * @param message DateShiftConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDateShiftConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DateShiftConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DateShiftConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DateShiftConfig;

                    /**
                     * Decodes a DateShiftConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DateShiftConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DateShiftConfig;

                    /**
                     * Verifies a DateShiftConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DateShiftConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DateShiftConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DateShiftConfig;

                    /**
                     * Creates a plain object from a DateShiftConfig message. Also converts values to other types if specified.
                     * @param message DateShiftConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DateShiftConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DateShiftConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DateShiftConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InfoTypeTransformations. */
                interface IInfoTypeTransformations {

                    /** InfoTypeTransformations transformations */
                    transformations?: (google.privacy.dlp.v2.InfoTypeTransformations.IInfoTypeTransformation[]|null);
                }

                /** Represents an InfoTypeTransformations. */
                class InfoTypeTransformations implements IInfoTypeTransformations {

                    /**
                     * Constructs a new InfoTypeTransformations.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInfoTypeTransformations);

                    /** InfoTypeTransformations transformations. */
                    public transformations: google.privacy.dlp.v2.InfoTypeTransformations.IInfoTypeTransformation[];

                    /**
                     * Creates a new InfoTypeTransformations instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InfoTypeTransformations instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInfoTypeTransformations): google.privacy.dlp.v2.InfoTypeTransformations;

                    /**
                     * Encodes the specified InfoTypeTransformations message. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeTransformations.verify|verify} messages.
                     * @param message InfoTypeTransformations message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInfoTypeTransformations, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InfoTypeTransformations message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeTransformations.verify|verify} messages.
                     * @param message InfoTypeTransformations message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInfoTypeTransformations, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InfoTypeTransformations message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InfoTypeTransformations
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InfoTypeTransformations;

                    /**
                     * Decodes an InfoTypeTransformations message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InfoTypeTransformations
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InfoTypeTransformations;

                    /**
                     * Verifies an InfoTypeTransformations message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InfoTypeTransformations message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InfoTypeTransformations
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InfoTypeTransformations;

                    /**
                     * Creates a plain object from an InfoTypeTransformations message. Also converts values to other types if specified.
                     * @param message InfoTypeTransformations
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InfoTypeTransformations, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InfoTypeTransformations to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InfoTypeTransformations
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace InfoTypeTransformations {

                    /** Properties of an InfoTypeTransformation. */
                    interface IInfoTypeTransformation {

                        /** InfoTypeTransformation infoTypes */
                        infoTypes?: (google.privacy.dlp.v2.IInfoType[]|null);

                        /** InfoTypeTransformation primitiveTransformation */
                        primitiveTransformation?: (google.privacy.dlp.v2.IPrimitiveTransformation|null);
                    }

                    /** Represents an InfoTypeTransformation. */
                    class InfoTypeTransformation implements IInfoTypeTransformation {

                        /**
                         * Constructs a new InfoTypeTransformation.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.InfoTypeTransformations.IInfoTypeTransformation);

                        /** InfoTypeTransformation infoTypes. */
                        public infoTypes: google.privacy.dlp.v2.IInfoType[];

                        /** InfoTypeTransformation primitiveTransformation. */
                        public primitiveTransformation?: (google.privacy.dlp.v2.IPrimitiveTransformation|null);

                        /**
                         * Creates a new InfoTypeTransformation instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns InfoTypeTransformation instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.InfoTypeTransformations.IInfoTypeTransformation): google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;

                        /**
                         * Encodes the specified InfoTypeTransformation message. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation.verify|verify} messages.
                         * @param message InfoTypeTransformation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.InfoTypeTransformations.IInfoTypeTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified InfoTypeTransformation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation.verify|verify} messages.
                         * @param message InfoTypeTransformation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.InfoTypeTransformations.IInfoTypeTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an InfoTypeTransformation message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns InfoTypeTransformation
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;

                        /**
                         * Decodes an InfoTypeTransformation message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns InfoTypeTransformation
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;

                        /**
                         * Verifies an InfoTypeTransformation message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an InfoTypeTransformation message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns InfoTypeTransformation
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation;

                        /**
                         * Creates a plain object from an InfoTypeTransformation message. Also converts values to other types if specified.
                         * @param message InfoTypeTransformation
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this InfoTypeTransformation to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for InfoTypeTransformation
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a FieldTransformation. */
                interface IFieldTransformation {

                    /** FieldTransformation fields */
                    fields?: (google.privacy.dlp.v2.IFieldId[]|null);

                    /** FieldTransformation condition */
                    condition?: (google.privacy.dlp.v2.IRecordCondition|null);

                    /** FieldTransformation primitiveTransformation */
                    primitiveTransformation?: (google.privacy.dlp.v2.IPrimitiveTransformation|null);

                    /** FieldTransformation infoTypeTransformations */
                    infoTypeTransformations?: (google.privacy.dlp.v2.IInfoTypeTransformations|null);
                }

                /** Represents a FieldTransformation. */
                class FieldTransformation implements IFieldTransformation {

                    /**
                     * Constructs a new FieldTransformation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IFieldTransformation);

                    /** FieldTransformation fields. */
                    public fields: google.privacy.dlp.v2.IFieldId[];

                    /** FieldTransformation condition. */
                    public condition?: (google.privacy.dlp.v2.IRecordCondition|null);

                    /** FieldTransformation primitiveTransformation. */
                    public primitiveTransformation?: (google.privacy.dlp.v2.IPrimitiveTransformation|null);

                    /** FieldTransformation infoTypeTransformations. */
                    public infoTypeTransformations?: (google.privacy.dlp.v2.IInfoTypeTransformations|null);

                    /** FieldTransformation transformation. */
                    public transformation?: ("primitiveTransformation"|"infoTypeTransformations");

                    /**
                     * Creates a new FieldTransformation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FieldTransformation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFieldTransformation): google.privacy.dlp.v2.FieldTransformation;

                    /**
                     * Encodes the specified FieldTransformation message. Does not implicitly {@link google.privacy.dlp.v2.FieldTransformation.verify|verify} messages.
                     * @param message FieldTransformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFieldTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FieldTransformation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.FieldTransformation.verify|verify} messages.
                     * @param message FieldTransformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFieldTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FieldTransformation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FieldTransformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.FieldTransformation;

                    /**
                     * Decodes a FieldTransformation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FieldTransformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.FieldTransformation;

                    /**
                     * Verifies a FieldTransformation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FieldTransformation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FieldTransformation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FieldTransformation;

                    /**
                     * Creates a plain object from a FieldTransformation message. Also converts values to other types if specified.
                     * @param message FieldTransformation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.FieldTransformation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FieldTransformation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FieldTransformation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RecordTransformations. */
                interface IRecordTransformations {

                    /** RecordTransformations fieldTransformations */
                    fieldTransformations?: (google.privacy.dlp.v2.IFieldTransformation[]|null);

                    /** RecordTransformations recordSuppressions */
                    recordSuppressions?: (google.privacy.dlp.v2.IRecordSuppression[]|null);
                }

                /** Represents a RecordTransformations. */
                class RecordTransformations implements IRecordTransformations {

                    /**
                     * Constructs a new RecordTransformations.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRecordTransformations);

                    /** RecordTransformations fieldTransformations. */
                    public fieldTransformations: google.privacy.dlp.v2.IFieldTransformation[];

                    /** RecordTransformations recordSuppressions. */
                    public recordSuppressions: google.privacy.dlp.v2.IRecordSuppression[];

                    /**
                     * Creates a new RecordTransformations instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecordTransformations instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRecordTransformations): google.privacy.dlp.v2.RecordTransformations;

                    /**
                     * Encodes the specified RecordTransformations message. Does not implicitly {@link google.privacy.dlp.v2.RecordTransformations.verify|verify} messages.
                     * @param message RecordTransformations message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRecordTransformations, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecordTransformations message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RecordTransformations.verify|verify} messages.
                     * @param message RecordTransformations message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRecordTransformations, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecordTransformations message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecordTransformations
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RecordTransformations;

                    /**
                     * Decodes a RecordTransformations message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecordTransformations
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RecordTransformations;

                    /**
                     * Verifies a RecordTransformations message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecordTransformations message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecordTransformations
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RecordTransformations;

                    /**
                     * Creates a plain object from a RecordTransformations message. Also converts values to other types if specified.
                     * @param message RecordTransformations
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RecordTransformations, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecordTransformations to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecordTransformations
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RecordSuppression. */
                interface IRecordSuppression {

                    /** RecordSuppression condition */
                    condition?: (google.privacy.dlp.v2.IRecordCondition|null);
                }

                /** Represents a RecordSuppression. */
                class RecordSuppression implements IRecordSuppression {

                    /**
                     * Constructs a new RecordSuppression.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRecordSuppression);

                    /** RecordSuppression condition. */
                    public condition?: (google.privacy.dlp.v2.IRecordCondition|null);

                    /**
                     * Creates a new RecordSuppression instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecordSuppression instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRecordSuppression): google.privacy.dlp.v2.RecordSuppression;

                    /**
                     * Encodes the specified RecordSuppression message. Does not implicitly {@link google.privacy.dlp.v2.RecordSuppression.verify|verify} messages.
                     * @param message RecordSuppression message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRecordSuppression, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecordSuppression message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RecordSuppression.verify|verify} messages.
                     * @param message RecordSuppression message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRecordSuppression, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecordSuppression message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecordSuppression
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RecordSuppression;

                    /**
                     * Decodes a RecordSuppression message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecordSuppression
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RecordSuppression;

                    /**
                     * Verifies a RecordSuppression message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecordSuppression message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecordSuppression
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RecordSuppression;

                    /**
                     * Creates a plain object from a RecordSuppression message. Also converts values to other types if specified.
                     * @param message RecordSuppression
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RecordSuppression, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecordSuppression to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecordSuppression
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RecordCondition. */
                interface IRecordCondition {

                    /** RecordCondition expressions */
                    expressions?: (google.privacy.dlp.v2.RecordCondition.IExpressions|null);
                }

                /** Represents a RecordCondition. */
                class RecordCondition implements IRecordCondition {

                    /**
                     * Constructs a new RecordCondition.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRecordCondition);

                    /** RecordCondition expressions. */
                    public expressions?: (google.privacy.dlp.v2.RecordCondition.IExpressions|null);

                    /**
                     * Creates a new RecordCondition instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecordCondition instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRecordCondition): google.privacy.dlp.v2.RecordCondition;

                    /**
                     * Encodes the specified RecordCondition message. Does not implicitly {@link google.privacy.dlp.v2.RecordCondition.verify|verify} messages.
                     * @param message RecordCondition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRecordCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecordCondition message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RecordCondition.verify|verify} messages.
                     * @param message RecordCondition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRecordCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecordCondition message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecordCondition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RecordCondition;

                    /**
                     * Decodes a RecordCondition message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecordCondition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RecordCondition;

                    /**
                     * Verifies a RecordCondition message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecordCondition message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecordCondition
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RecordCondition;

                    /**
                     * Creates a plain object from a RecordCondition message. Also converts values to other types if specified.
                     * @param message RecordCondition
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RecordCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecordCondition to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecordCondition
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace RecordCondition {

                    /** Properties of a Condition. */
                    interface ICondition {

                        /** Condition field */
                        field?: (google.privacy.dlp.v2.IFieldId|null);

                        /** Condition operator */
                        operator?: (google.privacy.dlp.v2.RelationalOperator|keyof typeof google.privacy.dlp.v2.RelationalOperator|null);

                        /** Condition value */
                        value?: (google.privacy.dlp.v2.IValue|null);
                    }

                    /** Represents a Condition. */
                    class Condition implements ICondition {

                        /**
                         * Constructs a new Condition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.RecordCondition.ICondition);

                        /** Condition field. */
                        public field?: (google.privacy.dlp.v2.IFieldId|null);

                        /** Condition operator. */
                        public operator: (google.privacy.dlp.v2.RelationalOperator|keyof typeof google.privacy.dlp.v2.RelationalOperator);

                        /** Condition value. */
                        public value?: (google.privacy.dlp.v2.IValue|null);

                        /**
                         * Creates a new Condition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Condition instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.RecordCondition.ICondition): google.privacy.dlp.v2.RecordCondition.Condition;

                        /**
                         * Encodes the specified Condition message. Does not implicitly {@link google.privacy.dlp.v2.RecordCondition.Condition.verify|verify} messages.
                         * @param message Condition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.RecordCondition.ICondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Condition message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RecordCondition.Condition.verify|verify} messages.
                         * @param message Condition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.RecordCondition.ICondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Condition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Condition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RecordCondition.Condition;

                        /**
                         * Decodes a Condition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Condition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RecordCondition.Condition;

                        /**
                         * Verifies a Condition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Condition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Condition
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RecordCondition.Condition;

                        /**
                         * Creates a plain object from a Condition message. Also converts values to other types if specified.
                         * @param message Condition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.RecordCondition.Condition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Condition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Condition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Conditions. */
                    interface IConditions {

                        /** Conditions conditions */
                        conditions?: (google.privacy.dlp.v2.RecordCondition.ICondition[]|null);
                    }

                    /** Represents a Conditions. */
                    class Conditions implements IConditions {

                        /**
                         * Constructs a new Conditions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.RecordCondition.IConditions);

                        /** Conditions conditions. */
                        public conditions: google.privacy.dlp.v2.RecordCondition.ICondition[];

                        /**
                         * Creates a new Conditions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Conditions instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.RecordCondition.IConditions): google.privacy.dlp.v2.RecordCondition.Conditions;

                        /**
                         * Encodes the specified Conditions message. Does not implicitly {@link google.privacy.dlp.v2.RecordCondition.Conditions.verify|verify} messages.
                         * @param message Conditions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.RecordCondition.IConditions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Conditions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RecordCondition.Conditions.verify|verify} messages.
                         * @param message Conditions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.RecordCondition.IConditions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Conditions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Conditions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RecordCondition.Conditions;

                        /**
                         * Decodes a Conditions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Conditions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RecordCondition.Conditions;

                        /**
                         * Verifies a Conditions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Conditions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Conditions
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RecordCondition.Conditions;

                        /**
                         * Creates a plain object from a Conditions message. Also converts values to other types if specified.
                         * @param message Conditions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.RecordCondition.Conditions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Conditions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Conditions
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an Expressions. */
                    interface IExpressions {

                        /** Expressions logicalOperator */
                        logicalOperator?: (google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator|keyof typeof google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator|null);

                        /** Expressions conditions */
                        conditions?: (google.privacy.dlp.v2.RecordCondition.IConditions|null);
                    }

                    /** Represents an Expressions. */
                    class Expressions implements IExpressions {

                        /**
                         * Constructs a new Expressions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.RecordCondition.IExpressions);

                        /** Expressions logicalOperator. */
                        public logicalOperator: (google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator|keyof typeof google.privacy.dlp.v2.RecordCondition.Expressions.LogicalOperator);

                        /** Expressions conditions. */
                        public conditions?: (google.privacy.dlp.v2.RecordCondition.IConditions|null);

                        /** Expressions type. */
                        public type?: "conditions";

                        /**
                         * Creates a new Expressions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Expressions instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.RecordCondition.IExpressions): google.privacy.dlp.v2.RecordCondition.Expressions;

                        /**
                         * Encodes the specified Expressions message. Does not implicitly {@link google.privacy.dlp.v2.RecordCondition.Expressions.verify|verify} messages.
                         * @param message Expressions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.RecordCondition.IExpressions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Expressions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RecordCondition.Expressions.verify|verify} messages.
                         * @param message Expressions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.RecordCondition.IExpressions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Expressions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Expressions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RecordCondition.Expressions;

                        /**
                         * Decodes an Expressions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Expressions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RecordCondition.Expressions;

                        /**
                         * Verifies an Expressions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an Expressions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Expressions
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RecordCondition.Expressions;

                        /**
                         * Creates a plain object from an Expressions message. Also converts values to other types if specified.
                         * @param message Expressions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.RecordCondition.Expressions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Expressions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Expressions
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Expressions {

                        /** LogicalOperator enum. */
                        enum LogicalOperator {
                            LOGICAL_OPERATOR_UNSPECIFIED = 0,
                            AND = 1
                        }
                    }
                }

                /** Properties of a TransformationOverview. */
                interface ITransformationOverview {

                    /** TransformationOverview transformedBytes */
                    transformedBytes?: (number|Long|string|null);

                    /** TransformationOverview transformationSummaries */
                    transformationSummaries?: (google.privacy.dlp.v2.ITransformationSummary[]|null);
                }

                /** Represents a TransformationOverview. */
                class TransformationOverview implements ITransformationOverview {

                    /**
                     * Constructs a new TransformationOverview.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransformationOverview);

                    /** TransformationOverview transformedBytes. */
                    public transformedBytes: (number|Long|string);

                    /** TransformationOverview transformationSummaries. */
                    public transformationSummaries: google.privacy.dlp.v2.ITransformationSummary[];

                    /**
                     * Creates a new TransformationOverview instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransformationOverview instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransformationOverview): google.privacy.dlp.v2.TransformationOverview;

                    /**
                     * Encodes the specified TransformationOverview message. Does not implicitly {@link google.privacy.dlp.v2.TransformationOverview.verify|verify} messages.
                     * @param message TransformationOverview message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransformationOverview, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransformationOverview message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationOverview.verify|verify} messages.
                     * @param message TransformationOverview message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransformationOverview, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransformationOverview message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransformationOverview
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationOverview;

                    /**
                     * Decodes a TransformationOverview message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransformationOverview
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationOverview;

                    /**
                     * Verifies a TransformationOverview message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransformationOverview message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransformationOverview
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationOverview;

                    /**
                     * Creates a plain object from a TransformationOverview message. Also converts values to other types if specified.
                     * @param message TransformationOverview
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransformationOverview, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransformationOverview to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransformationOverview
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TransformationSummary. */
                interface ITransformationSummary {

                    /** TransformationSummary infoType */
                    infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** TransformationSummary field */
                    field?: (google.privacy.dlp.v2.IFieldId|null);

                    /** TransformationSummary transformation */
                    transformation?: (google.privacy.dlp.v2.IPrimitiveTransformation|null);

                    /** TransformationSummary fieldTransformations */
                    fieldTransformations?: (google.privacy.dlp.v2.IFieldTransformation[]|null);

                    /** TransformationSummary recordSuppress */
                    recordSuppress?: (google.privacy.dlp.v2.IRecordSuppression|null);

                    /** TransformationSummary results */
                    results?: (google.privacy.dlp.v2.TransformationSummary.ISummaryResult[]|null);

                    /** TransformationSummary transformedBytes */
                    transformedBytes?: (number|Long|string|null);
                }

                /** Represents a TransformationSummary. */
                class TransformationSummary implements ITransformationSummary {

                    /**
                     * Constructs a new TransformationSummary.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransformationSummary);

                    /** TransformationSummary infoType. */
                    public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** TransformationSummary field. */
                    public field?: (google.privacy.dlp.v2.IFieldId|null);

                    /** TransformationSummary transformation. */
                    public transformation?: (google.privacy.dlp.v2.IPrimitiveTransformation|null);

                    /** TransformationSummary fieldTransformations. */
                    public fieldTransformations: google.privacy.dlp.v2.IFieldTransformation[];

                    /** TransformationSummary recordSuppress. */
                    public recordSuppress?: (google.privacy.dlp.v2.IRecordSuppression|null);

                    /** TransformationSummary results. */
                    public results: google.privacy.dlp.v2.TransformationSummary.ISummaryResult[];

                    /** TransformationSummary transformedBytes. */
                    public transformedBytes: (number|Long|string);

                    /**
                     * Creates a new TransformationSummary instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransformationSummary instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransformationSummary): google.privacy.dlp.v2.TransformationSummary;

                    /**
                     * Encodes the specified TransformationSummary message. Does not implicitly {@link google.privacy.dlp.v2.TransformationSummary.verify|verify} messages.
                     * @param message TransformationSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransformationSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransformationSummary message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationSummary.verify|verify} messages.
                     * @param message TransformationSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransformationSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransformationSummary message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransformationSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationSummary;

                    /**
                     * Decodes a TransformationSummary message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransformationSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationSummary;

                    /**
                     * Verifies a TransformationSummary message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransformationSummary message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransformationSummary
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationSummary;

                    /**
                     * Creates a plain object from a TransformationSummary message. Also converts values to other types if specified.
                     * @param message TransformationSummary
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransformationSummary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransformationSummary to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransformationSummary
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TransformationSummary {

                    /** TransformationResultCode enum. */
                    enum TransformationResultCode {
                        TRANSFORMATION_RESULT_CODE_UNSPECIFIED = 0,
                        SUCCESS = 1,
                        ERROR = 2
                    }

                    /** Properties of a SummaryResult. */
                    interface ISummaryResult {

                        /** SummaryResult count */
                        count?: (number|Long|string|null);

                        /** SummaryResult code */
                        code?: (google.privacy.dlp.v2.TransformationSummary.TransformationResultCode|keyof typeof google.privacy.dlp.v2.TransformationSummary.TransformationResultCode|null);

                        /** SummaryResult details */
                        details?: (string|null);
                    }

                    /** Represents a SummaryResult. */
                    class SummaryResult implements ISummaryResult {

                        /**
                         * Constructs a new SummaryResult.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.TransformationSummary.ISummaryResult);

                        /** SummaryResult count. */
                        public count: (number|Long|string);

                        /** SummaryResult code. */
                        public code: (google.privacy.dlp.v2.TransformationSummary.TransformationResultCode|keyof typeof google.privacy.dlp.v2.TransformationSummary.TransformationResultCode);

                        /** SummaryResult details. */
                        public details: string;

                        /**
                         * Creates a new SummaryResult instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SummaryResult instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.TransformationSummary.ISummaryResult): google.privacy.dlp.v2.TransformationSummary.SummaryResult;

                        /**
                         * Encodes the specified SummaryResult message. Does not implicitly {@link google.privacy.dlp.v2.TransformationSummary.SummaryResult.verify|verify} messages.
                         * @param message SummaryResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.TransformationSummary.ISummaryResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SummaryResult message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationSummary.SummaryResult.verify|verify} messages.
                         * @param message SummaryResult message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.TransformationSummary.ISummaryResult, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SummaryResult message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SummaryResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationSummary.SummaryResult;

                        /**
                         * Decodes a SummaryResult message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SummaryResult
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationSummary.SummaryResult;

                        /**
                         * Verifies a SummaryResult message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SummaryResult message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SummaryResult
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationSummary.SummaryResult;

                        /**
                         * Creates a plain object from a SummaryResult message. Also converts values to other types if specified.
                         * @param message SummaryResult
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.TransformationSummary.SummaryResult, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SummaryResult to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SummaryResult
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a TransformationDescription. */
                interface ITransformationDescription {

                    /** TransformationDescription type */
                    type?: (google.privacy.dlp.v2.TransformationType|keyof typeof google.privacy.dlp.v2.TransformationType|null);

                    /** TransformationDescription description */
                    description?: (string|null);

                    /** TransformationDescription condition */
                    condition?: (string|null);

                    /** TransformationDescription infoType */
                    infoType?: (google.privacy.dlp.v2.IInfoType|null);
                }

                /** Represents a TransformationDescription. */
                class TransformationDescription implements ITransformationDescription {

                    /**
                     * Constructs a new TransformationDescription.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransformationDescription);

                    /** TransformationDescription type. */
                    public type: (google.privacy.dlp.v2.TransformationType|keyof typeof google.privacy.dlp.v2.TransformationType);

                    /** TransformationDescription description. */
                    public description: string;

                    /** TransformationDescription condition. */
                    public condition: string;

                    /** TransformationDescription infoType. */
                    public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /**
                     * Creates a new TransformationDescription instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransformationDescription instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransformationDescription): google.privacy.dlp.v2.TransformationDescription;

                    /**
                     * Encodes the specified TransformationDescription message. Does not implicitly {@link google.privacy.dlp.v2.TransformationDescription.verify|verify} messages.
                     * @param message TransformationDescription message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransformationDescription, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransformationDescription message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationDescription.verify|verify} messages.
                     * @param message TransformationDescription message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransformationDescription, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransformationDescription message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransformationDescription
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationDescription;

                    /**
                     * Decodes a TransformationDescription message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransformationDescription
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationDescription;

                    /**
                     * Verifies a TransformationDescription message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransformationDescription message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransformationDescription
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationDescription;

                    /**
                     * Creates a plain object from a TransformationDescription message. Also converts values to other types if specified.
                     * @param message TransformationDescription
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransformationDescription, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransformationDescription to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransformationDescription
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TransformationDetails. */
                interface ITransformationDetails {

                    /** TransformationDetails resourceName */
                    resourceName?: (string|null);

                    /** TransformationDetails containerName */
                    containerName?: (string|null);

                    /** TransformationDetails transformation */
                    transformation?: (google.privacy.dlp.v2.ITransformationDescription[]|null);

                    /** TransformationDetails statusDetails */
                    statusDetails?: (google.privacy.dlp.v2.ITransformationResultStatus|null);

                    /** TransformationDetails transformedBytes */
                    transformedBytes?: (number|Long|string|null);

                    /** TransformationDetails transformationLocation */
                    transformationLocation?: (google.privacy.dlp.v2.ITransformationLocation|null);
                }

                /** Represents a TransformationDetails. */
                class TransformationDetails implements ITransformationDetails {

                    /**
                     * Constructs a new TransformationDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransformationDetails);

                    /** TransformationDetails resourceName. */
                    public resourceName: string;

                    /** TransformationDetails containerName. */
                    public containerName: string;

                    /** TransformationDetails transformation. */
                    public transformation: google.privacy.dlp.v2.ITransformationDescription[];

                    /** TransformationDetails statusDetails. */
                    public statusDetails?: (google.privacy.dlp.v2.ITransformationResultStatus|null);

                    /** TransformationDetails transformedBytes. */
                    public transformedBytes: (number|Long|string);

                    /** TransformationDetails transformationLocation. */
                    public transformationLocation?: (google.privacy.dlp.v2.ITransformationLocation|null);

                    /**
                     * Creates a new TransformationDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransformationDetails instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransformationDetails): google.privacy.dlp.v2.TransformationDetails;

                    /**
                     * Encodes the specified TransformationDetails message. Does not implicitly {@link google.privacy.dlp.v2.TransformationDetails.verify|verify} messages.
                     * @param message TransformationDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransformationDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransformationDetails message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationDetails.verify|verify} messages.
                     * @param message TransformationDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransformationDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransformationDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransformationDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationDetails;

                    /**
                     * Decodes a TransformationDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransformationDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationDetails;

                    /**
                     * Verifies a TransformationDetails message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransformationDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransformationDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationDetails;

                    /**
                     * Creates a plain object from a TransformationDetails message. Also converts values to other types if specified.
                     * @param message TransformationDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransformationDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransformationDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransformationDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TransformationLocation. */
                interface ITransformationLocation {

                    /** TransformationLocation findingId */
                    findingId?: (string|null);

                    /** TransformationLocation recordTransformation */
                    recordTransformation?: (google.privacy.dlp.v2.IRecordTransformation|null);

                    /** TransformationLocation containerType */
                    containerType?: (google.privacy.dlp.v2.TransformationContainerType|keyof typeof google.privacy.dlp.v2.TransformationContainerType|null);
                }

                /** Represents a TransformationLocation. */
                class TransformationLocation implements ITransformationLocation {

                    /**
                     * Constructs a new TransformationLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransformationLocation);

                    /** TransformationLocation findingId. */
                    public findingId?: (string|null);

                    /** TransformationLocation recordTransformation. */
                    public recordTransformation?: (google.privacy.dlp.v2.IRecordTransformation|null);

                    /** TransformationLocation containerType. */
                    public containerType: (google.privacy.dlp.v2.TransformationContainerType|keyof typeof google.privacy.dlp.v2.TransformationContainerType);

                    /** TransformationLocation locationType. */
                    public locationType?: ("findingId"|"recordTransformation");

                    /**
                     * Creates a new TransformationLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransformationLocation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransformationLocation): google.privacy.dlp.v2.TransformationLocation;

                    /**
                     * Encodes the specified TransformationLocation message. Does not implicitly {@link google.privacy.dlp.v2.TransformationLocation.verify|verify} messages.
                     * @param message TransformationLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransformationLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransformationLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationLocation.verify|verify} messages.
                     * @param message TransformationLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransformationLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransformationLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransformationLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationLocation;

                    /**
                     * Decodes a TransformationLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransformationLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationLocation;

                    /**
                     * Verifies a TransformationLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransformationLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransformationLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationLocation;

                    /**
                     * Creates a plain object from a TransformationLocation message. Also converts values to other types if specified.
                     * @param message TransformationLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransformationLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransformationLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransformationLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RecordTransformation. */
                interface IRecordTransformation {

                    /** RecordTransformation fieldId */
                    fieldId?: (google.privacy.dlp.v2.IFieldId|null);

                    /** RecordTransformation containerTimestamp */
                    containerTimestamp?: (google.protobuf.ITimestamp|null);

                    /** RecordTransformation containerVersion */
                    containerVersion?: (string|null);
                }

                /** Represents a RecordTransformation. */
                class RecordTransformation implements IRecordTransformation {

                    /**
                     * Constructs a new RecordTransformation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRecordTransformation);

                    /** RecordTransformation fieldId. */
                    public fieldId?: (google.privacy.dlp.v2.IFieldId|null);

                    /** RecordTransformation containerTimestamp. */
                    public containerTimestamp?: (google.protobuf.ITimestamp|null);

                    /** RecordTransformation containerVersion. */
                    public containerVersion: string;

                    /**
                     * Creates a new RecordTransformation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecordTransformation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRecordTransformation): google.privacy.dlp.v2.RecordTransformation;

                    /**
                     * Encodes the specified RecordTransformation message. Does not implicitly {@link google.privacy.dlp.v2.RecordTransformation.verify|verify} messages.
                     * @param message RecordTransformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRecordTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecordTransformation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RecordTransformation.verify|verify} messages.
                     * @param message RecordTransformation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRecordTransformation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecordTransformation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecordTransformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RecordTransformation;

                    /**
                     * Decodes a RecordTransformation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecordTransformation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RecordTransformation;

                    /**
                     * Verifies a RecordTransformation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecordTransformation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecordTransformation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RecordTransformation;

                    /**
                     * Creates a plain object from a RecordTransformation message. Also converts values to other types if specified.
                     * @param message RecordTransformation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RecordTransformation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecordTransformation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecordTransformation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TransformationResultStatus. */
                interface ITransformationResultStatus {

                    /** TransformationResultStatus resultStatusType */
                    resultStatusType?: (google.privacy.dlp.v2.TransformationResultStatusType|keyof typeof google.privacy.dlp.v2.TransformationResultStatusType|null);

                    /** TransformationResultStatus details */
                    details?: (google.rpc.IStatus|null);
                }

                /** Represents a TransformationResultStatus. */
                class TransformationResultStatus implements ITransformationResultStatus {

                    /**
                     * Constructs a new TransformationResultStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransformationResultStatus);

                    /** TransformationResultStatus resultStatusType. */
                    public resultStatusType: (google.privacy.dlp.v2.TransformationResultStatusType|keyof typeof google.privacy.dlp.v2.TransformationResultStatusType);

                    /** TransformationResultStatus details. */
                    public details?: (google.rpc.IStatus|null);

                    /**
                     * Creates a new TransformationResultStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransformationResultStatus instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransformationResultStatus): google.privacy.dlp.v2.TransformationResultStatus;

                    /**
                     * Encodes the specified TransformationResultStatus message. Does not implicitly {@link google.privacy.dlp.v2.TransformationResultStatus.verify|verify} messages.
                     * @param message TransformationResultStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransformationResultStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransformationResultStatus message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationResultStatus.verify|verify} messages.
                     * @param message TransformationResultStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransformationResultStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransformationResultStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransformationResultStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationResultStatus;

                    /**
                     * Decodes a TransformationResultStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransformationResultStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationResultStatus;

                    /**
                     * Verifies a TransformationResultStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransformationResultStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransformationResultStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationResultStatus;

                    /**
                     * Creates a plain object from a TransformationResultStatus message. Also converts values to other types if specified.
                     * @param message TransformationResultStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransformationResultStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransformationResultStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransformationResultStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** TransformationResultStatusType enum. */
                enum TransformationResultStatusType {
                    STATE_TYPE_UNSPECIFIED = 0,
                    INVALID_TRANSFORM = 1,
                    BIGQUERY_MAX_ROW_SIZE_EXCEEDED = 2,
                    METADATA_UNRETRIEVABLE = 3,
                    SUCCESS = 4
                }

                /** TransformationContainerType enum. */
                enum TransformationContainerType {
                    TRANSFORM_UNKNOWN_CONTAINER = 0,
                    TRANSFORM_BODY = 1,
                    TRANSFORM_METADATA = 2,
                    TRANSFORM_TABLE = 3
                }

                /** TransformationType enum. */
                enum TransformationType {
                    TRANSFORMATION_TYPE_UNSPECIFIED = 0,
                    RECORD_SUPPRESSION = 1,
                    REPLACE_VALUE = 2,
                    REPLACE_DICTIONARY = 15,
                    REDACT = 3,
                    CHARACTER_MASK = 4,
                    CRYPTO_REPLACE_FFX_FPE = 5,
                    FIXED_SIZE_BUCKETING = 6,
                    BUCKETING = 7,
                    REPLACE_WITH_INFO_TYPE = 8,
                    TIME_PART = 9,
                    CRYPTO_HASH = 10,
                    DATE_SHIFT = 12,
                    CRYPTO_DETERMINISTIC_CONFIG = 13,
                    REDACT_IMAGE = 14
                }

                /** Properties of a TransformationDetailsStorageConfig. */
                interface ITransformationDetailsStorageConfig {

                    /** TransformationDetailsStorageConfig table */
                    table?: (google.privacy.dlp.v2.IBigQueryTable|null);
                }

                /** Represents a TransformationDetailsStorageConfig. */
                class TransformationDetailsStorageConfig implements ITransformationDetailsStorageConfig {

                    /**
                     * Constructs a new TransformationDetailsStorageConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransformationDetailsStorageConfig);

                    /** TransformationDetailsStorageConfig table. */
                    public table?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** TransformationDetailsStorageConfig type. */
                    public type?: "table";

                    /**
                     * Creates a new TransformationDetailsStorageConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransformationDetailsStorageConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransformationDetailsStorageConfig): google.privacy.dlp.v2.TransformationDetailsStorageConfig;

                    /**
                     * Encodes the specified TransformationDetailsStorageConfig message. Does not implicitly {@link google.privacy.dlp.v2.TransformationDetailsStorageConfig.verify|verify} messages.
                     * @param message TransformationDetailsStorageConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransformationDetailsStorageConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransformationDetailsStorageConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationDetailsStorageConfig.verify|verify} messages.
                     * @param message TransformationDetailsStorageConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransformationDetailsStorageConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransformationDetailsStorageConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransformationDetailsStorageConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationDetailsStorageConfig;

                    /**
                     * Decodes a TransformationDetailsStorageConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransformationDetailsStorageConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationDetailsStorageConfig;

                    /**
                     * Verifies a TransformationDetailsStorageConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransformationDetailsStorageConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransformationDetailsStorageConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationDetailsStorageConfig;

                    /**
                     * Creates a plain object from a TransformationDetailsStorageConfig message. Also converts values to other types if specified.
                     * @param message TransformationDetailsStorageConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransformationDetailsStorageConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransformationDetailsStorageConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransformationDetailsStorageConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Schedule. */
                interface ISchedule {

                    /** Schedule recurrencePeriodDuration */
                    recurrencePeriodDuration?: (google.protobuf.IDuration|null);
                }

                /** Represents a Schedule. */
                class Schedule implements ISchedule {

                    /**
                     * Constructs a new Schedule.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ISchedule);

                    /** Schedule recurrencePeriodDuration. */
                    public recurrencePeriodDuration?: (google.protobuf.IDuration|null);

                    /** Schedule option. */
                    public option?: "recurrencePeriodDuration";

                    /**
                     * Creates a new Schedule instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Schedule instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ISchedule): google.privacy.dlp.v2.Schedule;

                    /**
                     * Encodes the specified Schedule message. Does not implicitly {@link google.privacy.dlp.v2.Schedule.verify|verify} messages.
                     * @param message Schedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ISchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Schedule message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Schedule.verify|verify} messages.
                     * @param message Schedule message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ISchedule, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Schedule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Schedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Schedule;

                    /**
                     * Decodes a Schedule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Schedule
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Schedule;

                    /**
                     * Verifies a Schedule message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Schedule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Schedule
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Schedule;

                    /**
                     * Creates a plain object from a Schedule message. Also converts values to other types if specified.
                     * @param message Schedule
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Schedule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Schedule to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Schedule
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Manual. */
                interface IManual {
                }

                /** Represents a Manual. */
                class Manual implements IManual {

                    /**
                     * Constructs a new Manual.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IManual);

                    /**
                     * Creates a new Manual instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Manual instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IManual): google.privacy.dlp.v2.Manual;

                    /**
                     * Encodes the specified Manual message. Does not implicitly {@link google.privacy.dlp.v2.Manual.verify|verify} messages.
                     * @param message Manual message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IManual, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Manual message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Manual.verify|verify} messages.
                     * @param message Manual message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IManual, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Manual message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Manual
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Manual;

                    /**
                     * Decodes a Manual message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Manual
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Manual;

                    /**
                     * Verifies a Manual message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Manual message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Manual
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Manual;

                    /**
                     * Creates a plain object from a Manual message. Also converts values to other types if specified.
                     * @param message Manual
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Manual, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Manual to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Manual
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InspectTemplate. */
                interface IInspectTemplate {

                    /** InspectTemplate name */
                    name?: (string|null);

                    /** InspectTemplate displayName */
                    displayName?: (string|null);

                    /** InspectTemplate description */
                    description?: (string|null);

                    /** InspectTemplate createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** InspectTemplate updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** InspectTemplate inspectConfig */
                    inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);
                }

                /** Represents an InspectTemplate. */
                class InspectTemplate implements IInspectTemplate {

                    /**
                     * Constructs a new InspectTemplate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInspectTemplate);

                    /** InspectTemplate name. */
                    public name: string;

                    /** InspectTemplate displayName. */
                    public displayName: string;

                    /** InspectTemplate description. */
                    public description: string;

                    /** InspectTemplate createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** InspectTemplate updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** InspectTemplate inspectConfig. */
                    public inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /**
                     * Creates a new InspectTemplate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InspectTemplate instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInspectTemplate): google.privacy.dlp.v2.InspectTemplate;

                    /**
                     * Encodes the specified InspectTemplate message. Does not implicitly {@link google.privacy.dlp.v2.InspectTemplate.verify|verify} messages.
                     * @param message InspectTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInspectTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InspectTemplate message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectTemplate.verify|verify} messages.
                     * @param message InspectTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInspectTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InspectTemplate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InspectTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectTemplate;

                    /**
                     * Decodes an InspectTemplate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InspectTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectTemplate;

                    /**
                     * Verifies an InspectTemplate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InspectTemplate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InspectTemplate
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectTemplate;

                    /**
                     * Creates a plain object from an InspectTemplate message. Also converts values to other types if specified.
                     * @param message InspectTemplate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InspectTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InspectTemplate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InspectTemplate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeidentifyTemplate. */
                interface IDeidentifyTemplate {

                    /** DeidentifyTemplate name */
                    name?: (string|null);

                    /** DeidentifyTemplate displayName */
                    displayName?: (string|null);

                    /** DeidentifyTemplate description */
                    description?: (string|null);

                    /** DeidentifyTemplate createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** DeidentifyTemplate updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** DeidentifyTemplate deidentifyConfig */
                    deidentifyConfig?: (google.privacy.dlp.v2.IDeidentifyConfig|null);
                }

                /** Represents a DeidentifyTemplate. */
                class DeidentifyTemplate implements IDeidentifyTemplate {

                    /**
                     * Constructs a new DeidentifyTemplate.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeidentifyTemplate);

                    /** DeidentifyTemplate name. */
                    public name: string;

                    /** DeidentifyTemplate displayName. */
                    public displayName: string;

                    /** DeidentifyTemplate description. */
                    public description: string;

                    /** DeidentifyTemplate createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** DeidentifyTemplate updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** DeidentifyTemplate deidentifyConfig. */
                    public deidentifyConfig?: (google.privacy.dlp.v2.IDeidentifyConfig|null);

                    /**
                     * Creates a new DeidentifyTemplate instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeidentifyTemplate instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeidentifyTemplate): google.privacy.dlp.v2.DeidentifyTemplate;

                    /**
                     * Encodes the specified DeidentifyTemplate message. Does not implicitly {@link google.privacy.dlp.v2.DeidentifyTemplate.verify|verify} messages.
                     * @param message DeidentifyTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeidentifyTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeidentifyTemplate message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeidentifyTemplate.verify|verify} messages.
                     * @param message DeidentifyTemplate message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeidentifyTemplate, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeidentifyTemplate message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeidentifyTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DeidentifyTemplate;

                    /**
                     * Decodes a DeidentifyTemplate message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeidentifyTemplate
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DeidentifyTemplate;

                    /**
                     * Verifies a DeidentifyTemplate message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeidentifyTemplate message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeidentifyTemplate
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeidentifyTemplate;

                    /**
                     * Creates a plain object from a DeidentifyTemplate message. Also converts values to other types if specified.
                     * @param message DeidentifyTemplate
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeidentifyTemplate, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeidentifyTemplate to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeidentifyTemplate
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an Error. */
                interface IError {

                    /** Error details */
                    details?: (google.rpc.IStatus|null);

                    /** Error timestamps */
                    timestamps?: (google.protobuf.ITimestamp[]|null);
                }

                /** Represents an Error. */
                class Error implements IError {

                    /**
                     * Constructs a new Error.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IError);

                    /** Error details. */
                    public details?: (google.rpc.IStatus|null);

                    /** Error timestamps. */
                    public timestamps: google.protobuf.ITimestamp[];

                    /**
                     * Creates a new Error instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Error instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IError): google.privacy.dlp.v2.Error;

                    /**
                     * Encodes the specified Error message. Does not implicitly {@link google.privacy.dlp.v2.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Error message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Error.verify|verify} messages.
                     * @param message Error message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IError, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Error message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Error;

                    /**
                     * Decodes an Error message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Error
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Error;

                    /**
                     * Verifies an Error message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an Error message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Error
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Error;

                    /**
                     * Creates a plain object from an Error message. Also converts values to other types if specified.
                     * @param message Error
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Error, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Error to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Error
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a JobTrigger. */
                interface IJobTrigger {

                    /** JobTrigger name */
                    name?: (string|null);

                    /** JobTrigger displayName */
                    displayName?: (string|null);

                    /** JobTrigger description */
                    description?: (string|null);

                    /** JobTrigger inspectJob */
                    inspectJob?: (google.privacy.dlp.v2.IInspectJobConfig|null);

                    /** JobTrigger triggers */
                    triggers?: (google.privacy.dlp.v2.JobTrigger.ITrigger[]|null);

                    /** JobTrigger errors */
                    errors?: (google.privacy.dlp.v2.IError[]|null);

                    /** JobTrigger createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** JobTrigger updateTime */
                    updateTime?: (google.protobuf.ITimestamp|null);

                    /** JobTrigger lastRunTime */
                    lastRunTime?: (google.protobuf.ITimestamp|null);

                    /** JobTrigger status */
                    status?: (google.privacy.dlp.v2.JobTrigger.Status|keyof typeof google.privacy.dlp.v2.JobTrigger.Status|null);
                }

                /** Represents a JobTrigger. */
                class JobTrigger implements IJobTrigger {

                    /**
                     * Constructs a new JobTrigger.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IJobTrigger);

                    /** JobTrigger name. */
                    public name: string;

                    /** JobTrigger displayName. */
                    public displayName: string;

                    /** JobTrigger description. */
                    public description: string;

                    /** JobTrigger inspectJob. */
                    public inspectJob?: (google.privacy.dlp.v2.IInspectJobConfig|null);

                    /** JobTrigger triggers. */
                    public triggers: google.privacy.dlp.v2.JobTrigger.ITrigger[];

                    /** JobTrigger errors. */
                    public errors: google.privacy.dlp.v2.IError[];

                    /** JobTrigger createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** JobTrigger updateTime. */
                    public updateTime?: (google.protobuf.ITimestamp|null);

                    /** JobTrigger lastRunTime. */
                    public lastRunTime?: (google.protobuf.ITimestamp|null);

                    /** JobTrigger status. */
                    public status: (google.privacy.dlp.v2.JobTrigger.Status|keyof typeof google.privacy.dlp.v2.JobTrigger.Status);

                    /** JobTrigger job. */
                    public job?: "inspectJob";

                    /**
                     * Creates a new JobTrigger instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns JobTrigger instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IJobTrigger): google.privacy.dlp.v2.JobTrigger;

                    /**
                     * Encodes the specified JobTrigger message. Does not implicitly {@link google.privacy.dlp.v2.JobTrigger.verify|verify} messages.
                     * @param message JobTrigger message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IJobTrigger, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified JobTrigger message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.JobTrigger.verify|verify} messages.
                     * @param message JobTrigger message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IJobTrigger, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a JobTrigger message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns JobTrigger
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.JobTrigger;

                    /**
                     * Decodes a JobTrigger message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns JobTrigger
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.JobTrigger;

                    /**
                     * Verifies a JobTrigger message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a JobTrigger message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns JobTrigger
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.JobTrigger;

                    /**
                     * Creates a plain object from a JobTrigger message. Also converts values to other types if specified.
                     * @param message JobTrigger
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.JobTrigger, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this JobTrigger to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for JobTrigger
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace JobTrigger {

                    /** Properties of a Trigger. */
                    interface ITrigger {

                        /** Trigger schedule */
                        schedule?: (google.privacy.dlp.v2.ISchedule|null);

                        /** Trigger manual */
                        manual?: (google.privacy.dlp.v2.IManual|null);
                    }

                    /** Represents a Trigger. */
                    class Trigger implements ITrigger {

                        /**
                         * Constructs a new Trigger.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.JobTrigger.ITrigger);

                        /** Trigger schedule. */
                        public schedule?: (google.privacy.dlp.v2.ISchedule|null);

                        /** Trigger manual. */
                        public manual?: (google.privacy.dlp.v2.IManual|null);

                        /** Trigger trigger. */
                        public trigger?: ("schedule"|"manual");

                        /**
                         * Creates a new Trigger instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Trigger instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.JobTrigger.ITrigger): google.privacy.dlp.v2.JobTrigger.Trigger;

                        /**
                         * Encodes the specified Trigger message. Does not implicitly {@link google.privacy.dlp.v2.JobTrigger.Trigger.verify|verify} messages.
                         * @param message Trigger message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.JobTrigger.ITrigger, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Trigger message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.JobTrigger.Trigger.verify|verify} messages.
                         * @param message Trigger message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.JobTrigger.ITrigger, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Trigger message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Trigger
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.JobTrigger.Trigger;

                        /**
                         * Decodes a Trigger message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Trigger
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.JobTrigger.Trigger;

                        /**
                         * Verifies a Trigger message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Trigger message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Trigger
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.JobTrigger.Trigger;

                        /**
                         * Creates a plain object from a Trigger message. Also converts values to other types if specified.
                         * @param message Trigger
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.JobTrigger.Trigger, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Trigger to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Trigger
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Status enum. */
                    enum Status {
                        STATUS_UNSPECIFIED = 0,
                        HEALTHY = 1,
                        PAUSED = 2,
                        CANCELLED = 3
                    }
                }

                /** Properties of an Action. */
                interface IAction {

                    /** Action saveFindings */
                    saveFindings?: (google.privacy.dlp.v2.Action.ISaveFindings|null);

                    /** Action pubSub */
                    pubSub?: (google.privacy.dlp.v2.Action.IPublishToPubSub|null);

                    /** Action publishSummaryToCscc */
                    publishSummaryToCscc?: (google.privacy.dlp.v2.Action.IPublishSummaryToCscc|null);

                    /** Action publishFindingsToCloudDataCatalog */
                    publishFindingsToCloudDataCatalog?: (google.privacy.dlp.v2.Action.IPublishFindingsToCloudDataCatalog|null);

                    /** Action deidentify */
                    deidentify?: (google.privacy.dlp.v2.Action.IDeidentify|null);

                    /** Action jobNotificationEmails */
                    jobNotificationEmails?: (google.privacy.dlp.v2.Action.IJobNotificationEmails|null);

                    /** Action publishToStackdriver */
                    publishToStackdriver?: (google.privacy.dlp.v2.Action.IPublishToStackdriver|null);
                }

                /** Represents an Action. */
                class Action implements IAction {

                    /**
                     * Constructs a new Action.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IAction);

                    /** Action saveFindings. */
                    public saveFindings?: (google.privacy.dlp.v2.Action.ISaveFindings|null);

                    /** Action pubSub. */
                    public pubSub?: (google.privacy.dlp.v2.Action.IPublishToPubSub|null);

                    /** Action publishSummaryToCscc. */
                    public publishSummaryToCscc?: (google.privacy.dlp.v2.Action.IPublishSummaryToCscc|null);

                    /** Action publishFindingsToCloudDataCatalog. */
                    public publishFindingsToCloudDataCatalog?: (google.privacy.dlp.v2.Action.IPublishFindingsToCloudDataCatalog|null);

                    /** Action deidentify. */
                    public deidentify?: (google.privacy.dlp.v2.Action.IDeidentify|null);

                    /** Action jobNotificationEmails. */
                    public jobNotificationEmails?: (google.privacy.dlp.v2.Action.IJobNotificationEmails|null);

                    /** Action publishToStackdriver. */
                    public publishToStackdriver?: (google.privacy.dlp.v2.Action.IPublishToStackdriver|null);

                    /** Action action. */
                    public action?: ("saveFindings"|"pubSub"|"publishSummaryToCscc"|"publishFindingsToCloudDataCatalog"|"deidentify"|"jobNotificationEmails"|"publishToStackdriver");

                    /**
                     * Creates a new Action instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Action instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IAction): google.privacy.dlp.v2.Action;

                    /**
                     * Encodes the specified Action message. Does not implicitly {@link google.privacy.dlp.v2.Action.verify|verify} messages.
                     * @param message Action message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Action message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Action.verify|verify} messages.
                     * @param message Action message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an Action message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Action
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Action;

                    /**
                     * Decodes an Action message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Action
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Action;

                    /**
                     * Verifies an Action message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an Action message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Action
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Action;

                    /**
                     * Creates a plain object from an Action message. Also converts values to other types if specified.
                     * @param message Action
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Action, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Action to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Action
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Action {

                    /** Properties of a SaveFindings. */
                    interface ISaveFindings {

                        /** SaveFindings outputConfig */
                        outputConfig?: (google.privacy.dlp.v2.IOutputStorageConfig|null);
                    }

                    /** Represents a SaveFindings. */
                    class SaveFindings implements ISaveFindings {

                        /**
                         * Constructs a new SaveFindings.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.Action.ISaveFindings);

                        /** SaveFindings outputConfig. */
                        public outputConfig?: (google.privacy.dlp.v2.IOutputStorageConfig|null);

                        /**
                         * Creates a new SaveFindings instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SaveFindings instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.Action.ISaveFindings): google.privacy.dlp.v2.Action.SaveFindings;

                        /**
                         * Encodes the specified SaveFindings message. Does not implicitly {@link google.privacy.dlp.v2.Action.SaveFindings.verify|verify} messages.
                         * @param message SaveFindings message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.Action.ISaveFindings, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SaveFindings message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Action.SaveFindings.verify|verify} messages.
                         * @param message SaveFindings message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.Action.ISaveFindings, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SaveFindings message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SaveFindings
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Action.SaveFindings;

                        /**
                         * Decodes a SaveFindings message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SaveFindings
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Action.SaveFindings;

                        /**
                         * Verifies a SaveFindings message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SaveFindings message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SaveFindings
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Action.SaveFindings;

                        /**
                         * Creates a plain object from a SaveFindings message. Also converts values to other types if specified.
                         * @param message SaveFindings
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.Action.SaveFindings, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SaveFindings to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SaveFindings
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a PublishToPubSub. */
                    interface IPublishToPubSub {

                        /** PublishToPubSub topic */
                        topic?: (string|null);
                    }

                    /** Represents a PublishToPubSub. */
                    class PublishToPubSub implements IPublishToPubSub {

                        /**
                         * Constructs a new PublishToPubSub.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.Action.IPublishToPubSub);

                        /** PublishToPubSub topic. */
                        public topic: string;

                        /**
                         * Creates a new PublishToPubSub instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PublishToPubSub instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.Action.IPublishToPubSub): google.privacy.dlp.v2.Action.PublishToPubSub;

                        /**
                         * Encodes the specified PublishToPubSub message. Does not implicitly {@link google.privacy.dlp.v2.Action.PublishToPubSub.verify|verify} messages.
                         * @param message PublishToPubSub message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.Action.IPublishToPubSub, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PublishToPubSub message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Action.PublishToPubSub.verify|verify} messages.
                         * @param message PublishToPubSub message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.Action.IPublishToPubSub, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PublishToPubSub message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PublishToPubSub
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Action.PublishToPubSub;

                        /**
                         * Decodes a PublishToPubSub message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PublishToPubSub
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Action.PublishToPubSub;

                        /**
                         * Verifies a PublishToPubSub message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PublishToPubSub message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PublishToPubSub
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Action.PublishToPubSub;

                        /**
                         * Creates a plain object from a PublishToPubSub message. Also converts values to other types if specified.
                         * @param message PublishToPubSub
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.Action.PublishToPubSub, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PublishToPubSub to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for PublishToPubSub
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a PublishSummaryToCscc. */
                    interface IPublishSummaryToCscc {
                    }

                    /** Represents a PublishSummaryToCscc. */
                    class PublishSummaryToCscc implements IPublishSummaryToCscc {

                        /**
                         * Constructs a new PublishSummaryToCscc.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.Action.IPublishSummaryToCscc);

                        /**
                         * Creates a new PublishSummaryToCscc instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PublishSummaryToCscc instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.Action.IPublishSummaryToCscc): google.privacy.dlp.v2.Action.PublishSummaryToCscc;

                        /**
                         * Encodes the specified PublishSummaryToCscc message. Does not implicitly {@link google.privacy.dlp.v2.Action.PublishSummaryToCscc.verify|verify} messages.
                         * @param message PublishSummaryToCscc message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.Action.IPublishSummaryToCscc, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PublishSummaryToCscc message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Action.PublishSummaryToCscc.verify|verify} messages.
                         * @param message PublishSummaryToCscc message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.Action.IPublishSummaryToCscc, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PublishSummaryToCscc message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PublishSummaryToCscc
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Action.PublishSummaryToCscc;

                        /**
                         * Decodes a PublishSummaryToCscc message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PublishSummaryToCscc
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Action.PublishSummaryToCscc;

                        /**
                         * Verifies a PublishSummaryToCscc message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PublishSummaryToCscc message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PublishSummaryToCscc
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Action.PublishSummaryToCscc;

                        /**
                         * Creates a plain object from a PublishSummaryToCscc message. Also converts values to other types if specified.
                         * @param message PublishSummaryToCscc
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.Action.PublishSummaryToCscc, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PublishSummaryToCscc to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for PublishSummaryToCscc
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a PublishFindingsToCloudDataCatalog. */
                    interface IPublishFindingsToCloudDataCatalog {
                    }

                    /** Represents a PublishFindingsToCloudDataCatalog. */
                    class PublishFindingsToCloudDataCatalog implements IPublishFindingsToCloudDataCatalog {

                        /**
                         * Constructs a new PublishFindingsToCloudDataCatalog.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.Action.IPublishFindingsToCloudDataCatalog);

                        /**
                         * Creates a new PublishFindingsToCloudDataCatalog instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PublishFindingsToCloudDataCatalog instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.Action.IPublishFindingsToCloudDataCatalog): google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog;

                        /**
                         * Encodes the specified PublishFindingsToCloudDataCatalog message. Does not implicitly {@link google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog.verify|verify} messages.
                         * @param message PublishFindingsToCloudDataCatalog message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.Action.IPublishFindingsToCloudDataCatalog, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PublishFindingsToCloudDataCatalog message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog.verify|verify} messages.
                         * @param message PublishFindingsToCloudDataCatalog message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.Action.IPublishFindingsToCloudDataCatalog, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PublishFindingsToCloudDataCatalog message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PublishFindingsToCloudDataCatalog
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog;

                        /**
                         * Decodes a PublishFindingsToCloudDataCatalog message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PublishFindingsToCloudDataCatalog
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog;

                        /**
                         * Verifies a PublishFindingsToCloudDataCatalog message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PublishFindingsToCloudDataCatalog message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PublishFindingsToCloudDataCatalog
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog;

                        /**
                         * Creates a plain object from a PublishFindingsToCloudDataCatalog message. Also converts values to other types if specified.
                         * @param message PublishFindingsToCloudDataCatalog
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.Action.PublishFindingsToCloudDataCatalog, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PublishFindingsToCloudDataCatalog to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for PublishFindingsToCloudDataCatalog
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a Deidentify. */
                    interface IDeidentify {

                        /** Deidentify transformationConfig */
                        transformationConfig?: (google.privacy.dlp.v2.ITransformationConfig|null);

                        /** Deidentify transformationDetailsStorageConfig */
                        transformationDetailsStorageConfig?: (google.privacy.dlp.v2.ITransformationDetailsStorageConfig|null);

                        /** Deidentify cloudStorageOutput */
                        cloudStorageOutput?: (string|null);

                        /** Deidentify fileTypesToTransform */
                        fileTypesToTransform?: (google.privacy.dlp.v2.FileType[]|null);
                    }

                    /** Represents a Deidentify. */
                    class Deidentify implements IDeidentify {

                        /**
                         * Constructs a new Deidentify.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.Action.IDeidentify);

                        /** Deidentify transformationConfig. */
                        public transformationConfig?: (google.privacy.dlp.v2.ITransformationConfig|null);

                        /** Deidentify transformationDetailsStorageConfig. */
                        public transformationDetailsStorageConfig?: (google.privacy.dlp.v2.ITransformationDetailsStorageConfig|null);

                        /** Deidentify cloudStorageOutput. */
                        public cloudStorageOutput?: (string|null);

                        /** Deidentify fileTypesToTransform. */
                        public fileTypesToTransform: google.privacy.dlp.v2.FileType[];

                        /** Deidentify output. */
                        public output?: "cloudStorageOutput";

                        /**
                         * Creates a new Deidentify instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Deidentify instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.Action.IDeidentify): google.privacy.dlp.v2.Action.Deidentify;

                        /**
                         * Encodes the specified Deidentify message. Does not implicitly {@link google.privacy.dlp.v2.Action.Deidentify.verify|verify} messages.
                         * @param message Deidentify message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.Action.IDeidentify, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Deidentify message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Action.Deidentify.verify|verify} messages.
                         * @param message Deidentify message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.Action.IDeidentify, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Deidentify message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Deidentify
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Action.Deidentify;

                        /**
                         * Decodes a Deidentify message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Deidentify
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Action.Deidentify;

                        /**
                         * Verifies a Deidentify message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Deidentify message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Deidentify
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Action.Deidentify;

                        /**
                         * Creates a plain object from a Deidentify message. Also converts values to other types if specified.
                         * @param message Deidentify
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.Action.Deidentify, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Deidentify to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Deidentify
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a JobNotificationEmails. */
                    interface IJobNotificationEmails {
                    }

                    /** Represents a JobNotificationEmails. */
                    class JobNotificationEmails implements IJobNotificationEmails {

                        /**
                         * Constructs a new JobNotificationEmails.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.Action.IJobNotificationEmails);

                        /**
                         * Creates a new JobNotificationEmails instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns JobNotificationEmails instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.Action.IJobNotificationEmails): google.privacy.dlp.v2.Action.JobNotificationEmails;

                        /**
                         * Encodes the specified JobNotificationEmails message. Does not implicitly {@link google.privacy.dlp.v2.Action.JobNotificationEmails.verify|verify} messages.
                         * @param message JobNotificationEmails message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.Action.IJobNotificationEmails, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified JobNotificationEmails message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Action.JobNotificationEmails.verify|verify} messages.
                         * @param message JobNotificationEmails message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.Action.IJobNotificationEmails, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a JobNotificationEmails message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns JobNotificationEmails
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Action.JobNotificationEmails;

                        /**
                         * Decodes a JobNotificationEmails message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns JobNotificationEmails
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Action.JobNotificationEmails;

                        /**
                         * Verifies a JobNotificationEmails message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a JobNotificationEmails message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns JobNotificationEmails
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Action.JobNotificationEmails;

                        /**
                         * Creates a plain object from a JobNotificationEmails message. Also converts values to other types if specified.
                         * @param message JobNotificationEmails
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.Action.JobNotificationEmails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this JobNotificationEmails to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for JobNotificationEmails
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a PublishToStackdriver. */
                    interface IPublishToStackdriver {
                    }

                    /** Represents a PublishToStackdriver. */
                    class PublishToStackdriver implements IPublishToStackdriver {

                        /**
                         * Constructs a new PublishToStackdriver.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.Action.IPublishToStackdriver);

                        /**
                         * Creates a new PublishToStackdriver instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PublishToStackdriver instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.Action.IPublishToStackdriver): google.privacy.dlp.v2.Action.PublishToStackdriver;

                        /**
                         * Encodes the specified PublishToStackdriver message. Does not implicitly {@link google.privacy.dlp.v2.Action.PublishToStackdriver.verify|verify} messages.
                         * @param message PublishToStackdriver message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.Action.IPublishToStackdriver, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PublishToStackdriver message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Action.PublishToStackdriver.verify|verify} messages.
                         * @param message PublishToStackdriver message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.Action.IPublishToStackdriver, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PublishToStackdriver message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PublishToStackdriver
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Action.PublishToStackdriver;

                        /**
                         * Decodes a PublishToStackdriver message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PublishToStackdriver
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Action.PublishToStackdriver;

                        /**
                         * Verifies a PublishToStackdriver message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PublishToStackdriver message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PublishToStackdriver
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Action.PublishToStackdriver;

                        /**
                         * Creates a plain object from a PublishToStackdriver message. Also converts values to other types if specified.
                         * @param message PublishToStackdriver
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.Action.PublishToStackdriver, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PublishToStackdriver to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for PublishToStackdriver
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a TransformationConfig. */
                interface ITransformationConfig {

                    /** TransformationConfig deidentifyTemplate */
                    deidentifyTemplate?: (string|null);

                    /** TransformationConfig structuredDeidentifyTemplate */
                    structuredDeidentifyTemplate?: (string|null);

                    /** TransformationConfig imageRedactTemplate */
                    imageRedactTemplate?: (string|null);
                }

                /** Represents a TransformationConfig. */
                class TransformationConfig implements ITransformationConfig {

                    /**
                     * Constructs a new TransformationConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITransformationConfig);

                    /** TransformationConfig deidentifyTemplate. */
                    public deidentifyTemplate: string;

                    /** TransformationConfig structuredDeidentifyTemplate. */
                    public structuredDeidentifyTemplate: string;

                    /** TransformationConfig imageRedactTemplate. */
                    public imageRedactTemplate: string;

                    /**
                     * Creates a new TransformationConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TransformationConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITransformationConfig): google.privacy.dlp.v2.TransformationConfig;

                    /**
                     * Encodes the specified TransformationConfig message. Does not implicitly {@link google.privacy.dlp.v2.TransformationConfig.verify|verify} messages.
                     * @param message TransformationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITransformationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TransformationConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TransformationConfig.verify|verify} messages.
                     * @param message TransformationConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITransformationConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TransformationConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TransformationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TransformationConfig;

                    /**
                     * Decodes a TransformationConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TransformationConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TransformationConfig;

                    /**
                     * Verifies a TransformationConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TransformationConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TransformationConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TransformationConfig;

                    /**
                     * Creates a plain object from a TransformationConfig message. Also converts values to other types if specified.
                     * @param message TransformationConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TransformationConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TransformationConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TransformationConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateInspectTemplateRequest. */
                interface ICreateInspectTemplateRequest {

                    /** CreateInspectTemplateRequest parent */
                    parent?: (string|null);

                    /** CreateInspectTemplateRequest inspectTemplate */
                    inspectTemplate?: (google.privacy.dlp.v2.IInspectTemplate|null);

                    /** CreateInspectTemplateRequest templateId */
                    templateId?: (string|null);

                    /** CreateInspectTemplateRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a CreateInspectTemplateRequest. */
                class CreateInspectTemplateRequest implements ICreateInspectTemplateRequest {

                    /**
                     * Constructs a new CreateInspectTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICreateInspectTemplateRequest);

                    /** CreateInspectTemplateRequest parent. */
                    public parent: string;

                    /** CreateInspectTemplateRequest inspectTemplate. */
                    public inspectTemplate?: (google.privacy.dlp.v2.IInspectTemplate|null);

                    /** CreateInspectTemplateRequest templateId. */
                    public templateId: string;

                    /** CreateInspectTemplateRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new CreateInspectTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateInspectTemplateRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICreateInspectTemplateRequest): google.privacy.dlp.v2.CreateInspectTemplateRequest;

                    /**
                     * Encodes the specified CreateInspectTemplateRequest message. Does not implicitly {@link google.privacy.dlp.v2.CreateInspectTemplateRequest.verify|verify} messages.
                     * @param message CreateInspectTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICreateInspectTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateInspectTemplateRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CreateInspectTemplateRequest.verify|verify} messages.
                     * @param message CreateInspectTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICreateInspectTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateInspectTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateInspectTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CreateInspectTemplateRequest;

                    /**
                     * Decodes a CreateInspectTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateInspectTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CreateInspectTemplateRequest;

                    /**
                     * Verifies a CreateInspectTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateInspectTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateInspectTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CreateInspectTemplateRequest;

                    /**
                     * Creates a plain object from a CreateInspectTemplateRequest message. Also converts values to other types if specified.
                     * @param message CreateInspectTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CreateInspectTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateInspectTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateInspectTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateInspectTemplateRequest. */
                interface IUpdateInspectTemplateRequest {

                    /** UpdateInspectTemplateRequest name */
                    name?: (string|null);

                    /** UpdateInspectTemplateRequest inspectTemplate */
                    inspectTemplate?: (google.privacy.dlp.v2.IInspectTemplate|null);

                    /** UpdateInspectTemplateRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateInspectTemplateRequest. */
                class UpdateInspectTemplateRequest implements IUpdateInspectTemplateRequest {

                    /**
                     * Constructs a new UpdateInspectTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IUpdateInspectTemplateRequest);

                    /** UpdateInspectTemplateRequest name. */
                    public name: string;

                    /** UpdateInspectTemplateRequest inspectTemplate. */
                    public inspectTemplate?: (google.privacy.dlp.v2.IInspectTemplate|null);

                    /** UpdateInspectTemplateRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateInspectTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateInspectTemplateRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IUpdateInspectTemplateRequest): google.privacy.dlp.v2.UpdateInspectTemplateRequest;

                    /**
                     * Encodes the specified UpdateInspectTemplateRequest message. Does not implicitly {@link google.privacy.dlp.v2.UpdateInspectTemplateRequest.verify|verify} messages.
                     * @param message UpdateInspectTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IUpdateInspectTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateInspectTemplateRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.UpdateInspectTemplateRequest.verify|verify} messages.
                     * @param message UpdateInspectTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IUpdateInspectTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateInspectTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateInspectTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.UpdateInspectTemplateRequest;

                    /**
                     * Decodes an UpdateInspectTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateInspectTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.UpdateInspectTemplateRequest;

                    /**
                     * Verifies an UpdateInspectTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateInspectTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateInspectTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.UpdateInspectTemplateRequest;

                    /**
                     * Creates a plain object from an UpdateInspectTemplateRequest message. Also converts values to other types if specified.
                     * @param message UpdateInspectTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.UpdateInspectTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateInspectTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateInspectTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetInspectTemplateRequest. */
                interface IGetInspectTemplateRequest {

                    /** GetInspectTemplateRequest name */
                    name?: (string|null);
                }

                /** Represents a GetInspectTemplateRequest. */
                class GetInspectTemplateRequest implements IGetInspectTemplateRequest {

                    /**
                     * Constructs a new GetInspectTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetInspectTemplateRequest);

                    /** GetInspectTemplateRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetInspectTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetInspectTemplateRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetInspectTemplateRequest): google.privacy.dlp.v2.GetInspectTemplateRequest;

                    /**
                     * Encodes the specified GetInspectTemplateRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetInspectTemplateRequest.verify|verify} messages.
                     * @param message GetInspectTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetInspectTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetInspectTemplateRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetInspectTemplateRequest.verify|verify} messages.
                     * @param message GetInspectTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetInspectTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetInspectTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetInspectTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.GetInspectTemplateRequest;

                    /**
                     * Decodes a GetInspectTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetInspectTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.GetInspectTemplateRequest;

                    /**
                     * Verifies a GetInspectTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetInspectTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetInspectTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetInspectTemplateRequest;

                    /**
                     * Creates a plain object from a GetInspectTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetInspectTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetInspectTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetInspectTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetInspectTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInspectTemplatesRequest. */
                interface IListInspectTemplatesRequest {

                    /** ListInspectTemplatesRequest parent */
                    parent?: (string|null);

                    /** ListInspectTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListInspectTemplatesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListInspectTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListInspectTemplatesRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a ListInspectTemplatesRequest. */
                class ListInspectTemplatesRequest implements IListInspectTemplatesRequest {

                    /**
                     * Constructs a new ListInspectTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListInspectTemplatesRequest);

                    /** ListInspectTemplatesRequest parent. */
                    public parent: string;

                    /** ListInspectTemplatesRequest pageToken. */
                    public pageToken: string;

                    /** ListInspectTemplatesRequest pageSize. */
                    public pageSize: number;

                    /** ListInspectTemplatesRequest orderBy. */
                    public orderBy: string;

                    /** ListInspectTemplatesRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new ListInspectTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInspectTemplatesRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListInspectTemplatesRequest): google.privacy.dlp.v2.ListInspectTemplatesRequest;

                    /**
                     * Encodes the specified ListInspectTemplatesRequest message. Does not implicitly {@link google.privacy.dlp.v2.ListInspectTemplatesRequest.verify|verify} messages.
                     * @param message ListInspectTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListInspectTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInspectTemplatesRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListInspectTemplatesRequest.verify|verify} messages.
                     * @param message ListInspectTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListInspectTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInspectTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInspectTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListInspectTemplatesRequest;

                    /**
                     * Decodes a ListInspectTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInspectTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListInspectTemplatesRequest;

                    /**
                     * Verifies a ListInspectTemplatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInspectTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInspectTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListInspectTemplatesRequest;

                    /**
                     * Creates a plain object from a ListInspectTemplatesRequest message. Also converts values to other types if specified.
                     * @param message ListInspectTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListInspectTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInspectTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInspectTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListInspectTemplatesResponse. */
                interface IListInspectTemplatesResponse {

                    /** ListInspectTemplatesResponse inspectTemplates */
                    inspectTemplates?: (google.privacy.dlp.v2.IInspectTemplate[]|null);

                    /** ListInspectTemplatesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListInspectTemplatesResponse. */
                class ListInspectTemplatesResponse implements IListInspectTemplatesResponse {

                    /**
                     * Constructs a new ListInspectTemplatesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListInspectTemplatesResponse);

                    /** ListInspectTemplatesResponse inspectTemplates. */
                    public inspectTemplates: google.privacy.dlp.v2.IInspectTemplate[];

                    /** ListInspectTemplatesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListInspectTemplatesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListInspectTemplatesResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListInspectTemplatesResponse): google.privacy.dlp.v2.ListInspectTemplatesResponse;

                    /**
                     * Encodes the specified ListInspectTemplatesResponse message. Does not implicitly {@link google.privacy.dlp.v2.ListInspectTemplatesResponse.verify|verify} messages.
                     * @param message ListInspectTemplatesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListInspectTemplatesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListInspectTemplatesResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListInspectTemplatesResponse.verify|verify} messages.
                     * @param message ListInspectTemplatesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListInspectTemplatesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListInspectTemplatesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListInspectTemplatesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListInspectTemplatesResponse;

                    /**
                     * Decodes a ListInspectTemplatesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListInspectTemplatesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListInspectTemplatesResponse;

                    /**
                     * Verifies a ListInspectTemplatesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListInspectTemplatesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListInspectTemplatesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListInspectTemplatesResponse;

                    /**
                     * Creates a plain object from a ListInspectTemplatesResponse message. Also converts values to other types if specified.
                     * @param message ListInspectTemplatesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListInspectTemplatesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListInspectTemplatesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListInspectTemplatesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteInspectTemplateRequest. */
                interface IDeleteInspectTemplateRequest {

                    /** DeleteInspectTemplateRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteInspectTemplateRequest. */
                class DeleteInspectTemplateRequest implements IDeleteInspectTemplateRequest {

                    /**
                     * Constructs a new DeleteInspectTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeleteInspectTemplateRequest);

                    /** DeleteInspectTemplateRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteInspectTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteInspectTemplateRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeleteInspectTemplateRequest): google.privacy.dlp.v2.DeleteInspectTemplateRequest;

                    /**
                     * Encodes the specified DeleteInspectTemplateRequest message. Does not implicitly {@link google.privacy.dlp.v2.DeleteInspectTemplateRequest.verify|verify} messages.
                     * @param message DeleteInspectTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeleteInspectTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteInspectTemplateRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeleteInspectTemplateRequest.verify|verify} messages.
                     * @param message DeleteInspectTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeleteInspectTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteInspectTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteInspectTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DeleteInspectTemplateRequest;

                    /**
                     * Decodes a DeleteInspectTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteInspectTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DeleteInspectTemplateRequest;

                    /**
                     * Verifies a DeleteInspectTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteInspectTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteInspectTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeleteInspectTemplateRequest;

                    /**
                     * Creates a plain object from a DeleteInspectTemplateRequest message. Also converts values to other types if specified.
                     * @param message DeleteInspectTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeleteInspectTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteInspectTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteInspectTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateJobTriggerRequest. */
                interface ICreateJobTriggerRequest {

                    /** CreateJobTriggerRequest parent */
                    parent?: (string|null);

                    /** CreateJobTriggerRequest jobTrigger */
                    jobTrigger?: (google.privacy.dlp.v2.IJobTrigger|null);

                    /** CreateJobTriggerRequest triggerId */
                    triggerId?: (string|null);

                    /** CreateJobTriggerRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a CreateJobTriggerRequest. */
                class CreateJobTriggerRequest implements ICreateJobTriggerRequest {

                    /**
                     * Constructs a new CreateJobTriggerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICreateJobTriggerRequest);

                    /** CreateJobTriggerRequest parent. */
                    public parent: string;

                    /** CreateJobTriggerRequest jobTrigger. */
                    public jobTrigger?: (google.privacy.dlp.v2.IJobTrigger|null);

                    /** CreateJobTriggerRequest triggerId. */
                    public triggerId: string;

                    /** CreateJobTriggerRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new CreateJobTriggerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateJobTriggerRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICreateJobTriggerRequest): google.privacy.dlp.v2.CreateJobTriggerRequest;

                    /**
                     * Encodes the specified CreateJobTriggerRequest message. Does not implicitly {@link google.privacy.dlp.v2.CreateJobTriggerRequest.verify|verify} messages.
                     * @param message CreateJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICreateJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateJobTriggerRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CreateJobTriggerRequest.verify|verify} messages.
                     * @param message CreateJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICreateJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateJobTriggerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CreateJobTriggerRequest;

                    /**
                     * Decodes a CreateJobTriggerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CreateJobTriggerRequest;

                    /**
                     * Verifies a CreateJobTriggerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateJobTriggerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateJobTriggerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CreateJobTriggerRequest;

                    /**
                     * Creates a plain object from a CreateJobTriggerRequest message. Also converts values to other types if specified.
                     * @param message CreateJobTriggerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CreateJobTriggerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateJobTriggerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateJobTriggerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an ActivateJobTriggerRequest. */
                interface IActivateJobTriggerRequest {

                    /** ActivateJobTriggerRequest name */
                    name?: (string|null);
                }

                /** Represents an ActivateJobTriggerRequest. */
                class ActivateJobTriggerRequest implements IActivateJobTriggerRequest {

                    /**
                     * Constructs a new ActivateJobTriggerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IActivateJobTriggerRequest);

                    /** ActivateJobTriggerRequest name. */
                    public name: string;

                    /**
                     * Creates a new ActivateJobTriggerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ActivateJobTriggerRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IActivateJobTriggerRequest): google.privacy.dlp.v2.ActivateJobTriggerRequest;

                    /**
                     * Encodes the specified ActivateJobTriggerRequest message. Does not implicitly {@link google.privacy.dlp.v2.ActivateJobTriggerRequest.verify|verify} messages.
                     * @param message ActivateJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IActivateJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ActivateJobTriggerRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ActivateJobTriggerRequest.verify|verify} messages.
                     * @param message ActivateJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IActivateJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an ActivateJobTriggerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ActivateJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ActivateJobTriggerRequest;

                    /**
                     * Decodes an ActivateJobTriggerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ActivateJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ActivateJobTriggerRequest;

                    /**
                     * Verifies an ActivateJobTriggerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an ActivateJobTriggerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ActivateJobTriggerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ActivateJobTriggerRequest;

                    /**
                     * Creates a plain object from an ActivateJobTriggerRequest message. Also converts values to other types if specified.
                     * @param message ActivateJobTriggerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ActivateJobTriggerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ActivateJobTriggerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ActivateJobTriggerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateJobTriggerRequest. */
                interface IUpdateJobTriggerRequest {

                    /** UpdateJobTriggerRequest name */
                    name?: (string|null);

                    /** UpdateJobTriggerRequest jobTrigger */
                    jobTrigger?: (google.privacy.dlp.v2.IJobTrigger|null);

                    /** UpdateJobTriggerRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateJobTriggerRequest. */
                class UpdateJobTriggerRequest implements IUpdateJobTriggerRequest {

                    /**
                     * Constructs a new UpdateJobTriggerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IUpdateJobTriggerRequest);

                    /** UpdateJobTriggerRequest name. */
                    public name: string;

                    /** UpdateJobTriggerRequest jobTrigger. */
                    public jobTrigger?: (google.privacy.dlp.v2.IJobTrigger|null);

                    /** UpdateJobTriggerRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateJobTriggerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateJobTriggerRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IUpdateJobTriggerRequest): google.privacy.dlp.v2.UpdateJobTriggerRequest;

                    /**
                     * Encodes the specified UpdateJobTriggerRequest message. Does not implicitly {@link google.privacy.dlp.v2.UpdateJobTriggerRequest.verify|verify} messages.
                     * @param message UpdateJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IUpdateJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateJobTriggerRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.UpdateJobTriggerRequest.verify|verify} messages.
                     * @param message UpdateJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IUpdateJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateJobTriggerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.UpdateJobTriggerRequest;

                    /**
                     * Decodes an UpdateJobTriggerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.UpdateJobTriggerRequest;

                    /**
                     * Verifies an UpdateJobTriggerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateJobTriggerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateJobTriggerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.UpdateJobTriggerRequest;

                    /**
                     * Creates a plain object from an UpdateJobTriggerRequest message. Also converts values to other types if specified.
                     * @param message UpdateJobTriggerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.UpdateJobTriggerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateJobTriggerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateJobTriggerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetJobTriggerRequest. */
                interface IGetJobTriggerRequest {

                    /** GetJobTriggerRequest name */
                    name?: (string|null);
                }

                /** Represents a GetJobTriggerRequest. */
                class GetJobTriggerRequest implements IGetJobTriggerRequest {

                    /**
                     * Constructs a new GetJobTriggerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetJobTriggerRequest);

                    /** GetJobTriggerRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetJobTriggerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetJobTriggerRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetJobTriggerRequest): google.privacy.dlp.v2.GetJobTriggerRequest;

                    /**
                     * Encodes the specified GetJobTriggerRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetJobTriggerRequest.verify|verify} messages.
                     * @param message GetJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetJobTriggerRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetJobTriggerRequest.verify|verify} messages.
                     * @param message GetJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetJobTriggerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.GetJobTriggerRequest;

                    /**
                     * Decodes a GetJobTriggerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.GetJobTriggerRequest;

                    /**
                     * Verifies a GetJobTriggerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetJobTriggerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetJobTriggerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetJobTriggerRequest;

                    /**
                     * Creates a plain object from a GetJobTriggerRequest message. Also converts values to other types if specified.
                     * @param message GetJobTriggerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetJobTriggerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetJobTriggerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetJobTriggerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateDlpJobRequest. */
                interface ICreateDlpJobRequest {

                    /** CreateDlpJobRequest parent */
                    parent?: (string|null);

                    /** CreateDlpJobRequest inspectJob */
                    inspectJob?: (google.privacy.dlp.v2.IInspectJobConfig|null);

                    /** CreateDlpJobRequest riskJob */
                    riskJob?: (google.privacy.dlp.v2.IRiskAnalysisJobConfig|null);

                    /** CreateDlpJobRequest jobId */
                    jobId?: (string|null);

                    /** CreateDlpJobRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a CreateDlpJobRequest. */
                class CreateDlpJobRequest implements ICreateDlpJobRequest {

                    /**
                     * Constructs a new CreateDlpJobRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICreateDlpJobRequest);

                    /** CreateDlpJobRequest parent. */
                    public parent: string;

                    /** CreateDlpJobRequest inspectJob. */
                    public inspectJob?: (google.privacy.dlp.v2.IInspectJobConfig|null);

                    /** CreateDlpJobRequest riskJob. */
                    public riskJob?: (google.privacy.dlp.v2.IRiskAnalysisJobConfig|null);

                    /** CreateDlpJobRequest jobId. */
                    public jobId: string;

                    /** CreateDlpJobRequest locationId. */
                    public locationId: string;

                    /** CreateDlpJobRequest job. */
                    public job?: ("inspectJob"|"riskJob");

                    /**
                     * Creates a new CreateDlpJobRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateDlpJobRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICreateDlpJobRequest): google.privacy.dlp.v2.CreateDlpJobRequest;

                    /**
                     * Encodes the specified CreateDlpJobRequest message. Does not implicitly {@link google.privacy.dlp.v2.CreateDlpJobRequest.verify|verify} messages.
                     * @param message CreateDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICreateDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateDlpJobRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CreateDlpJobRequest.verify|verify} messages.
                     * @param message CreateDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICreateDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateDlpJobRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CreateDlpJobRequest;

                    /**
                     * Decodes a CreateDlpJobRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CreateDlpJobRequest;

                    /**
                     * Verifies a CreateDlpJobRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateDlpJobRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateDlpJobRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CreateDlpJobRequest;

                    /**
                     * Creates a plain object from a CreateDlpJobRequest message. Also converts values to other types if specified.
                     * @param message CreateDlpJobRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CreateDlpJobRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateDlpJobRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateDlpJobRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListJobTriggersRequest. */
                interface IListJobTriggersRequest {

                    /** ListJobTriggersRequest parent */
                    parent?: (string|null);

                    /** ListJobTriggersRequest pageToken */
                    pageToken?: (string|null);

                    /** ListJobTriggersRequest pageSize */
                    pageSize?: (number|null);

                    /** ListJobTriggersRequest orderBy */
                    orderBy?: (string|null);

                    /** ListJobTriggersRequest filter */
                    filter?: (string|null);

                    /** ListJobTriggersRequest type */
                    type?: (google.privacy.dlp.v2.DlpJobType|keyof typeof google.privacy.dlp.v2.DlpJobType|null);

                    /** ListJobTriggersRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a ListJobTriggersRequest. */
                class ListJobTriggersRequest implements IListJobTriggersRequest {

                    /**
                     * Constructs a new ListJobTriggersRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListJobTriggersRequest);

                    /** ListJobTriggersRequest parent. */
                    public parent: string;

                    /** ListJobTriggersRequest pageToken. */
                    public pageToken: string;

                    /** ListJobTriggersRequest pageSize. */
                    public pageSize: number;

                    /** ListJobTriggersRequest orderBy. */
                    public orderBy: string;

                    /** ListJobTriggersRequest filter. */
                    public filter: string;

                    /** ListJobTriggersRequest type. */
                    public type: (google.privacy.dlp.v2.DlpJobType|keyof typeof google.privacy.dlp.v2.DlpJobType);

                    /** ListJobTriggersRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new ListJobTriggersRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListJobTriggersRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListJobTriggersRequest): google.privacy.dlp.v2.ListJobTriggersRequest;

                    /**
                     * Encodes the specified ListJobTriggersRequest message. Does not implicitly {@link google.privacy.dlp.v2.ListJobTriggersRequest.verify|verify} messages.
                     * @param message ListJobTriggersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListJobTriggersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListJobTriggersRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListJobTriggersRequest.verify|verify} messages.
                     * @param message ListJobTriggersRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListJobTriggersRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListJobTriggersRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListJobTriggersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListJobTriggersRequest;

                    /**
                     * Decodes a ListJobTriggersRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListJobTriggersRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListJobTriggersRequest;

                    /**
                     * Verifies a ListJobTriggersRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListJobTriggersRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListJobTriggersRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListJobTriggersRequest;

                    /**
                     * Creates a plain object from a ListJobTriggersRequest message. Also converts values to other types if specified.
                     * @param message ListJobTriggersRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListJobTriggersRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListJobTriggersRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListJobTriggersRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListJobTriggersResponse. */
                interface IListJobTriggersResponse {

                    /** ListJobTriggersResponse jobTriggers */
                    jobTriggers?: (google.privacy.dlp.v2.IJobTrigger[]|null);

                    /** ListJobTriggersResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListJobTriggersResponse. */
                class ListJobTriggersResponse implements IListJobTriggersResponse {

                    /**
                     * Constructs a new ListJobTriggersResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListJobTriggersResponse);

                    /** ListJobTriggersResponse jobTriggers. */
                    public jobTriggers: google.privacy.dlp.v2.IJobTrigger[];

                    /** ListJobTriggersResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListJobTriggersResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListJobTriggersResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListJobTriggersResponse): google.privacy.dlp.v2.ListJobTriggersResponse;

                    /**
                     * Encodes the specified ListJobTriggersResponse message. Does not implicitly {@link google.privacy.dlp.v2.ListJobTriggersResponse.verify|verify} messages.
                     * @param message ListJobTriggersResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListJobTriggersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListJobTriggersResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListJobTriggersResponse.verify|verify} messages.
                     * @param message ListJobTriggersResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListJobTriggersResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListJobTriggersResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListJobTriggersResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListJobTriggersResponse;

                    /**
                     * Decodes a ListJobTriggersResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListJobTriggersResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListJobTriggersResponse;

                    /**
                     * Verifies a ListJobTriggersResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListJobTriggersResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListJobTriggersResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListJobTriggersResponse;

                    /**
                     * Creates a plain object from a ListJobTriggersResponse message. Also converts values to other types if specified.
                     * @param message ListJobTriggersResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListJobTriggersResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListJobTriggersResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListJobTriggersResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteJobTriggerRequest. */
                interface IDeleteJobTriggerRequest {

                    /** DeleteJobTriggerRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteJobTriggerRequest. */
                class DeleteJobTriggerRequest implements IDeleteJobTriggerRequest {

                    /**
                     * Constructs a new DeleteJobTriggerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeleteJobTriggerRequest);

                    /** DeleteJobTriggerRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteJobTriggerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteJobTriggerRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeleteJobTriggerRequest): google.privacy.dlp.v2.DeleteJobTriggerRequest;

                    /**
                     * Encodes the specified DeleteJobTriggerRequest message. Does not implicitly {@link google.privacy.dlp.v2.DeleteJobTriggerRequest.verify|verify} messages.
                     * @param message DeleteJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeleteJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteJobTriggerRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeleteJobTriggerRequest.verify|verify} messages.
                     * @param message DeleteJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeleteJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteJobTriggerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DeleteJobTriggerRequest;

                    /**
                     * Decodes a DeleteJobTriggerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DeleteJobTriggerRequest;

                    /**
                     * Verifies a DeleteJobTriggerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteJobTriggerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteJobTriggerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeleteJobTriggerRequest;

                    /**
                     * Creates a plain object from a DeleteJobTriggerRequest message. Also converts values to other types if specified.
                     * @param message DeleteJobTriggerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeleteJobTriggerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteJobTriggerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteJobTriggerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InspectJobConfig. */
                interface IInspectJobConfig {

                    /** InspectJobConfig storageConfig */
                    storageConfig?: (google.privacy.dlp.v2.IStorageConfig|null);

                    /** InspectJobConfig inspectConfig */
                    inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** InspectJobConfig inspectTemplateName */
                    inspectTemplateName?: (string|null);

                    /** InspectJobConfig actions */
                    actions?: (google.privacy.dlp.v2.IAction[]|null);
                }

                /** Represents an InspectJobConfig. */
                class InspectJobConfig implements IInspectJobConfig {

                    /**
                     * Constructs a new InspectJobConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInspectJobConfig);

                    /** InspectJobConfig storageConfig. */
                    public storageConfig?: (google.privacy.dlp.v2.IStorageConfig|null);

                    /** InspectJobConfig inspectConfig. */
                    public inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** InspectJobConfig inspectTemplateName. */
                    public inspectTemplateName: string;

                    /** InspectJobConfig actions. */
                    public actions: google.privacy.dlp.v2.IAction[];

                    /**
                     * Creates a new InspectJobConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InspectJobConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInspectJobConfig): google.privacy.dlp.v2.InspectJobConfig;

                    /**
                     * Encodes the specified InspectJobConfig message. Does not implicitly {@link google.privacy.dlp.v2.InspectJobConfig.verify|verify} messages.
                     * @param message InspectJobConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInspectJobConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InspectJobConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InspectJobConfig.verify|verify} messages.
                     * @param message InspectJobConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInspectJobConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InspectJobConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InspectJobConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InspectJobConfig;

                    /**
                     * Decodes an InspectJobConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InspectJobConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InspectJobConfig;

                    /**
                     * Verifies an InspectJobConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InspectJobConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InspectJobConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectJobConfig;

                    /**
                     * Creates a plain object from an InspectJobConfig message. Also converts values to other types if specified.
                     * @param message InspectJobConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InspectJobConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InspectJobConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InspectJobConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DataProfileAction. */
                interface IDataProfileAction {

                    /** DataProfileAction exportData */
                    exportData?: (google.privacy.dlp.v2.DataProfileAction.IExport|null);

                    /** DataProfileAction pubSubNotification */
                    pubSubNotification?: (google.privacy.dlp.v2.DataProfileAction.IPubSubNotification|null);
                }

                /** Represents a DataProfileAction. */
                class DataProfileAction implements IDataProfileAction {

                    /**
                     * Constructs a new DataProfileAction.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDataProfileAction);

                    /** DataProfileAction exportData. */
                    public exportData?: (google.privacy.dlp.v2.DataProfileAction.IExport|null);

                    /** DataProfileAction pubSubNotification. */
                    public pubSubNotification?: (google.privacy.dlp.v2.DataProfileAction.IPubSubNotification|null);

                    /** DataProfileAction action. */
                    public action?: ("exportData"|"pubSubNotification");

                    /**
                     * Creates a new DataProfileAction instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DataProfileAction instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDataProfileAction): google.privacy.dlp.v2.DataProfileAction;

                    /**
                     * Encodes the specified DataProfileAction message. Does not implicitly {@link google.privacy.dlp.v2.DataProfileAction.verify|verify} messages.
                     * @param message DataProfileAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDataProfileAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DataProfileAction message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfileAction.verify|verify} messages.
                     * @param message DataProfileAction message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDataProfileAction, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DataProfileAction message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfileAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfileAction;

                    /**
                     * Decodes a DataProfileAction message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfileAction
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfileAction;

                    /**
                     * Verifies a DataProfileAction message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DataProfileAction message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfileAction
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileAction;

                    /**
                     * Creates a plain object from a DataProfileAction message. Also converts values to other types if specified.
                     * @param message DataProfileAction
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DataProfileAction, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DataProfileAction to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DataProfileAction
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DataProfileAction {

                    /** Properties of an Export. */
                    interface IExport {

                        /** Export profileTable */
                        profileTable?: (google.privacy.dlp.v2.IBigQueryTable|null);
                    }

                    /** Represents an Export. */
                    class Export implements IExport {

                        /**
                         * Constructs a new Export.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.DataProfileAction.IExport);

                        /** Export profileTable. */
                        public profileTable?: (google.privacy.dlp.v2.IBigQueryTable|null);

                        /**
                         * Creates a new Export instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Export instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.DataProfileAction.IExport): google.privacy.dlp.v2.DataProfileAction.Export;

                        /**
                         * Encodes the specified Export message. Does not implicitly {@link google.privacy.dlp.v2.DataProfileAction.Export.verify|verify} messages.
                         * @param message Export message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.DataProfileAction.IExport, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Export message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfileAction.Export.verify|verify} messages.
                         * @param message Export message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.DataProfileAction.IExport, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an Export message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Export
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfileAction.Export;

                        /**
                         * Decodes an Export message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Export
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfileAction.Export;

                        /**
                         * Verifies an Export message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates an Export message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Export
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileAction.Export;

                        /**
                         * Creates a plain object from an Export message. Also converts values to other types if specified.
                         * @param message Export
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.DataProfileAction.Export, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Export to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Export
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a PubSubNotification. */
                    interface IPubSubNotification {

                        /** PubSubNotification topic */
                        topic?: (string|null);

                        /** PubSubNotification event */
                        event?: (google.privacy.dlp.v2.DataProfileAction.EventType|keyof typeof google.privacy.dlp.v2.DataProfileAction.EventType|null);

                        /** PubSubNotification pubsubCondition */
                        pubsubCondition?: (google.privacy.dlp.v2.IDataProfilePubSubCondition|null);

                        /** PubSubNotification detailOfMessage */
                        detailOfMessage?: (google.privacy.dlp.v2.DataProfileAction.PubSubNotification.DetailLevel|keyof typeof google.privacy.dlp.v2.DataProfileAction.PubSubNotification.DetailLevel|null);
                    }

                    /** Represents a PubSubNotification. */
                    class PubSubNotification implements IPubSubNotification {

                        /**
                         * Constructs a new PubSubNotification.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.DataProfileAction.IPubSubNotification);

                        /** PubSubNotification topic. */
                        public topic: string;

                        /** PubSubNotification event. */
                        public event: (google.privacy.dlp.v2.DataProfileAction.EventType|keyof typeof google.privacy.dlp.v2.DataProfileAction.EventType);

                        /** PubSubNotification pubsubCondition. */
                        public pubsubCondition?: (google.privacy.dlp.v2.IDataProfilePubSubCondition|null);

                        /** PubSubNotification detailOfMessage. */
                        public detailOfMessage: (google.privacy.dlp.v2.DataProfileAction.PubSubNotification.DetailLevel|keyof typeof google.privacy.dlp.v2.DataProfileAction.PubSubNotification.DetailLevel);

                        /**
                         * Creates a new PubSubNotification instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PubSubNotification instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.DataProfileAction.IPubSubNotification): google.privacy.dlp.v2.DataProfileAction.PubSubNotification;

                        /**
                         * Encodes the specified PubSubNotification message. Does not implicitly {@link google.privacy.dlp.v2.DataProfileAction.PubSubNotification.verify|verify} messages.
                         * @param message PubSubNotification message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.DataProfileAction.IPubSubNotification, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PubSubNotification message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfileAction.PubSubNotification.verify|verify} messages.
                         * @param message PubSubNotification message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.DataProfileAction.IPubSubNotification, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PubSubNotification message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PubSubNotification
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfileAction.PubSubNotification;

                        /**
                         * Decodes a PubSubNotification message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PubSubNotification
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfileAction.PubSubNotification;

                        /**
                         * Verifies a PubSubNotification message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PubSubNotification message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PubSubNotification
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileAction.PubSubNotification;

                        /**
                         * Creates a plain object from a PubSubNotification message. Also converts values to other types if specified.
                         * @param message PubSubNotification
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.DataProfileAction.PubSubNotification, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PubSubNotification to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for PubSubNotification
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace PubSubNotification {

                        /** DetailLevel enum. */
                        enum DetailLevel {
                            DETAIL_LEVEL_UNSPECIFIED = 0,
                            TABLE_PROFILE = 1,
                            RESOURCE_NAME = 2
                        }
                    }

                    /** EventType enum. */
                    enum EventType {
                        EVENT_TYPE_UNSPECIFIED = 0,
                        NEW_PROFILE = 1,
                        CHANGED_PROFILE = 2,
                        SCORE_INCREASED = 3,
                        ERROR_CHANGED = 4
                    }
                }

                /** Properties of a DataProfileJobConfig. */
                interface IDataProfileJobConfig {

                    /** DataProfileJobConfig location */
                    location?: (google.privacy.dlp.v2.IDataProfileLocation|null);

                    /** DataProfileJobConfig projectId */
                    projectId?: (string|null);

                    /** DataProfileJobConfig inspectTemplates */
                    inspectTemplates?: (string[]|null);

                    /** DataProfileJobConfig dataProfileActions */
                    dataProfileActions?: (google.privacy.dlp.v2.IDataProfileAction[]|null);
                }

                /** Represents a DataProfileJobConfig. */
                class DataProfileJobConfig implements IDataProfileJobConfig {

                    /**
                     * Constructs a new DataProfileJobConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDataProfileJobConfig);

                    /** DataProfileJobConfig location. */
                    public location?: (google.privacy.dlp.v2.IDataProfileLocation|null);

                    /** DataProfileJobConfig projectId. */
                    public projectId: string;

                    /** DataProfileJobConfig inspectTemplates. */
                    public inspectTemplates: string[];

                    /** DataProfileJobConfig dataProfileActions. */
                    public dataProfileActions: google.privacy.dlp.v2.IDataProfileAction[];

                    /**
                     * Creates a new DataProfileJobConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DataProfileJobConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDataProfileJobConfig): google.privacy.dlp.v2.DataProfileJobConfig;

                    /**
                     * Encodes the specified DataProfileJobConfig message. Does not implicitly {@link google.privacy.dlp.v2.DataProfileJobConfig.verify|verify} messages.
                     * @param message DataProfileJobConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDataProfileJobConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DataProfileJobConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfileJobConfig.verify|verify} messages.
                     * @param message DataProfileJobConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDataProfileJobConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DataProfileJobConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfileJobConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfileJobConfig;

                    /**
                     * Decodes a DataProfileJobConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfileJobConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfileJobConfig;

                    /**
                     * Verifies a DataProfileJobConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DataProfileJobConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfileJobConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileJobConfig;

                    /**
                     * Creates a plain object from a DataProfileJobConfig message. Also converts values to other types if specified.
                     * @param message DataProfileJobConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DataProfileJobConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DataProfileJobConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DataProfileJobConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DataProfileLocation. */
                interface IDataProfileLocation {

                    /** DataProfileLocation organizationId */
                    organizationId?: (number|Long|string|null);

                    /** DataProfileLocation folderId */
                    folderId?: (number|Long|string|null);
                }

                /** Represents a DataProfileLocation. */
                class DataProfileLocation implements IDataProfileLocation {

                    /**
                     * Constructs a new DataProfileLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDataProfileLocation);

                    /** DataProfileLocation organizationId. */
                    public organizationId?: (number|Long|string|null);

                    /** DataProfileLocation folderId. */
                    public folderId?: (number|Long|string|null);

                    /** DataProfileLocation location. */
                    public location?: ("organizationId"|"folderId");

                    /**
                     * Creates a new DataProfileLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DataProfileLocation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDataProfileLocation): google.privacy.dlp.v2.DataProfileLocation;

                    /**
                     * Encodes the specified DataProfileLocation message. Does not implicitly {@link google.privacy.dlp.v2.DataProfileLocation.verify|verify} messages.
                     * @param message DataProfileLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDataProfileLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DataProfileLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfileLocation.verify|verify} messages.
                     * @param message DataProfileLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDataProfileLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DataProfileLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfileLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfileLocation;

                    /**
                     * Decodes a DataProfileLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfileLocation
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfileLocation;

                    /**
                     * Verifies a DataProfileLocation message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DataProfileLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfileLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileLocation;

                    /**
                     * Creates a plain object from a DataProfileLocation message. Also converts values to other types if specified.
                     * @param message DataProfileLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DataProfileLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DataProfileLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DataProfileLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DlpJob. */
                interface IDlpJob {

                    /** DlpJob name */
                    name?: (string|null);

                    /** DlpJob type */
                    type?: (google.privacy.dlp.v2.DlpJobType|keyof typeof google.privacy.dlp.v2.DlpJobType|null);

                    /** DlpJob state */
                    state?: (google.privacy.dlp.v2.DlpJob.JobState|keyof typeof google.privacy.dlp.v2.DlpJob.JobState|null);

                    /** DlpJob riskDetails */
                    riskDetails?: (google.privacy.dlp.v2.IAnalyzeDataSourceRiskDetails|null);

                    /** DlpJob inspectDetails */
                    inspectDetails?: (google.privacy.dlp.v2.IInspectDataSourceDetails|null);

                    /** DlpJob createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** DlpJob startTime */
                    startTime?: (google.protobuf.ITimestamp|null);

                    /** DlpJob endTime */
                    endTime?: (google.protobuf.ITimestamp|null);

                    /** DlpJob jobTriggerName */
                    jobTriggerName?: (string|null);

                    /** DlpJob errors */
                    errors?: (google.privacy.dlp.v2.IError[]|null);
                }

                /** Represents a DlpJob. */
                class DlpJob implements IDlpJob {

                    /**
                     * Constructs a new DlpJob.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDlpJob);

                    /** DlpJob name. */
                    public name: string;

                    /** DlpJob type. */
                    public type: (google.privacy.dlp.v2.DlpJobType|keyof typeof google.privacy.dlp.v2.DlpJobType);

                    /** DlpJob state. */
                    public state: (google.privacy.dlp.v2.DlpJob.JobState|keyof typeof google.privacy.dlp.v2.DlpJob.JobState);

                    /** DlpJob riskDetails. */
                    public riskDetails?: (google.privacy.dlp.v2.IAnalyzeDataSourceRiskDetails|null);

                    /** DlpJob inspectDetails. */
                    public inspectDetails?: (google.privacy.dlp.v2.IInspectDataSourceDetails|null);

                    /** DlpJob createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** DlpJob startTime. */
                    public startTime?: (google.protobuf.ITimestamp|null);

                    /** DlpJob endTime. */
                    public endTime?: (google.protobuf.ITimestamp|null);

                    /** DlpJob jobTriggerName. */
                    public jobTriggerName: string;

                    /** DlpJob errors. */
                    public errors: google.privacy.dlp.v2.IError[];

                    /** DlpJob details. */
                    public details?: ("riskDetails"|"inspectDetails");

                    /**
                     * Creates a new DlpJob instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DlpJob instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDlpJob): google.privacy.dlp.v2.DlpJob;

                    /**
                     * Encodes the specified DlpJob message. Does not implicitly {@link google.privacy.dlp.v2.DlpJob.verify|verify} messages.
                     * @param message DlpJob message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDlpJob, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DlpJob message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DlpJob.verify|verify} messages.
                     * @param message DlpJob message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDlpJob, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DlpJob message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DlpJob
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DlpJob;

                    /**
                     * Decodes a DlpJob message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DlpJob
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DlpJob;

                    /**
                     * Verifies a DlpJob message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DlpJob message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DlpJob
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DlpJob;

                    /**
                     * Creates a plain object from a DlpJob message. Also converts values to other types if specified.
                     * @param message DlpJob
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DlpJob, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DlpJob to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DlpJob
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DlpJob {

                    /** JobState enum. */
                    enum JobState {
                        JOB_STATE_UNSPECIFIED = 0,
                        PENDING = 1,
                        RUNNING = 2,
                        DONE = 3,
                        CANCELED = 4,
                        FAILED = 5,
                        ACTIVE = 6
                    }
                }

                /** Properties of a GetDlpJobRequest. */
                interface IGetDlpJobRequest {

                    /** GetDlpJobRequest name */
                    name?: (string|null);
                }

                /** Represents a GetDlpJobRequest. */
                class GetDlpJobRequest implements IGetDlpJobRequest {

                    /**
                     * Constructs a new GetDlpJobRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetDlpJobRequest);

                    /** GetDlpJobRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetDlpJobRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDlpJobRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetDlpJobRequest): google.privacy.dlp.v2.GetDlpJobRequest;

                    /**
                     * Encodes the specified GetDlpJobRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetDlpJobRequest.verify|verify} messages.
                     * @param message GetDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDlpJobRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetDlpJobRequest.verify|verify} messages.
                     * @param message GetDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDlpJobRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.GetDlpJobRequest;

                    /**
                     * Decodes a GetDlpJobRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.GetDlpJobRequest;

                    /**
                     * Verifies a GetDlpJobRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetDlpJobRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDlpJobRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetDlpJobRequest;

                    /**
                     * Creates a plain object from a GetDlpJobRequest message. Also converts values to other types if specified.
                     * @param message GetDlpJobRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetDlpJobRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDlpJobRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDlpJobRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDlpJobsRequest. */
                interface IListDlpJobsRequest {

                    /** ListDlpJobsRequest parent */
                    parent?: (string|null);

                    /** ListDlpJobsRequest filter */
                    filter?: (string|null);

                    /** ListDlpJobsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListDlpJobsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDlpJobsRequest type */
                    type?: (google.privacy.dlp.v2.DlpJobType|keyof typeof google.privacy.dlp.v2.DlpJobType|null);

                    /** ListDlpJobsRequest orderBy */
                    orderBy?: (string|null);

                    /** ListDlpJobsRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a ListDlpJobsRequest. */
                class ListDlpJobsRequest implements IListDlpJobsRequest {

                    /**
                     * Constructs a new ListDlpJobsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListDlpJobsRequest);

                    /** ListDlpJobsRequest parent. */
                    public parent: string;

                    /** ListDlpJobsRequest filter. */
                    public filter: string;

                    /** ListDlpJobsRequest pageSize. */
                    public pageSize: number;

                    /** ListDlpJobsRequest pageToken. */
                    public pageToken: string;

                    /** ListDlpJobsRequest type. */
                    public type: (google.privacy.dlp.v2.DlpJobType|keyof typeof google.privacy.dlp.v2.DlpJobType);

                    /** ListDlpJobsRequest orderBy. */
                    public orderBy: string;

                    /** ListDlpJobsRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new ListDlpJobsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDlpJobsRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListDlpJobsRequest): google.privacy.dlp.v2.ListDlpJobsRequest;

                    /**
                     * Encodes the specified ListDlpJobsRequest message. Does not implicitly {@link google.privacy.dlp.v2.ListDlpJobsRequest.verify|verify} messages.
                     * @param message ListDlpJobsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListDlpJobsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDlpJobsRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListDlpJobsRequest.verify|verify} messages.
                     * @param message ListDlpJobsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListDlpJobsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDlpJobsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDlpJobsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListDlpJobsRequest;

                    /**
                     * Decodes a ListDlpJobsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDlpJobsRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListDlpJobsRequest;

                    /**
                     * Verifies a ListDlpJobsRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDlpJobsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDlpJobsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListDlpJobsRequest;

                    /**
                     * Creates a plain object from a ListDlpJobsRequest message. Also converts values to other types if specified.
                     * @param message ListDlpJobsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListDlpJobsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDlpJobsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDlpJobsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDlpJobsResponse. */
                interface IListDlpJobsResponse {

                    /** ListDlpJobsResponse jobs */
                    jobs?: (google.privacy.dlp.v2.IDlpJob[]|null);

                    /** ListDlpJobsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListDlpJobsResponse. */
                class ListDlpJobsResponse implements IListDlpJobsResponse {

                    /**
                     * Constructs a new ListDlpJobsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListDlpJobsResponse);

                    /** ListDlpJobsResponse jobs. */
                    public jobs: google.privacy.dlp.v2.IDlpJob[];

                    /** ListDlpJobsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListDlpJobsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDlpJobsResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListDlpJobsResponse): google.privacy.dlp.v2.ListDlpJobsResponse;

                    /**
                     * Encodes the specified ListDlpJobsResponse message. Does not implicitly {@link google.privacy.dlp.v2.ListDlpJobsResponse.verify|verify} messages.
                     * @param message ListDlpJobsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListDlpJobsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDlpJobsResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListDlpJobsResponse.verify|verify} messages.
                     * @param message ListDlpJobsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListDlpJobsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDlpJobsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDlpJobsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListDlpJobsResponse;

                    /**
                     * Decodes a ListDlpJobsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDlpJobsResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListDlpJobsResponse;

                    /**
                     * Verifies a ListDlpJobsResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDlpJobsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDlpJobsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListDlpJobsResponse;

                    /**
                     * Creates a plain object from a ListDlpJobsResponse message. Also converts values to other types if specified.
                     * @param message ListDlpJobsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListDlpJobsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDlpJobsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDlpJobsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CancelDlpJobRequest. */
                interface ICancelDlpJobRequest {

                    /** CancelDlpJobRequest name */
                    name?: (string|null);
                }

                /** Represents a CancelDlpJobRequest. */
                class CancelDlpJobRequest implements ICancelDlpJobRequest {

                    /**
                     * Constructs a new CancelDlpJobRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICancelDlpJobRequest);

                    /** CancelDlpJobRequest name. */
                    public name: string;

                    /**
                     * Creates a new CancelDlpJobRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CancelDlpJobRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICancelDlpJobRequest): google.privacy.dlp.v2.CancelDlpJobRequest;

                    /**
                     * Encodes the specified CancelDlpJobRequest message. Does not implicitly {@link google.privacy.dlp.v2.CancelDlpJobRequest.verify|verify} messages.
                     * @param message CancelDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICancelDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CancelDlpJobRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CancelDlpJobRequest.verify|verify} messages.
                     * @param message CancelDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICancelDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CancelDlpJobRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CancelDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CancelDlpJobRequest;

                    /**
                     * Decodes a CancelDlpJobRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CancelDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CancelDlpJobRequest;

                    /**
                     * Verifies a CancelDlpJobRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CancelDlpJobRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CancelDlpJobRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CancelDlpJobRequest;

                    /**
                     * Creates a plain object from a CancelDlpJobRequest message. Also converts values to other types if specified.
                     * @param message CancelDlpJobRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CancelDlpJobRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CancelDlpJobRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CancelDlpJobRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FinishDlpJobRequest. */
                interface IFinishDlpJobRequest {

                    /** FinishDlpJobRequest name */
                    name?: (string|null);
                }

                /** Represents a FinishDlpJobRequest. */
                class FinishDlpJobRequest implements IFinishDlpJobRequest {

                    /**
                     * Constructs a new FinishDlpJobRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IFinishDlpJobRequest);

                    /** FinishDlpJobRequest name. */
                    public name: string;

                    /**
                     * Creates a new FinishDlpJobRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FinishDlpJobRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFinishDlpJobRequest): google.privacy.dlp.v2.FinishDlpJobRequest;

                    /**
                     * Encodes the specified FinishDlpJobRequest message. Does not implicitly {@link google.privacy.dlp.v2.FinishDlpJobRequest.verify|verify} messages.
                     * @param message FinishDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFinishDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FinishDlpJobRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.FinishDlpJobRequest.verify|verify} messages.
                     * @param message FinishDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFinishDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FinishDlpJobRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FinishDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.FinishDlpJobRequest;

                    /**
                     * Decodes a FinishDlpJobRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FinishDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.FinishDlpJobRequest;

                    /**
                     * Verifies a FinishDlpJobRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FinishDlpJobRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FinishDlpJobRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FinishDlpJobRequest;

                    /**
                     * Creates a plain object from a FinishDlpJobRequest message. Also converts values to other types if specified.
                     * @param message FinishDlpJobRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.FinishDlpJobRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FinishDlpJobRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FinishDlpJobRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteDlpJobRequest. */
                interface IDeleteDlpJobRequest {

                    /** DeleteDlpJobRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteDlpJobRequest. */
                class DeleteDlpJobRequest implements IDeleteDlpJobRequest {

                    /**
                     * Constructs a new DeleteDlpJobRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeleteDlpJobRequest);

                    /** DeleteDlpJobRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteDlpJobRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteDlpJobRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeleteDlpJobRequest): google.privacy.dlp.v2.DeleteDlpJobRequest;

                    /**
                     * Encodes the specified DeleteDlpJobRequest message. Does not implicitly {@link google.privacy.dlp.v2.DeleteDlpJobRequest.verify|verify} messages.
                     * @param message DeleteDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeleteDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteDlpJobRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeleteDlpJobRequest.verify|verify} messages.
                     * @param message DeleteDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeleteDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteDlpJobRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DeleteDlpJobRequest;

                    /**
                     * Decodes a DeleteDlpJobRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DeleteDlpJobRequest;

                    /**
                     * Verifies a DeleteDlpJobRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteDlpJobRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteDlpJobRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeleteDlpJobRequest;

                    /**
                     * Creates a plain object from a DeleteDlpJobRequest message. Also converts values to other types if specified.
                     * @param message DeleteDlpJobRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeleteDlpJobRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteDlpJobRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteDlpJobRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateDeidentifyTemplateRequest. */
                interface ICreateDeidentifyTemplateRequest {

                    /** CreateDeidentifyTemplateRequest parent */
                    parent?: (string|null);

                    /** CreateDeidentifyTemplateRequest deidentifyTemplate */
                    deidentifyTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);

                    /** CreateDeidentifyTemplateRequest templateId */
                    templateId?: (string|null);

                    /** CreateDeidentifyTemplateRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a CreateDeidentifyTemplateRequest. */
                class CreateDeidentifyTemplateRequest implements ICreateDeidentifyTemplateRequest {

                    /**
                     * Constructs a new CreateDeidentifyTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICreateDeidentifyTemplateRequest);

                    /** CreateDeidentifyTemplateRequest parent. */
                    public parent: string;

                    /** CreateDeidentifyTemplateRequest deidentifyTemplate. */
                    public deidentifyTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);

                    /** CreateDeidentifyTemplateRequest templateId. */
                    public templateId: string;

                    /** CreateDeidentifyTemplateRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new CreateDeidentifyTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateDeidentifyTemplateRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICreateDeidentifyTemplateRequest): google.privacy.dlp.v2.CreateDeidentifyTemplateRequest;

                    /**
                     * Encodes the specified CreateDeidentifyTemplateRequest message. Does not implicitly {@link google.privacy.dlp.v2.CreateDeidentifyTemplateRequest.verify|verify} messages.
                     * @param message CreateDeidentifyTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICreateDeidentifyTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateDeidentifyTemplateRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CreateDeidentifyTemplateRequest.verify|verify} messages.
                     * @param message CreateDeidentifyTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICreateDeidentifyTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateDeidentifyTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateDeidentifyTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CreateDeidentifyTemplateRequest;

                    /**
                     * Decodes a CreateDeidentifyTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateDeidentifyTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CreateDeidentifyTemplateRequest;

                    /**
                     * Verifies a CreateDeidentifyTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateDeidentifyTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateDeidentifyTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CreateDeidentifyTemplateRequest;

                    /**
                     * Creates a plain object from a CreateDeidentifyTemplateRequest message. Also converts values to other types if specified.
                     * @param message CreateDeidentifyTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CreateDeidentifyTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateDeidentifyTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateDeidentifyTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateDeidentifyTemplateRequest. */
                interface IUpdateDeidentifyTemplateRequest {

                    /** UpdateDeidentifyTemplateRequest name */
                    name?: (string|null);

                    /** UpdateDeidentifyTemplateRequest deidentifyTemplate */
                    deidentifyTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);

                    /** UpdateDeidentifyTemplateRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateDeidentifyTemplateRequest. */
                class UpdateDeidentifyTemplateRequest implements IUpdateDeidentifyTemplateRequest {

                    /**
                     * Constructs a new UpdateDeidentifyTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IUpdateDeidentifyTemplateRequest);

                    /** UpdateDeidentifyTemplateRequest name. */
                    public name: string;

                    /** UpdateDeidentifyTemplateRequest deidentifyTemplate. */
                    public deidentifyTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);

                    /** UpdateDeidentifyTemplateRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateDeidentifyTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateDeidentifyTemplateRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IUpdateDeidentifyTemplateRequest): google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest;

                    /**
                     * Encodes the specified UpdateDeidentifyTemplateRequest message. Does not implicitly {@link google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest.verify|verify} messages.
                     * @param message UpdateDeidentifyTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IUpdateDeidentifyTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateDeidentifyTemplateRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest.verify|verify} messages.
                     * @param message UpdateDeidentifyTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IUpdateDeidentifyTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateDeidentifyTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateDeidentifyTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest;

                    /**
                     * Decodes an UpdateDeidentifyTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateDeidentifyTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest;

                    /**
                     * Verifies an UpdateDeidentifyTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateDeidentifyTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateDeidentifyTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest;

                    /**
                     * Creates a plain object from an UpdateDeidentifyTemplateRequest message. Also converts values to other types if specified.
                     * @param message UpdateDeidentifyTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateDeidentifyTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateDeidentifyTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetDeidentifyTemplateRequest. */
                interface IGetDeidentifyTemplateRequest {

                    /** GetDeidentifyTemplateRequest name */
                    name?: (string|null);
                }

                /** Represents a GetDeidentifyTemplateRequest. */
                class GetDeidentifyTemplateRequest implements IGetDeidentifyTemplateRequest {

                    /**
                     * Constructs a new GetDeidentifyTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetDeidentifyTemplateRequest);

                    /** GetDeidentifyTemplateRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetDeidentifyTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetDeidentifyTemplateRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetDeidentifyTemplateRequest): google.privacy.dlp.v2.GetDeidentifyTemplateRequest;

                    /**
                     * Encodes the specified GetDeidentifyTemplateRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetDeidentifyTemplateRequest.verify|verify} messages.
                     * @param message GetDeidentifyTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetDeidentifyTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetDeidentifyTemplateRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetDeidentifyTemplateRequest.verify|verify} messages.
                     * @param message GetDeidentifyTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetDeidentifyTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetDeidentifyTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDeidentifyTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.GetDeidentifyTemplateRequest;

                    /**
                     * Decodes a GetDeidentifyTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDeidentifyTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.GetDeidentifyTemplateRequest;

                    /**
                     * Verifies a GetDeidentifyTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetDeidentifyTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDeidentifyTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetDeidentifyTemplateRequest;

                    /**
                     * Creates a plain object from a GetDeidentifyTemplateRequest message. Also converts values to other types if specified.
                     * @param message GetDeidentifyTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetDeidentifyTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetDeidentifyTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetDeidentifyTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDeidentifyTemplatesRequest. */
                interface IListDeidentifyTemplatesRequest {

                    /** ListDeidentifyTemplatesRequest parent */
                    parent?: (string|null);

                    /** ListDeidentifyTemplatesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDeidentifyTemplatesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListDeidentifyTemplatesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListDeidentifyTemplatesRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a ListDeidentifyTemplatesRequest. */
                class ListDeidentifyTemplatesRequest implements IListDeidentifyTemplatesRequest {

                    /**
                     * Constructs a new ListDeidentifyTemplatesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListDeidentifyTemplatesRequest);

                    /** ListDeidentifyTemplatesRequest parent. */
                    public parent: string;

                    /** ListDeidentifyTemplatesRequest pageToken. */
                    public pageToken: string;

                    /** ListDeidentifyTemplatesRequest pageSize. */
                    public pageSize: number;

                    /** ListDeidentifyTemplatesRequest orderBy. */
                    public orderBy: string;

                    /** ListDeidentifyTemplatesRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new ListDeidentifyTemplatesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDeidentifyTemplatesRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListDeidentifyTemplatesRequest): google.privacy.dlp.v2.ListDeidentifyTemplatesRequest;

                    /**
                     * Encodes the specified ListDeidentifyTemplatesRequest message. Does not implicitly {@link google.privacy.dlp.v2.ListDeidentifyTemplatesRequest.verify|verify} messages.
                     * @param message ListDeidentifyTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListDeidentifyTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDeidentifyTemplatesRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListDeidentifyTemplatesRequest.verify|verify} messages.
                     * @param message ListDeidentifyTemplatesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListDeidentifyTemplatesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDeidentifyTemplatesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDeidentifyTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListDeidentifyTemplatesRequest;

                    /**
                     * Decodes a ListDeidentifyTemplatesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDeidentifyTemplatesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListDeidentifyTemplatesRequest;

                    /**
                     * Verifies a ListDeidentifyTemplatesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDeidentifyTemplatesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDeidentifyTemplatesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListDeidentifyTemplatesRequest;

                    /**
                     * Creates a plain object from a ListDeidentifyTemplatesRequest message. Also converts values to other types if specified.
                     * @param message ListDeidentifyTemplatesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListDeidentifyTemplatesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDeidentifyTemplatesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDeidentifyTemplatesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListDeidentifyTemplatesResponse. */
                interface IListDeidentifyTemplatesResponse {

                    /** ListDeidentifyTemplatesResponse deidentifyTemplates */
                    deidentifyTemplates?: (google.privacy.dlp.v2.IDeidentifyTemplate[]|null);

                    /** ListDeidentifyTemplatesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListDeidentifyTemplatesResponse. */
                class ListDeidentifyTemplatesResponse implements IListDeidentifyTemplatesResponse {

                    /**
                     * Constructs a new ListDeidentifyTemplatesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListDeidentifyTemplatesResponse);

                    /** ListDeidentifyTemplatesResponse deidentifyTemplates. */
                    public deidentifyTemplates: google.privacy.dlp.v2.IDeidentifyTemplate[];

                    /** ListDeidentifyTemplatesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListDeidentifyTemplatesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListDeidentifyTemplatesResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListDeidentifyTemplatesResponse): google.privacy.dlp.v2.ListDeidentifyTemplatesResponse;

                    /**
                     * Encodes the specified ListDeidentifyTemplatesResponse message. Does not implicitly {@link google.privacy.dlp.v2.ListDeidentifyTemplatesResponse.verify|verify} messages.
                     * @param message ListDeidentifyTemplatesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListDeidentifyTemplatesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListDeidentifyTemplatesResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListDeidentifyTemplatesResponse.verify|verify} messages.
                     * @param message ListDeidentifyTemplatesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListDeidentifyTemplatesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListDeidentifyTemplatesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDeidentifyTemplatesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListDeidentifyTemplatesResponse;

                    /**
                     * Decodes a ListDeidentifyTemplatesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDeidentifyTemplatesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListDeidentifyTemplatesResponse;

                    /**
                     * Verifies a ListDeidentifyTemplatesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListDeidentifyTemplatesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDeidentifyTemplatesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListDeidentifyTemplatesResponse;

                    /**
                     * Creates a plain object from a ListDeidentifyTemplatesResponse message. Also converts values to other types if specified.
                     * @param message ListDeidentifyTemplatesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListDeidentifyTemplatesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListDeidentifyTemplatesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListDeidentifyTemplatesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteDeidentifyTemplateRequest. */
                interface IDeleteDeidentifyTemplateRequest {

                    /** DeleteDeidentifyTemplateRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteDeidentifyTemplateRequest. */
                class DeleteDeidentifyTemplateRequest implements IDeleteDeidentifyTemplateRequest {

                    /**
                     * Constructs a new DeleteDeidentifyTemplateRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeleteDeidentifyTemplateRequest);

                    /** DeleteDeidentifyTemplateRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteDeidentifyTemplateRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteDeidentifyTemplateRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeleteDeidentifyTemplateRequest): google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest;

                    /**
                     * Encodes the specified DeleteDeidentifyTemplateRequest message. Does not implicitly {@link google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest.verify|verify} messages.
                     * @param message DeleteDeidentifyTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeleteDeidentifyTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteDeidentifyTemplateRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest.verify|verify} messages.
                     * @param message DeleteDeidentifyTemplateRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeleteDeidentifyTemplateRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteDeidentifyTemplateRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteDeidentifyTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest;

                    /**
                     * Decodes a DeleteDeidentifyTemplateRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteDeidentifyTemplateRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest;

                    /**
                     * Verifies a DeleteDeidentifyTemplateRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteDeidentifyTemplateRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteDeidentifyTemplateRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest;

                    /**
                     * Creates a plain object from a DeleteDeidentifyTemplateRequest message. Also converts values to other types if specified.
                     * @param message DeleteDeidentifyTemplateRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteDeidentifyTemplateRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteDeidentifyTemplateRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LargeCustomDictionaryConfig. */
                interface ILargeCustomDictionaryConfig {

                    /** LargeCustomDictionaryConfig outputPath */
                    outputPath?: (google.privacy.dlp.v2.ICloudStoragePath|null);

                    /** LargeCustomDictionaryConfig cloudStorageFileSet */
                    cloudStorageFileSet?: (google.privacy.dlp.v2.ICloudStorageFileSet|null);

                    /** LargeCustomDictionaryConfig bigQueryField */
                    bigQueryField?: (google.privacy.dlp.v2.IBigQueryField|null);
                }

                /** Represents a LargeCustomDictionaryConfig. */
                class LargeCustomDictionaryConfig implements ILargeCustomDictionaryConfig {

                    /**
                     * Constructs a new LargeCustomDictionaryConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ILargeCustomDictionaryConfig);

                    /** LargeCustomDictionaryConfig outputPath. */
                    public outputPath?: (google.privacy.dlp.v2.ICloudStoragePath|null);

                    /** LargeCustomDictionaryConfig cloudStorageFileSet. */
                    public cloudStorageFileSet?: (google.privacy.dlp.v2.ICloudStorageFileSet|null);

                    /** LargeCustomDictionaryConfig bigQueryField. */
                    public bigQueryField?: (google.privacy.dlp.v2.IBigQueryField|null);

                    /** LargeCustomDictionaryConfig source. */
                    public source?: ("cloudStorageFileSet"|"bigQueryField");

                    /**
                     * Creates a new LargeCustomDictionaryConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LargeCustomDictionaryConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ILargeCustomDictionaryConfig): google.privacy.dlp.v2.LargeCustomDictionaryConfig;

                    /**
                     * Encodes the specified LargeCustomDictionaryConfig message. Does not implicitly {@link google.privacy.dlp.v2.LargeCustomDictionaryConfig.verify|verify} messages.
                     * @param message LargeCustomDictionaryConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ILargeCustomDictionaryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LargeCustomDictionaryConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.LargeCustomDictionaryConfig.verify|verify} messages.
                     * @param message LargeCustomDictionaryConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ILargeCustomDictionaryConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LargeCustomDictionaryConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LargeCustomDictionaryConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.LargeCustomDictionaryConfig;

                    /**
                     * Decodes a LargeCustomDictionaryConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LargeCustomDictionaryConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.LargeCustomDictionaryConfig;

                    /**
                     * Verifies a LargeCustomDictionaryConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LargeCustomDictionaryConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LargeCustomDictionaryConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.LargeCustomDictionaryConfig;

                    /**
                     * Creates a plain object from a LargeCustomDictionaryConfig message. Also converts values to other types if specified.
                     * @param message LargeCustomDictionaryConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.LargeCustomDictionaryConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LargeCustomDictionaryConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LargeCustomDictionaryConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a LargeCustomDictionaryStats. */
                interface ILargeCustomDictionaryStats {

                    /** LargeCustomDictionaryStats approxNumPhrases */
                    approxNumPhrases?: (number|Long|string|null);
                }

                /** Represents a LargeCustomDictionaryStats. */
                class LargeCustomDictionaryStats implements ILargeCustomDictionaryStats {

                    /**
                     * Constructs a new LargeCustomDictionaryStats.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ILargeCustomDictionaryStats);

                    /** LargeCustomDictionaryStats approxNumPhrases. */
                    public approxNumPhrases: (number|Long|string);

                    /**
                     * Creates a new LargeCustomDictionaryStats instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns LargeCustomDictionaryStats instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ILargeCustomDictionaryStats): google.privacy.dlp.v2.LargeCustomDictionaryStats;

                    /**
                     * Encodes the specified LargeCustomDictionaryStats message. Does not implicitly {@link google.privacy.dlp.v2.LargeCustomDictionaryStats.verify|verify} messages.
                     * @param message LargeCustomDictionaryStats message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ILargeCustomDictionaryStats, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified LargeCustomDictionaryStats message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.LargeCustomDictionaryStats.verify|verify} messages.
                     * @param message LargeCustomDictionaryStats message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ILargeCustomDictionaryStats, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a LargeCustomDictionaryStats message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LargeCustomDictionaryStats
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.LargeCustomDictionaryStats;

                    /**
                     * Decodes a LargeCustomDictionaryStats message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LargeCustomDictionaryStats
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.LargeCustomDictionaryStats;

                    /**
                     * Verifies a LargeCustomDictionaryStats message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a LargeCustomDictionaryStats message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LargeCustomDictionaryStats
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.LargeCustomDictionaryStats;

                    /**
                     * Creates a plain object from a LargeCustomDictionaryStats message. Also converts values to other types if specified.
                     * @param message LargeCustomDictionaryStats
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.LargeCustomDictionaryStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this LargeCustomDictionaryStats to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for LargeCustomDictionaryStats
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoredInfoTypeConfig. */
                interface IStoredInfoTypeConfig {

                    /** StoredInfoTypeConfig displayName */
                    displayName?: (string|null);

                    /** StoredInfoTypeConfig description */
                    description?: (string|null);

                    /** StoredInfoTypeConfig largeCustomDictionary */
                    largeCustomDictionary?: (google.privacy.dlp.v2.ILargeCustomDictionaryConfig|null);

                    /** StoredInfoTypeConfig dictionary */
                    dictionary?: (google.privacy.dlp.v2.CustomInfoType.IDictionary|null);

                    /** StoredInfoTypeConfig regex */
                    regex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);
                }

                /** Represents a StoredInfoTypeConfig. */
                class StoredInfoTypeConfig implements IStoredInfoTypeConfig {

                    /**
                     * Constructs a new StoredInfoTypeConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IStoredInfoTypeConfig);

                    /** StoredInfoTypeConfig displayName. */
                    public displayName: string;

                    /** StoredInfoTypeConfig description. */
                    public description: string;

                    /** StoredInfoTypeConfig largeCustomDictionary. */
                    public largeCustomDictionary?: (google.privacy.dlp.v2.ILargeCustomDictionaryConfig|null);

                    /** StoredInfoTypeConfig dictionary. */
                    public dictionary?: (google.privacy.dlp.v2.CustomInfoType.IDictionary|null);

                    /** StoredInfoTypeConfig regex. */
                    public regex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);

                    /** StoredInfoTypeConfig type. */
                    public type?: ("largeCustomDictionary"|"dictionary"|"regex");

                    /**
                     * Creates a new StoredInfoTypeConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoredInfoTypeConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IStoredInfoTypeConfig): google.privacy.dlp.v2.StoredInfoTypeConfig;

                    /**
                     * Encodes the specified StoredInfoTypeConfig message. Does not implicitly {@link google.privacy.dlp.v2.StoredInfoTypeConfig.verify|verify} messages.
                     * @param message StoredInfoTypeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IStoredInfoTypeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoredInfoTypeConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StoredInfoTypeConfig.verify|verify} messages.
                     * @param message StoredInfoTypeConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IStoredInfoTypeConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoredInfoTypeConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoredInfoTypeConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StoredInfoTypeConfig;

                    /**
                     * Decodes a StoredInfoTypeConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoredInfoTypeConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StoredInfoTypeConfig;

                    /**
                     * Verifies a StoredInfoTypeConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoredInfoTypeConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoredInfoTypeConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StoredInfoTypeConfig;

                    /**
                     * Creates a plain object from a StoredInfoTypeConfig message. Also converts values to other types if specified.
                     * @param message StoredInfoTypeConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.StoredInfoTypeConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoredInfoTypeConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoredInfoTypeConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoredInfoTypeStats. */
                interface IStoredInfoTypeStats {

                    /** StoredInfoTypeStats largeCustomDictionary */
                    largeCustomDictionary?: (google.privacy.dlp.v2.ILargeCustomDictionaryStats|null);
                }

                /** Represents a StoredInfoTypeStats. */
                class StoredInfoTypeStats implements IStoredInfoTypeStats {

                    /**
                     * Constructs a new StoredInfoTypeStats.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IStoredInfoTypeStats);

                    /** StoredInfoTypeStats largeCustomDictionary. */
                    public largeCustomDictionary?: (google.privacy.dlp.v2.ILargeCustomDictionaryStats|null);

                    /** StoredInfoTypeStats type. */
                    public type?: "largeCustomDictionary";

                    /**
                     * Creates a new StoredInfoTypeStats instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoredInfoTypeStats instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IStoredInfoTypeStats): google.privacy.dlp.v2.StoredInfoTypeStats;

                    /**
                     * Encodes the specified StoredInfoTypeStats message. Does not implicitly {@link google.privacy.dlp.v2.StoredInfoTypeStats.verify|verify} messages.
                     * @param message StoredInfoTypeStats message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IStoredInfoTypeStats, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoredInfoTypeStats message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StoredInfoTypeStats.verify|verify} messages.
                     * @param message StoredInfoTypeStats message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IStoredInfoTypeStats, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoredInfoTypeStats message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoredInfoTypeStats
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StoredInfoTypeStats;

                    /**
                     * Decodes a StoredInfoTypeStats message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoredInfoTypeStats
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StoredInfoTypeStats;

                    /**
                     * Verifies a StoredInfoTypeStats message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoredInfoTypeStats message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoredInfoTypeStats
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StoredInfoTypeStats;

                    /**
                     * Creates a plain object from a StoredInfoTypeStats message. Also converts values to other types if specified.
                     * @param message StoredInfoTypeStats
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.StoredInfoTypeStats, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoredInfoTypeStats to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoredInfoTypeStats
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoredInfoTypeVersion. */
                interface IStoredInfoTypeVersion {

                    /** StoredInfoTypeVersion config */
                    config?: (google.privacy.dlp.v2.IStoredInfoTypeConfig|null);

                    /** StoredInfoTypeVersion createTime */
                    createTime?: (google.protobuf.ITimestamp|null);

                    /** StoredInfoTypeVersion state */
                    state?: (google.privacy.dlp.v2.StoredInfoTypeState|keyof typeof google.privacy.dlp.v2.StoredInfoTypeState|null);

                    /** StoredInfoTypeVersion errors */
                    errors?: (google.privacy.dlp.v2.IError[]|null);

                    /** StoredInfoTypeVersion stats */
                    stats?: (google.privacy.dlp.v2.IStoredInfoTypeStats|null);
                }

                /** Represents a StoredInfoTypeVersion. */
                class StoredInfoTypeVersion implements IStoredInfoTypeVersion {

                    /**
                     * Constructs a new StoredInfoTypeVersion.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IStoredInfoTypeVersion);

                    /** StoredInfoTypeVersion config. */
                    public config?: (google.privacy.dlp.v2.IStoredInfoTypeConfig|null);

                    /** StoredInfoTypeVersion createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** StoredInfoTypeVersion state. */
                    public state: (google.privacy.dlp.v2.StoredInfoTypeState|keyof typeof google.privacy.dlp.v2.StoredInfoTypeState);

                    /** StoredInfoTypeVersion errors. */
                    public errors: google.privacy.dlp.v2.IError[];

                    /** StoredInfoTypeVersion stats. */
                    public stats?: (google.privacy.dlp.v2.IStoredInfoTypeStats|null);

                    /**
                     * Creates a new StoredInfoTypeVersion instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoredInfoTypeVersion instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IStoredInfoTypeVersion): google.privacy.dlp.v2.StoredInfoTypeVersion;

                    /**
                     * Encodes the specified StoredInfoTypeVersion message. Does not implicitly {@link google.privacy.dlp.v2.StoredInfoTypeVersion.verify|verify} messages.
                     * @param message StoredInfoTypeVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IStoredInfoTypeVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoredInfoTypeVersion message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StoredInfoTypeVersion.verify|verify} messages.
                     * @param message StoredInfoTypeVersion message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IStoredInfoTypeVersion, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoredInfoTypeVersion message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoredInfoTypeVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StoredInfoTypeVersion;

                    /**
                     * Decodes a StoredInfoTypeVersion message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoredInfoTypeVersion
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StoredInfoTypeVersion;

                    /**
                     * Verifies a StoredInfoTypeVersion message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoredInfoTypeVersion message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoredInfoTypeVersion
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StoredInfoTypeVersion;

                    /**
                     * Creates a plain object from a StoredInfoTypeVersion message. Also converts values to other types if specified.
                     * @param message StoredInfoTypeVersion
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.StoredInfoTypeVersion, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoredInfoTypeVersion to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoredInfoTypeVersion
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a StoredInfoType. */
                interface IStoredInfoType {

                    /** StoredInfoType name */
                    name?: (string|null);

                    /** StoredInfoType currentVersion */
                    currentVersion?: (google.privacy.dlp.v2.IStoredInfoTypeVersion|null);

                    /** StoredInfoType pendingVersions */
                    pendingVersions?: (google.privacy.dlp.v2.IStoredInfoTypeVersion[]|null);
                }

                /** Represents a StoredInfoType. */
                class StoredInfoType implements IStoredInfoType {

                    /**
                     * Constructs a new StoredInfoType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IStoredInfoType);

                    /** StoredInfoType name. */
                    public name: string;

                    /** StoredInfoType currentVersion. */
                    public currentVersion?: (google.privacy.dlp.v2.IStoredInfoTypeVersion|null);

                    /** StoredInfoType pendingVersions. */
                    public pendingVersions: google.privacy.dlp.v2.IStoredInfoTypeVersion[];

                    /**
                     * Creates a new StoredInfoType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoredInfoType instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IStoredInfoType): google.privacy.dlp.v2.StoredInfoType;

                    /**
                     * Encodes the specified StoredInfoType message. Does not implicitly {@link google.privacy.dlp.v2.StoredInfoType.verify|verify} messages.
                     * @param message StoredInfoType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IStoredInfoType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoredInfoType message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StoredInfoType.verify|verify} messages.
                     * @param message StoredInfoType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IStoredInfoType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoredInfoType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoredInfoType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StoredInfoType;

                    /**
                     * Decodes a StoredInfoType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoredInfoType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StoredInfoType;

                    /**
                     * Verifies a StoredInfoType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoredInfoType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoredInfoType
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StoredInfoType;

                    /**
                     * Creates a plain object from a StoredInfoType message. Also converts values to other types if specified.
                     * @param message StoredInfoType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.StoredInfoType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoredInfoType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoredInfoType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CreateStoredInfoTypeRequest. */
                interface ICreateStoredInfoTypeRequest {

                    /** CreateStoredInfoTypeRequest parent */
                    parent?: (string|null);

                    /** CreateStoredInfoTypeRequest config */
                    config?: (google.privacy.dlp.v2.IStoredInfoTypeConfig|null);

                    /** CreateStoredInfoTypeRequest storedInfoTypeId */
                    storedInfoTypeId?: (string|null);

                    /** CreateStoredInfoTypeRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a CreateStoredInfoTypeRequest. */
                class CreateStoredInfoTypeRequest implements ICreateStoredInfoTypeRequest {

                    /**
                     * Constructs a new CreateStoredInfoTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICreateStoredInfoTypeRequest);

                    /** CreateStoredInfoTypeRequest parent. */
                    public parent: string;

                    /** CreateStoredInfoTypeRequest config. */
                    public config?: (google.privacy.dlp.v2.IStoredInfoTypeConfig|null);

                    /** CreateStoredInfoTypeRequest storedInfoTypeId. */
                    public storedInfoTypeId: string;

                    /** CreateStoredInfoTypeRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new CreateStoredInfoTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateStoredInfoTypeRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICreateStoredInfoTypeRequest): google.privacy.dlp.v2.CreateStoredInfoTypeRequest;

                    /**
                     * Encodes the specified CreateStoredInfoTypeRequest message. Does not implicitly {@link google.privacy.dlp.v2.CreateStoredInfoTypeRequest.verify|verify} messages.
                     * @param message CreateStoredInfoTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICreateStoredInfoTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateStoredInfoTypeRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CreateStoredInfoTypeRequest.verify|verify} messages.
                     * @param message CreateStoredInfoTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICreateStoredInfoTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateStoredInfoTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateStoredInfoTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CreateStoredInfoTypeRequest;

                    /**
                     * Decodes a CreateStoredInfoTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateStoredInfoTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CreateStoredInfoTypeRequest;

                    /**
                     * Verifies a CreateStoredInfoTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CreateStoredInfoTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateStoredInfoTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CreateStoredInfoTypeRequest;

                    /**
                     * Creates a plain object from a CreateStoredInfoTypeRequest message. Also converts values to other types if specified.
                     * @param message CreateStoredInfoTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CreateStoredInfoTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateStoredInfoTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateStoredInfoTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateStoredInfoTypeRequest. */
                interface IUpdateStoredInfoTypeRequest {

                    /** UpdateStoredInfoTypeRequest name */
                    name?: (string|null);

                    /** UpdateStoredInfoTypeRequest config */
                    config?: (google.privacy.dlp.v2.IStoredInfoTypeConfig|null);

                    /** UpdateStoredInfoTypeRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateStoredInfoTypeRequest. */
                class UpdateStoredInfoTypeRequest implements IUpdateStoredInfoTypeRequest {

                    /**
                     * Constructs a new UpdateStoredInfoTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IUpdateStoredInfoTypeRequest);

                    /** UpdateStoredInfoTypeRequest name. */
                    public name: string;

                    /** UpdateStoredInfoTypeRequest config. */
                    public config?: (google.privacy.dlp.v2.IStoredInfoTypeConfig|null);

                    /** UpdateStoredInfoTypeRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateStoredInfoTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateStoredInfoTypeRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IUpdateStoredInfoTypeRequest): google.privacy.dlp.v2.UpdateStoredInfoTypeRequest;

                    /**
                     * Encodes the specified UpdateStoredInfoTypeRequest message. Does not implicitly {@link google.privacy.dlp.v2.UpdateStoredInfoTypeRequest.verify|verify} messages.
                     * @param message UpdateStoredInfoTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IUpdateStoredInfoTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateStoredInfoTypeRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.UpdateStoredInfoTypeRequest.verify|verify} messages.
                     * @param message UpdateStoredInfoTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IUpdateStoredInfoTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateStoredInfoTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateStoredInfoTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.UpdateStoredInfoTypeRequest;

                    /**
                     * Decodes an UpdateStoredInfoTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateStoredInfoTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.UpdateStoredInfoTypeRequest;

                    /**
                     * Verifies an UpdateStoredInfoTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an UpdateStoredInfoTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateStoredInfoTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.UpdateStoredInfoTypeRequest;

                    /**
                     * Creates a plain object from an UpdateStoredInfoTypeRequest message. Also converts values to other types if specified.
                     * @param message UpdateStoredInfoTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.UpdateStoredInfoTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateStoredInfoTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateStoredInfoTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetStoredInfoTypeRequest. */
                interface IGetStoredInfoTypeRequest {

                    /** GetStoredInfoTypeRequest name */
                    name?: (string|null);
                }

                /** Represents a GetStoredInfoTypeRequest. */
                class GetStoredInfoTypeRequest implements IGetStoredInfoTypeRequest {

                    /**
                     * Constructs a new GetStoredInfoTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetStoredInfoTypeRequest);

                    /** GetStoredInfoTypeRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetStoredInfoTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetStoredInfoTypeRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetStoredInfoTypeRequest): google.privacy.dlp.v2.GetStoredInfoTypeRequest;

                    /**
                     * Encodes the specified GetStoredInfoTypeRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetStoredInfoTypeRequest.verify|verify} messages.
                     * @param message GetStoredInfoTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetStoredInfoTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetStoredInfoTypeRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetStoredInfoTypeRequest.verify|verify} messages.
                     * @param message GetStoredInfoTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetStoredInfoTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetStoredInfoTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetStoredInfoTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.GetStoredInfoTypeRequest;

                    /**
                     * Decodes a GetStoredInfoTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetStoredInfoTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.GetStoredInfoTypeRequest;

                    /**
                     * Verifies a GetStoredInfoTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a GetStoredInfoTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetStoredInfoTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetStoredInfoTypeRequest;

                    /**
                     * Creates a plain object from a GetStoredInfoTypeRequest message. Also converts values to other types if specified.
                     * @param message GetStoredInfoTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetStoredInfoTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetStoredInfoTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetStoredInfoTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStoredInfoTypesRequest. */
                interface IListStoredInfoTypesRequest {

                    /** ListStoredInfoTypesRequest parent */
                    parent?: (string|null);

                    /** ListStoredInfoTypesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListStoredInfoTypesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListStoredInfoTypesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListStoredInfoTypesRequest locationId */
                    locationId?: (string|null);
                }

                /** Represents a ListStoredInfoTypesRequest. */
                class ListStoredInfoTypesRequest implements IListStoredInfoTypesRequest {

                    /**
                     * Constructs a new ListStoredInfoTypesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListStoredInfoTypesRequest);

                    /** ListStoredInfoTypesRequest parent. */
                    public parent: string;

                    /** ListStoredInfoTypesRequest pageToken. */
                    public pageToken: string;

                    /** ListStoredInfoTypesRequest pageSize. */
                    public pageSize: number;

                    /** ListStoredInfoTypesRequest orderBy. */
                    public orderBy: string;

                    /** ListStoredInfoTypesRequest locationId. */
                    public locationId: string;

                    /**
                     * Creates a new ListStoredInfoTypesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStoredInfoTypesRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListStoredInfoTypesRequest): google.privacy.dlp.v2.ListStoredInfoTypesRequest;

                    /**
                     * Encodes the specified ListStoredInfoTypesRequest message. Does not implicitly {@link google.privacy.dlp.v2.ListStoredInfoTypesRequest.verify|verify} messages.
                     * @param message ListStoredInfoTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListStoredInfoTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStoredInfoTypesRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListStoredInfoTypesRequest.verify|verify} messages.
                     * @param message ListStoredInfoTypesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListStoredInfoTypesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStoredInfoTypesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStoredInfoTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListStoredInfoTypesRequest;

                    /**
                     * Decodes a ListStoredInfoTypesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStoredInfoTypesRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListStoredInfoTypesRequest;

                    /**
                     * Verifies a ListStoredInfoTypesRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStoredInfoTypesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStoredInfoTypesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListStoredInfoTypesRequest;

                    /**
                     * Creates a plain object from a ListStoredInfoTypesRequest message. Also converts values to other types if specified.
                     * @param message ListStoredInfoTypesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListStoredInfoTypesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStoredInfoTypesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStoredInfoTypesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListStoredInfoTypesResponse. */
                interface IListStoredInfoTypesResponse {

                    /** ListStoredInfoTypesResponse storedInfoTypes */
                    storedInfoTypes?: (google.privacy.dlp.v2.IStoredInfoType[]|null);

                    /** ListStoredInfoTypesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListStoredInfoTypesResponse. */
                class ListStoredInfoTypesResponse implements IListStoredInfoTypesResponse {

                    /**
                     * Constructs a new ListStoredInfoTypesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListStoredInfoTypesResponse);

                    /** ListStoredInfoTypesResponse storedInfoTypes. */
                    public storedInfoTypes: google.privacy.dlp.v2.IStoredInfoType[];

                    /** ListStoredInfoTypesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListStoredInfoTypesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListStoredInfoTypesResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListStoredInfoTypesResponse): google.privacy.dlp.v2.ListStoredInfoTypesResponse;

                    /**
                     * Encodes the specified ListStoredInfoTypesResponse message. Does not implicitly {@link google.privacy.dlp.v2.ListStoredInfoTypesResponse.verify|verify} messages.
                     * @param message ListStoredInfoTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListStoredInfoTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListStoredInfoTypesResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListStoredInfoTypesResponse.verify|verify} messages.
                     * @param message ListStoredInfoTypesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListStoredInfoTypesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListStoredInfoTypesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListStoredInfoTypesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ListStoredInfoTypesResponse;

                    /**
                     * Decodes a ListStoredInfoTypesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListStoredInfoTypesResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ListStoredInfoTypesResponse;

                    /**
                     * Verifies a ListStoredInfoTypesResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ListStoredInfoTypesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListStoredInfoTypesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListStoredInfoTypesResponse;

                    /**
                     * Creates a plain object from a ListStoredInfoTypesResponse message. Also converts values to other types if specified.
                     * @param message ListStoredInfoTypesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListStoredInfoTypesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListStoredInfoTypesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListStoredInfoTypesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteStoredInfoTypeRequest. */
                interface IDeleteStoredInfoTypeRequest {

                    /** DeleteStoredInfoTypeRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteStoredInfoTypeRequest. */
                class DeleteStoredInfoTypeRequest implements IDeleteStoredInfoTypeRequest {

                    /**
                     * Constructs a new DeleteStoredInfoTypeRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeleteStoredInfoTypeRequest);

                    /** DeleteStoredInfoTypeRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteStoredInfoTypeRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteStoredInfoTypeRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeleteStoredInfoTypeRequest): google.privacy.dlp.v2.DeleteStoredInfoTypeRequest;

                    /**
                     * Encodes the specified DeleteStoredInfoTypeRequest message. Does not implicitly {@link google.privacy.dlp.v2.DeleteStoredInfoTypeRequest.verify|verify} messages.
                     * @param message DeleteStoredInfoTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeleteStoredInfoTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteStoredInfoTypeRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeleteStoredInfoTypeRequest.verify|verify} messages.
                     * @param message DeleteStoredInfoTypeRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeleteStoredInfoTypeRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteStoredInfoTypeRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteStoredInfoTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DeleteStoredInfoTypeRequest;

                    /**
                     * Decodes a DeleteStoredInfoTypeRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteStoredInfoTypeRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DeleteStoredInfoTypeRequest;

                    /**
                     * Verifies a DeleteStoredInfoTypeRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DeleteStoredInfoTypeRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteStoredInfoTypeRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeleteStoredInfoTypeRequest;

                    /**
                     * Creates a plain object from a DeleteStoredInfoTypeRequest message. Also converts values to other types if specified.
                     * @param message DeleteStoredInfoTypeRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeleteStoredInfoTypeRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteStoredInfoTypeRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteStoredInfoTypeRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HybridInspectJobTriggerRequest. */
                interface IHybridInspectJobTriggerRequest {

                    /** HybridInspectJobTriggerRequest name */
                    name?: (string|null);

                    /** HybridInspectJobTriggerRequest hybridItem */
                    hybridItem?: (google.privacy.dlp.v2.IHybridContentItem|null);
                }

                /** Represents a HybridInspectJobTriggerRequest. */
                class HybridInspectJobTriggerRequest implements IHybridInspectJobTriggerRequest {

                    /**
                     * Constructs a new HybridInspectJobTriggerRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IHybridInspectJobTriggerRequest);

                    /** HybridInspectJobTriggerRequest name. */
                    public name: string;

                    /** HybridInspectJobTriggerRequest hybridItem. */
                    public hybridItem?: (google.privacy.dlp.v2.IHybridContentItem|null);

                    /**
                     * Creates a new HybridInspectJobTriggerRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HybridInspectJobTriggerRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IHybridInspectJobTriggerRequest): google.privacy.dlp.v2.HybridInspectJobTriggerRequest;

                    /**
                     * Encodes the specified HybridInspectJobTriggerRequest message. Does not implicitly {@link google.privacy.dlp.v2.HybridInspectJobTriggerRequest.verify|verify} messages.
                     * @param message HybridInspectJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IHybridInspectJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HybridInspectJobTriggerRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.HybridInspectJobTriggerRequest.verify|verify} messages.
                     * @param message HybridInspectJobTriggerRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IHybridInspectJobTriggerRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HybridInspectJobTriggerRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HybridInspectJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.HybridInspectJobTriggerRequest;

                    /**
                     * Decodes a HybridInspectJobTriggerRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HybridInspectJobTriggerRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.HybridInspectJobTriggerRequest;

                    /**
                     * Verifies a HybridInspectJobTriggerRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HybridInspectJobTriggerRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HybridInspectJobTriggerRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.HybridInspectJobTriggerRequest;

                    /**
                     * Creates a plain object from a HybridInspectJobTriggerRequest message. Also converts values to other types if specified.
                     * @param message HybridInspectJobTriggerRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.HybridInspectJobTriggerRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HybridInspectJobTriggerRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HybridInspectJobTriggerRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HybridInspectDlpJobRequest. */
                interface IHybridInspectDlpJobRequest {

                    /** HybridInspectDlpJobRequest name */
                    name?: (string|null);

                    /** HybridInspectDlpJobRequest hybridItem */
                    hybridItem?: (google.privacy.dlp.v2.IHybridContentItem|null);
                }

                /** Represents a HybridInspectDlpJobRequest. */
                class HybridInspectDlpJobRequest implements IHybridInspectDlpJobRequest {

                    /**
                     * Constructs a new HybridInspectDlpJobRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IHybridInspectDlpJobRequest);

                    /** HybridInspectDlpJobRequest name. */
                    public name: string;

                    /** HybridInspectDlpJobRequest hybridItem. */
                    public hybridItem?: (google.privacy.dlp.v2.IHybridContentItem|null);

                    /**
                     * Creates a new HybridInspectDlpJobRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HybridInspectDlpJobRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IHybridInspectDlpJobRequest): google.privacy.dlp.v2.HybridInspectDlpJobRequest;

                    /**
                     * Encodes the specified HybridInspectDlpJobRequest message. Does not implicitly {@link google.privacy.dlp.v2.HybridInspectDlpJobRequest.verify|verify} messages.
                     * @param message HybridInspectDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IHybridInspectDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HybridInspectDlpJobRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.HybridInspectDlpJobRequest.verify|verify} messages.
                     * @param message HybridInspectDlpJobRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IHybridInspectDlpJobRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HybridInspectDlpJobRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HybridInspectDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.HybridInspectDlpJobRequest;

                    /**
                     * Decodes a HybridInspectDlpJobRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HybridInspectDlpJobRequest
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.HybridInspectDlpJobRequest;

                    /**
                     * Verifies a HybridInspectDlpJobRequest message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HybridInspectDlpJobRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HybridInspectDlpJobRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.HybridInspectDlpJobRequest;

                    /**
                     * Creates a plain object from a HybridInspectDlpJobRequest message. Also converts values to other types if specified.
                     * @param message HybridInspectDlpJobRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.HybridInspectDlpJobRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HybridInspectDlpJobRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HybridInspectDlpJobRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HybridContentItem. */
                interface IHybridContentItem {

                    /** HybridContentItem item */
                    item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** HybridContentItem findingDetails */
                    findingDetails?: (google.privacy.dlp.v2.IHybridFindingDetails|null);
                }

                /** Represents a HybridContentItem. */
                class HybridContentItem implements IHybridContentItem {

                    /**
                     * Constructs a new HybridContentItem.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IHybridContentItem);

                    /** HybridContentItem item. */
                    public item?: (google.privacy.dlp.v2.IContentItem|null);

                    /** HybridContentItem findingDetails. */
                    public findingDetails?: (google.privacy.dlp.v2.IHybridFindingDetails|null);

                    /**
                     * Creates a new HybridContentItem instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HybridContentItem instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IHybridContentItem): google.privacy.dlp.v2.HybridContentItem;

                    /**
                     * Encodes the specified HybridContentItem message. Does not implicitly {@link google.privacy.dlp.v2.HybridContentItem.verify|verify} messages.
                     * @param message HybridContentItem message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IHybridContentItem, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HybridContentItem message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.HybridContentItem.verify|verify} messages.
                     * @param message HybridContentItem message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IHybridContentItem, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HybridContentItem message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HybridContentItem
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.HybridContentItem;

                    /**
                     * Decodes a HybridContentItem message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HybridContentItem
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.HybridContentItem;

                    /**
                     * Verifies a HybridContentItem message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HybridContentItem message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HybridContentItem
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.HybridContentItem;

                    /**
                     * Creates a plain object from a HybridContentItem message. Also converts values to other types if specified.
                     * @param message HybridContentItem
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.HybridContentItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HybridContentItem to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HybridContentItem
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HybridFindingDetails. */
                interface IHybridFindingDetails {

                    /** HybridFindingDetails containerDetails */
                    containerDetails?: (google.privacy.dlp.v2.IContainer|null);

                    /** HybridFindingDetails fileOffset */
                    fileOffset?: (number|Long|string|null);

                    /** HybridFindingDetails rowOffset */
                    rowOffset?: (number|Long|string|null);

                    /** HybridFindingDetails tableOptions */
                    tableOptions?: (google.privacy.dlp.v2.ITableOptions|null);

                    /** HybridFindingDetails labels */
                    labels?: ({ [k: string]: string }|null);
                }

                /** Represents a HybridFindingDetails. */
                class HybridFindingDetails implements IHybridFindingDetails {

                    /**
                     * Constructs a new HybridFindingDetails.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IHybridFindingDetails);

                    /** HybridFindingDetails containerDetails. */
                    public containerDetails?: (google.privacy.dlp.v2.IContainer|null);

                    /** HybridFindingDetails fileOffset. */
                    public fileOffset: (number|Long|string);

                    /** HybridFindingDetails rowOffset. */
                    public rowOffset: (number|Long|string);

                    /** HybridFindingDetails tableOptions. */
                    public tableOptions?: (google.privacy.dlp.v2.ITableOptions|null);

                    /** HybridFindingDetails labels. */
                    public labels: { [k: string]: string };

                    /**
                     * Creates a new HybridFindingDetails instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HybridFindingDetails instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IHybridFindingDetails): google.privacy.dlp.v2.HybridFindingDetails;

                    /**
                     * Encodes the specified HybridFindingDetails message. Does not implicitly {@link google.privacy.dlp.v2.HybridFindingDetails.verify|verify} messages.
                     * @param message HybridFindingDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IHybridFindingDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HybridFindingDetails message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.HybridFindingDetails.verify|verify} messages.
                     * @param message HybridFindingDetails message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IHybridFindingDetails, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HybridFindingDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HybridFindingDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.HybridFindingDetails;

                    /**
                     * Decodes a HybridFindingDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HybridFindingDetails
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.HybridFindingDetails;

                    /**
                     * Verifies a HybridFindingDetails message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HybridFindingDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HybridFindingDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.HybridFindingDetails;

                    /**
                     * Creates a plain object from a HybridFindingDetails message. Also converts values to other types if specified.
                     * @param message HybridFindingDetails
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.HybridFindingDetails, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HybridFindingDetails to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HybridFindingDetails
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a HybridInspectResponse. */
                interface IHybridInspectResponse {
                }

                /** Represents a HybridInspectResponse. */
                class HybridInspectResponse implements IHybridInspectResponse {

                    /**
                     * Constructs a new HybridInspectResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IHybridInspectResponse);

                    /**
                     * Creates a new HybridInspectResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HybridInspectResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IHybridInspectResponse): google.privacy.dlp.v2.HybridInspectResponse;

                    /**
                     * Encodes the specified HybridInspectResponse message. Does not implicitly {@link google.privacy.dlp.v2.HybridInspectResponse.verify|verify} messages.
                     * @param message HybridInspectResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IHybridInspectResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HybridInspectResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.HybridInspectResponse.verify|verify} messages.
                     * @param message HybridInspectResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IHybridInspectResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HybridInspectResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HybridInspectResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.HybridInspectResponse;

                    /**
                     * Decodes a HybridInspectResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HybridInspectResponse
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.HybridInspectResponse;

                    /**
                     * Verifies a HybridInspectResponse message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HybridInspectResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HybridInspectResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.HybridInspectResponse;

                    /**
                     * Creates a plain object from a HybridInspectResponse message. Also converts values to other types if specified.
                     * @param message HybridInspectResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.HybridInspectResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HybridInspectResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HybridInspectResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** RelationalOperator enum. */
                enum RelationalOperator {
                    RELATIONAL_OPERATOR_UNSPECIFIED = 0,
                    EQUAL_TO = 1,
                    NOT_EQUAL_TO = 2,
                    GREATER_THAN = 3,
                    LESS_THAN = 4,
                    GREATER_THAN_OR_EQUALS = 5,
                    LESS_THAN_OR_EQUALS = 6,
                    EXISTS = 7
                }

                /** MatchingType enum. */
                enum MatchingType {
                    MATCHING_TYPE_UNSPECIFIED = 0,
                    MATCHING_TYPE_FULL_MATCH = 1,
                    MATCHING_TYPE_PARTIAL_MATCH = 2,
                    MATCHING_TYPE_INVERSE_MATCH = 3
                }

                /** ContentOption enum. */
                enum ContentOption {
                    CONTENT_UNSPECIFIED = 0,
                    CONTENT_TEXT = 1,
                    CONTENT_IMAGE = 2
                }

                /** MetadataType enum. */
                enum MetadataType {
                    METADATATYPE_UNSPECIFIED = 0,
                    STORAGE_METADATA = 2
                }

                /** InfoTypeSupportedBy enum. */
                enum InfoTypeSupportedBy {
                    ENUM_TYPE_UNSPECIFIED = 0,
                    INSPECT = 1,
                    RISK_ANALYSIS = 2
                }

                /** DlpJobType enum. */
                enum DlpJobType {
                    DLP_JOB_TYPE_UNSPECIFIED = 0,
                    INSPECT_JOB = 1,
                    RISK_ANALYSIS_JOB = 2
                }

                /** StoredInfoTypeState enum. */
                enum StoredInfoTypeState {
                    STORED_INFO_TYPE_STATE_UNSPECIFIED = 0,
                    PENDING = 1,
                    READY = 2,
                    FAILED = 3,
                    INVALID = 4
                }

                /** Properties of a DataRiskLevel. */
                interface IDataRiskLevel {

                    /** DataRiskLevel score */
                    score?: (google.privacy.dlp.v2.DataRiskLevel.DataRiskLevelScore|keyof typeof google.privacy.dlp.v2.DataRiskLevel.DataRiskLevelScore|null);
                }

                /** Represents a DataRiskLevel. */
                class DataRiskLevel implements IDataRiskLevel {

                    /**
                     * Constructs a new DataRiskLevel.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDataRiskLevel);

                    /** DataRiskLevel score. */
                    public score: (google.privacy.dlp.v2.DataRiskLevel.DataRiskLevelScore|keyof typeof google.privacy.dlp.v2.DataRiskLevel.DataRiskLevelScore);

                    /**
                     * Creates a new DataRiskLevel instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DataRiskLevel instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDataRiskLevel): google.privacy.dlp.v2.DataRiskLevel;

                    /**
                     * Encodes the specified DataRiskLevel message. Does not implicitly {@link google.privacy.dlp.v2.DataRiskLevel.verify|verify} messages.
                     * @param message DataRiskLevel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDataRiskLevel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DataRiskLevel message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataRiskLevel.verify|verify} messages.
                     * @param message DataRiskLevel message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDataRiskLevel, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DataRiskLevel message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataRiskLevel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataRiskLevel;

                    /**
                     * Decodes a DataRiskLevel message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataRiskLevel
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataRiskLevel;

                    /**
                     * Verifies a DataRiskLevel message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DataRiskLevel message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataRiskLevel
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataRiskLevel;

                    /**
                     * Creates a plain object from a DataRiskLevel message. Also converts values to other types if specified.
                     * @param message DataRiskLevel
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DataRiskLevel, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DataRiskLevel to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DataRiskLevel
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DataRiskLevel {

                    /** DataRiskLevelScore enum. */
                    enum DataRiskLevelScore {
                        RISK_SCORE_UNSPECIFIED = 0,
                        RISK_LOW = 10,
                        RISK_MODERATE = 20,
                        RISK_HIGH = 30
                    }
                }

                /** ResourceVisibility enum. */
                enum ResourceVisibility {
                    RESOURCE_VISIBILITY_UNSPECIFIED = 0,
                    RESOURCE_VISIBILITY_PUBLIC = 10,
                    RESOURCE_VISIBILITY_RESTRICTED = 20
                }

                /** Properties of a DataProfileConfigSnapshot. */
                interface IDataProfileConfigSnapshot {

                    /** DataProfileConfigSnapshot inspectConfig */
                    inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** DataProfileConfigSnapshot dataProfileJob */
                    dataProfileJob?: (google.privacy.dlp.v2.IDataProfileJobConfig|null);
                }

                /** Represents a DataProfileConfigSnapshot. */
                class DataProfileConfigSnapshot implements IDataProfileConfigSnapshot {

                    /**
                     * Constructs a new DataProfileConfigSnapshot.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDataProfileConfigSnapshot);

                    /** DataProfileConfigSnapshot inspectConfig. */
                    public inspectConfig?: (google.privacy.dlp.v2.IInspectConfig|null);

                    /** DataProfileConfigSnapshot dataProfileJob. */
                    public dataProfileJob?: (google.privacy.dlp.v2.IDataProfileJobConfig|null);

                    /**
                     * Creates a new DataProfileConfigSnapshot instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DataProfileConfigSnapshot instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDataProfileConfigSnapshot): google.privacy.dlp.v2.DataProfileConfigSnapshot;

                    /**
                     * Encodes the specified DataProfileConfigSnapshot message. Does not implicitly {@link google.privacy.dlp.v2.DataProfileConfigSnapshot.verify|verify} messages.
                     * @param message DataProfileConfigSnapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDataProfileConfigSnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DataProfileConfigSnapshot message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfileConfigSnapshot.verify|verify} messages.
                     * @param message DataProfileConfigSnapshot message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDataProfileConfigSnapshot, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DataProfileConfigSnapshot message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfileConfigSnapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfileConfigSnapshot;

                    /**
                     * Decodes a DataProfileConfigSnapshot message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfileConfigSnapshot
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfileConfigSnapshot;

                    /**
                     * Verifies a DataProfileConfigSnapshot message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DataProfileConfigSnapshot message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfileConfigSnapshot
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileConfigSnapshot;

                    /**
                     * Creates a plain object from a DataProfileConfigSnapshot message. Also converts values to other types if specified.
                     * @param message DataProfileConfigSnapshot
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DataProfileConfigSnapshot, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DataProfileConfigSnapshot to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DataProfileConfigSnapshot
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TableDataProfile. */
                interface ITableDataProfile {

                    /** TableDataProfile name */
                    name?: (string|null);

                    /** TableDataProfile projectDataProfile */
                    projectDataProfile?: (string|null);

                    /** TableDataProfile datasetProjectId */
                    datasetProjectId?: (string|null);

                    /** TableDataProfile datasetLocation */
                    datasetLocation?: (string|null);

                    /** TableDataProfile datasetId */
                    datasetId?: (string|null);

                    /** TableDataProfile tableId */
                    tableId?: (string|null);

                    /** TableDataProfile fullResource */
                    fullResource?: (string|null);

                    /** TableDataProfile profileStatus */
                    profileStatus?: (google.privacy.dlp.v2.IProfileStatus|null);

                    /** TableDataProfile state */
                    state?: (google.privacy.dlp.v2.TableDataProfile.State|keyof typeof google.privacy.dlp.v2.TableDataProfile.State|null);

                    /** TableDataProfile sensitivityScore */
                    sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** TableDataProfile dataRiskLevel */
                    dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

                    /** TableDataProfile predictedInfoTypes */
                    predictedInfoTypes?: (google.privacy.dlp.v2.IInfoTypeSummary[]|null);

                    /** TableDataProfile otherInfoTypes */
                    otherInfoTypes?: (google.privacy.dlp.v2.IOtherInfoTypeSummary[]|null);

                    /** TableDataProfile configSnapshot */
                    configSnapshot?: (google.privacy.dlp.v2.IDataProfileConfigSnapshot|null);

                    /** TableDataProfile lastModifiedTime */
                    lastModifiedTime?: (google.protobuf.ITimestamp|null);

                    /** TableDataProfile expirationTime */
                    expirationTime?: (google.protobuf.ITimestamp|null);

                    /** TableDataProfile scannedColumnCount */
                    scannedColumnCount?: (number|Long|string|null);

                    /** TableDataProfile failedColumnCount */
                    failedColumnCount?: (number|Long|string|null);

                    /** TableDataProfile tableSizeBytes */
                    tableSizeBytes?: (number|Long|string|null);

                    /** TableDataProfile rowCount */
                    rowCount?: (number|Long|string|null);

                    /** TableDataProfile encryptionStatus */
                    encryptionStatus?: (google.privacy.dlp.v2.EncryptionStatus|keyof typeof google.privacy.dlp.v2.EncryptionStatus|null);

                    /** TableDataProfile resourceVisibility */
                    resourceVisibility?: (google.privacy.dlp.v2.ResourceVisibility|keyof typeof google.privacy.dlp.v2.ResourceVisibility|null);

                    /** TableDataProfile profileLastGenerated */
                    profileLastGenerated?: (google.protobuf.ITimestamp|null);

                    /** TableDataProfile resourceLabels */
                    resourceLabels?: ({ [k: string]: string }|null);

                    /** TableDataProfile createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a TableDataProfile. */
                class TableDataProfile implements ITableDataProfile {

                    /**
                     * Constructs a new TableDataProfile.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITableDataProfile);

                    /** TableDataProfile name. */
                    public name: string;

                    /** TableDataProfile projectDataProfile. */
                    public projectDataProfile: string;

                    /** TableDataProfile datasetProjectId. */
                    public datasetProjectId: string;

                    /** TableDataProfile datasetLocation. */
                    public datasetLocation: string;

                    /** TableDataProfile datasetId. */
                    public datasetId: string;

                    /** TableDataProfile tableId. */
                    public tableId: string;

                    /** TableDataProfile fullResource. */
                    public fullResource: string;

                    /** TableDataProfile profileStatus. */
                    public profileStatus?: (google.privacy.dlp.v2.IProfileStatus|null);

                    /** TableDataProfile state. */
                    public state: (google.privacy.dlp.v2.TableDataProfile.State|keyof typeof google.privacy.dlp.v2.TableDataProfile.State);

                    /** TableDataProfile sensitivityScore. */
                    public sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** TableDataProfile dataRiskLevel. */
                    public dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

                    /** TableDataProfile predictedInfoTypes. */
                    public predictedInfoTypes: google.privacy.dlp.v2.IInfoTypeSummary[];

                    /** TableDataProfile otherInfoTypes. */
                    public otherInfoTypes: google.privacy.dlp.v2.IOtherInfoTypeSummary[];

                    /** TableDataProfile configSnapshot. */
                    public configSnapshot?: (google.privacy.dlp.v2.IDataProfileConfigSnapshot|null);

                    /** TableDataProfile lastModifiedTime. */
                    public lastModifiedTime?: (google.protobuf.ITimestamp|null);

                    /** TableDataProfile expirationTime. */
                    public expirationTime?: (google.protobuf.ITimestamp|null);

                    /** TableDataProfile scannedColumnCount. */
                    public scannedColumnCount: (number|Long|string);

                    /** TableDataProfile failedColumnCount. */
                    public failedColumnCount: (number|Long|string);

                    /** TableDataProfile tableSizeBytes. */
                    public tableSizeBytes: (number|Long|string);

                    /** TableDataProfile rowCount. */
                    public rowCount: (number|Long|string);

                    /** TableDataProfile encryptionStatus. */
                    public encryptionStatus: (google.privacy.dlp.v2.EncryptionStatus|keyof typeof google.privacy.dlp.v2.EncryptionStatus);

                    /** TableDataProfile resourceVisibility. */
                    public resourceVisibility: (google.privacy.dlp.v2.ResourceVisibility|keyof typeof google.privacy.dlp.v2.ResourceVisibility);

                    /** TableDataProfile profileLastGenerated. */
                    public profileLastGenerated?: (google.protobuf.ITimestamp|null);

                    /** TableDataProfile resourceLabels. */
                    public resourceLabels: { [k: string]: string };

                    /** TableDataProfile createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new TableDataProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TableDataProfile instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITableDataProfile): google.privacy.dlp.v2.TableDataProfile;

                    /**
                     * Encodes the specified TableDataProfile message. Does not implicitly {@link google.privacy.dlp.v2.TableDataProfile.verify|verify} messages.
                     * @param message TableDataProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITableDataProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TableDataProfile message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TableDataProfile.verify|verify} messages.
                     * @param message TableDataProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITableDataProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TableDataProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TableDataProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TableDataProfile;

                    /**
                     * Decodes a TableDataProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TableDataProfile
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TableDataProfile;

                    /**
                     * Verifies a TableDataProfile message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TableDataProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TableDataProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TableDataProfile;

                    /**
                     * Creates a plain object from a TableDataProfile message. Also converts values to other types if specified.
                     * @param message TableDataProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TableDataProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TableDataProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TableDataProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace TableDataProfile {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        RUNNING = 1,
                        DONE = 2
                    }
                }

                /** Properties of a ProfileStatus. */
                interface IProfileStatus {

                    /** ProfileStatus status */
                    status?: (google.rpc.IStatus|null);

                    /** ProfileStatus timestamp */
                    timestamp?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a ProfileStatus. */
                class ProfileStatus implements IProfileStatus {

                    /**
                     * Constructs a new ProfileStatus.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IProfileStatus);

                    /** ProfileStatus status. */
                    public status?: (google.rpc.IStatus|null);

                    /** ProfileStatus timestamp. */
                    public timestamp?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new ProfileStatus instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProfileStatus instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IProfileStatus): google.privacy.dlp.v2.ProfileStatus;

                    /**
                     * Encodes the specified ProfileStatus message. Does not implicitly {@link google.privacy.dlp.v2.ProfileStatus.verify|verify} messages.
                     * @param message ProfileStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IProfileStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProfileStatus message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ProfileStatus.verify|verify} messages.
                     * @param message ProfileStatus message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IProfileStatus, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProfileStatus message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProfileStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.ProfileStatus;

                    /**
                     * Decodes a ProfileStatus message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProfileStatus
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.ProfileStatus;

                    /**
                     * Verifies a ProfileStatus message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a ProfileStatus message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProfileStatus
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ProfileStatus;

                    /**
                     * Creates a plain object from a ProfileStatus message. Also converts values to other types if specified.
                     * @param message ProfileStatus
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ProfileStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProfileStatus to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProfileStatus
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** EncryptionStatus enum. */
                enum EncryptionStatus {
                    ENCRYPTION_STATUS_UNSPECIFIED = 0,
                    ENCRYPTION_GOOGLE_MANAGED = 1,
                    ENCRYPTION_CUSTOMER_MANAGED = 2
                }

                /** Properties of an InfoTypeSummary. */
                interface IInfoTypeSummary {

                    /** InfoTypeSummary infoType */
                    infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** InfoTypeSummary estimatedPrevalence */
                    estimatedPrevalence?: (number|null);
                }

                /** Represents an InfoTypeSummary. */
                class InfoTypeSummary implements IInfoTypeSummary {

                    /**
                     * Constructs a new InfoTypeSummary.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInfoTypeSummary);

                    /** InfoTypeSummary infoType. */
                    public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** InfoTypeSummary estimatedPrevalence. */
                    public estimatedPrevalence: number;

                    /**
                     * Creates a new InfoTypeSummary instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InfoTypeSummary instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInfoTypeSummary): google.privacy.dlp.v2.InfoTypeSummary;

                    /**
                     * Encodes the specified InfoTypeSummary message. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeSummary.verify|verify} messages.
                     * @param message InfoTypeSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInfoTypeSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InfoTypeSummary message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InfoTypeSummary.verify|verify} messages.
                     * @param message InfoTypeSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInfoTypeSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InfoTypeSummary message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InfoTypeSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InfoTypeSummary;

                    /**
                     * Decodes an InfoTypeSummary message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InfoTypeSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InfoTypeSummary;

                    /**
                     * Verifies an InfoTypeSummary message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InfoTypeSummary message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InfoTypeSummary
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InfoTypeSummary;

                    /**
                     * Creates a plain object from an InfoTypeSummary message. Also converts values to other types if specified.
                     * @param message InfoTypeSummary
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InfoTypeSummary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InfoTypeSummary to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InfoTypeSummary
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an OtherInfoTypeSummary. */
                interface IOtherInfoTypeSummary {

                    /** OtherInfoTypeSummary infoType */
                    infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** OtherInfoTypeSummary estimatedPrevalence */
                    estimatedPrevalence?: (number|null);
                }

                /** Represents an OtherInfoTypeSummary. */
                class OtherInfoTypeSummary implements IOtherInfoTypeSummary {

                    /**
                     * Constructs a new OtherInfoTypeSummary.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IOtherInfoTypeSummary);

                    /** OtherInfoTypeSummary infoType. */
                    public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** OtherInfoTypeSummary estimatedPrevalence. */
                    public estimatedPrevalence: number;

                    /**
                     * Creates a new OtherInfoTypeSummary instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns OtherInfoTypeSummary instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IOtherInfoTypeSummary): google.privacy.dlp.v2.OtherInfoTypeSummary;

                    /**
                     * Encodes the specified OtherInfoTypeSummary message. Does not implicitly {@link google.privacy.dlp.v2.OtherInfoTypeSummary.verify|verify} messages.
                     * @param message OtherInfoTypeSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IOtherInfoTypeSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified OtherInfoTypeSummary message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.OtherInfoTypeSummary.verify|verify} messages.
                     * @param message OtherInfoTypeSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IOtherInfoTypeSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an OtherInfoTypeSummary message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OtherInfoTypeSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.OtherInfoTypeSummary;

                    /**
                     * Decodes an OtherInfoTypeSummary message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OtherInfoTypeSummary
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.OtherInfoTypeSummary;

                    /**
                     * Verifies an OtherInfoTypeSummary message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an OtherInfoTypeSummary message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OtherInfoTypeSummary
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.OtherInfoTypeSummary;

                    /**
                     * Creates a plain object from an OtherInfoTypeSummary message. Also converts values to other types if specified.
                     * @param message OtherInfoTypeSummary
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.OtherInfoTypeSummary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this OtherInfoTypeSummary to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for OtherInfoTypeSummary
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DataProfilePubSubCondition. */
                interface IDataProfilePubSubCondition {

                    /** DataProfilePubSubCondition expressions */
                    expressions?: (google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubExpressions|null);
                }

                /** Represents a DataProfilePubSubCondition. */
                class DataProfilePubSubCondition implements IDataProfilePubSubCondition {

                    /**
                     * Constructs a new DataProfilePubSubCondition.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDataProfilePubSubCondition);

                    /** DataProfilePubSubCondition expressions. */
                    public expressions?: (google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubExpressions|null);

                    /**
                     * Creates a new DataProfilePubSubCondition instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DataProfilePubSubCondition instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDataProfilePubSubCondition): google.privacy.dlp.v2.DataProfilePubSubCondition;

                    /**
                     * Encodes the specified DataProfilePubSubCondition message. Does not implicitly {@link google.privacy.dlp.v2.DataProfilePubSubCondition.verify|verify} messages.
                     * @param message DataProfilePubSubCondition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDataProfilePubSubCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DataProfilePubSubCondition message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfilePubSubCondition.verify|verify} messages.
                     * @param message DataProfilePubSubCondition message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDataProfilePubSubCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DataProfilePubSubCondition message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfilePubSubCondition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfilePubSubCondition;

                    /**
                     * Decodes a DataProfilePubSubCondition message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfilePubSubCondition
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfilePubSubCondition;

                    /**
                     * Verifies a DataProfilePubSubCondition message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DataProfilePubSubCondition message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfilePubSubCondition
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfilePubSubCondition;

                    /**
                     * Creates a plain object from a DataProfilePubSubCondition message. Also converts values to other types if specified.
                     * @param message DataProfilePubSubCondition
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DataProfilePubSubCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DataProfilePubSubCondition to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DataProfilePubSubCondition
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace DataProfilePubSubCondition {

                    /** ProfileScoreBucket enum. */
                    enum ProfileScoreBucket {
                        PROFILE_SCORE_BUCKET_UNSPECIFIED = 0,
                        HIGH = 1,
                        MEDIUM_OR_HIGH = 2
                    }

                    /** Properties of a PubSubCondition. */
                    interface IPubSubCondition {

                        /** PubSubCondition minimumRiskScore */
                        minimumRiskScore?: (google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucket|keyof typeof google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucket|null);

                        /** PubSubCondition minimumSensitivityScore */
                        minimumSensitivityScore?: (google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucket|keyof typeof google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucket|null);
                    }

                    /** Represents a PubSubCondition. */
                    class PubSubCondition implements IPubSubCondition {

                        /**
                         * Constructs a new PubSubCondition.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubCondition);

                        /** PubSubCondition minimumRiskScore. */
                        public minimumRiskScore?: (google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucket|keyof typeof google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucket|null);

                        /** PubSubCondition minimumSensitivityScore. */
                        public minimumSensitivityScore?: (google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucket|keyof typeof google.privacy.dlp.v2.DataProfilePubSubCondition.ProfileScoreBucket|null);

                        /** PubSubCondition value. */
                        public value?: ("minimumRiskScore"|"minimumSensitivityScore");

                        /**
                         * Creates a new PubSubCondition instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PubSubCondition instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubCondition): google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition;

                        /**
                         * Encodes the specified PubSubCondition message. Does not implicitly {@link google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition.verify|verify} messages.
                         * @param message PubSubCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PubSubCondition message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition.verify|verify} messages.
                         * @param message PubSubCondition message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubCondition, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PubSubCondition message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PubSubCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition;

                        /**
                         * Decodes a PubSubCondition message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PubSubCondition
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition;

                        /**
                         * Verifies a PubSubCondition message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PubSubCondition message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PubSubCondition
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition;

                        /**
                         * Creates a plain object from a PubSubCondition message. Also converts values to other types if specified.
                         * @param message PubSubCondition
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubCondition, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PubSubCondition to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for PubSubCondition
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a PubSubExpressions. */
                    interface IPubSubExpressions {

                        /** PubSubExpressions logicalOperator */
                        logicalOperator?: (google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.PubSubLogicalOperator|keyof typeof google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.PubSubLogicalOperator|null);

                        /** PubSubExpressions conditions */
                        conditions?: (google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubCondition[]|null);
                    }

                    /** Represents a PubSubExpressions. */
                    class PubSubExpressions implements IPubSubExpressions {

                        /**
                         * Constructs a new PubSubExpressions.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubExpressions);

                        /** PubSubExpressions logicalOperator. */
                        public logicalOperator: (google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.PubSubLogicalOperator|keyof typeof google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.PubSubLogicalOperator);

                        /** PubSubExpressions conditions. */
                        public conditions: google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubCondition[];

                        /**
                         * Creates a new PubSubExpressions instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PubSubExpressions instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubExpressions): google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions;

                        /**
                         * Encodes the specified PubSubExpressions message. Does not implicitly {@link google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.verify|verify} messages.
                         * @param message PubSubExpressions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubExpressions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PubSubExpressions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions.verify|verify} messages.
                         * @param message PubSubExpressions message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.DataProfilePubSubCondition.IPubSubExpressions, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PubSubExpressions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PubSubExpressions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions;

                        /**
                         * Decodes a PubSubExpressions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PubSubExpressions
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions;

                        /**
                         * Verifies a PubSubExpressions message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PubSubExpressions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PubSubExpressions
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions;

                        /**
                         * Creates a plain object from a PubSubExpressions message. Also converts values to other types if specified.
                         * @param message PubSubExpressions
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.DataProfilePubSubCondition.PubSubExpressions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PubSubExpressions to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for PubSubExpressions
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace PubSubExpressions {

                        /** PubSubLogicalOperator enum. */
                        enum PubSubLogicalOperator {
                            LOGICAL_OPERATOR_UNSPECIFIED = 0,
                            OR = 1,
                            AND = 2
                        }
                    }
                }

                /** Properties of a DataProfilePubSubMessage. */
                interface IDataProfilePubSubMessage {

                    /** DataProfilePubSubMessage profile */
                    profile?: (google.privacy.dlp.v2.ITableDataProfile|null);

                    /** DataProfilePubSubMessage event */
                    event?: (google.privacy.dlp.v2.DataProfileAction.EventType|keyof typeof google.privacy.dlp.v2.DataProfileAction.EventType|null);
                }

                /** Represents a DataProfilePubSubMessage. */
                class DataProfilePubSubMessage implements IDataProfilePubSubMessage {

                    /**
                     * Constructs a new DataProfilePubSubMessage.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDataProfilePubSubMessage);

                    /** DataProfilePubSubMessage profile. */
                    public profile?: (google.privacy.dlp.v2.ITableDataProfile|null);

                    /** DataProfilePubSubMessage event. */
                    public event: (google.privacy.dlp.v2.DataProfileAction.EventType|keyof typeof google.privacy.dlp.v2.DataProfileAction.EventType);

                    /**
                     * Creates a new DataProfilePubSubMessage instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DataProfilePubSubMessage instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDataProfilePubSubMessage): google.privacy.dlp.v2.DataProfilePubSubMessage;

                    /**
                     * Encodes the specified DataProfilePubSubMessage message. Does not implicitly {@link google.privacy.dlp.v2.DataProfilePubSubMessage.verify|verify} messages.
                     * @param message DataProfilePubSubMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDataProfilePubSubMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DataProfilePubSubMessage message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataProfilePubSubMessage.verify|verify} messages.
                     * @param message DataProfilePubSubMessage message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDataProfilePubSubMessage, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DataProfilePubSubMessage message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfilePubSubMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DataProfilePubSubMessage;

                    /**
                     * Decodes a DataProfilePubSubMessage message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfilePubSubMessage
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DataProfilePubSubMessage;

                    /**
                     * Verifies a DataProfilePubSubMessage message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DataProfilePubSubMessage message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfilePubSubMessage
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfilePubSubMessage;

                    /**
                     * Creates a plain object from a DataProfilePubSubMessage message. Also converts values to other types if specified.
                     * @param message DataProfilePubSubMessage
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DataProfilePubSubMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DataProfilePubSubMessage to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DataProfilePubSubMessage
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an InfoType. */
                interface IInfoType {

                    /** InfoType name */
                    name?: (string|null);

                    /** InfoType version */
                    version?: (string|null);
                }

                /** Represents an InfoType. */
                class InfoType implements IInfoType {

                    /**
                     * Constructs a new InfoType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IInfoType);

                    /** InfoType name. */
                    public name: string;

                    /** InfoType version. */
                    public version: string;

                    /**
                     * Creates a new InfoType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns InfoType instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IInfoType): google.privacy.dlp.v2.InfoType;

                    /**
                     * Encodes the specified InfoType message. Does not implicitly {@link google.privacy.dlp.v2.InfoType.verify|verify} messages.
                     * @param message InfoType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IInfoType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified InfoType message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.InfoType.verify|verify} messages.
                     * @param message InfoType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IInfoType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an InfoType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns InfoType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.InfoType;

                    /**
                     * Decodes an InfoType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns InfoType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.InfoType;

                    /**
                     * Verifies an InfoType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an InfoType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns InfoType
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InfoType;

                    /**
                     * Creates a plain object from an InfoType message. Also converts values to other types if specified.
                     * @param message InfoType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.InfoType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this InfoType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for InfoType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SensitivityScore. */
                interface ISensitivityScore {

                    /** SensitivityScore score */
                    score?: (google.privacy.dlp.v2.SensitivityScore.SensitivityScoreLevel|keyof typeof google.privacy.dlp.v2.SensitivityScore.SensitivityScoreLevel|null);
                }

                /** Represents a SensitivityScore. */
                class SensitivityScore implements ISensitivityScore {

                    /**
                     * Constructs a new SensitivityScore.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ISensitivityScore);

                    /** SensitivityScore score. */
                    public score: (google.privacy.dlp.v2.SensitivityScore.SensitivityScoreLevel|keyof typeof google.privacy.dlp.v2.SensitivityScore.SensitivityScoreLevel);

                    /**
                     * Creates a new SensitivityScore instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SensitivityScore instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ISensitivityScore): google.privacy.dlp.v2.SensitivityScore;

                    /**
                     * Encodes the specified SensitivityScore message. Does not implicitly {@link google.privacy.dlp.v2.SensitivityScore.verify|verify} messages.
                     * @param message SensitivityScore message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ISensitivityScore, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SensitivityScore message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.SensitivityScore.verify|verify} messages.
                     * @param message SensitivityScore message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ISensitivityScore, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SensitivityScore message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SensitivityScore
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.SensitivityScore;

                    /**
                     * Decodes a SensitivityScore message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SensitivityScore
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.SensitivityScore;

                    /**
                     * Verifies a SensitivityScore message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a SensitivityScore message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SensitivityScore
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.SensitivityScore;

                    /**
                     * Creates a plain object from a SensitivityScore message. Also converts values to other types if specified.
                     * @param message SensitivityScore
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.SensitivityScore, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SensitivityScore to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SensitivityScore
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace SensitivityScore {

                    /** SensitivityScoreLevel enum. */
                    enum SensitivityScoreLevel {
                        SENSITIVITY_SCORE_UNSPECIFIED = 0,
                        SENSITIVITY_LOW = 10,
                        SENSITIVITY_MODERATE = 20,
                        SENSITIVITY_HIGH = 30
                    }
                }

                /** Likelihood enum. */
                enum Likelihood {
                    LIKELIHOOD_UNSPECIFIED = 0,
                    VERY_UNLIKELY = 1,
                    UNLIKELY = 2,
                    POSSIBLE = 3,
                    LIKELY = 4,
                    VERY_LIKELY = 5
                }

                /** Properties of a StoredType. */
                interface IStoredType {

                    /** StoredType name */
                    name?: (string|null);

                    /** StoredType createTime */
                    createTime?: (google.protobuf.ITimestamp|null);
                }

                /** Represents a StoredType. */
                class StoredType implements IStoredType {

                    /**
                     * Constructs a new StoredType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IStoredType);

                    /** StoredType name. */
                    public name: string;

                    /** StoredType createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /**
                     * Creates a new StoredType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StoredType instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IStoredType): google.privacy.dlp.v2.StoredType;

                    /**
                     * Encodes the specified StoredType message. Does not implicitly {@link google.privacy.dlp.v2.StoredType.verify|verify} messages.
                     * @param message StoredType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IStoredType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StoredType message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StoredType.verify|verify} messages.
                     * @param message StoredType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IStoredType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StoredType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StoredType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StoredType;

                    /**
                     * Decodes a StoredType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StoredType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StoredType;

                    /**
                     * Verifies a StoredType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StoredType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StoredType
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StoredType;

                    /**
                     * Creates a plain object from a StoredType message. Also converts values to other types if specified.
                     * @param message StoredType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.StoredType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StoredType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StoredType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CustomInfoType. */
                interface ICustomInfoType {

                    /** CustomInfoType infoType */
                    infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** CustomInfoType likelihood */
                    likelihood?: (google.privacy.dlp.v2.Likelihood|keyof typeof google.privacy.dlp.v2.Likelihood|null);

                    /** CustomInfoType dictionary */
                    dictionary?: (google.privacy.dlp.v2.CustomInfoType.IDictionary|null);

                    /** CustomInfoType regex */
                    regex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);

                    /** CustomInfoType surrogateType */
                    surrogateType?: (google.privacy.dlp.v2.CustomInfoType.ISurrogateType|null);

                    /** CustomInfoType storedType */
                    storedType?: (google.privacy.dlp.v2.IStoredType|null);

                    /** CustomInfoType detectionRules */
                    detectionRules?: (google.privacy.dlp.v2.CustomInfoType.IDetectionRule[]|null);

                    /** CustomInfoType exclusionType */
                    exclusionType?: (google.privacy.dlp.v2.CustomInfoType.ExclusionType|keyof typeof google.privacy.dlp.v2.CustomInfoType.ExclusionType|null);
                }

                /** Represents a CustomInfoType. */
                class CustomInfoType implements ICustomInfoType {

                    /**
                     * Constructs a new CustomInfoType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICustomInfoType);

                    /** CustomInfoType infoType. */
                    public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /** CustomInfoType likelihood. */
                    public likelihood: (google.privacy.dlp.v2.Likelihood|keyof typeof google.privacy.dlp.v2.Likelihood);

                    /** CustomInfoType dictionary. */
                    public dictionary?: (google.privacy.dlp.v2.CustomInfoType.IDictionary|null);

                    /** CustomInfoType regex. */
                    public regex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);

                    /** CustomInfoType surrogateType. */
                    public surrogateType?: (google.privacy.dlp.v2.CustomInfoType.ISurrogateType|null);

                    /** CustomInfoType storedType. */
                    public storedType?: (google.privacy.dlp.v2.IStoredType|null);

                    /** CustomInfoType detectionRules. */
                    public detectionRules: google.privacy.dlp.v2.CustomInfoType.IDetectionRule[];

                    /** CustomInfoType exclusionType. */
                    public exclusionType: (google.privacy.dlp.v2.CustomInfoType.ExclusionType|keyof typeof google.privacy.dlp.v2.CustomInfoType.ExclusionType);

                    /** CustomInfoType type. */
                    public type?: ("dictionary"|"regex"|"surrogateType"|"storedType");

                    /**
                     * Creates a new CustomInfoType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CustomInfoType instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICustomInfoType): google.privacy.dlp.v2.CustomInfoType;

                    /**
                     * Encodes the specified CustomInfoType message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.verify|verify} messages.
                     * @param message CustomInfoType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICustomInfoType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CustomInfoType message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.verify|verify} messages.
                     * @param message CustomInfoType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICustomInfoType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CustomInfoType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CustomInfoType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CustomInfoType;

                    /**
                     * Decodes a CustomInfoType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CustomInfoType
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CustomInfoType;

                    /**
                     * Verifies a CustomInfoType message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CustomInfoType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CustomInfoType
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType;

                    /**
                     * Creates a plain object from a CustomInfoType message. Also converts values to other types if specified.
                     * @param message CustomInfoType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CustomInfoType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CustomInfoType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CustomInfoType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CustomInfoType {

                    /** Properties of a Dictionary. */
                    interface IDictionary {

                        /** Dictionary wordList */
                        wordList?: (google.privacy.dlp.v2.CustomInfoType.Dictionary.IWordList|null);

                        /** Dictionary cloudStoragePath */
                        cloudStoragePath?: (google.privacy.dlp.v2.ICloudStoragePath|null);
                    }

                    /** Represents a Dictionary. */
                    class Dictionary implements IDictionary {

                        /**
                         * Constructs a new Dictionary.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.CustomInfoType.IDictionary);

                        /** Dictionary wordList. */
                        public wordList?: (google.privacy.dlp.v2.CustomInfoType.Dictionary.IWordList|null);

                        /** Dictionary cloudStoragePath. */
                        public cloudStoragePath?: (google.privacy.dlp.v2.ICloudStoragePath|null);

                        /** Dictionary source. */
                        public source?: ("wordList"|"cloudStoragePath");

                        /**
                         * Creates a new Dictionary instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Dictionary instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.CustomInfoType.IDictionary): google.privacy.dlp.v2.CustomInfoType.Dictionary;

                        /**
                         * Encodes the specified Dictionary message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.Dictionary.verify|verify} messages.
                         * @param message Dictionary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.CustomInfoType.IDictionary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Dictionary message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.Dictionary.verify|verify} messages.
                         * @param message Dictionary message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.CustomInfoType.IDictionary, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Dictionary message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Dictionary
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CustomInfoType.Dictionary;

                        /**
                         * Decodes a Dictionary message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Dictionary
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CustomInfoType.Dictionary;

                        /**
                         * Verifies a Dictionary message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Dictionary message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Dictionary
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType.Dictionary;

                        /**
                         * Creates a plain object from a Dictionary message. Also converts values to other types if specified.
                         * @param message Dictionary
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.CustomInfoType.Dictionary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Dictionary to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Dictionary
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace Dictionary {

                        /** Properties of a WordList. */
                        interface IWordList {

                            /** WordList words */
                            words?: (string[]|null);
                        }

                        /** Represents a WordList. */
                        class WordList implements IWordList {

                            /**
                             * Constructs a new WordList.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.CustomInfoType.Dictionary.IWordList);

                            /** WordList words. */
                            public words: string[];

                            /**
                             * Creates a new WordList instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns WordList instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.CustomInfoType.Dictionary.IWordList): google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;

                            /**
                             * Encodes the specified WordList message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList.verify|verify} messages.
                             * @param message WordList message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.CustomInfoType.Dictionary.IWordList, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified WordList message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList.verify|verify} messages.
                             * @param message WordList message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.CustomInfoType.Dictionary.IWordList, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a WordList message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns WordList
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;

                            /**
                             * Decodes a WordList message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns WordList
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;

                            /**
                             * Verifies a WordList message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a WordList message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns WordList
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList;

                            /**
                             * Creates a plain object from a WordList message. Also converts values to other types if specified.
                             * @param message WordList
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.CustomInfoType.Dictionary.WordList, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this WordList to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for WordList
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** Properties of a Regex. */
                    interface IRegex {

                        /** Regex pattern */
                        pattern?: (string|null);

                        /** Regex groupIndexes */
                        groupIndexes?: (number[]|null);
                    }

                    /** Represents a Regex. */
                    class Regex implements IRegex {

                        /**
                         * Constructs a new Regex.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.CustomInfoType.IRegex);

                        /** Regex pattern. */
                        public pattern: string;

                        /** Regex groupIndexes. */
                        public groupIndexes: number[];

                        /**
                         * Creates a new Regex instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns Regex instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.CustomInfoType.IRegex): google.privacy.dlp.v2.CustomInfoType.Regex;

                        /**
                         * Encodes the specified Regex message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.Regex.verify|verify} messages.
                         * @param message Regex message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.CustomInfoType.IRegex, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified Regex message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.Regex.verify|verify} messages.
                         * @param message Regex message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.CustomInfoType.IRegex, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a Regex message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns Regex
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CustomInfoType.Regex;

                        /**
                         * Decodes a Regex message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns Regex
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CustomInfoType.Regex;

                        /**
                         * Verifies a Regex message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a Regex message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns Regex
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType.Regex;

                        /**
                         * Creates a plain object from a Regex message. Also converts values to other types if specified.
                         * @param message Regex
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.CustomInfoType.Regex, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this Regex to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for Regex
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a SurrogateType. */
                    interface ISurrogateType {
                    }

                    /** Represents a SurrogateType. */
                    class SurrogateType implements ISurrogateType {

                        /**
                         * Constructs a new SurrogateType.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.CustomInfoType.ISurrogateType);

                        /**
                         * Creates a new SurrogateType instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns SurrogateType instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.CustomInfoType.ISurrogateType): google.privacy.dlp.v2.CustomInfoType.SurrogateType;

                        /**
                         * Encodes the specified SurrogateType message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.SurrogateType.verify|verify} messages.
                         * @param message SurrogateType message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.CustomInfoType.ISurrogateType, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified SurrogateType message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.SurrogateType.verify|verify} messages.
                         * @param message SurrogateType message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.CustomInfoType.ISurrogateType, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a SurrogateType message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SurrogateType
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CustomInfoType.SurrogateType;

                        /**
                         * Decodes a SurrogateType message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SurrogateType
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CustomInfoType.SurrogateType;

                        /**
                         * Verifies a SurrogateType message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a SurrogateType message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SurrogateType
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType.SurrogateType;

                        /**
                         * Creates a plain object from a SurrogateType message. Also converts values to other types if specified.
                         * @param message SurrogateType
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.CustomInfoType.SurrogateType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this SurrogateType to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for SurrogateType
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a DetectionRule. */
                    interface IDetectionRule {

                        /** DetectionRule hotwordRule */
                        hotwordRule?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.IHotwordRule|null);
                    }

                    /** Represents a DetectionRule. */
                    class DetectionRule implements IDetectionRule {

                        /**
                         * Constructs a new DetectionRule.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.CustomInfoType.IDetectionRule);

                        /** DetectionRule hotwordRule. */
                        public hotwordRule?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.IHotwordRule|null);

                        /** DetectionRule type. */
                        public type?: "hotwordRule";

                        /**
                         * Creates a new DetectionRule instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DetectionRule instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.CustomInfoType.IDetectionRule): google.privacy.dlp.v2.CustomInfoType.DetectionRule;

                        /**
                         * Encodes the specified DetectionRule message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.DetectionRule.verify|verify} messages.
                         * @param message DetectionRule message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.CustomInfoType.IDetectionRule, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DetectionRule message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.DetectionRule.verify|verify} messages.
                         * @param message DetectionRule message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.CustomInfoType.IDetectionRule, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DetectionRule message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DetectionRule
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CustomInfoType.DetectionRule;

                        /**
                         * Decodes a DetectionRule message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DetectionRule
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CustomInfoType.DetectionRule;

                        /**
                         * Verifies a DetectionRule message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a DetectionRule message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DetectionRule
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType.DetectionRule;

                        /**
                         * Creates a plain object from a DetectionRule message. Also converts values to other types if specified.
                         * @param message DetectionRule
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DetectionRule to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DetectionRule
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    namespace DetectionRule {

                        /** Properties of a Proximity. */
                        interface IProximity {

                            /** Proximity windowBefore */
                            windowBefore?: (number|null);

                            /** Proximity windowAfter */
                            windowAfter?: (number|null);
                        }

                        /** Represents a Proximity. */
                        class Proximity implements IProximity {

                            /**
                             * Constructs a new Proximity.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.CustomInfoType.DetectionRule.IProximity);

                            /** Proximity windowBefore. */
                            public windowBefore: number;

                            /** Proximity windowAfter. */
                            public windowAfter: number;

                            /**
                             * Creates a new Proximity instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns Proximity instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.CustomInfoType.DetectionRule.IProximity): google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity;

                            /**
                             * Encodes the specified Proximity message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity.verify|verify} messages.
                             * @param message Proximity message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule.IProximity, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified Proximity message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity.verify|verify} messages.
                             * @param message Proximity message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule.IProximity, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a Proximity message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns Proximity
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity;

                            /**
                             * Decodes a Proximity message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns Proximity
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity;

                            /**
                             * Verifies a Proximity message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a Proximity message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns Proximity
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity;

                            /**
                             * Creates a plain object from a Proximity message. Also converts values to other types if specified.
                             * @param message Proximity
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule.Proximity, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this Proximity to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for Proximity
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a LikelihoodAdjustment. */
                        interface ILikelihoodAdjustment {

                            /** LikelihoodAdjustment fixedLikelihood */
                            fixedLikelihood?: (google.privacy.dlp.v2.Likelihood|keyof typeof google.privacy.dlp.v2.Likelihood|null);

                            /** LikelihoodAdjustment relativeLikelihood */
                            relativeLikelihood?: (number|null);
                        }

                        /** Represents a LikelihoodAdjustment. */
                        class LikelihoodAdjustment implements ILikelihoodAdjustment {

                            /**
                             * Constructs a new LikelihoodAdjustment.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.CustomInfoType.DetectionRule.ILikelihoodAdjustment);

                            /** LikelihoodAdjustment fixedLikelihood. */
                            public fixedLikelihood?: (google.privacy.dlp.v2.Likelihood|keyof typeof google.privacy.dlp.v2.Likelihood|null);

                            /** LikelihoodAdjustment relativeLikelihood. */
                            public relativeLikelihood?: (number|null);

                            /** LikelihoodAdjustment adjustment. */
                            public adjustment?: ("fixedLikelihood"|"relativeLikelihood");

                            /**
                             * Creates a new LikelihoodAdjustment instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns LikelihoodAdjustment instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.CustomInfoType.DetectionRule.ILikelihoodAdjustment): google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment;

                            /**
                             * Encodes the specified LikelihoodAdjustment message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment.verify|verify} messages.
                             * @param message LikelihoodAdjustment message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule.ILikelihoodAdjustment, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified LikelihoodAdjustment message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment.verify|verify} messages.
                             * @param message LikelihoodAdjustment message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule.ILikelihoodAdjustment, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a LikelihoodAdjustment message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns LikelihoodAdjustment
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment;

                            /**
                             * Decodes a LikelihoodAdjustment message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns LikelihoodAdjustment
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment;

                            /**
                             * Verifies a LikelihoodAdjustment message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a LikelihoodAdjustment message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns LikelihoodAdjustment
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment;

                            /**
                             * Creates a plain object from a LikelihoodAdjustment message. Also converts values to other types if specified.
                             * @param message LikelihoodAdjustment
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule.LikelihoodAdjustment, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this LikelihoodAdjustment to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for LikelihoodAdjustment
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }

                        /** Properties of a HotwordRule. */
                        interface IHotwordRule {

                            /** HotwordRule hotwordRegex */
                            hotwordRegex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);

                            /** HotwordRule proximity */
                            proximity?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.IProximity|null);

                            /** HotwordRule likelihoodAdjustment */
                            likelihoodAdjustment?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.ILikelihoodAdjustment|null);
                        }

                        /** Represents a HotwordRule. */
                        class HotwordRule implements IHotwordRule {

                            /**
                             * Constructs a new HotwordRule.
                             * @param [properties] Properties to set
                             */
                            constructor(properties?: google.privacy.dlp.v2.CustomInfoType.DetectionRule.IHotwordRule);

                            /** HotwordRule hotwordRegex. */
                            public hotwordRegex?: (google.privacy.dlp.v2.CustomInfoType.IRegex|null);

                            /** HotwordRule proximity. */
                            public proximity?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.IProximity|null);

                            /** HotwordRule likelihoodAdjustment. */
                            public likelihoodAdjustment?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.ILikelihoodAdjustment|null);

                            /**
                             * Creates a new HotwordRule instance using the specified properties.
                             * @param [properties] Properties to set
                             * @returns HotwordRule instance
                             */
                            public static create(properties?: google.privacy.dlp.v2.CustomInfoType.DetectionRule.IHotwordRule): google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule;

                            /**
                             * Encodes the specified HotwordRule message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule.verify|verify} messages.
                             * @param message HotwordRule message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encode(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule.IHotwordRule, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Encodes the specified HotwordRule message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule.verify|verify} messages.
                             * @param message HotwordRule message or plain object to encode
                             * @param [writer] Writer to encode to
                             * @returns Writer
                             */
                            public static encodeDelimited(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule.IHotwordRule, writer?: $protobuf.Writer): $protobuf.Writer;

                            /**
                             * Decodes a HotwordRule message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns HotwordRule
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule;

                            /**
                             * Decodes a HotwordRule message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns HotwordRule
                             * @throws {Error} If the payload is not a reader or valid buffer
                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
                             */
                            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule;

                            /**
                             * Verifies a HotwordRule message.
                             * @param message Plain object to verify
                             * @returns `null` if valid, otherwise the reason why it is not
                             */
                            public static verify(message: { [k: string]: any }): (string|null);

                            /**
                             * Creates a HotwordRule message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns HotwordRule
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule;

                            /**
                             * Creates a plain object from a HotwordRule message. Also converts values to other types if specified.
                             * @param message HotwordRule
                             * @param [options] Conversion options
                             * @returns Plain object
                             */
                            public static toObject(message: google.privacy.dlp.v2.CustomInfoType.DetectionRule.HotwordRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

                            /**
                             * Converts this HotwordRule to JSON.
                             * @returns JSON object
                             */
                            public toJSON(): { [k: string]: any };

                            /**
                             * Gets the default type url for HotwordRule
                             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                             * @returns The default type url
                             */
                            public static getTypeUrl(typeUrlPrefix?: string): string;
                        }
                    }

                    /** ExclusionType enum. */
                    enum ExclusionType {
                        EXCLUSION_TYPE_UNSPECIFIED = 0,
                        EXCLUSION_TYPE_EXCLUDE = 1
                    }
                }

                /** Properties of a FieldId. */
                interface IFieldId {

                    /** FieldId name */
                    name?: (string|null);
                }

                /** Represents a FieldId. */
                class FieldId implements IFieldId {

                    /**
                     * Constructs a new FieldId.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IFieldId);

                    /** FieldId name. */
                    public name: string;

                    /**
                     * Creates a new FieldId instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FieldId instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFieldId): google.privacy.dlp.v2.FieldId;

                    /**
                     * Encodes the specified FieldId message. Does not implicitly {@link google.privacy.dlp.v2.FieldId.verify|verify} messages.
                     * @param message FieldId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFieldId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FieldId message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.FieldId.verify|verify} messages.
                     * @param message FieldId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFieldId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FieldId message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FieldId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.FieldId;

                    /**
                     * Decodes a FieldId message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FieldId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.FieldId;

                    /**
                     * Verifies a FieldId message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a FieldId message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FieldId
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FieldId;

                    /**
                     * Creates a plain object from a FieldId message. Also converts values to other types if specified.
                     * @param message FieldId
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.FieldId, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FieldId to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FieldId
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a PartitionId. */
                interface IPartitionId {

                    /** PartitionId projectId */
                    projectId?: (string|null);

                    /** PartitionId namespaceId */
                    namespaceId?: (string|null);
                }

                /** Represents a PartitionId. */
                class PartitionId implements IPartitionId {

                    /**
                     * Constructs a new PartitionId.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IPartitionId);

                    /** PartitionId projectId. */
                    public projectId: string;

                    /** PartitionId namespaceId. */
                    public namespaceId: string;

                    /**
                     * Creates a new PartitionId instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns PartitionId instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IPartitionId): google.privacy.dlp.v2.PartitionId;

                    /**
                     * Encodes the specified PartitionId message. Does not implicitly {@link google.privacy.dlp.v2.PartitionId.verify|verify} messages.
                     * @param message PartitionId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IPartitionId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified PartitionId message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.PartitionId.verify|verify} messages.
                     * @param message PartitionId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IPartitionId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a PartitionId message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns PartitionId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.PartitionId;

                    /**
                     * Decodes a PartitionId message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns PartitionId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.PartitionId;

                    /**
                     * Verifies a PartitionId message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a PartitionId message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns PartitionId
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.PartitionId;

                    /**
                     * Creates a plain object from a PartitionId message. Also converts values to other types if specified.
                     * @param message PartitionId
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.PartitionId, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this PartitionId to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for PartitionId
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a KindExpression. */
                interface IKindExpression {

                    /** KindExpression name */
                    name?: (string|null);
                }

                /** Represents a KindExpression. */
                class KindExpression implements IKindExpression {

                    /**
                     * Constructs a new KindExpression.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IKindExpression);

                    /** KindExpression name. */
                    public name: string;

                    /**
                     * Creates a new KindExpression instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns KindExpression instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IKindExpression): google.privacy.dlp.v2.KindExpression;

                    /**
                     * Encodes the specified KindExpression message. Does not implicitly {@link google.privacy.dlp.v2.KindExpression.verify|verify} messages.
                     * @param message KindExpression message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IKindExpression, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified KindExpression message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.KindExpression.verify|verify} messages.
                     * @param message KindExpression message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IKindExpression, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a KindExpression message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KindExpression
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.KindExpression;

                    /**
                     * Decodes a KindExpression message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KindExpression
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.KindExpression;

                    /**
                     * Verifies a KindExpression message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a KindExpression message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KindExpression
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.KindExpression;

                    /**
                     * Creates a plain object from a KindExpression message. Also converts values to other types if specified.
                     * @param message KindExpression
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.KindExpression, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this KindExpression to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for KindExpression
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DatastoreOptions. */
                interface IDatastoreOptions {

                    /** DatastoreOptions partitionId */
                    partitionId?: (google.privacy.dlp.v2.IPartitionId|null);

                    /** DatastoreOptions kind */
                    kind?: (google.privacy.dlp.v2.IKindExpression|null);
                }

                /** Represents a DatastoreOptions. */
                class DatastoreOptions implements IDatastoreOptions {

                    /**
                     * Constructs a new DatastoreOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDatastoreOptions);

                    /** DatastoreOptions partitionId. */
                    public partitionId?: (google.privacy.dlp.v2.IPartitionId|null);

                    /** DatastoreOptions kind. */
                    public kind?: (google.privacy.dlp.v2.IKindExpression|null);

                    /**
                     * Creates a new DatastoreOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DatastoreOptions instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDatastoreOptions): google.privacy.dlp.v2.DatastoreOptions;

                    /**
                     * Encodes the specified DatastoreOptions message. Does not implicitly {@link google.privacy.dlp.v2.DatastoreOptions.verify|verify} messages.
                     * @param message DatastoreOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDatastoreOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DatastoreOptions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DatastoreOptions.verify|verify} messages.
                     * @param message DatastoreOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDatastoreOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DatastoreOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DatastoreOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DatastoreOptions;

                    /**
                     * Decodes a DatastoreOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DatastoreOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DatastoreOptions;

                    /**
                     * Verifies a DatastoreOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DatastoreOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DatastoreOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DatastoreOptions;

                    /**
                     * Creates a plain object from a DatastoreOptions message. Also converts values to other types if specified.
                     * @param message DatastoreOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DatastoreOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DatastoreOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DatastoreOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** FileType enum. */
                enum FileType {
                    FILE_TYPE_UNSPECIFIED = 0,
                    BINARY_FILE = 1,
                    TEXT_FILE = 2,
                    IMAGE = 3,
                    WORD = 5,
                    PDF = 6,
                    AVRO = 7,
                    CSV = 8,
                    TSV = 9,
                    POWERPOINT = 11,
                    EXCEL = 12
                }

                /** Properties of a CloudStorageRegexFileSet. */
                interface ICloudStorageRegexFileSet {

                    /** CloudStorageRegexFileSet bucketName */
                    bucketName?: (string|null);

                    /** CloudStorageRegexFileSet includeRegex */
                    includeRegex?: (string[]|null);

                    /** CloudStorageRegexFileSet excludeRegex */
                    excludeRegex?: (string[]|null);
                }

                /** Represents a CloudStorageRegexFileSet. */
                class CloudStorageRegexFileSet implements ICloudStorageRegexFileSet {

                    /**
                     * Constructs a new CloudStorageRegexFileSet.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICloudStorageRegexFileSet);

                    /** CloudStorageRegexFileSet bucketName. */
                    public bucketName: string;

                    /** CloudStorageRegexFileSet includeRegex. */
                    public includeRegex: string[];

                    /** CloudStorageRegexFileSet excludeRegex. */
                    public excludeRegex: string[];

                    /**
                     * Creates a new CloudStorageRegexFileSet instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloudStorageRegexFileSet instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICloudStorageRegexFileSet): google.privacy.dlp.v2.CloudStorageRegexFileSet;

                    /**
                     * Encodes the specified CloudStorageRegexFileSet message. Does not implicitly {@link google.privacy.dlp.v2.CloudStorageRegexFileSet.verify|verify} messages.
                     * @param message CloudStorageRegexFileSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICloudStorageRegexFileSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloudStorageRegexFileSet message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CloudStorageRegexFileSet.verify|verify} messages.
                     * @param message CloudStorageRegexFileSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICloudStorageRegexFileSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloudStorageRegexFileSet message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudStorageRegexFileSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CloudStorageRegexFileSet;

                    /**
                     * Decodes a CloudStorageRegexFileSet message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudStorageRegexFileSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CloudStorageRegexFileSet;

                    /**
                     * Verifies a CloudStorageRegexFileSet message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloudStorageRegexFileSet message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudStorageRegexFileSet
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudStorageRegexFileSet;

                    /**
                     * Creates a plain object from a CloudStorageRegexFileSet message. Also converts values to other types if specified.
                     * @param message CloudStorageRegexFileSet
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CloudStorageRegexFileSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloudStorageRegexFileSet to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloudStorageRegexFileSet
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloudStorageOptions. */
                interface ICloudStorageOptions {

                    /** CloudStorageOptions fileSet */
                    fileSet?: (google.privacy.dlp.v2.CloudStorageOptions.IFileSet|null);

                    /** CloudStorageOptions bytesLimitPerFile */
                    bytesLimitPerFile?: (number|Long|string|null);

                    /** CloudStorageOptions bytesLimitPerFilePercent */
                    bytesLimitPerFilePercent?: (number|null);

                    /** CloudStorageOptions fileTypes */
                    fileTypes?: (google.privacy.dlp.v2.FileType[]|null);

                    /** CloudStorageOptions sampleMethod */
                    sampleMethod?: (google.privacy.dlp.v2.CloudStorageOptions.SampleMethod|keyof typeof google.privacy.dlp.v2.CloudStorageOptions.SampleMethod|null);

                    /** CloudStorageOptions filesLimitPercent */
                    filesLimitPercent?: (number|null);
                }

                /** Represents a CloudStorageOptions. */
                class CloudStorageOptions implements ICloudStorageOptions {

                    /**
                     * Constructs a new CloudStorageOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICloudStorageOptions);

                    /** CloudStorageOptions fileSet. */
                    public fileSet?: (google.privacy.dlp.v2.CloudStorageOptions.IFileSet|null);

                    /** CloudStorageOptions bytesLimitPerFile. */
                    public bytesLimitPerFile: (number|Long|string);

                    /** CloudStorageOptions bytesLimitPerFilePercent. */
                    public bytesLimitPerFilePercent: number;

                    /** CloudStorageOptions fileTypes. */
                    public fileTypes: google.privacy.dlp.v2.FileType[];

                    /** CloudStorageOptions sampleMethod. */
                    public sampleMethod: (google.privacy.dlp.v2.CloudStorageOptions.SampleMethod|keyof typeof google.privacy.dlp.v2.CloudStorageOptions.SampleMethod);

                    /** CloudStorageOptions filesLimitPercent. */
                    public filesLimitPercent: number;

                    /**
                     * Creates a new CloudStorageOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloudStorageOptions instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICloudStorageOptions): google.privacy.dlp.v2.CloudStorageOptions;

                    /**
                     * Encodes the specified CloudStorageOptions message. Does not implicitly {@link google.privacy.dlp.v2.CloudStorageOptions.verify|verify} messages.
                     * @param message CloudStorageOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICloudStorageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloudStorageOptions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CloudStorageOptions.verify|verify} messages.
                     * @param message CloudStorageOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICloudStorageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloudStorageOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudStorageOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CloudStorageOptions;

                    /**
                     * Decodes a CloudStorageOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudStorageOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CloudStorageOptions;

                    /**
                     * Verifies a CloudStorageOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloudStorageOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudStorageOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudStorageOptions;

                    /**
                     * Creates a plain object from a CloudStorageOptions message. Also converts values to other types if specified.
                     * @param message CloudStorageOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CloudStorageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloudStorageOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloudStorageOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CloudStorageOptions {

                    /** Properties of a FileSet. */
                    interface IFileSet {

                        /** FileSet url */
                        url?: (string|null);

                        /** FileSet regexFileSet */
                        regexFileSet?: (google.privacy.dlp.v2.ICloudStorageRegexFileSet|null);
                    }

                    /** Represents a FileSet. */
                    class FileSet implements IFileSet {

                        /**
                         * Constructs a new FileSet.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.CloudStorageOptions.IFileSet);

                        /** FileSet url. */
                        public url: string;

                        /** FileSet regexFileSet. */
                        public regexFileSet?: (google.privacy.dlp.v2.ICloudStorageRegexFileSet|null);

                        /**
                         * Creates a new FileSet instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns FileSet instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.CloudStorageOptions.IFileSet): google.privacy.dlp.v2.CloudStorageOptions.FileSet;

                        /**
                         * Encodes the specified FileSet message. Does not implicitly {@link google.privacy.dlp.v2.CloudStorageOptions.FileSet.verify|verify} messages.
                         * @param message FileSet message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.CloudStorageOptions.IFileSet, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified FileSet message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CloudStorageOptions.FileSet.verify|verify} messages.
                         * @param message FileSet message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.CloudStorageOptions.IFileSet, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a FileSet message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns FileSet
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CloudStorageOptions.FileSet;

                        /**
                         * Decodes a FileSet message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns FileSet
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CloudStorageOptions.FileSet;

                        /**
                         * Verifies a FileSet message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a FileSet message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns FileSet
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudStorageOptions.FileSet;

                        /**
                         * Creates a plain object from a FileSet message. Also converts values to other types if specified.
                         * @param message FileSet
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.CloudStorageOptions.FileSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this FileSet to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for FileSet
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** SampleMethod enum. */
                    enum SampleMethod {
                        SAMPLE_METHOD_UNSPECIFIED = 0,
                        TOP = 1,
                        RANDOM_START = 2
                    }
                }

                /** Properties of a CloudStorageFileSet. */
                interface ICloudStorageFileSet {

                    /** CloudStorageFileSet url */
                    url?: (string|null);
                }

                /** Represents a CloudStorageFileSet. */
                class CloudStorageFileSet implements ICloudStorageFileSet {

                    /**
                     * Constructs a new CloudStorageFileSet.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICloudStorageFileSet);

                    /** CloudStorageFileSet url. */
                    public url: string;

                    /**
                     * Creates a new CloudStorageFileSet instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloudStorageFileSet instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICloudStorageFileSet): google.privacy.dlp.v2.CloudStorageFileSet;

                    /**
                     * Encodes the specified CloudStorageFileSet message. Does not implicitly {@link google.privacy.dlp.v2.CloudStorageFileSet.verify|verify} messages.
                     * @param message CloudStorageFileSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICloudStorageFileSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloudStorageFileSet message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CloudStorageFileSet.verify|verify} messages.
                     * @param message CloudStorageFileSet message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICloudStorageFileSet, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloudStorageFileSet message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudStorageFileSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CloudStorageFileSet;

                    /**
                     * Decodes a CloudStorageFileSet message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudStorageFileSet
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CloudStorageFileSet;

                    /**
                     * Verifies a CloudStorageFileSet message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloudStorageFileSet message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudStorageFileSet
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudStorageFileSet;

                    /**
                     * Creates a plain object from a CloudStorageFileSet message. Also converts values to other types if specified.
                     * @param message CloudStorageFileSet
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CloudStorageFileSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloudStorageFileSet to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloudStorageFileSet
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloudStoragePath. */
                interface ICloudStoragePath {

                    /** CloudStoragePath path */
                    path?: (string|null);
                }

                /** Represents a CloudStoragePath. */
                class CloudStoragePath implements ICloudStoragePath {

                    /**
                     * Constructs a new CloudStoragePath.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICloudStoragePath);

                    /** CloudStoragePath path. */
                    public path: string;

                    /**
                     * Creates a new CloudStoragePath instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloudStoragePath instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICloudStoragePath): google.privacy.dlp.v2.CloudStoragePath;

                    /**
                     * Encodes the specified CloudStoragePath message. Does not implicitly {@link google.privacy.dlp.v2.CloudStoragePath.verify|verify} messages.
                     * @param message CloudStoragePath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICloudStoragePath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloudStoragePath message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CloudStoragePath.verify|verify} messages.
                     * @param message CloudStoragePath message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICloudStoragePath, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloudStoragePath message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudStoragePath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.CloudStoragePath;

                    /**
                     * Decodes a CloudStoragePath message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudStoragePath
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.CloudStoragePath;

                    /**
                     * Verifies a CloudStoragePath message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a CloudStoragePath message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudStoragePath
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudStoragePath;

                    /**
                     * Creates a plain object from a CloudStoragePath message. Also converts values to other types if specified.
                     * @param message CloudStoragePath
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CloudStoragePath, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloudStoragePath to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloudStoragePath
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BigQueryOptions. */
                interface IBigQueryOptions {

                    /** BigQueryOptions tableReference */
                    tableReference?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** BigQueryOptions identifyingFields */
                    identifyingFields?: (google.privacy.dlp.v2.IFieldId[]|null);

                    /** BigQueryOptions rowsLimit */
                    rowsLimit?: (number|Long|string|null);

                    /** BigQueryOptions rowsLimitPercent */
                    rowsLimitPercent?: (number|null);

                    /** BigQueryOptions sampleMethod */
                    sampleMethod?: (google.privacy.dlp.v2.BigQueryOptions.SampleMethod|keyof typeof google.privacy.dlp.v2.BigQueryOptions.SampleMethod|null);

                    /** BigQueryOptions excludedFields */
                    excludedFields?: (google.privacy.dlp.v2.IFieldId[]|null);

                    /** BigQueryOptions includedFields */
                    includedFields?: (google.privacy.dlp.v2.IFieldId[]|null);
                }

                /** Represents a BigQueryOptions. */
                class BigQueryOptions implements IBigQueryOptions {

                    /**
                     * Constructs a new BigQueryOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IBigQueryOptions);

                    /** BigQueryOptions tableReference. */
                    public tableReference?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** BigQueryOptions identifyingFields. */
                    public identifyingFields: google.privacy.dlp.v2.IFieldId[];

                    /** BigQueryOptions rowsLimit. */
                    public rowsLimit: (number|Long|string);

                    /** BigQueryOptions rowsLimitPercent. */
                    public rowsLimitPercent: number;

                    /** BigQueryOptions sampleMethod. */
                    public sampleMethod: (google.privacy.dlp.v2.BigQueryOptions.SampleMethod|keyof typeof google.privacy.dlp.v2.BigQueryOptions.SampleMethod);

                    /** BigQueryOptions excludedFields. */
                    public excludedFields: google.privacy.dlp.v2.IFieldId[];

                    /** BigQueryOptions includedFields. */
                    public includedFields: google.privacy.dlp.v2.IFieldId[];

                    /**
                     * Creates a new BigQueryOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BigQueryOptions instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IBigQueryOptions): google.privacy.dlp.v2.BigQueryOptions;

                    /**
                     * Encodes the specified BigQueryOptions message. Does not implicitly {@link google.privacy.dlp.v2.BigQueryOptions.verify|verify} messages.
                     * @param message BigQueryOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IBigQueryOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BigQueryOptions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.BigQueryOptions.verify|verify} messages.
                     * @param message BigQueryOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IBigQueryOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BigQueryOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.BigQueryOptions;

                    /**
                     * Decodes a BigQueryOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.BigQueryOptions;

                    /**
                     * Verifies a BigQueryOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BigQueryOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BigQueryOptions;

                    /**
                     * Creates a plain object from a BigQueryOptions message. Also converts values to other types if specified.
                     * @param message BigQueryOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.BigQueryOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BigQueryOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BigQueryOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace BigQueryOptions {

                    /** SampleMethod enum. */
                    enum SampleMethod {
                        SAMPLE_METHOD_UNSPECIFIED = 0,
                        TOP = 1,
                        RANDOM_START = 2
                    }
                }

                /** Properties of a StorageConfig. */
                interface IStorageConfig {

                    /** StorageConfig datastoreOptions */
                    datastoreOptions?: (google.privacy.dlp.v2.IDatastoreOptions|null);

                    /** StorageConfig cloudStorageOptions */
                    cloudStorageOptions?: (google.privacy.dlp.v2.ICloudStorageOptions|null);

                    /** StorageConfig bigQueryOptions */
                    bigQueryOptions?: (google.privacy.dlp.v2.IBigQueryOptions|null);

                    /** StorageConfig hybridOptions */
                    hybridOptions?: (google.privacy.dlp.v2.IHybridOptions|null);

                    /** StorageConfig timespanConfig */
                    timespanConfig?: (google.privacy.dlp.v2.StorageConfig.ITimespanConfig|null);
                }

                /** Represents a StorageConfig. */
                class StorageConfig implements IStorageConfig {

                    /**
                     * Constructs a new StorageConfig.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IStorageConfig);

                    /** StorageConfig datastoreOptions. */
                    public datastoreOptions?: (google.privacy.dlp.v2.IDatastoreOptions|null);

                    /** StorageConfig cloudStorageOptions. */
                    public cloudStorageOptions?: (google.privacy.dlp.v2.ICloudStorageOptions|null);

                    /** StorageConfig bigQueryOptions. */
                    public bigQueryOptions?: (google.privacy.dlp.v2.IBigQueryOptions|null);

                    /** StorageConfig hybridOptions. */
                    public hybridOptions?: (google.privacy.dlp.v2.IHybridOptions|null);

                    /** StorageConfig timespanConfig. */
                    public timespanConfig?: (google.privacy.dlp.v2.StorageConfig.ITimespanConfig|null);

                    /** StorageConfig type. */
                    public type?: ("datastoreOptions"|"cloudStorageOptions"|"bigQueryOptions"|"hybridOptions");

                    /**
                     * Creates a new StorageConfig instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns StorageConfig instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IStorageConfig): google.privacy.dlp.v2.StorageConfig;

                    /**
                     * Encodes the specified StorageConfig message. Does not implicitly {@link google.privacy.dlp.v2.StorageConfig.verify|verify} messages.
                     * @param message StorageConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IStorageConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified StorageConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StorageConfig.verify|verify} messages.
                     * @param message StorageConfig message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IStorageConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a StorageConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns StorageConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StorageConfig;

                    /**
                     * Decodes a StorageConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns StorageConfig
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StorageConfig;

                    /**
                     * Verifies a StorageConfig message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a StorageConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns StorageConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StorageConfig;

                    /**
                     * Creates a plain object from a StorageConfig message. Also converts values to other types if specified.
                     * @param message StorageConfig
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.StorageConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this StorageConfig to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for StorageConfig
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace StorageConfig {

                    /** Properties of a TimespanConfig. */
                    interface ITimespanConfig {

                        /** TimespanConfig startTime */
                        startTime?: (google.protobuf.ITimestamp|null);

                        /** TimespanConfig endTime */
                        endTime?: (google.protobuf.ITimestamp|null);

                        /** TimespanConfig timestampField */
                        timestampField?: (google.privacy.dlp.v2.IFieldId|null);

                        /** TimespanConfig enableAutoPopulationOfTimespanConfig */
                        enableAutoPopulationOfTimespanConfig?: (boolean|null);
                    }

                    /** Represents a TimespanConfig. */
                    class TimespanConfig implements ITimespanConfig {

                        /**
                         * Constructs a new TimespanConfig.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.StorageConfig.ITimespanConfig);

                        /** TimespanConfig startTime. */
                        public startTime?: (google.protobuf.ITimestamp|null);

                        /** TimespanConfig endTime. */
                        public endTime?: (google.protobuf.ITimestamp|null);

                        /** TimespanConfig timestampField. */
                        public timestampField?: (google.privacy.dlp.v2.IFieldId|null);

                        /** TimespanConfig enableAutoPopulationOfTimespanConfig. */
                        public enableAutoPopulationOfTimespanConfig: boolean;

                        /**
                         * Creates a new TimespanConfig instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns TimespanConfig instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.StorageConfig.ITimespanConfig): google.privacy.dlp.v2.StorageConfig.TimespanConfig;

                        /**
                         * Encodes the specified TimespanConfig message. Does not implicitly {@link google.privacy.dlp.v2.StorageConfig.TimespanConfig.verify|verify} messages.
                         * @param message TimespanConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.StorageConfig.ITimespanConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified TimespanConfig message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.StorageConfig.TimespanConfig.verify|verify} messages.
                         * @param message TimespanConfig message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.StorageConfig.ITimespanConfig, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a TimespanConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TimespanConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.StorageConfig.TimespanConfig;

                        /**
                         * Decodes a TimespanConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TimespanConfig
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.StorageConfig.TimespanConfig;

                        /**
                         * Verifies a TimespanConfig message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a TimespanConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TimespanConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.StorageConfig.TimespanConfig;

                        /**
                         * Creates a plain object from a TimespanConfig message. Also converts values to other types if specified.
                         * @param message TimespanConfig
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.StorageConfig.TimespanConfig, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this TimespanConfig to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for TimespanConfig
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a HybridOptions. */
                interface IHybridOptions {

                    /** HybridOptions description */
                    description?: (string|null);

                    /** HybridOptions requiredFindingLabelKeys */
                    requiredFindingLabelKeys?: (string[]|null);

                    /** HybridOptions labels */
                    labels?: ({ [k: string]: string }|null);

                    /** HybridOptions tableOptions */
                    tableOptions?: (google.privacy.dlp.v2.ITableOptions|null);
                }

                /** Represents a HybridOptions. */
                class HybridOptions implements IHybridOptions {

                    /**
                     * Constructs a new HybridOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IHybridOptions);

                    /** HybridOptions description. */
                    public description: string;

                    /** HybridOptions requiredFindingLabelKeys. */
                    public requiredFindingLabelKeys: string[];

                    /** HybridOptions labels. */
                    public labels: { [k: string]: string };

                    /** HybridOptions tableOptions. */
                    public tableOptions?: (google.privacy.dlp.v2.ITableOptions|null);

                    /**
                     * Creates a new HybridOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns HybridOptions instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IHybridOptions): google.privacy.dlp.v2.HybridOptions;

                    /**
                     * Encodes the specified HybridOptions message. Does not implicitly {@link google.privacy.dlp.v2.HybridOptions.verify|verify} messages.
                     * @param message HybridOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IHybridOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified HybridOptions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.HybridOptions.verify|verify} messages.
                     * @param message HybridOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IHybridOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a HybridOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns HybridOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.HybridOptions;

                    /**
                     * Decodes a HybridOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns HybridOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.HybridOptions;

                    /**
                     * Verifies a HybridOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a HybridOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns HybridOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.HybridOptions;

                    /**
                     * Creates a plain object from a HybridOptions message. Also converts values to other types if specified.
                     * @param message HybridOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.HybridOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this HybridOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for HybridOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BigQueryKey. */
                interface IBigQueryKey {

                    /** BigQueryKey tableReference */
                    tableReference?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** BigQueryKey rowNumber */
                    rowNumber?: (number|Long|string|null);
                }

                /** Represents a BigQueryKey. */
                class BigQueryKey implements IBigQueryKey {

                    /**
                     * Constructs a new BigQueryKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IBigQueryKey);

                    /** BigQueryKey tableReference. */
                    public tableReference?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** BigQueryKey rowNumber. */
                    public rowNumber: (number|Long|string);

                    /**
                     * Creates a new BigQueryKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BigQueryKey instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IBigQueryKey): google.privacy.dlp.v2.BigQueryKey;

                    /**
                     * Encodes the specified BigQueryKey message. Does not implicitly {@link google.privacy.dlp.v2.BigQueryKey.verify|verify} messages.
                     * @param message BigQueryKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IBigQueryKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BigQueryKey message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.BigQueryKey.verify|verify} messages.
                     * @param message BigQueryKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IBigQueryKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BigQueryKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.BigQueryKey;

                    /**
                     * Decodes a BigQueryKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.BigQueryKey;

                    /**
                     * Verifies a BigQueryKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BigQueryKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BigQueryKey;

                    /**
                     * Creates a plain object from a BigQueryKey message. Also converts values to other types if specified.
                     * @param message BigQueryKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.BigQueryKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BigQueryKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BigQueryKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DatastoreKey. */
                interface IDatastoreKey {

                    /** DatastoreKey entityKey */
                    entityKey?: (google.privacy.dlp.v2.IKey|null);
                }

                /** Represents a DatastoreKey. */
                class DatastoreKey implements IDatastoreKey {

                    /**
                     * Constructs a new DatastoreKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDatastoreKey);

                    /** DatastoreKey entityKey. */
                    public entityKey?: (google.privacy.dlp.v2.IKey|null);

                    /**
                     * Creates a new DatastoreKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DatastoreKey instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDatastoreKey): google.privacy.dlp.v2.DatastoreKey;

                    /**
                     * Encodes the specified DatastoreKey message. Does not implicitly {@link google.privacy.dlp.v2.DatastoreKey.verify|verify} messages.
                     * @param message DatastoreKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDatastoreKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DatastoreKey message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DatastoreKey.verify|verify} messages.
                     * @param message DatastoreKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDatastoreKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DatastoreKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DatastoreKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.DatastoreKey;

                    /**
                     * Decodes a DatastoreKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DatastoreKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.DatastoreKey;

                    /**
                     * Verifies a DatastoreKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a DatastoreKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DatastoreKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DatastoreKey;

                    /**
                     * Creates a plain object from a DatastoreKey message. Also converts values to other types if specified.
                     * @param message DatastoreKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DatastoreKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DatastoreKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DatastoreKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Key. */
                interface IKey {

                    /** Key partitionId */
                    partitionId?: (google.privacy.dlp.v2.IPartitionId|null);

                    /** Key path */
                    path?: (google.privacy.dlp.v2.Key.IPathElement[]|null);
                }

                /** Represents a Key. */
                class Key implements IKey {

                    /**
                     * Constructs a new Key.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IKey);

                    /** Key partitionId. */
                    public partitionId?: (google.privacy.dlp.v2.IPartitionId|null);

                    /** Key path. */
                    public path: google.privacy.dlp.v2.Key.IPathElement[];

                    /**
                     * Creates a new Key instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Key instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IKey): google.privacy.dlp.v2.Key;

                    /**
                     * Encodes the specified Key message. Does not implicitly {@link google.privacy.dlp.v2.Key.verify|verify} messages.
                     * @param message Key message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Key message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Key.verify|verify} messages.
                     * @param message Key message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Key message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Key
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Key;

                    /**
                     * Decodes a Key message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Key
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Key;

                    /**
                     * Verifies a Key message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a Key message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Key
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Key;

                    /**
                     * Creates a plain object from a Key message. Also converts values to other types if specified.
                     * @param message Key
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Key, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Key to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Key
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Key {

                    /** Properties of a PathElement. */
                    interface IPathElement {

                        /** PathElement kind */
                        kind?: (string|null);

                        /** PathElement id */
                        id?: (number|Long|string|null);

                        /** PathElement name */
                        name?: (string|null);
                    }

                    /** Represents a PathElement. */
                    class PathElement implements IPathElement {

                        /**
                         * Constructs a new PathElement.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.Key.IPathElement);

                        /** PathElement kind. */
                        public kind: string;

                        /** PathElement id. */
                        public id?: (number|Long|string|null);

                        /** PathElement name. */
                        public name?: (string|null);

                        /** PathElement idType. */
                        public idType?: ("id"|"name");

                        /**
                         * Creates a new PathElement instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns PathElement instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.Key.IPathElement): google.privacy.dlp.v2.Key.PathElement;

                        /**
                         * Encodes the specified PathElement message. Does not implicitly {@link google.privacy.dlp.v2.Key.PathElement.verify|verify} messages.
                         * @param message PathElement message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.Key.IPathElement, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified PathElement message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Key.PathElement.verify|verify} messages.
                         * @param message PathElement message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.Key.IPathElement, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a PathElement message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PathElement
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.Key.PathElement;

                        /**
                         * Decodes a PathElement message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PathElement
                         * @throws {Error} If the payload is not a reader or valid buffer
                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
                         */
                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.Key.PathElement;

                        /**
                         * Verifies a PathElement message.
                         * @param message Plain object to verify
                         * @returns `null` if valid, otherwise the reason why it is not
                         */
                        public static verify(message: { [k: string]: any }): (string|null);

                        /**
                         * Creates a PathElement message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PathElement
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Key.PathElement;

                        /**
                         * Creates a plain object from a PathElement message. Also converts values to other types if specified.
                         * @param message PathElement
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.Key.PathElement, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this PathElement to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for PathElement
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a RecordKey. */
                interface IRecordKey {

                    /** RecordKey datastoreKey */
                    datastoreKey?: (google.privacy.dlp.v2.IDatastoreKey|null);

                    /** RecordKey bigQueryKey */
                    bigQueryKey?: (google.privacy.dlp.v2.IBigQueryKey|null);

                    /** RecordKey idValues */
                    idValues?: (string[]|null);
                }

                /** Represents a RecordKey. */
                class RecordKey implements IRecordKey {

                    /**
                     * Constructs a new RecordKey.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRecordKey);

                    /** RecordKey datastoreKey. */
                    public datastoreKey?: (google.privacy.dlp.v2.IDatastoreKey|null);

                    /** RecordKey bigQueryKey. */
                    public bigQueryKey?: (google.privacy.dlp.v2.IBigQueryKey|null);

                    /** RecordKey idValues. */
                    public idValues: string[];

                    /** RecordKey type. */
                    public type?: ("datastoreKey"|"bigQueryKey");

                    /**
                     * Creates a new RecordKey instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RecordKey instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRecordKey): google.privacy.dlp.v2.RecordKey;

                    /**
                     * Encodes the specified RecordKey message. Does not implicitly {@link google.privacy.dlp.v2.RecordKey.verify|verify} messages.
                     * @param message RecordKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRecordKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RecordKey message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RecordKey.verify|verify} messages.
                     * @param message RecordKey message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRecordKey, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RecordKey message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RecordKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.RecordKey;

                    /**
                     * Decodes a RecordKey message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RecordKey
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.RecordKey;

                    /**
                     * Verifies a RecordKey message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a RecordKey message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RecordKey
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RecordKey;

                    /**
                     * Creates a plain object from a RecordKey message. Also converts values to other types if specified.
                     * @param message RecordKey
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RecordKey, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RecordKey to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RecordKey
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BigQueryTable. */
                interface IBigQueryTable {

                    /** BigQueryTable projectId */
                    projectId?: (string|null);

                    /** BigQueryTable datasetId */
                    datasetId?: (string|null);

                    /** BigQueryTable tableId */
                    tableId?: (string|null);
                }

                /** Represents a BigQueryTable. */
                class BigQueryTable implements IBigQueryTable {

                    /**
                     * Constructs a new BigQueryTable.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IBigQueryTable);

                    /** BigQueryTable projectId. */
                    public projectId: string;

                    /** BigQueryTable datasetId. */
                    public datasetId: string;

                    /** BigQueryTable tableId. */
                    public tableId: string;

                    /**
                     * Creates a new BigQueryTable instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BigQueryTable instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IBigQueryTable): google.privacy.dlp.v2.BigQueryTable;

                    /**
                     * Encodes the specified BigQueryTable message. Does not implicitly {@link google.privacy.dlp.v2.BigQueryTable.verify|verify} messages.
                     * @param message BigQueryTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IBigQueryTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BigQueryTable message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.BigQueryTable.verify|verify} messages.
                     * @param message BigQueryTable message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IBigQueryTable, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BigQueryTable message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.BigQueryTable;

                    /**
                     * Decodes a BigQueryTable message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryTable
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.BigQueryTable;

                    /**
                     * Verifies a BigQueryTable message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BigQueryTable message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryTable
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BigQueryTable;

                    /**
                     * Creates a plain object from a BigQueryTable message. Also converts values to other types if specified.
                     * @param message BigQueryTable
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.BigQueryTable, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BigQueryTable to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BigQueryTable
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a BigQueryField. */
                interface IBigQueryField {

                    /** BigQueryField table */
                    table?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** BigQueryField field */
                    field?: (google.privacy.dlp.v2.IFieldId|null);
                }

                /** Represents a BigQueryField. */
                class BigQueryField implements IBigQueryField {

                    /**
                     * Constructs a new BigQueryField.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IBigQueryField);

                    /** BigQueryField table. */
                    public table?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** BigQueryField field. */
                    public field?: (google.privacy.dlp.v2.IFieldId|null);

                    /**
                     * Creates a new BigQueryField instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns BigQueryField instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IBigQueryField): google.privacy.dlp.v2.BigQueryField;

                    /**
                     * Encodes the specified BigQueryField message. Does not implicitly {@link google.privacy.dlp.v2.BigQueryField.verify|verify} messages.
                     * @param message BigQueryField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IBigQueryField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified BigQueryField message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.BigQueryField.verify|verify} messages.
                     * @param message BigQueryField message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IBigQueryField, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a BigQueryField message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.BigQueryField;

                    /**
                     * Decodes a BigQueryField message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryField
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.BigQueryField;

                    /**
                     * Verifies a BigQueryField message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a BigQueryField message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryField
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BigQueryField;

                    /**
                     * Creates a plain object from a BigQueryField message. Also converts values to other types if specified.
                     * @param message BigQueryField
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.BigQueryField, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this BigQueryField to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for BigQueryField
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an EntityId. */
                interface IEntityId {

                    /** EntityId field */
                    field?: (google.privacy.dlp.v2.IFieldId|null);
                }

                /** Represents an EntityId. */
                class EntityId implements IEntityId {

                    /**
                     * Constructs a new EntityId.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IEntityId);

                    /** EntityId field. */
                    public field?: (google.privacy.dlp.v2.IFieldId|null);

                    /**
                     * Creates a new EntityId instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns EntityId instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IEntityId): google.privacy.dlp.v2.EntityId;

                    /**
                     * Encodes the specified EntityId message. Does not implicitly {@link google.privacy.dlp.v2.EntityId.verify|verify} messages.
                     * @param message EntityId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IEntityId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified EntityId message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.EntityId.verify|verify} messages.
                     * @param message EntityId message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IEntityId, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an EntityId message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns EntityId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.EntityId;

                    /**
                     * Decodes an EntityId message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns EntityId
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.EntityId;

                    /**
                     * Verifies an EntityId message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates an EntityId message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns EntityId
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.EntityId;

                    /**
                     * Creates a plain object from an EntityId message. Also converts values to other types if specified.
                     * @param message EntityId
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.EntityId, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this EntityId to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for EntityId
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TableOptions. */
                interface ITableOptions {

                    /** TableOptions identifyingFields */
                    identifyingFields?: (google.privacy.dlp.v2.IFieldId[]|null);
                }

                /** Represents a TableOptions. */
                class TableOptions implements ITableOptions {

                    /**
                     * Constructs a new TableOptions.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITableOptions);

                    /** TableOptions identifyingFields. */
                    public identifyingFields: google.privacy.dlp.v2.IFieldId[];

                    /**
                     * Creates a new TableOptions instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TableOptions instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITableOptions): google.privacy.dlp.v2.TableOptions;

                    /**
                     * Encodes the specified TableOptions message. Does not implicitly {@link google.privacy.dlp.v2.TableOptions.verify|verify} messages.
                     * @param message TableOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITableOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TableOptions message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TableOptions.verify|verify} messages.
                     * @param message TableOptions message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITableOptions, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TableOptions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TableOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.privacy.dlp.v2.TableOptions;

                    /**
                     * Decodes a TableOptions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TableOptions
                     * @throws {Error} If the payload is not a reader or valid buffer
                     * @throws {$protobuf.util.ProtocolError} If required fields are missing
                     */
                    public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.privacy.dlp.v2.TableOptions;

                    /**
                     * Verifies a TableOptions message.
                     * @param message Plain object to verify
                     * @returns `null` if valid, otherwise the reason why it is not
                     */
                    public static verify(message: { [k: string]: any }): (string|null);

                    /**
                     * Creates a TableOptions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TableOptions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TableOptions;

                    /**
                     * Creates a plain object from a TableOptions message. Also converts values to other types if specified.
                     * @param message TableOptions
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TableOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TableOptions to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TableOptions
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }
            }
        }
    }

    /** Namespace api. */
    namespace api {

        /** Properties of a Http. */
        interface IHttp {

            /** Http rules */
            rules?: (google.api.IHttpRule[]|null);

            /** Http fullyDecodeReservedExpansion */
            fullyDecodeReservedExpansion?: (boolean|null);
        }

        /** Represents a Http. */
        class Http implements IHttp {

            /**
             * Constructs a new Http.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IHttp);

            /** Http rules. */
            public rules: google.api.IHttpRule[];

            /** Http fullyDecodeReservedExpansion. */
            public fullyDecodeReservedExpansion: boolean;

            /**
             * Creates a new Http instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Http instance
             */
            public static create(properties?: google.api.IHttp): google.api.Http;

            /**
             * Encodes the specified Http message. Does not implicitly {@link google.api.Http.verify|verify} messages.
             * @param message Http message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Http message, length delimited. Does not implicitly {@link google.api.Http.verify|verify} messages.
             * @param message Http message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IHttp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Http message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Http
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Http;

            /**
             * Decodes a Http message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Http
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Http;

            /**
             * Verifies a Http message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Http message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Http
             */
            public static fromObject(object: { [k: string]: any }): google.api.Http;

            /**
             * Creates a plain object from a Http message. Also converts values to other types if specified.
             * @param message Http
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.Http, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Http to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Http
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a HttpRule. */
        interface IHttpRule {

            /** HttpRule selector */
            selector?: (string|null);

            /** HttpRule get */
            get?: (string|null);

            /** HttpRule put */
            put?: (string|null);

            /** HttpRule post */
            post?: (string|null);

            /** HttpRule delete */
            "delete"?: (string|null);

            /** HttpRule patch */
            patch?: (string|null);

            /** HttpRule custom */
            custom?: (google.api.ICustomHttpPattern|null);

            /** HttpRule body */
            body?: (string|null);

            /** HttpRule responseBody */
            responseBody?: (string|null);

            /** HttpRule additionalBindings */
            additionalBindings?: (google.api.IHttpRule[]|null);
        }

        /** Represents a HttpRule. */
        class HttpRule implements IHttpRule {

            /**
             * Constructs a new HttpRule.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IHttpRule);

            /** HttpRule selector. */
            public selector: string;

            /** HttpRule get. */
            public get?: (string|null);

            /** HttpRule put. */
            public put?: (string|null);

            /** HttpRule post. */
            public post?: (string|null);

            /** HttpRule delete. */
            public delete?: (string|null);

            /** HttpRule patch. */
            public patch?: (string|null);

            /** HttpRule custom. */
            public custom?: (google.api.ICustomHttpPattern|null);

            /** HttpRule body. */
            public body: string;

            /** HttpRule responseBody. */
            public responseBody: string;

            /** HttpRule additionalBindings. */
            public additionalBindings: google.api.IHttpRule[];

            /** HttpRule pattern. */
            public pattern?: ("get"|"put"|"post"|"delete"|"patch"|"custom");

            /**
             * Creates a new HttpRule instance using the specified properties.
             * @param [properties] Properties to set
             * @returns HttpRule instance
             */
            public static create(properties?: google.api.IHttpRule): google.api.HttpRule;

            /**
             * Encodes the specified HttpRule message. Does not implicitly {@link google.api.HttpRule.verify|verify} messages.
             * @param message HttpRule message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified HttpRule message, length delimited. Does not implicitly {@link google.api.HttpRule.verify|verify} messages.
             * @param message HttpRule message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IHttpRule, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a HttpRule message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns HttpRule
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.HttpRule;

            /**
             * Decodes a HttpRule message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns HttpRule
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.HttpRule;

            /**
             * Verifies a HttpRule message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a HttpRule message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns HttpRule
             */
            public static fromObject(object: { [k: string]: any }): google.api.HttpRule;

            /**
             * Creates a plain object from a HttpRule message. Also converts values to other types if specified.
             * @param message HttpRule
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.HttpRule, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this HttpRule to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for HttpRule
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CustomHttpPattern. */
        interface ICustomHttpPattern {

            /** CustomHttpPattern kind */
            kind?: (string|null);

            /** CustomHttpPattern path */
            path?: (string|null);
        }

        /** Represents a CustomHttpPattern. */
        class CustomHttpPattern implements ICustomHttpPattern {

            /**
             * Constructs a new CustomHttpPattern.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICustomHttpPattern);

            /** CustomHttpPattern kind. */
            public kind: string;

            /** CustomHttpPattern path. */
            public path: string;

            /**
             * Creates a new CustomHttpPattern instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CustomHttpPattern instance
             */
            public static create(properties?: google.api.ICustomHttpPattern): google.api.CustomHttpPattern;

            /**
             * Encodes the specified CustomHttpPattern message. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages.
             * @param message CustomHttpPattern message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CustomHttpPattern message, length delimited. Does not implicitly {@link google.api.CustomHttpPattern.verify|verify} messages.
             * @param message CustomHttpPattern message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICustomHttpPattern, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CustomHttpPattern message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CustomHttpPattern
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CustomHttpPattern;

            /**
             * Decodes a CustomHttpPattern message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CustomHttpPattern
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CustomHttpPattern;

            /**
             * Verifies a CustomHttpPattern message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CustomHttpPattern message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CustomHttpPattern
             */
            public static fromObject(object: { [k: string]: any }): google.api.CustomHttpPattern;

            /**
             * Creates a plain object from a CustomHttpPattern message. Also converts values to other types if specified.
             * @param message CustomHttpPattern
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CustomHttpPattern, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CustomHttpPattern to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CustomHttpPattern
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CommonLanguageSettings. */
        interface ICommonLanguageSettings {

            /** CommonLanguageSettings referenceDocsUri */
            referenceDocsUri?: (string|null);

            /** CommonLanguageSettings destinations */
            destinations?: (google.api.ClientLibraryDestination[]|null);
        }

        /** Represents a CommonLanguageSettings. */
        class CommonLanguageSettings implements ICommonLanguageSettings {

            /**
             * Constructs a new CommonLanguageSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICommonLanguageSettings);

            /** CommonLanguageSettings referenceDocsUri. */
            public referenceDocsUri: string;

            /** CommonLanguageSettings destinations. */
            public destinations: google.api.ClientLibraryDestination[];

            /**
             * Creates a new CommonLanguageSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CommonLanguageSettings instance
             */
            public static create(properties?: google.api.ICommonLanguageSettings): google.api.CommonLanguageSettings;

            /**
             * Encodes the specified CommonLanguageSettings message. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages.
             * @param message CommonLanguageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CommonLanguageSettings message, length delimited. Does not implicitly {@link google.api.CommonLanguageSettings.verify|verify} messages.
             * @param message CommonLanguageSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICommonLanguageSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CommonLanguageSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CommonLanguageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CommonLanguageSettings;

            /**
             * Decodes a CommonLanguageSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CommonLanguageSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CommonLanguageSettings;

            /**
             * Verifies a CommonLanguageSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CommonLanguageSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CommonLanguageSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.CommonLanguageSettings;

            /**
             * Creates a plain object from a CommonLanguageSettings message. Also converts values to other types if specified.
             * @param message CommonLanguageSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CommonLanguageSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CommonLanguageSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CommonLanguageSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ClientLibrarySettings. */
        interface IClientLibrarySettings {

            /** ClientLibrarySettings version */
            version?: (string|null);

            /** ClientLibrarySettings launchStage */
            launchStage?: (google.api.LaunchStage|keyof typeof google.api.LaunchStage|null);

            /** ClientLibrarySettings restNumericEnums */
            restNumericEnums?: (boolean|null);

            /** ClientLibrarySettings javaSettings */
            javaSettings?: (google.api.IJavaSettings|null);

            /** ClientLibrarySettings cppSettings */
            cppSettings?: (google.api.ICppSettings|null);

            /** ClientLibrarySettings phpSettings */
            phpSettings?: (google.api.IPhpSettings|null);

            /** ClientLibrarySettings pythonSettings */
            pythonSettings?: (google.api.IPythonSettings|null);

            /** ClientLibrarySettings nodeSettings */
            nodeSettings?: (google.api.INodeSettings|null);

            /** ClientLibrarySettings dotnetSettings */
            dotnetSettings?: (google.api.IDotnetSettings|null);

            /** ClientLibrarySettings rubySettings */
            rubySettings?: (google.api.IRubySettings|null);

            /** ClientLibrarySettings goSettings */
            goSettings?: (google.api.IGoSettings|null);
        }

        /** Represents a ClientLibrarySettings. */
        class ClientLibrarySettings implements IClientLibrarySettings {

            /**
             * Constructs a new ClientLibrarySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IClientLibrarySettings);

            /** ClientLibrarySettings version. */
            public version: string;

            /** ClientLibrarySettings launchStage. */
            public launchStage: (google.api.LaunchStage|keyof typeof google.api.LaunchStage);

            /** ClientLibrarySettings restNumericEnums. */
            public restNumericEnums: boolean;

            /** ClientLibrarySettings javaSettings. */
            public javaSettings?: (google.api.IJavaSettings|null);

            /** ClientLibrarySettings cppSettings. */
            public cppSettings?: (google.api.ICppSettings|null);

            /** ClientLibrarySettings phpSettings. */
            public phpSettings?: (google.api.IPhpSettings|null);

            /** ClientLibrarySettings pythonSettings. */
            public pythonSettings?: (google.api.IPythonSettings|null);

            /** ClientLibrarySettings nodeSettings. */
            public nodeSettings?: (google.api.INodeSettings|null);

            /** ClientLibrarySettings dotnetSettings. */
            public dotnetSettings?: (google.api.IDotnetSettings|null);

            /** ClientLibrarySettings rubySettings. */
            public rubySettings?: (google.api.IRubySettings|null);

            /** ClientLibrarySettings goSettings. */
            public goSettings?: (google.api.IGoSettings|null);

            /**
             * Creates a new ClientLibrarySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ClientLibrarySettings instance
             */
            public static create(properties?: google.api.IClientLibrarySettings): google.api.ClientLibrarySettings;

            /**
             * Encodes the specified ClientLibrarySettings message. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages.
             * @param message ClientLibrarySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ClientLibrarySettings message, length delimited. Does not implicitly {@link google.api.ClientLibrarySettings.verify|verify} messages.
             * @param message ClientLibrarySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IClientLibrarySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ClientLibrarySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ClientLibrarySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ClientLibrarySettings;

            /**
             * Decodes a ClientLibrarySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ClientLibrarySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ClientLibrarySettings;

            /**
             * Verifies a ClientLibrarySettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ClientLibrarySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ClientLibrarySettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.ClientLibrarySettings;

            /**
             * Creates a plain object from a ClientLibrarySettings message. Also converts values to other types if specified.
             * @param message ClientLibrarySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ClientLibrarySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ClientLibrarySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ClientLibrarySettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Publishing. */
        interface IPublishing {

            /** Publishing methodSettings */
            methodSettings?: (google.api.IMethodSettings[]|null);

            /** Publishing newIssueUri */
            newIssueUri?: (string|null);

            /** Publishing documentationUri */
            documentationUri?: (string|null);

            /** Publishing apiShortName */
            apiShortName?: (string|null);

            /** Publishing githubLabel */
            githubLabel?: (string|null);

            /** Publishing codeownerGithubTeams */
            codeownerGithubTeams?: (string[]|null);

            /** Publishing docTagPrefix */
            docTagPrefix?: (string|null);

            /** Publishing organization */
            organization?: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization|null);

            /** Publishing librarySettings */
            librarySettings?: (google.api.IClientLibrarySettings[]|null);
        }

        /** Represents a Publishing. */
        class Publishing implements IPublishing {

            /**
             * Constructs a new Publishing.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPublishing);

            /** Publishing methodSettings. */
            public methodSettings: google.api.IMethodSettings[];

            /** Publishing newIssueUri. */
            public newIssueUri: string;

            /** Publishing documentationUri. */
            public documentationUri: string;

            /** Publishing apiShortName. */
            public apiShortName: string;

            /** Publishing githubLabel. */
            public githubLabel: string;

            /** Publishing codeownerGithubTeams. */
            public codeownerGithubTeams: string[];

            /** Publishing docTagPrefix. */
            public docTagPrefix: string;

            /** Publishing organization. */
            public organization: (google.api.ClientLibraryOrganization|keyof typeof google.api.ClientLibraryOrganization);

            /** Publishing librarySettings. */
            public librarySettings: google.api.IClientLibrarySettings[];

            /**
             * Creates a new Publishing instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Publishing instance
             */
            public static create(properties?: google.api.IPublishing): google.api.Publishing;

            /**
             * Encodes the specified Publishing message. Does not implicitly {@link google.api.Publishing.verify|verify} messages.
             * @param message Publishing message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Publishing message, length delimited. Does not implicitly {@link google.api.Publishing.verify|verify} messages.
             * @param message Publishing message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPublishing, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Publishing message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Publishing
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.Publishing;

            /**
             * Decodes a Publishing message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Publishing
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.Publishing;

            /**
             * Verifies a Publishing message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Publishing message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Publishing
             */
            public static fromObject(object: { [k: string]: any }): google.api.Publishing;

            /**
             * Creates a plain object from a Publishing message. Also converts values to other types if specified.
             * @param message Publishing
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.Publishing, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Publishing to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Publishing
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a JavaSettings. */
        interface IJavaSettings {

            /** JavaSettings libraryPackage */
            libraryPackage?: (string|null);

            /** JavaSettings serviceClassNames */
            serviceClassNames?: ({ [k: string]: string }|null);

            /** JavaSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a JavaSettings. */
        class JavaSettings implements IJavaSettings {

            /**
             * Constructs a new JavaSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IJavaSettings);

            /** JavaSettings libraryPackage. */
            public libraryPackage: string;

            /** JavaSettings serviceClassNames. */
            public serviceClassNames: { [k: string]: string };

            /** JavaSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new JavaSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns JavaSettings instance
             */
            public static create(properties?: google.api.IJavaSettings): google.api.JavaSettings;

            /**
             * Encodes the specified JavaSettings message. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages.
             * @param message JavaSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified JavaSettings message, length delimited. Does not implicitly {@link google.api.JavaSettings.verify|verify} messages.
             * @param message JavaSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IJavaSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a JavaSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns JavaSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.JavaSettings;

            /**
             * Decodes a JavaSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns JavaSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.JavaSettings;

            /**
             * Verifies a JavaSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a JavaSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns JavaSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.JavaSettings;

            /**
             * Creates a plain object from a JavaSettings message. Also converts values to other types if specified.
             * @param message JavaSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.JavaSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this JavaSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for JavaSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a CppSettings. */
        interface ICppSettings {

            /** CppSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a CppSettings. */
        class CppSettings implements ICppSettings {

            /**
             * Constructs a new CppSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.ICppSettings);

            /** CppSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new CppSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns CppSettings instance
             */
            public static create(properties?: google.api.ICppSettings): google.api.CppSettings;

            /**
             * Encodes the specified CppSettings message. Does not implicitly {@link google.api.CppSettings.verify|verify} messages.
             * @param message CppSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified CppSettings message, length delimited. Does not implicitly {@link google.api.CppSettings.verify|verify} messages.
             * @param message CppSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.ICppSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a CppSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns CppSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.CppSettings;

            /**
             * Decodes a CppSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns CppSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.CppSettings;

            /**
             * Verifies a CppSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a CppSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns CppSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.CppSettings;

            /**
             * Creates a plain object from a CppSettings message. Also converts values to other types if specified.
             * @param message CppSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.CppSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this CppSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for CppSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a PhpSettings. */
        interface IPhpSettings {

            /** PhpSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a PhpSettings. */
        class PhpSettings implements IPhpSettings {

            /**
             * Constructs a new PhpSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPhpSettings);

            /** PhpSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new PhpSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PhpSettings instance
             */
            public static create(properties?: google.api.IPhpSettings): google.api.PhpSettings;

            /**
             * Encodes the specified PhpSettings message. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages.
             * @param message PhpSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PhpSettings message, length delimited. Does not implicitly {@link google.api.PhpSettings.verify|verify} messages.
             * @param message PhpSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPhpSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PhpSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PhpSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PhpSettings;

            /**
             * Decodes a PhpSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PhpSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PhpSettings;

            /**
             * Verifies a PhpSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PhpSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PhpSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.PhpSettings;

            /**
             * Creates a plain object from a PhpSettings message. Also converts values to other types if specified.
             * @param message PhpSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.PhpSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PhpSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for PhpSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a PythonSettings. */
        interface IPythonSettings {

            /** PythonSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a PythonSettings. */
        class PythonSettings implements IPythonSettings {

            /**
             * Constructs a new PythonSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IPythonSettings);

            /** PythonSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new PythonSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns PythonSettings instance
             */
            public static create(properties?: google.api.IPythonSettings): google.api.PythonSettings;

            /**
             * Encodes the specified PythonSettings message. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages.
             * @param message PythonSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified PythonSettings message, length delimited. Does not implicitly {@link google.api.PythonSettings.verify|verify} messages.
             * @param message PythonSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IPythonSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a PythonSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns PythonSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.PythonSettings;

            /**
             * Decodes a PythonSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns PythonSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.PythonSettings;

            /**
             * Verifies a PythonSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a PythonSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns PythonSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.PythonSettings;

            /**
             * Creates a plain object from a PythonSettings message. Also converts values to other types if specified.
             * @param message PythonSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.PythonSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this PythonSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for PythonSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a NodeSettings. */
        interface INodeSettings {

            /** NodeSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a NodeSettings. */
        class NodeSettings implements INodeSettings {

            /**
             * Constructs a new NodeSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.INodeSettings);

            /** NodeSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new NodeSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns NodeSettings instance
             */
            public static create(properties?: google.api.INodeSettings): google.api.NodeSettings;

            /**
             * Encodes the specified NodeSettings message. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages.
             * @param message NodeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified NodeSettings message, length delimited. Does not implicitly {@link google.api.NodeSettings.verify|verify} messages.
             * @param message NodeSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.INodeSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a NodeSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns NodeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.NodeSettings;

            /**
             * Decodes a NodeSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns NodeSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.NodeSettings;

            /**
             * Verifies a NodeSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a NodeSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns NodeSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.NodeSettings;

            /**
             * Creates a plain object from a NodeSettings message. Also converts values to other types if specified.
             * @param message NodeSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.NodeSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this NodeSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for NodeSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DotnetSettings. */
        interface IDotnetSettings {

            /** DotnetSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a DotnetSettings. */
        class DotnetSettings implements IDotnetSettings {

            /**
             * Constructs a new DotnetSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IDotnetSettings);

            /** DotnetSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new DotnetSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DotnetSettings instance
             */
            public static create(properties?: google.api.IDotnetSettings): google.api.DotnetSettings;

            /**
             * Encodes the specified DotnetSettings message. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages.
             * @param message DotnetSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DotnetSettings message, length delimited. Does not implicitly {@link google.api.DotnetSettings.verify|verify} messages.
             * @param message DotnetSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IDotnetSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DotnetSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DotnetSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.DotnetSettings;

            /**
             * Decodes a DotnetSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DotnetSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.DotnetSettings;

            /**
             * Verifies a DotnetSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DotnetSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DotnetSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.DotnetSettings;

            /**
             * Creates a plain object from a DotnetSettings message. Also converts values to other types if specified.
             * @param message DotnetSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.DotnetSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DotnetSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DotnetSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a RubySettings. */
        interface IRubySettings {

            /** RubySettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a RubySettings. */
        class RubySettings implements IRubySettings {

            /**
             * Constructs a new RubySettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IRubySettings);

            /** RubySettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new RubySettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns RubySettings instance
             */
            public static create(properties?: google.api.IRubySettings): google.api.RubySettings;

            /**
             * Encodes the specified RubySettings message. Does not implicitly {@link google.api.RubySettings.verify|verify} messages.
             * @param message RubySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified RubySettings message, length delimited. Does not implicitly {@link google.api.RubySettings.verify|verify} messages.
             * @param message RubySettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IRubySettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a RubySettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns RubySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.RubySettings;

            /**
             * Decodes a RubySettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns RubySettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.RubySettings;

            /**
             * Verifies a RubySettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a RubySettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns RubySettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.RubySettings;

            /**
             * Creates a plain object from a RubySettings message. Also converts values to other types if specified.
             * @param message RubySettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.RubySettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this RubySettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for RubySettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a GoSettings. */
        interface IGoSettings {

            /** GoSettings common */
            common?: (google.api.ICommonLanguageSettings|null);
        }

        /** Represents a GoSettings. */
        class GoSettings implements IGoSettings {

            /**
             * Constructs a new GoSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IGoSettings);

            /** GoSettings common. */
            public common?: (google.api.ICommonLanguageSettings|null);

            /**
             * Creates a new GoSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GoSettings instance
             */
            public static create(properties?: google.api.IGoSettings): google.api.GoSettings;

            /**
             * Encodes the specified GoSettings message. Does not implicitly {@link google.api.GoSettings.verify|verify} messages.
             * @param message GoSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GoSettings message, length delimited. Does not implicitly {@link google.api.GoSettings.verify|verify} messages.
             * @param message GoSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IGoSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GoSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GoSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.GoSettings;

            /**
             * Decodes a GoSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GoSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.GoSettings;

            /**
             * Verifies a GoSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GoSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GoSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.GoSettings;

            /**
             * Creates a plain object from a GoSettings message. Also converts values to other types if specified.
             * @param message GoSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.GoSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GoSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GoSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodSettings. */
        interface IMethodSettings {

            /** MethodSettings selector */
            selector?: (string|null);

            /** MethodSettings longRunning */
            longRunning?: (google.api.MethodSettings.ILongRunning|null);
        }

        /** Represents a MethodSettings. */
        class MethodSettings implements IMethodSettings {

            /**
             * Constructs a new MethodSettings.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IMethodSettings);

            /** MethodSettings selector. */
            public selector: string;

            /** MethodSettings longRunning. */
            public longRunning?: (google.api.MethodSettings.ILongRunning|null);

            /**
             * Creates a new MethodSettings instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodSettings instance
             */
            public static create(properties?: google.api.IMethodSettings): google.api.MethodSettings;

            /**
             * Encodes the specified MethodSettings message. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages.
             * @param message MethodSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodSettings message, length delimited. Does not implicitly {@link google.api.MethodSettings.verify|verify} messages.
             * @param message MethodSettings message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IMethodSettings, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodSettings message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings;

            /**
             * Decodes a MethodSettings message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodSettings
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings;

            /**
             * Verifies a MethodSettings message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodSettings message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodSettings
             */
            public static fromObject(object: { [k: string]: any }): google.api.MethodSettings;

            /**
             * Creates a plain object from a MethodSettings message. Also converts values to other types if specified.
             * @param message MethodSettings
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.MethodSettings, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodSettings to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodSettings
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace MethodSettings {

            /** Properties of a LongRunning. */
            interface ILongRunning {

                /** LongRunning initialPollDelay */
                initialPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning pollDelayMultiplier */
                pollDelayMultiplier?: (number|null);

                /** LongRunning maxPollDelay */
                maxPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning totalPollTimeout */
                totalPollTimeout?: (google.protobuf.IDuration|null);
            }

            /** Represents a LongRunning. */
            class LongRunning implements ILongRunning {

                /**
                 * Constructs a new LongRunning.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.api.MethodSettings.ILongRunning);

                /** LongRunning initialPollDelay. */
                public initialPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning pollDelayMultiplier. */
                public pollDelayMultiplier: number;

                /** LongRunning maxPollDelay. */
                public maxPollDelay?: (google.protobuf.IDuration|null);

                /** LongRunning totalPollTimeout. */
                public totalPollTimeout?: (google.protobuf.IDuration|null);

                /**
                 * Creates a new LongRunning instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns LongRunning instance
                 */
                public static create(properties?: google.api.MethodSettings.ILongRunning): google.api.MethodSettings.LongRunning;

                /**
                 * Encodes the specified LongRunning message. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages.
                 * @param message LongRunning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified LongRunning message, length delimited. Does not implicitly {@link google.api.MethodSettings.LongRunning.verify|verify} messages.
                 * @param message LongRunning message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.api.MethodSettings.ILongRunning, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a LongRunning message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns LongRunning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.MethodSettings.LongRunning;

                /**
                 * Decodes a LongRunning message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns LongRunning
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.MethodSettings.LongRunning;

                /**
                 * Verifies a LongRunning message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a LongRunning message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns LongRunning
                 */
                public static fromObject(object: { [k: string]: any }): google.api.MethodSettings.LongRunning;

                /**
                 * Creates a plain object from a LongRunning message. Also converts values to other types if specified.
                 * @param message LongRunning
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.api.MethodSettings.LongRunning, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this LongRunning to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for LongRunning
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** ClientLibraryOrganization enum. */
        enum ClientLibraryOrganization {
            CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0,
            CLOUD = 1,
            ADS = 2,
            PHOTOS = 3,
            STREET_VIEW = 4
        }

        /** ClientLibraryDestination enum. */
        enum ClientLibraryDestination {
            CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0,
            GITHUB = 10,
            PACKAGE_MANAGER = 20
        }

        /** LaunchStage enum. */
        enum LaunchStage {
            LAUNCH_STAGE_UNSPECIFIED = 0,
            UNIMPLEMENTED = 6,
            PRELAUNCH = 7,
            EARLY_ACCESS = 1,
            ALPHA = 2,
            BETA = 3,
            GA = 4,
            DEPRECATED = 5
        }

        /** FieldBehavior enum. */
        enum FieldBehavior {
            FIELD_BEHAVIOR_UNSPECIFIED = 0,
            OPTIONAL = 1,
            REQUIRED = 2,
            OUTPUT_ONLY = 3,
            INPUT_ONLY = 4,
            IMMUTABLE = 5,
            UNORDERED_LIST = 6,
            NON_EMPTY_DEFAULT = 7
        }

        /** Properties of a ResourceDescriptor. */
        interface IResourceDescriptor {

            /** ResourceDescriptor type */
            type?: (string|null);

            /** ResourceDescriptor pattern */
            pattern?: (string[]|null);

            /** ResourceDescriptor nameField */
            nameField?: (string|null);

            /** ResourceDescriptor history */
            history?: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History|null);

            /** ResourceDescriptor plural */
            plural?: (string|null);

            /** ResourceDescriptor singular */
            singular?: (string|null);

            /** ResourceDescriptor style */
            style?: (google.api.ResourceDescriptor.Style[]|null);
        }

        /** Represents a ResourceDescriptor. */
        class ResourceDescriptor implements IResourceDescriptor {

            /**
             * Constructs a new ResourceDescriptor.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IResourceDescriptor);

            /** ResourceDescriptor type. */
            public type: string;

            /** ResourceDescriptor pattern. */
            public pattern: string[];

            /** ResourceDescriptor nameField. */
            public nameField: string;

            /** ResourceDescriptor history. */
            public history: (google.api.ResourceDescriptor.History|keyof typeof google.api.ResourceDescriptor.History);

            /** ResourceDescriptor plural. */
            public plural: string;

            /** ResourceDescriptor singular. */
            public singular: string;

            /** ResourceDescriptor style. */
            public style: google.api.ResourceDescriptor.Style[];

            /**
             * Creates a new ResourceDescriptor instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ResourceDescriptor instance
             */
            public static create(properties?: google.api.IResourceDescriptor): google.api.ResourceDescriptor;

            /**
             * Encodes the specified ResourceDescriptor message. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages.
             * @param message ResourceDescriptor message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ResourceDescriptor message, length delimited. Does not implicitly {@link google.api.ResourceDescriptor.verify|verify} messages.
             * @param message ResourceDescriptor message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IResourceDescriptor, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ResourceDescriptor message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ResourceDescriptor
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceDescriptor;

            /**
             * Decodes a ResourceDescriptor message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ResourceDescriptor
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceDescriptor;

            /**
             * Verifies a ResourceDescriptor message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ResourceDescriptor message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ResourceDescriptor
             */
            public static fromObject(object: { [k: string]: any }): google.api.ResourceDescriptor;

            /**
             * Creates a plain object from a ResourceDescriptor message. Also converts values to other types if specified.
             * @param message ResourceDescriptor
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ResourceDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ResourceDescriptor to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ResourceDescriptor
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace ResourceDescriptor {

            /** History enum. */
            enum History {
                HISTORY_UNSPECIFIED = 0,
                ORIGINALLY_SINGLE_PATTERN = 1,
                FUTURE_MULTI_PATTERN = 2
            }

            /** Style enum. */
            enum Style {
                STYLE_UNSPECIFIED = 0,
                DECLARATIVE_FRIENDLY = 1
            }
        }

        /** Properties of a ResourceReference. */
        interface IResourceReference {

            /** ResourceReference type */
            type?: (string|null);

            /** ResourceReference childType */
            childType?: (string|null);
        }

        /** Represents a ResourceReference. */
        class ResourceReference implements IResourceReference {

            /**
             * Constructs a new ResourceReference.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.api.IResourceReference);

            /** ResourceReference type. */
            public type: string;

            /** ResourceReference childType. */
            public childType: string;

            /**
             * Creates a new ResourceReference instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ResourceReference instance
             */
            public static create(properties?: google.api.IResourceReference): google.api.ResourceReference;

            /**
             * Encodes the specified ResourceReference message. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages.
             * @param message ResourceReference message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ResourceReference message, length delimited. Does not implicitly {@link google.api.ResourceReference.verify|verify} messages.
             * @param message ResourceReference message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.api.IResourceReference, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ResourceReference message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ResourceReference
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.api.ResourceReference;

            /**
             * Decodes a ResourceReference message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ResourceReference
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.api.ResourceReference;

            /**
             * Verifies a ResourceReference message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ResourceReference message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ResourceReference
             */
            public static fromObject(object: { [k: string]: any }): google.api.ResourceReference;

            /**
             * Creates a plain object from a ResourceReference message. Also converts values to other types if specified.
             * @param message ResourceReference
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.api.ResourceReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ResourceReference to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ResourceReference
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace protobuf. */
    namespace protobuf {

        /** Properties of a FileDescriptorSet. */
        interface IFileDescriptorSet {

            /** FileDescriptorSet file */
            file?: (google.protobuf.IFileDescriptorProto[]|null);
        }

        /** Represents a FileDescriptorSet. */
        class FileDescriptorSet implements IFileDescriptorSet {

            /**
             * Constructs a new FileDescriptorSet.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorSet);

            /** FileDescriptorSet file. */
            public file: google.protobuf.IFileDescriptorProto[];

            /**
             * Creates a new FileDescriptorSet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorSet instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorSet): google.protobuf.FileDescriptorSet;

            /**
             * Encodes the specified FileDescriptorSet message. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.
             * @param message FileDescriptorSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileDescriptorSet message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorSet.verify|verify} messages.
             * @param message FileDescriptorSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileDescriptorSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorSet;

            /**
             * Decodes a FileDescriptorSet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorSet
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorSet;

            /**
             * Verifies a FileDescriptorSet message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileDescriptorSet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorSet
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorSet;

            /**
             * Creates a plain object from a FileDescriptorSet message. Also converts values to other types if specified.
             * @param message FileDescriptorSet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorSet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileDescriptorSet
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FileDescriptorProto. */
        interface IFileDescriptorProto {

            /** FileDescriptorProto name */
            name?: (string|null);

            /** FileDescriptorProto package */
            "package"?: (string|null);

            /** FileDescriptorProto dependency */
            dependency?: (string[]|null);

            /** FileDescriptorProto publicDependency */
            publicDependency?: (number[]|null);

            /** FileDescriptorProto weakDependency */
            weakDependency?: (number[]|null);

            /** FileDescriptorProto messageType */
            messageType?: (google.protobuf.IDescriptorProto[]|null);

            /** FileDescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** FileDescriptorProto service */
            service?: (google.protobuf.IServiceDescriptorProto[]|null);

            /** FileDescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** FileDescriptorProto options */
            options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo */
            sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax */
            syntax?: (string|null);

            /** FileDescriptorProto edition */
            edition?: (string|null);
        }

        /** Represents a FileDescriptorProto. */
        class FileDescriptorProto implements IFileDescriptorProto {

            /**
             * Constructs a new FileDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileDescriptorProto);

            /** FileDescriptorProto name. */
            public name: string;

            /** FileDescriptorProto package. */
            public package: string;

            /** FileDescriptorProto dependency. */
            public dependency: string[];

            /** FileDescriptorProto publicDependency. */
            public publicDependency: number[];

            /** FileDescriptorProto weakDependency. */
            public weakDependency: number[];

            /** FileDescriptorProto messageType. */
            public messageType: google.protobuf.IDescriptorProto[];

            /** FileDescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** FileDescriptorProto service. */
            public service: google.protobuf.IServiceDescriptorProto[];

            /** FileDescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** FileDescriptorProto options. */
            public options?: (google.protobuf.IFileOptions|null);

            /** FileDescriptorProto sourceCodeInfo. */
            public sourceCodeInfo?: (google.protobuf.ISourceCodeInfo|null);

            /** FileDescriptorProto syntax. */
            public syntax: string;

            /** FileDescriptorProto edition. */
            public edition: string;

            /**
             * Creates a new FileDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFileDescriptorProto): google.protobuf.FileDescriptorProto;

            /**
             * Encodes the specified FileDescriptorProto message. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.
             * @param message FileDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FileDescriptorProto.verify|verify} messages.
             * @param message FileDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileDescriptorProto;

            /**
             * Decodes a FileDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileDescriptorProto;

            /**
             * Verifies a FileDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileDescriptorProto;

            /**
             * Creates a plain object from a FileDescriptorProto message. Also converts values to other types if specified.
             * @param message FileDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a DescriptorProto. */
        interface IDescriptorProto {

            /** DescriptorProto name */
            name?: (string|null);

            /** DescriptorProto field */
            field?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto extension */
            extension?: (google.protobuf.IFieldDescriptorProto[]|null);

            /** DescriptorProto nestedType */
            nestedType?: (google.protobuf.IDescriptorProto[]|null);

            /** DescriptorProto enumType */
            enumType?: (google.protobuf.IEnumDescriptorProto[]|null);

            /** DescriptorProto extensionRange */
            extensionRange?: (google.protobuf.DescriptorProto.IExtensionRange[]|null);

            /** DescriptorProto oneofDecl */
            oneofDecl?: (google.protobuf.IOneofDescriptorProto[]|null);

            /** DescriptorProto options */
            options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange */
            reservedRange?: (google.protobuf.DescriptorProto.IReservedRange[]|null);

            /** DescriptorProto reservedName */
            reservedName?: (string[]|null);
        }

        /** Represents a DescriptorProto. */
        class DescriptorProto implements IDescriptorProto {

            /**
             * Constructs a new DescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDescriptorProto);

            /** DescriptorProto name. */
            public name: string;

            /** DescriptorProto field. */
            public field: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto extension. */
            public extension: google.protobuf.IFieldDescriptorProto[];

            /** DescriptorProto nestedType. */
            public nestedType: google.protobuf.IDescriptorProto[];

            /** DescriptorProto enumType. */
            public enumType: google.protobuf.IEnumDescriptorProto[];

            /** DescriptorProto extensionRange. */
            public extensionRange: google.protobuf.DescriptorProto.IExtensionRange[];

            /** DescriptorProto oneofDecl. */
            public oneofDecl: google.protobuf.IOneofDescriptorProto[];

            /** DescriptorProto options. */
            public options?: (google.protobuf.IMessageOptions|null);

            /** DescriptorProto reservedRange. */
            public reservedRange: google.protobuf.DescriptorProto.IReservedRange[];

            /** DescriptorProto reservedName. */
            public reservedName: string[];

            /**
             * Creates a new DescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns DescriptorProto instance
             */
            public static create(properties?: google.protobuf.IDescriptorProto): google.protobuf.DescriptorProto;

            /**
             * Encodes the specified DescriptorProto message. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.
             * @param message DescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified DescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.verify|verify} messages.
             * @param message DescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns DescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto;

            /**
             * Decodes a DescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns DescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto;

            /**
             * Verifies a DescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a DescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns DescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto;

            /**
             * Creates a plain object from a DescriptorProto message. Also converts values to other types if specified.
             * @param message DescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.DescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this DescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for DescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace DescriptorProto {

            /** Properties of an ExtensionRange. */
            interface IExtensionRange {

                /** ExtensionRange start */
                start?: (number|null);

                /** ExtensionRange end */
                end?: (number|null);

                /** ExtensionRange options */
                options?: (google.protobuf.IExtensionRangeOptions|null);
            }

            /** Represents an ExtensionRange. */
            class ExtensionRange implements IExtensionRange {

                /**
                 * Constructs a new ExtensionRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IExtensionRange);

                /** ExtensionRange start. */
                public start: number;

                /** ExtensionRange end. */
                public end: number;

                /** ExtensionRange options. */
                public options?: (google.protobuf.IExtensionRangeOptions|null);

                /**
                 * Creates a new ExtensionRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ExtensionRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IExtensionRange): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Encodes the specified ExtensionRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.
                 * @param message ExtensionRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ExtensionRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ExtensionRange.verify|verify} messages.
                 * @param message ExtensionRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.DescriptorProto.IExtensionRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ExtensionRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Decodes an ExtensionRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ExtensionRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Verifies an ExtensionRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an ExtensionRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ExtensionRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ExtensionRange;

                /**
                 * Creates a plain object from an ExtensionRange message. Also converts values to other types if specified.
                 * @param message ExtensionRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ExtensionRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ExtensionRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ExtensionRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** Properties of a ReservedRange. */
            interface IReservedRange {

                /** ReservedRange start */
                start?: (number|null);

                /** ReservedRange end */
                end?: (number|null);
            }

            /** Represents a ReservedRange. */
            class ReservedRange implements IReservedRange {

                /**
                 * Constructs a new ReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.DescriptorProto.IReservedRange);

                /** ReservedRange start. */
                public start: number;

                /** ReservedRange end. */
                public end: number;

                /**
                 * Creates a new ReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns ReservedRange instance
                 */
                public static create(properties?: google.protobuf.DescriptorProto.IReservedRange): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Encodes the specified ReservedRange message. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.
                 * @param message ReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified ReservedRange message, length delimited. Does not implicitly {@link google.protobuf.DescriptorProto.ReservedRange.verify|verify} messages.
                 * @param message ReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.DescriptorProto.IReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns ReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Decodes a ReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns ReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Verifies a ReservedRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a ReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns ReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.DescriptorProto.ReservedRange;

                /**
                 * Creates a plain object from a ReservedRange message. Also converts values to other types if specified.
                 * @param message ReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.DescriptorProto.ReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this ReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for ReservedRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an ExtensionRangeOptions. */
        interface IExtensionRangeOptions {

            /** ExtensionRangeOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an ExtensionRangeOptions. */
        class ExtensionRangeOptions implements IExtensionRangeOptions {

            /**
             * Constructs a new ExtensionRangeOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IExtensionRangeOptions);

            /** ExtensionRangeOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new ExtensionRangeOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ExtensionRangeOptions instance
             */
            public static create(properties?: google.protobuf.IExtensionRangeOptions): google.protobuf.ExtensionRangeOptions;

            /**
             * Encodes the specified ExtensionRangeOptions message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages.
             * @param message ExtensionRangeOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ExtensionRangeOptions message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.verify|verify} messages.
             * @param message ExtensionRangeOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IExtensionRangeOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ExtensionRangeOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ExtensionRangeOptions;

            /**
             * Decodes an ExtensionRangeOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ExtensionRangeOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ExtensionRangeOptions;

            /**
             * Verifies an ExtensionRangeOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an ExtensionRangeOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ExtensionRangeOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions;

            /**
             * Creates a plain object from an ExtensionRangeOptions message. Also converts values to other types if specified.
             * @param message ExtensionRangeOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ExtensionRangeOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ExtensionRangeOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ExtensionRangeOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FieldDescriptorProto. */
        interface IFieldDescriptorProto {

            /** FieldDescriptorProto name */
            name?: (string|null);

            /** FieldDescriptorProto number */
            number?: (number|null);

            /** FieldDescriptorProto label */
            label?: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label|null);

            /** FieldDescriptorProto type */
            type?: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type|null);

            /** FieldDescriptorProto typeName */
            typeName?: (string|null);

            /** FieldDescriptorProto extendee */
            extendee?: (string|null);

            /** FieldDescriptorProto defaultValue */
            defaultValue?: (string|null);

            /** FieldDescriptorProto oneofIndex */
            oneofIndex?: (number|null);

            /** FieldDescriptorProto jsonName */
            jsonName?: (string|null);

            /** FieldDescriptorProto options */
            options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional */
            proto3Optional?: (boolean|null);
        }

        /** Represents a FieldDescriptorProto. */
        class FieldDescriptorProto implements IFieldDescriptorProto {

            /**
             * Constructs a new FieldDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldDescriptorProto);

            /** FieldDescriptorProto name. */
            public name: string;

            /** FieldDescriptorProto number. */
            public number: number;

            /** FieldDescriptorProto label. */
            public label: (google.protobuf.FieldDescriptorProto.Label|keyof typeof google.protobuf.FieldDescriptorProto.Label);

            /** FieldDescriptorProto type. */
            public type: (google.protobuf.FieldDescriptorProto.Type|keyof typeof google.protobuf.FieldDescriptorProto.Type);

            /** FieldDescriptorProto typeName. */
            public typeName: string;

            /** FieldDescriptorProto extendee. */
            public extendee: string;

            /** FieldDescriptorProto defaultValue. */
            public defaultValue: string;

            /** FieldDescriptorProto oneofIndex. */
            public oneofIndex: number;

            /** FieldDescriptorProto jsonName. */
            public jsonName: string;

            /** FieldDescriptorProto options. */
            public options?: (google.protobuf.IFieldOptions|null);

            /** FieldDescriptorProto proto3Optional. */
            public proto3Optional: boolean;

            /**
             * Creates a new FieldDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IFieldDescriptorProto): google.protobuf.FieldDescriptorProto;

            /**
             * Encodes the specified FieldDescriptorProto message. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.
             * @param message FieldDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.FieldDescriptorProto.verify|verify} messages.
             * @param message FieldDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldDescriptorProto;

            /**
             * Decodes a FieldDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldDescriptorProto;

            /**
             * Verifies a FieldDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldDescriptorProto;

            /**
             * Creates a plain object from a FieldDescriptorProto message. Also converts values to other types if specified.
             * @param message FieldDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FieldDescriptorProto {

            /** Type enum. */
            enum Type {
                TYPE_DOUBLE = 1,
                TYPE_FLOAT = 2,
                TYPE_INT64 = 3,
                TYPE_UINT64 = 4,
                TYPE_INT32 = 5,
                TYPE_FIXED64 = 6,
                TYPE_FIXED32 = 7,
                TYPE_BOOL = 8,
                TYPE_STRING = 9,
                TYPE_GROUP = 10,
                TYPE_MESSAGE = 11,
                TYPE_BYTES = 12,
                TYPE_UINT32 = 13,
                TYPE_ENUM = 14,
                TYPE_SFIXED32 = 15,
                TYPE_SFIXED64 = 16,
                TYPE_SINT32 = 17,
                TYPE_SINT64 = 18
            }

            /** Label enum. */
            enum Label {
                LABEL_OPTIONAL = 1,
                LABEL_REQUIRED = 2,
                LABEL_REPEATED = 3
            }
        }

        /** Properties of an OneofDescriptorProto. */
        interface IOneofDescriptorProto {

            /** OneofDescriptorProto name */
            name?: (string|null);

            /** OneofDescriptorProto options */
            options?: (google.protobuf.IOneofOptions|null);
        }

        /** Represents an OneofDescriptorProto. */
        class OneofDescriptorProto implements IOneofDescriptorProto {

            /**
             * Constructs a new OneofDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofDescriptorProto);

            /** OneofDescriptorProto name. */
            public name: string;

            /** OneofDescriptorProto options. */
            public options?: (google.protobuf.IOneofOptions|null);

            /**
             * Creates a new OneofDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IOneofDescriptorProto): google.protobuf.OneofDescriptorProto;

            /**
             * Encodes the specified OneofDescriptorProto message. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.
             * @param message OneofDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OneofDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.OneofDescriptorProto.verify|verify} messages.
             * @param message OneofDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IOneofDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofDescriptorProto;

            /**
             * Decodes an OneofDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofDescriptorProto;

            /**
             * Verifies an OneofDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OneofDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofDescriptorProto;

            /**
             * Creates a plain object from an OneofDescriptorProto message. Also converts values to other types if specified.
             * @param message OneofDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OneofDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumDescriptorProto. */
        interface IEnumDescriptorProto {

            /** EnumDescriptorProto name */
            name?: (string|null);

            /** EnumDescriptorProto value */
            value?: (google.protobuf.IEnumValueDescriptorProto[]|null);

            /** EnumDescriptorProto options */
            options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange */
            reservedRange?: (google.protobuf.EnumDescriptorProto.IEnumReservedRange[]|null);

            /** EnumDescriptorProto reservedName */
            reservedName?: (string[]|null);
        }

        /** Represents an EnumDescriptorProto. */
        class EnumDescriptorProto implements IEnumDescriptorProto {

            /**
             * Constructs a new EnumDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumDescriptorProto);

            /** EnumDescriptorProto name. */
            public name: string;

            /** EnumDescriptorProto value. */
            public value: google.protobuf.IEnumValueDescriptorProto[];

            /** EnumDescriptorProto options. */
            public options?: (google.protobuf.IEnumOptions|null);

            /** EnumDescriptorProto reservedRange. */
            public reservedRange: google.protobuf.EnumDescriptorProto.IEnumReservedRange[];

            /** EnumDescriptorProto reservedName. */
            public reservedName: string[];

            /**
             * Creates a new EnumDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumDescriptorProto): google.protobuf.EnumDescriptorProto;

            /**
             * Encodes the specified EnumDescriptorProto message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.
             * @param message EnumDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.verify|verify} messages.
             * @param message EnumDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto;

            /**
             * Decodes an EnumDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto;

            /**
             * Verifies an EnumDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto;

            /**
             * Creates a plain object from an EnumDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace EnumDescriptorProto {

            /** Properties of an EnumReservedRange. */
            interface IEnumReservedRange {

                /** EnumReservedRange start */
                start?: (number|null);

                /** EnumReservedRange end */
                end?: (number|null);
            }

            /** Represents an EnumReservedRange. */
            class EnumReservedRange implements IEnumReservedRange {

                /**
                 * Constructs a new EnumReservedRange.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange);

                /** EnumReservedRange start. */
                public start: number;

                /** EnumReservedRange end. */
                public end: number;

                /**
                 * Creates a new EnumReservedRange instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EnumReservedRange instance
                 */
                public static create(properties?: google.protobuf.EnumDescriptorProto.IEnumReservedRange): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Encodes the specified EnumReservedRange message. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages.
                 * @param message EnumReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EnumReservedRange message, length delimited. Does not implicitly {@link google.protobuf.EnumDescriptorProto.EnumReservedRange.verify|verify} messages.
                 * @param message EnumReservedRange message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.EnumDescriptorProto.IEnumReservedRange, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EnumReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Decodes an EnumReservedRange message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EnumReservedRange
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Verifies an EnumReservedRange message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an EnumReservedRange message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EnumReservedRange
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.EnumDescriptorProto.EnumReservedRange;

                /**
                 * Creates a plain object from an EnumReservedRange message. Also converts values to other types if specified.
                 * @param message EnumReservedRange
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.EnumDescriptorProto.EnumReservedRange, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EnumReservedRange to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EnumReservedRange
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an EnumValueDescriptorProto. */
        interface IEnumValueDescriptorProto {

            /** EnumValueDescriptorProto name */
            name?: (string|null);

            /** EnumValueDescriptorProto number */
            number?: (number|null);

            /** EnumValueDescriptorProto options */
            options?: (google.protobuf.IEnumValueOptions|null);
        }

        /** Represents an EnumValueDescriptorProto. */
        class EnumValueDescriptorProto implements IEnumValueDescriptorProto {

            /**
             * Constructs a new EnumValueDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueDescriptorProto);

            /** EnumValueDescriptorProto name. */
            public name: string;

            /** EnumValueDescriptorProto number. */
            public number: number;

            /** EnumValueDescriptorProto options. */
            public options?: (google.protobuf.IEnumValueOptions|null);

            /**
             * Creates a new EnumValueDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IEnumValueDescriptorProto): google.protobuf.EnumValueDescriptorProto;

            /**
             * Encodes the specified EnumValueDescriptorProto message. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.
             * @param message EnumValueDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumValueDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.EnumValueDescriptorProto.verify|verify} messages.
             * @param message EnumValueDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumValueDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueDescriptorProto;

            /**
             * Decodes an EnumValueDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueDescriptorProto;

            /**
             * Verifies an EnumValueDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumValueDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueDescriptorProto;

            /**
             * Creates a plain object from an EnumValueDescriptorProto message. Also converts values to other types if specified.
             * @param message EnumValueDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumValueDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ServiceDescriptorProto. */
        interface IServiceDescriptorProto {

            /** ServiceDescriptorProto name */
            name?: (string|null);

            /** ServiceDescriptorProto method */
            method?: (google.protobuf.IMethodDescriptorProto[]|null);

            /** ServiceDescriptorProto options */
            options?: (google.protobuf.IServiceOptions|null);
        }

        /** Represents a ServiceDescriptorProto. */
        class ServiceDescriptorProto implements IServiceDescriptorProto {

            /**
             * Constructs a new ServiceDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceDescriptorProto);

            /** ServiceDescriptorProto name. */
            public name: string;

            /** ServiceDescriptorProto method. */
            public method: google.protobuf.IMethodDescriptorProto[];

            /** ServiceDescriptorProto options. */
            public options?: (google.protobuf.IServiceOptions|null);

            /**
             * Creates a new ServiceDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IServiceDescriptorProto): google.protobuf.ServiceDescriptorProto;

            /**
             * Encodes the specified ServiceDescriptorProto message. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.
             * @param message ServiceDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ServiceDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.ServiceDescriptorProto.verify|verify} messages.
             * @param message ServiceDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IServiceDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceDescriptorProto;

            /**
             * Decodes a ServiceDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceDescriptorProto;

            /**
             * Verifies a ServiceDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ServiceDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceDescriptorProto;

            /**
             * Creates a plain object from a ServiceDescriptorProto message. Also converts values to other types if specified.
             * @param message ServiceDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ServiceDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodDescriptorProto. */
        interface IMethodDescriptorProto {

            /** MethodDescriptorProto name */
            name?: (string|null);

            /** MethodDescriptorProto inputType */
            inputType?: (string|null);

            /** MethodDescriptorProto outputType */
            outputType?: (string|null);

            /** MethodDescriptorProto options */
            options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming */
            clientStreaming?: (boolean|null);

            /** MethodDescriptorProto serverStreaming */
            serverStreaming?: (boolean|null);
        }

        /** Represents a MethodDescriptorProto. */
        class MethodDescriptorProto implements IMethodDescriptorProto {

            /**
             * Constructs a new MethodDescriptorProto.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodDescriptorProto);

            /** MethodDescriptorProto name. */
            public name: string;

            /** MethodDescriptorProto inputType. */
            public inputType: string;

            /** MethodDescriptorProto outputType. */
            public outputType: string;

            /** MethodDescriptorProto options. */
            public options?: (google.protobuf.IMethodOptions|null);

            /** MethodDescriptorProto clientStreaming. */
            public clientStreaming: boolean;

            /** MethodDescriptorProto serverStreaming. */
            public serverStreaming: boolean;

            /**
             * Creates a new MethodDescriptorProto instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodDescriptorProto instance
             */
            public static create(properties?: google.protobuf.IMethodDescriptorProto): google.protobuf.MethodDescriptorProto;

            /**
             * Encodes the specified MethodDescriptorProto message. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.
             * @param message MethodDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodDescriptorProto message, length delimited. Does not implicitly {@link google.protobuf.MethodDescriptorProto.verify|verify} messages.
             * @param message MethodDescriptorProto message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMethodDescriptorProto, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodDescriptorProto;

            /**
             * Decodes a MethodDescriptorProto message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodDescriptorProto
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodDescriptorProto;

            /**
             * Verifies a MethodDescriptorProto message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodDescriptorProto message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodDescriptorProto
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodDescriptorProto;

            /**
             * Creates a plain object from a MethodDescriptorProto message. Also converts values to other types if specified.
             * @param message MethodDescriptorProto
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodDescriptorProto, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodDescriptorProto to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodDescriptorProto
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FileOptions. */
        interface IFileOptions {

            /** FileOptions javaPackage */
            javaPackage?: (string|null);

            /** FileOptions javaOuterClassname */
            javaOuterClassname?: (string|null);

            /** FileOptions javaMultipleFiles */
            javaMultipleFiles?: (boolean|null);

            /** FileOptions javaGenerateEqualsAndHash */
            javaGenerateEqualsAndHash?: (boolean|null);

            /** FileOptions javaStringCheckUtf8 */
            javaStringCheckUtf8?: (boolean|null);

            /** FileOptions optimizeFor */
            optimizeFor?: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode|null);

            /** FileOptions goPackage */
            goPackage?: (string|null);

            /** FileOptions ccGenericServices */
            ccGenericServices?: (boolean|null);

            /** FileOptions javaGenericServices */
            javaGenericServices?: (boolean|null);

            /** FileOptions pyGenericServices */
            pyGenericServices?: (boolean|null);

            /** FileOptions phpGenericServices */
            phpGenericServices?: (boolean|null);

            /** FileOptions deprecated */
            deprecated?: (boolean|null);

            /** FileOptions ccEnableArenas */
            ccEnableArenas?: (boolean|null);

            /** FileOptions objcClassPrefix */
            objcClassPrefix?: (string|null);

            /** FileOptions csharpNamespace */
            csharpNamespace?: (string|null);

            /** FileOptions swiftPrefix */
            swiftPrefix?: (string|null);

            /** FileOptions phpClassPrefix */
            phpClassPrefix?: (string|null);

            /** FileOptions phpNamespace */
            phpNamespace?: (string|null);

            /** FileOptions phpMetadataNamespace */
            phpMetadataNamespace?: (string|null);

            /** FileOptions rubyPackage */
            rubyPackage?: (string|null);

            /** FileOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FileOptions .google.api.resourceDefinition */
            ".google.api.resourceDefinition"?: (google.api.IResourceDescriptor[]|null);
        }

        /** Represents a FileOptions. */
        class FileOptions implements IFileOptions {

            /**
             * Constructs a new FileOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFileOptions);

            /** FileOptions javaPackage. */
            public javaPackage: string;

            /** FileOptions javaOuterClassname. */
            public javaOuterClassname: string;

            /** FileOptions javaMultipleFiles. */
            public javaMultipleFiles: boolean;

            /** FileOptions javaGenerateEqualsAndHash. */
            public javaGenerateEqualsAndHash: boolean;

            /** FileOptions javaStringCheckUtf8. */
            public javaStringCheckUtf8: boolean;

            /** FileOptions optimizeFor. */
            public optimizeFor: (google.protobuf.FileOptions.OptimizeMode|keyof typeof google.protobuf.FileOptions.OptimizeMode);

            /** FileOptions goPackage. */
            public goPackage: string;

            /** FileOptions ccGenericServices. */
            public ccGenericServices: boolean;

            /** FileOptions javaGenericServices. */
            public javaGenericServices: boolean;

            /** FileOptions pyGenericServices. */
            public pyGenericServices: boolean;

            /** FileOptions phpGenericServices. */
            public phpGenericServices: boolean;

            /** FileOptions deprecated. */
            public deprecated: boolean;

            /** FileOptions ccEnableArenas. */
            public ccEnableArenas: boolean;

            /** FileOptions objcClassPrefix. */
            public objcClassPrefix: string;

            /** FileOptions csharpNamespace. */
            public csharpNamespace: string;

            /** FileOptions swiftPrefix. */
            public swiftPrefix: string;

            /** FileOptions phpClassPrefix. */
            public phpClassPrefix: string;

            /** FileOptions phpNamespace. */
            public phpNamespace: string;

            /** FileOptions phpMetadataNamespace. */
            public phpMetadataNamespace: string;

            /** FileOptions rubyPackage. */
            public rubyPackage: string;

            /** FileOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FileOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FileOptions instance
             */
            public static create(properties?: google.protobuf.IFileOptions): google.protobuf.FileOptions;

            /**
             * Encodes the specified FileOptions message. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.
             * @param message FileOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FileOptions message, length delimited. Does not implicitly {@link google.protobuf.FileOptions.verify|verify} messages.
             * @param message FileOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFileOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FileOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FileOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FileOptions;

            /**
             * Decodes a FileOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FileOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FileOptions;

            /**
             * Verifies a FileOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FileOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FileOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FileOptions;

            /**
             * Creates a plain object from a FileOptions message. Also converts values to other types if specified.
             * @param message FileOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FileOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FileOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FileOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FileOptions {

            /** OptimizeMode enum. */
            enum OptimizeMode {
                SPEED = 1,
                CODE_SIZE = 2,
                LITE_RUNTIME = 3
            }
        }

        /** Properties of a MessageOptions. */
        interface IMessageOptions {

            /** MessageOptions messageSetWireFormat */
            messageSetWireFormat?: (boolean|null);

            /** MessageOptions noStandardDescriptorAccessor */
            noStandardDescriptorAccessor?: (boolean|null);

            /** MessageOptions deprecated */
            deprecated?: (boolean|null);

            /** MessageOptions mapEntry */
            mapEntry?: (boolean|null);

            /** MessageOptions deprecatedLegacyJsonFieldConflicts */
            deprecatedLegacyJsonFieldConflicts?: (boolean|null);

            /** MessageOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MessageOptions .google.api.resource */
            ".google.api.resource"?: (google.api.IResourceDescriptor|null);
        }

        /** Represents a MessageOptions. */
        class MessageOptions implements IMessageOptions {

            /**
             * Constructs a new MessageOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMessageOptions);

            /** MessageOptions messageSetWireFormat. */
            public messageSetWireFormat: boolean;

            /** MessageOptions noStandardDescriptorAccessor. */
            public noStandardDescriptorAccessor: boolean;

            /** MessageOptions deprecated. */
            public deprecated: boolean;

            /** MessageOptions mapEntry. */
            public mapEntry: boolean;

            /** MessageOptions deprecatedLegacyJsonFieldConflicts. */
            public deprecatedLegacyJsonFieldConflicts: boolean;

            /** MessageOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MessageOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MessageOptions instance
             */
            public static create(properties?: google.protobuf.IMessageOptions): google.protobuf.MessageOptions;

            /**
             * Encodes the specified MessageOptions message. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.
             * @param message MessageOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MessageOptions message, length delimited. Does not implicitly {@link google.protobuf.MessageOptions.verify|verify} messages.
             * @param message MessageOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMessageOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MessageOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MessageOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MessageOptions;

            /**
             * Decodes a MessageOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MessageOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MessageOptions;

            /**
             * Verifies a MessageOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MessageOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MessageOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MessageOptions;

            /**
             * Creates a plain object from a MessageOptions message. Also converts values to other types if specified.
             * @param message MessageOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MessageOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MessageOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MessageOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FieldOptions. */
        interface IFieldOptions {

            /** FieldOptions ctype */
            ctype?: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType|null);

            /** FieldOptions packed */
            packed?: (boolean|null);

            /** FieldOptions jstype */
            jstype?: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType|null);

            /** FieldOptions lazy */
            lazy?: (boolean|null);

            /** FieldOptions unverifiedLazy */
            unverifiedLazy?: (boolean|null);

            /** FieldOptions deprecated */
            deprecated?: (boolean|null);

            /** FieldOptions weak */
            weak?: (boolean|null);

            /** FieldOptions debugRedact */
            debugRedact?: (boolean|null);

            /** FieldOptions retention */
            retention?: (google.protobuf.FieldOptions.OptionRetention|keyof typeof google.protobuf.FieldOptions.OptionRetention|null);

            /** FieldOptions target */
            target?: (google.protobuf.FieldOptions.OptionTargetType|keyof typeof google.protobuf.FieldOptions.OptionTargetType|null);

            /** FieldOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** FieldOptions .google.api.fieldBehavior */
            ".google.api.fieldBehavior"?: (google.api.FieldBehavior[]|null);

            /** FieldOptions .google.api.resourceReference */
            ".google.api.resourceReference"?: (google.api.IResourceReference|null);
        }

        /** Represents a FieldOptions. */
        class FieldOptions implements IFieldOptions {

            /**
             * Constructs a new FieldOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldOptions);

            /** FieldOptions ctype. */
            public ctype: (google.protobuf.FieldOptions.CType|keyof typeof google.protobuf.FieldOptions.CType);

            /** FieldOptions packed. */
            public packed: boolean;

            /** FieldOptions jstype. */
            public jstype: (google.protobuf.FieldOptions.JSType|keyof typeof google.protobuf.FieldOptions.JSType);

            /** FieldOptions lazy. */
            public lazy: boolean;

            /** FieldOptions unverifiedLazy. */
            public unverifiedLazy: boolean;

            /** FieldOptions deprecated. */
            public deprecated: boolean;

            /** FieldOptions weak. */
            public weak: boolean;

            /** FieldOptions debugRedact. */
            public debugRedact: boolean;

            /** FieldOptions retention. */
            public retention: (google.protobuf.FieldOptions.OptionRetention|keyof typeof google.protobuf.FieldOptions.OptionRetention);

            /** FieldOptions target. */
            public target: (google.protobuf.FieldOptions.OptionTargetType|keyof typeof google.protobuf.FieldOptions.OptionTargetType);

            /** FieldOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new FieldOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldOptions instance
             */
            public static create(properties?: google.protobuf.IFieldOptions): google.protobuf.FieldOptions;

            /**
             * Encodes the specified FieldOptions message. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.
             * @param message FieldOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldOptions message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.verify|verify} messages.
             * @param message FieldOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldOptions;

            /**
             * Decodes a FieldOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldOptions;

            /**
             * Verifies a FieldOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions;

            /**
             * Creates a plain object from a FieldOptions message. Also converts values to other types if specified.
             * @param message FieldOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FieldOptions {

            /** CType enum. */
            enum CType {
                STRING = 0,
                CORD = 1,
                STRING_PIECE = 2
            }

            /** JSType enum. */
            enum JSType {
                JS_NORMAL = 0,
                JS_STRING = 1,
                JS_NUMBER = 2
            }

            /** OptionRetention enum. */
            enum OptionRetention {
                RETENTION_UNKNOWN = 0,
                RETENTION_RUNTIME = 1,
                RETENTION_SOURCE = 2
            }

            /** OptionTargetType enum. */
            enum OptionTargetType {
                TARGET_TYPE_UNKNOWN = 0,
                TARGET_TYPE_FILE = 1,
                TARGET_TYPE_EXTENSION_RANGE = 2,
                TARGET_TYPE_MESSAGE = 3,
                TARGET_TYPE_FIELD = 4,
                TARGET_TYPE_ONEOF = 5,
                TARGET_TYPE_ENUM = 6,
                TARGET_TYPE_ENUM_ENTRY = 7,
                TARGET_TYPE_SERVICE = 8,
                TARGET_TYPE_METHOD = 9
            }
        }

        /** Properties of an OneofOptions. */
        interface IOneofOptions {

            /** OneofOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an OneofOptions. */
        class OneofOptions implements IOneofOptions {

            /**
             * Constructs a new OneofOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IOneofOptions);

            /** OneofOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new OneofOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns OneofOptions instance
             */
            public static create(properties?: google.protobuf.IOneofOptions): google.protobuf.OneofOptions;

            /**
             * Encodes the specified OneofOptions message. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.
             * @param message OneofOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified OneofOptions message, length delimited. Does not implicitly {@link google.protobuf.OneofOptions.verify|verify} messages.
             * @param message OneofOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IOneofOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an OneofOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns OneofOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.OneofOptions;

            /**
             * Decodes an OneofOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns OneofOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.OneofOptions;

            /**
             * Verifies an OneofOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an OneofOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns OneofOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.OneofOptions;

            /**
             * Creates a plain object from an OneofOptions message. Also converts values to other types if specified.
             * @param message OneofOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.OneofOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this OneofOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for OneofOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumOptions. */
        interface IEnumOptions {

            /** EnumOptions allowAlias */
            allowAlias?: (boolean|null);

            /** EnumOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumOptions deprecatedLegacyJsonFieldConflicts */
            deprecatedLegacyJsonFieldConflicts?: (boolean|null);

            /** EnumOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumOptions. */
        class EnumOptions implements IEnumOptions {

            /**
             * Constructs a new EnumOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumOptions);

            /** EnumOptions allowAlias. */
            public allowAlias: boolean;

            /** EnumOptions deprecated. */
            public deprecated: boolean;

            /** EnumOptions deprecatedLegacyJsonFieldConflicts. */
            public deprecatedLegacyJsonFieldConflicts: boolean;

            /** EnumOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumOptions instance
             */
            public static create(properties?: google.protobuf.IEnumOptions): google.protobuf.EnumOptions;

            /**
             * Encodes the specified EnumOptions message. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.
             * @param message EnumOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumOptions.verify|verify} messages.
             * @param message EnumOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumOptions;

            /**
             * Decodes an EnumOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumOptions;

            /**
             * Verifies an EnumOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumOptions;

            /**
             * Creates a plain object from an EnumOptions message. Also converts values to other types if specified.
             * @param message EnumOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an EnumValueOptions. */
        interface IEnumValueOptions {

            /** EnumValueOptions deprecated */
            deprecated?: (boolean|null);

            /** EnumValueOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);
        }

        /** Represents an EnumValueOptions. */
        class EnumValueOptions implements IEnumValueOptions {

            /**
             * Constructs a new EnumValueOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEnumValueOptions);

            /** EnumValueOptions deprecated. */
            public deprecated: boolean;

            /** EnumValueOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new EnumValueOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns EnumValueOptions instance
             */
            public static create(properties?: google.protobuf.IEnumValueOptions): google.protobuf.EnumValueOptions;

            /**
             * Encodes the specified EnumValueOptions message. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.
             * @param message EnumValueOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified EnumValueOptions message, length delimited. Does not implicitly {@link google.protobuf.EnumValueOptions.verify|verify} messages.
             * @param message EnumValueOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEnumValueOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns EnumValueOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.EnumValueOptions;

            /**
             * Decodes an EnumValueOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns EnumValueOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.EnumValueOptions;

            /**
             * Verifies an EnumValueOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an EnumValueOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns EnumValueOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.EnumValueOptions;

            /**
             * Creates a plain object from an EnumValueOptions message. Also converts values to other types if specified.
             * @param message EnumValueOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.EnumValueOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this EnumValueOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for EnumValueOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a ServiceOptions. */
        interface IServiceOptions {

            /** ServiceOptions deprecated */
            deprecated?: (boolean|null);

            /** ServiceOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** ServiceOptions .google.api.defaultHost */
            ".google.api.defaultHost"?: (string|null);

            /** ServiceOptions .google.api.oauthScopes */
            ".google.api.oauthScopes"?: (string|null);
        }

        /** Represents a ServiceOptions. */
        class ServiceOptions implements IServiceOptions {

            /**
             * Constructs a new ServiceOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceOptions);

            /** ServiceOptions deprecated. */
            public deprecated: boolean;

            /** ServiceOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new ServiceOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns ServiceOptions instance
             */
            public static create(properties?: google.protobuf.IServiceOptions): google.protobuf.ServiceOptions;

            /**
             * Encodes the specified ServiceOptions message. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.
             * @param message ServiceOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified ServiceOptions message, length delimited. Does not implicitly {@link google.protobuf.ServiceOptions.verify|verify} messages.
             * @param message ServiceOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IServiceOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns ServiceOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.ServiceOptions;

            /**
             * Decodes a ServiceOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns ServiceOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.ServiceOptions;

            /**
             * Verifies a ServiceOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a ServiceOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns ServiceOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.ServiceOptions;

            /**
             * Creates a plain object from a ServiceOptions message. Also converts values to other types if specified.
             * @param message ServiceOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.ServiceOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this ServiceOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for ServiceOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a MethodOptions. */
        interface IMethodOptions {

            /** MethodOptions deprecated */
            deprecated?: (boolean|null);

            /** MethodOptions idempotencyLevel */
            idempotencyLevel?: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel|null);

            /** MethodOptions uninterpretedOption */
            uninterpretedOption?: (google.protobuf.IUninterpretedOption[]|null);

            /** MethodOptions .google.api.http */
            ".google.api.http"?: (google.api.IHttpRule|null);

            /** MethodOptions .google.api.methodSignature */
            ".google.api.methodSignature"?: (string[]|null);
        }

        /** Represents a MethodOptions. */
        class MethodOptions implements IMethodOptions {

            /**
             * Constructs a new MethodOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IMethodOptions);

            /** MethodOptions deprecated. */
            public deprecated: boolean;

            /** MethodOptions idempotencyLevel. */
            public idempotencyLevel: (google.protobuf.MethodOptions.IdempotencyLevel|keyof typeof google.protobuf.MethodOptions.IdempotencyLevel);

            /** MethodOptions uninterpretedOption. */
            public uninterpretedOption: google.protobuf.IUninterpretedOption[];

            /**
             * Creates a new MethodOptions instance using the specified properties.
             * @param [properties] Properties to set
             * @returns MethodOptions instance
             */
            public static create(properties?: google.protobuf.IMethodOptions): google.protobuf.MethodOptions;

            /**
             * Encodes the specified MethodOptions message. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.
             * @param message MethodOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified MethodOptions message, length delimited. Does not implicitly {@link google.protobuf.MethodOptions.verify|verify} messages.
             * @param message MethodOptions message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IMethodOptions, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a MethodOptions message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns MethodOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.MethodOptions;

            /**
             * Decodes a MethodOptions message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns MethodOptions
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.MethodOptions;

            /**
             * Verifies a MethodOptions message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a MethodOptions message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns MethodOptions
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.MethodOptions;

            /**
             * Creates a plain object from a MethodOptions message. Also converts values to other types if specified.
             * @param message MethodOptions
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.MethodOptions, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this MethodOptions to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for MethodOptions
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace MethodOptions {

            /** IdempotencyLevel enum. */
            enum IdempotencyLevel {
                IDEMPOTENCY_UNKNOWN = 0,
                NO_SIDE_EFFECTS = 1,
                IDEMPOTENT = 2
            }
        }

        /** Properties of an UninterpretedOption. */
        interface IUninterpretedOption {

            /** UninterpretedOption name */
            name?: (google.protobuf.UninterpretedOption.INamePart[]|null);

            /** UninterpretedOption identifierValue */
            identifierValue?: (string|null);

            /** UninterpretedOption positiveIntValue */
            positiveIntValue?: (number|Long|string|null);

            /** UninterpretedOption negativeIntValue */
            negativeIntValue?: (number|Long|string|null);

            /** UninterpretedOption doubleValue */
            doubleValue?: (number|null);

            /** UninterpretedOption stringValue */
            stringValue?: (Uint8Array|string|null);

            /** UninterpretedOption aggregateValue */
            aggregateValue?: (string|null);
        }

        /** Represents an UninterpretedOption. */
        class UninterpretedOption implements IUninterpretedOption {

            /**
             * Constructs a new UninterpretedOption.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IUninterpretedOption);

            /** UninterpretedOption name. */
            public name: google.protobuf.UninterpretedOption.INamePart[];

            /** UninterpretedOption identifierValue. */
            public identifierValue: string;

            /** UninterpretedOption positiveIntValue. */
            public positiveIntValue: (number|Long|string);

            /** UninterpretedOption negativeIntValue. */
            public negativeIntValue: (number|Long|string);

            /** UninterpretedOption doubleValue. */
            public doubleValue: number;

            /** UninterpretedOption stringValue. */
            public stringValue: (Uint8Array|string);

            /** UninterpretedOption aggregateValue. */
            public aggregateValue: string;

            /**
             * Creates a new UninterpretedOption instance using the specified properties.
             * @param [properties] Properties to set
             * @returns UninterpretedOption instance
             */
            public static create(properties?: google.protobuf.IUninterpretedOption): google.protobuf.UninterpretedOption;

            /**
             * Encodes the specified UninterpretedOption message. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.
             * @param message UninterpretedOption message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified UninterpretedOption message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.verify|verify} messages.
             * @param message UninterpretedOption message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IUninterpretedOption, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns UninterpretedOption
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption;

            /**
             * Decodes an UninterpretedOption message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns UninterpretedOption
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption;

            /**
             * Verifies an UninterpretedOption message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an UninterpretedOption message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns UninterpretedOption
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption;

            /**
             * Creates a plain object from an UninterpretedOption message. Also converts values to other types if specified.
             * @param message UninterpretedOption
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.UninterpretedOption, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this UninterpretedOption to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for UninterpretedOption
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace UninterpretedOption {

            /** Properties of a NamePart. */
            interface INamePart {

                /** NamePart namePart */
                namePart: string;

                /** NamePart isExtension */
                isExtension: boolean;
            }

            /** Represents a NamePart. */
            class NamePart implements INamePart {

                /**
                 * Constructs a new NamePart.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.UninterpretedOption.INamePart);

                /** NamePart namePart. */
                public namePart: string;

                /** NamePart isExtension. */
                public isExtension: boolean;

                /**
                 * Creates a new NamePart instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns NamePart instance
                 */
                public static create(properties?: google.protobuf.UninterpretedOption.INamePart): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Encodes the specified NamePart message. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.
                 * @param message NamePart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified NamePart message, length delimited. Does not implicitly {@link google.protobuf.UninterpretedOption.NamePart.verify|verify} messages.
                 * @param message NamePart message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.UninterpretedOption.INamePart, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a NamePart message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns NamePart
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Decodes a NamePart message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns NamePart
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Verifies a NamePart message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a NamePart message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns NamePart
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.UninterpretedOption.NamePart;

                /**
                 * Creates a plain object from a NamePart message. Also converts values to other types if specified.
                 * @param message NamePart
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.UninterpretedOption.NamePart, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this NamePart to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for NamePart
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a SourceCodeInfo. */
        interface ISourceCodeInfo {

            /** SourceCodeInfo location */
            location?: (google.protobuf.SourceCodeInfo.ILocation[]|null);
        }

        /** Represents a SourceCodeInfo. */
        class SourceCodeInfo implements ISourceCodeInfo {

            /**
             * Constructs a new SourceCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.ISourceCodeInfo);

            /** SourceCodeInfo location. */
            public location: google.protobuf.SourceCodeInfo.ILocation[];

            /**
             * Creates a new SourceCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns SourceCodeInfo instance
             */
            public static create(properties?: google.protobuf.ISourceCodeInfo): google.protobuf.SourceCodeInfo;

            /**
             * Encodes the specified SourceCodeInfo message. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.
             * @param message SourceCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified SourceCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.verify|verify} messages.
             * @param message SourceCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.ISourceCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns SourceCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo;

            /**
             * Decodes a SourceCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns SourceCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo;

            /**
             * Verifies a SourceCodeInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a SourceCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns SourceCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo;

            /**
             * Creates a plain object from a SourceCodeInfo message. Also converts values to other types if specified.
             * @param message SourceCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.SourceCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this SourceCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for SourceCodeInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace SourceCodeInfo {

            /** Properties of a Location. */
            interface ILocation {

                /** Location path */
                path?: (number[]|null);

                /** Location span */
                span?: (number[]|null);

                /** Location leadingComments */
                leadingComments?: (string|null);

                /** Location trailingComments */
                trailingComments?: (string|null);

                /** Location leadingDetachedComments */
                leadingDetachedComments?: (string[]|null);
            }

            /** Represents a Location. */
            class Location implements ILocation {

                /**
                 * Constructs a new Location.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.SourceCodeInfo.ILocation);

                /** Location path. */
                public path: number[];

                /** Location span. */
                public span: number[];

                /** Location leadingComments. */
                public leadingComments: string;

                /** Location trailingComments. */
                public trailingComments: string;

                /** Location leadingDetachedComments. */
                public leadingDetachedComments: string[];

                /**
                 * Creates a new Location instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Location instance
                 */
                public static create(properties?: google.protobuf.SourceCodeInfo.ILocation): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Encodes the specified Location message. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Location message, length delimited. Does not implicitly {@link google.protobuf.SourceCodeInfo.Location.verify|verify} messages.
                 * @param message Location message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.SourceCodeInfo.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Location message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Decodes a Location message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Location
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Verifies a Location message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates a Location message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Location
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.SourceCodeInfo.Location;

                /**
                 * Creates a plain object from a Location message. Also converts values to other types if specified.
                 * @param message Location
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.SourceCodeInfo.Location, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Location to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Location
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of a GeneratedCodeInfo. */
        interface IGeneratedCodeInfo {

            /** GeneratedCodeInfo annotation */
            annotation?: (google.protobuf.GeneratedCodeInfo.IAnnotation[]|null);
        }

        /** Represents a GeneratedCodeInfo. */
        class GeneratedCodeInfo implements IGeneratedCodeInfo {

            /**
             * Constructs a new GeneratedCodeInfo.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IGeneratedCodeInfo);

            /** GeneratedCodeInfo annotation. */
            public annotation: google.protobuf.GeneratedCodeInfo.IAnnotation[];

            /**
             * Creates a new GeneratedCodeInfo instance using the specified properties.
             * @param [properties] Properties to set
             * @returns GeneratedCodeInfo instance
             */
            public static create(properties?: google.protobuf.IGeneratedCodeInfo): google.protobuf.GeneratedCodeInfo;

            /**
             * Encodes the specified GeneratedCodeInfo message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.
             * @param message GeneratedCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified GeneratedCodeInfo message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.verify|verify} messages.
             * @param message GeneratedCodeInfo message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IGeneratedCodeInfo, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns GeneratedCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo;

            /**
             * Decodes a GeneratedCodeInfo message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns GeneratedCodeInfo
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo;

            /**
             * Verifies a GeneratedCodeInfo message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a GeneratedCodeInfo message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns GeneratedCodeInfo
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo;

            /**
             * Creates a plain object from a GeneratedCodeInfo message. Also converts values to other types if specified.
             * @param message GeneratedCodeInfo
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.GeneratedCodeInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this GeneratedCodeInfo to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for GeneratedCodeInfo
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace GeneratedCodeInfo {

            /** Properties of an Annotation. */
            interface IAnnotation {

                /** Annotation path */
                path?: (number[]|null);

                /** Annotation sourceFile */
                sourceFile?: (string|null);

                /** Annotation begin */
                begin?: (number|null);

                /** Annotation end */
                end?: (number|null);

                /** Annotation semantic */
                semantic?: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic|null);
            }

            /** Represents an Annotation. */
            class Annotation implements IAnnotation {

                /**
                 * Constructs a new Annotation.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation);

                /** Annotation path. */
                public path: number[];

                /** Annotation sourceFile. */
                public sourceFile: string;

                /** Annotation begin. */
                public begin: number;

                /** Annotation end. */
                public end: number;

                /** Annotation semantic. */
                public semantic: (google.protobuf.GeneratedCodeInfo.Annotation.Semantic|keyof typeof google.protobuf.GeneratedCodeInfo.Annotation.Semantic);

                /**
                 * Creates a new Annotation instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Annotation instance
                 */
                public static create(properties?: google.protobuf.GeneratedCodeInfo.IAnnotation): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Encodes the specified Annotation message. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.
                 * @param message Annotation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Annotation message, length delimited. Does not implicitly {@link google.protobuf.GeneratedCodeInfo.Annotation.verify|verify} messages.
                 * @param message Annotation message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.GeneratedCodeInfo.IAnnotation, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an Annotation message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Annotation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Decodes an Annotation message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Annotation
                 * @throws {Error} If the payload is not a reader or valid buffer
                 * @throws {$protobuf.util.ProtocolError} If required fields are missing
                 */
                public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Verifies an Annotation message.
                 * @param message Plain object to verify
                 * @returns `null` if valid, otherwise the reason why it is not
                 */
                public static verify(message: { [k: string]: any }): (string|null);

                /**
                 * Creates an Annotation message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Annotation
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.GeneratedCodeInfo.Annotation;

                /**
                 * Creates a plain object from an Annotation message. Also converts values to other types if specified.
                 * @param message Annotation
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.GeneratedCodeInfo.Annotation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Annotation to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Annotation
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            namespace Annotation {

                /** Semantic enum. */
                enum Semantic {
                    NONE = 0,
                    SET = 1,
                    ALIAS = 2
                }
            }
        }

        /** Properties of a Duration. */
        interface IDuration {

            /** Duration seconds */
            seconds?: (number|Long|string|null);

            /** Duration nanos */
            nanos?: (number|null);
        }

        /** Represents a Duration. */
        class Duration implements IDuration {

            /**
             * Constructs a new Duration.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IDuration);

            /** Duration seconds. */
            public seconds: (number|Long|string);

            /** Duration nanos. */
            public nanos: number;

            /**
             * Creates a new Duration instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Duration instance
             */
            public static create(properties?: google.protobuf.IDuration): google.protobuf.Duration;

            /**
             * Encodes the specified Duration message. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
             * @param message Duration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Duration message, length delimited. Does not implicitly {@link google.protobuf.Duration.verify|verify} messages.
             * @param message Duration message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IDuration, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Duration message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Duration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Duration;

            /**
             * Decodes a Duration message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Duration
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Duration;

            /**
             * Verifies a Duration message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Duration message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Duration
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Duration;

            /**
             * Creates a plain object from a Duration message. Also converts values to other types if specified.
             * @param message Duration
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Duration, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Duration to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Duration
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a Timestamp. */
        interface ITimestamp {

            /** Timestamp seconds */
            seconds?: (number|Long|string|null);

            /** Timestamp nanos */
            nanos?: (number|null);
        }

        /** Represents a Timestamp. */
        class Timestamp implements ITimestamp {

            /**
             * Constructs a new Timestamp.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.ITimestamp);

            /** Timestamp seconds. */
            public seconds: (number|Long|string);

            /** Timestamp nanos. */
            public nanos: number;

            /**
             * Creates a new Timestamp instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Timestamp instance
             */
            public static create(properties?: google.protobuf.ITimestamp): google.protobuf.Timestamp;

            /**
             * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
             * @param message Timestamp message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
             * @param message Timestamp message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Timestamp message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Timestamp
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Timestamp;

            /**
             * Decodes a Timestamp message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Timestamp
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Timestamp;

            /**
             * Verifies a Timestamp message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Timestamp message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Timestamp
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Timestamp;

            /**
             * Creates a plain object from a Timestamp message. Also converts values to other types if specified.
             * @param message Timestamp
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Timestamp, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Timestamp to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Timestamp
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Empty. */
        interface IEmpty {
        }

        /** Represents an Empty. */
        class Empty implements IEmpty {

            /**
             * Constructs a new Empty.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IEmpty);

            /**
             * Creates a new Empty instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Empty instance
             */
            public static create(properties?: google.protobuf.IEmpty): google.protobuf.Empty;

            /**
             * Encodes the specified Empty message. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
             * @param message Empty message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Empty message, length delimited. Does not implicitly {@link google.protobuf.Empty.verify|verify} messages.
             * @param message Empty message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IEmpty, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Empty message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Empty
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Empty;

            /**
             * Decodes an Empty message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Empty
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Empty;

            /**
             * Verifies an Empty message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Empty message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Empty
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Empty;

            /**
             * Creates a plain object from an Empty message. Also converts values to other types if specified.
             * @param message Empty
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Empty, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Empty to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Empty
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of a FieldMask. */
        interface IFieldMask {

            /** FieldMask paths */
            paths?: (string[]|null);
        }

        /** Represents a FieldMask. */
        class FieldMask implements IFieldMask {

            /**
             * Constructs a new FieldMask.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFieldMask);

            /** FieldMask paths. */
            public paths: string[];

            /**
             * Creates a new FieldMask instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FieldMask instance
             */
            public static create(properties?: google.protobuf.IFieldMask): google.protobuf.FieldMask;

            /**
             * Encodes the specified FieldMask message. Does not implicitly {@link google.protobuf.FieldMask.verify|verify} messages.
             * @param message FieldMask message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFieldMask, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FieldMask message, length delimited. Does not implicitly {@link google.protobuf.FieldMask.verify|verify} messages.
             * @param message FieldMask message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFieldMask, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FieldMask message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FieldMask
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.FieldMask;

            /**
             * Decodes a FieldMask message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FieldMask
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.FieldMask;

            /**
             * Verifies a FieldMask message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a FieldMask message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FieldMask
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FieldMask;

            /**
             * Creates a plain object from a FieldMask message. Also converts values to other types if specified.
             * @param message FieldMask
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FieldMask, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FieldMask to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FieldMask
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** Properties of an Any. */
        interface IAny {

            /** Any type_url */
            type_url?: (string|null);

            /** Any value */
            value?: (Uint8Array|string|null);
        }

        /** Represents an Any. */
        class Any implements IAny {

            /**
             * Constructs a new Any.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IAny);

            /** Any type_url. */
            public type_url: string;

            /** Any value. */
            public value: (Uint8Array|string);

            /**
             * Creates a new Any instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Any instance
             */
            public static create(properties?: google.protobuf.IAny): google.protobuf.Any;

            /**
             * Encodes the specified Any message. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.
             * @param message Any message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IAny, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Any message, length delimited. Does not implicitly {@link google.protobuf.Any.verify|verify} messages.
             * @param message Any message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IAny, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes an Any message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Any
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Any;

            /**
             * Decodes an Any message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Any
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Any;

            /**
             * Verifies an Any message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates an Any message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Any
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.Any;

            /**
             * Creates a plain object from an Any message. Also converts values to other types if specified.
             * @param message Any
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.Any, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Any to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Any
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace rpc. */
    namespace rpc {

        /** Properties of a Status. */
        interface IStatus {

            /** Status code */
            code?: (number|null);

            /** Status message */
            message?: (string|null);

            /** Status details */
            details?: (google.protobuf.IAny[]|null);
        }

        /** Represents a Status. */
        class Status implements IStatus {

            /**
             * Constructs a new Status.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.rpc.IStatus);

            /** Status code. */
            public code: number;

            /** Status message. */
            public message: string;

            /** Status details. */
            public details: google.protobuf.IAny[];

            /**
             * Creates a new Status instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Status instance
             */
            public static create(properties?: google.rpc.IStatus): google.rpc.Status;

            /**
             * Encodes the specified Status message. Does not implicitly {@link google.rpc.Status.verify|verify} messages.
             * @param message Status message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.rpc.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Status message, length delimited. Does not implicitly {@link google.rpc.Status.verify|verify} messages.
             * @param message Status message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.rpc.IStatus, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Status message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Status
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.rpc.Status;

            /**
             * Decodes a Status message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Status
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.rpc.Status;

            /**
             * Verifies a Status message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Status message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Status
             */
            public static fromObject(object: { [k: string]: any }): google.rpc.Status;

            /**
             * Creates a plain object from a Status message. Also converts values to other types if specified.
             * @param message Status
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.rpc.Status, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Status to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Status
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }

    /** Namespace type. */
    namespace type {

        /** Properties of a Date. */
        interface IDate {

            /** Date year */
            year?: (number|null);

            /** Date month */
            month?: (number|null);

            /** Date day */
            day?: (number|null);
        }

        /** Represents a Date. */
        class Date implements IDate {

            /**
             * Constructs a new Date.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.type.IDate);

            /** Date year. */
            public year: number;

            /** Date month. */
            public month: number;

            /** Date day. */
            public day: number;

            /**
             * Creates a new Date instance using the specified properties.
             * @param [properties] Properties to set
             * @returns Date instance
             */
            public static create(properties?: google.type.IDate): google.type.Date;

            /**
             * Encodes the specified Date message. Does not implicitly {@link google.type.Date.verify|verify} messages.
             * @param message Date message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.type.IDate, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified Date message, length delimited. Does not implicitly {@link google.type.Date.verify|verify} messages.
             * @param message Date message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.type.IDate, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a Date message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns Date
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.type.Date;

            /**
             * Decodes a Date message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns Date
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.type.Date;

            /**
             * Verifies a Date message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a Date message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns Date
             */
            public static fromObject(object: { [k: string]: any }): google.type.Date;

            /**
             * Creates a plain object from a Date message. Also converts values to other types if specified.
             * @param message Date
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.type.Date, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this Date to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for Date
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        /** DayOfWeek enum. */
        enum DayOfWeek {
            DAY_OF_WEEK_UNSPECIFIED = 0,
            MONDAY = 1,
            TUESDAY = 2,
            WEDNESDAY = 3,
            THURSDAY = 4,
            FRIDAY = 5,
            SATURDAY = 6,
            SUNDAY = 7
        }

        /** Properties of a TimeOfDay. */
        interface ITimeOfDay {

            /** TimeOfDay hours */
            hours?: (number|null);

            /** TimeOfDay minutes */
            minutes?: (number|null);

            /** TimeOfDay seconds */
            seconds?: (number|null);

            /** TimeOfDay nanos */
            nanos?: (number|null);
        }

        /** Represents a TimeOfDay. */
        class TimeOfDay implements ITimeOfDay {

            /**
             * Constructs a new TimeOfDay.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.type.ITimeOfDay);

            /** TimeOfDay hours. */
            public hours: number;

            /** TimeOfDay minutes. */
            public minutes: number;

            /** TimeOfDay seconds. */
            public seconds: number;

            /** TimeOfDay nanos. */
            public nanos: number;

            /**
             * Creates a new TimeOfDay instance using the specified properties.
             * @param [properties] Properties to set
             * @returns TimeOfDay instance
             */
            public static create(properties?: google.type.ITimeOfDay): google.type.TimeOfDay;

            /**
             * Encodes the specified TimeOfDay message. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages.
             * @param message TimeOfDay message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.type.ITimeOfDay, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified TimeOfDay message, length delimited. Does not implicitly {@link google.type.TimeOfDay.verify|verify} messages.
             * @param message TimeOfDay message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.type.ITimeOfDay, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a TimeOfDay message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns TimeOfDay
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.type.TimeOfDay;

            /**
             * Decodes a TimeOfDay message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns TimeOfDay
             * @throws {Error} If the payload is not a reader or valid buffer
             * @throws {$protobuf.util.ProtocolError} If required fields are missing
             */
            public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.type.TimeOfDay;

            /**
             * Verifies a TimeOfDay message.
             * @param message Plain object to verify
             * @returns `null` if valid, otherwise the reason why it is not
             */
            public static verify(message: { [k: string]: any }): (string|null);

            /**
             * Creates a TimeOfDay message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns TimeOfDay
             */
            public static fromObject(object: { [k: string]: any }): google.type.TimeOfDay;

            /**
             * Creates a plain object from a TimeOfDay message. Also converts values to other types if specified.
             * @param message TimeOfDay
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.type.TimeOfDay, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this TimeOfDay to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for TimeOfDay
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }
    }
}
