// Copyright 2026 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 CreateDiscoveryConfig.
                     * @param request CreateDiscoveryConfigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiscoveryConfig
                     */
                    public createDiscoveryConfig(request: google.privacy.dlp.v2.ICreateDiscoveryConfigRequest, callback: google.privacy.dlp.v2.DlpService.CreateDiscoveryConfigCallback): void;

                    /**
                     * Calls CreateDiscoveryConfig.
                     * @param request CreateDiscoveryConfigRequest message or plain object
                     * @returns Promise
                     */
                    public createDiscoveryConfig(request: google.privacy.dlp.v2.ICreateDiscoveryConfigRequest): Promise<google.privacy.dlp.v2.DiscoveryConfig>;

                    /**
                     * Calls UpdateDiscoveryConfig.
                     * @param request UpdateDiscoveryConfigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiscoveryConfig
                     */
                    public updateDiscoveryConfig(request: google.privacy.dlp.v2.IUpdateDiscoveryConfigRequest, callback: google.privacy.dlp.v2.DlpService.UpdateDiscoveryConfigCallback): void;

                    /**
                     * Calls UpdateDiscoveryConfig.
                     * @param request UpdateDiscoveryConfigRequest message or plain object
                     * @returns Promise
                     */
                    public updateDiscoveryConfig(request: google.privacy.dlp.v2.IUpdateDiscoveryConfigRequest): Promise<google.privacy.dlp.v2.DiscoveryConfig>;

                    /**
                     * Calls GetDiscoveryConfig.
                     * @param request GetDiscoveryConfigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and DiscoveryConfig
                     */
                    public getDiscoveryConfig(request: google.privacy.dlp.v2.IGetDiscoveryConfigRequest, callback: google.privacy.dlp.v2.DlpService.GetDiscoveryConfigCallback): void;

                    /**
                     * Calls GetDiscoveryConfig.
                     * @param request GetDiscoveryConfigRequest message or plain object
                     * @returns Promise
                     */
                    public getDiscoveryConfig(request: google.privacy.dlp.v2.IGetDiscoveryConfigRequest): Promise<google.privacy.dlp.v2.DiscoveryConfig>;

                    /**
                     * Calls ListDiscoveryConfigs.
                     * @param request ListDiscoveryConfigsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListDiscoveryConfigsResponse
                     */
                    public listDiscoveryConfigs(request: google.privacy.dlp.v2.IListDiscoveryConfigsRequest, callback: google.privacy.dlp.v2.DlpService.ListDiscoveryConfigsCallback): void;

                    /**
                     * Calls ListDiscoveryConfigs.
                     * @param request ListDiscoveryConfigsRequest message or plain object
                     * @returns Promise
                     */
                    public listDiscoveryConfigs(request: google.privacy.dlp.v2.IListDiscoveryConfigsRequest): Promise<google.privacy.dlp.v2.ListDiscoveryConfigsResponse>;

                    /**
                     * Calls DeleteDiscoveryConfig.
                     * @param request DeleteDiscoveryConfigRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteDiscoveryConfig(request: google.privacy.dlp.v2.IDeleteDiscoveryConfigRequest, callback: google.privacy.dlp.v2.DlpService.DeleteDiscoveryConfigCallback): void;

                    /**
                     * Calls DeleteDiscoveryConfig.
                     * @param request DeleteDiscoveryConfigRequest message or plain object
                     * @returns Promise
                     */
                    public deleteDiscoveryConfig(request: google.privacy.dlp.v2.IDeleteDiscoveryConfigRequest): Promise<google.protobuf.Empty>;

                    /**
                     * 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 ListProjectDataProfiles.
                     * @param request ListProjectDataProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListProjectDataProfilesResponse
                     */
                    public listProjectDataProfiles(request: google.privacy.dlp.v2.IListProjectDataProfilesRequest, callback: google.privacy.dlp.v2.DlpService.ListProjectDataProfilesCallback): void;

                    /**
                     * Calls ListProjectDataProfiles.
                     * @param request ListProjectDataProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public listProjectDataProfiles(request: google.privacy.dlp.v2.IListProjectDataProfilesRequest): Promise<google.privacy.dlp.v2.ListProjectDataProfilesResponse>;

                    /**
                     * Calls ListTableDataProfiles.
                     * @param request ListTableDataProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListTableDataProfilesResponse
                     */
                    public listTableDataProfiles(request: google.privacy.dlp.v2.IListTableDataProfilesRequest, callback: google.privacy.dlp.v2.DlpService.ListTableDataProfilesCallback): void;

                    /**
                     * Calls ListTableDataProfiles.
                     * @param request ListTableDataProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public listTableDataProfiles(request: google.privacy.dlp.v2.IListTableDataProfilesRequest): Promise<google.privacy.dlp.v2.ListTableDataProfilesResponse>;

                    /**
                     * Calls ListColumnDataProfiles.
                     * @param request ListColumnDataProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListColumnDataProfilesResponse
                     */
                    public listColumnDataProfiles(request: google.privacy.dlp.v2.IListColumnDataProfilesRequest, callback: google.privacy.dlp.v2.DlpService.ListColumnDataProfilesCallback): void;

                    /**
                     * Calls ListColumnDataProfiles.
                     * @param request ListColumnDataProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public listColumnDataProfiles(request: google.privacy.dlp.v2.IListColumnDataProfilesRequest): Promise<google.privacy.dlp.v2.ListColumnDataProfilesResponse>;

                    /**
                     * Calls GetProjectDataProfile.
                     * @param request GetProjectDataProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ProjectDataProfile
                     */
                    public getProjectDataProfile(request: google.privacy.dlp.v2.IGetProjectDataProfileRequest, callback: google.privacy.dlp.v2.DlpService.GetProjectDataProfileCallback): void;

                    /**
                     * Calls GetProjectDataProfile.
                     * @param request GetProjectDataProfileRequest message or plain object
                     * @returns Promise
                     */
                    public getProjectDataProfile(request: google.privacy.dlp.v2.IGetProjectDataProfileRequest): Promise<google.privacy.dlp.v2.ProjectDataProfile>;

                    /**
                     * Calls ListFileStoreDataProfiles.
                     * @param request ListFileStoreDataProfilesRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListFileStoreDataProfilesResponse
                     */
                    public listFileStoreDataProfiles(request: google.privacy.dlp.v2.IListFileStoreDataProfilesRequest, callback: google.privacy.dlp.v2.DlpService.ListFileStoreDataProfilesCallback): void;

                    /**
                     * Calls ListFileStoreDataProfiles.
                     * @param request ListFileStoreDataProfilesRequest message or plain object
                     * @returns Promise
                     */
                    public listFileStoreDataProfiles(request: google.privacy.dlp.v2.IListFileStoreDataProfilesRequest): Promise<google.privacy.dlp.v2.ListFileStoreDataProfilesResponse>;

                    /**
                     * Calls GetFileStoreDataProfile.
                     * @param request GetFileStoreDataProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and FileStoreDataProfile
                     */
                    public getFileStoreDataProfile(request: google.privacy.dlp.v2.IGetFileStoreDataProfileRequest, callback: google.privacy.dlp.v2.DlpService.GetFileStoreDataProfileCallback): void;

                    /**
                     * Calls GetFileStoreDataProfile.
                     * @param request GetFileStoreDataProfileRequest message or plain object
                     * @returns Promise
                     */
                    public getFileStoreDataProfile(request: google.privacy.dlp.v2.IGetFileStoreDataProfileRequest): Promise<google.privacy.dlp.v2.FileStoreDataProfile>;

                    /**
                     * Calls DeleteFileStoreDataProfile.
                     * @param request DeleteFileStoreDataProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteFileStoreDataProfile(request: google.privacy.dlp.v2.IDeleteFileStoreDataProfileRequest, callback: google.privacy.dlp.v2.DlpService.DeleteFileStoreDataProfileCallback): void;

                    /**
                     * Calls DeleteFileStoreDataProfile.
                     * @param request DeleteFileStoreDataProfileRequest message or plain object
                     * @returns Promise
                     */
                    public deleteFileStoreDataProfile(request: google.privacy.dlp.v2.IDeleteFileStoreDataProfileRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls GetTableDataProfile.
                     * @param request GetTableDataProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and TableDataProfile
                     */
                    public getTableDataProfile(request: google.privacy.dlp.v2.IGetTableDataProfileRequest, callback: google.privacy.dlp.v2.DlpService.GetTableDataProfileCallback): void;

                    /**
                     * Calls GetTableDataProfile.
                     * @param request GetTableDataProfileRequest message or plain object
                     * @returns Promise
                     */
                    public getTableDataProfile(request: google.privacy.dlp.v2.IGetTableDataProfileRequest): Promise<google.privacy.dlp.v2.TableDataProfile>;

                    /**
                     * Calls GetColumnDataProfile.
                     * @param request GetColumnDataProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ColumnDataProfile
                     */
                    public getColumnDataProfile(request: google.privacy.dlp.v2.IGetColumnDataProfileRequest, callback: google.privacy.dlp.v2.DlpService.GetColumnDataProfileCallback): void;

                    /**
                     * Calls GetColumnDataProfile.
                     * @param request GetColumnDataProfileRequest message or plain object
                     * @returns Promise
                     */
                    public getColumnDataProfile(request: google.privacy.dlp.v2.IGetColumnDataProfileRequest): Promise<google.privacy.dlp.v2.ColumnDataProfile>;

                    /**
                     * Calls DeleteTableDataProfile.
                     * @param request DeleteTableDataProfileRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteTableDataProfile(request: google.privacy.dlp.v2.IDeleteTableDataProfileRequest, callback: google.privacy.dlp.v2.DlpService.DeleteTableDataProfileCallback): void;

                    /**
                     * Calls DeleteTableDataProfile.
                     * @param request DeleteTableDataProfileRequest message or plain object
                     * @returns Promise
                     */
                    public deleteTableDataProfile(request: google.privacy.dlp.v2.IDeleteTableDataProfileRequest): 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>;

                    /**
                     * Calls CreateConnection.
                     * @param request CreateConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Connection
                     */
                    public createConnection(request: google.privacy.dlp.v2.ICreateConnectionRequest, callback: google.privacy.dlp.v2.DlpService.CreateConnectionCallback): void;

                    /**
                     * Calls CreateConnection.
                     * @param request CreateConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public createConnection(request: google.privacy.dlp.v2.ICreateConnectionRequest): Promise<google.privacy.dlp.v2.Connection>;

                    /**
                     * Calls GetConnection.
                     * @param request GetConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Connection
                     */
                    public getConnection(request: google.privacy.dlp.v2.IGetConnectionRequest, callback: google.privacy.dlp.v2.DlpService.GetConnectionCallback): void;

                    /**
                     * Calls GetConnection.
                     * @param request GetConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public getConnection(request: google.privacy.dlp.v2.IGetConnectionRequest): Promise<google.privacy.dlp.v2.Connection>;

                    /**
                     * Calls ListConnections.
                     * @param request ListConnectionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and ListConnectionsResponse
                     */
                    public listConnections(request: google.privacy.dlp.v2.IListConnectionsRequest, callback: google.privacy.dlp.v2.DlpService.ListConnectionsCallback): void;

                    /**
                     * Calls ListConnections.
                     * @param request ListConnectionsRequest message or plain object
                     * @returns Promise
                     */
                    public listConnections(request: google.privacy.dlp.v2.IListConnectionsRequest): Promise<google.privacy.dlp.v2.ListConnectionsResponse>;

                    /**
                     * Calls SearchConnections.
                     * @param request SearchConnectionsRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and SearchConnectionsResponse
                     */
                    public searchConnections(request: google.privacy.dlp.v2.ISearchConnectionsRequest, callback: google.privacy.dlp.v2.DlpService.SearchConnectionsCallback): void;

                    /**
                     * Calls SearchConnections.
                     * @param request SearchConnectionsRequest message or plain object
                     * @returns Promise
                     */
                    public searchConnections(request: google.privacy.dlp.v2.ISearchConnectionsRequest): Promise<google.privacy.dlp.v2.SearchConnectionsResponse>;

                    /**
                     * Calls DeleteConnection.
                     * @param request DeleteConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Empty
                     */
                    public deleteConnection(request: google.privacy.dlp.v2.IDeleteConnectionRequest, callback: google.privacy.dlp.v2.DlpService.DeleteConnectionCallback): void;

                    /**
                     * Calls DeleteConnection.
                     * @param request DeleteConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public deleteConnection(request: google.privacy.dlp.v2.IDeleteConnectionRequest): Promise<google.protobuf.Empty>;

                    /**
                     * Calls UpdateConnection.
                     * @param request UpdateConnectionRequest message or plain object
                     * @param callback Node-style callback called with the error, if any, and Connection
                     */
                    public updateConnection(request: google.privacy.dlp.v2.IUpdateConnectionRequest, callback: google.privacy.dlp.v2.DlpService.UpdateConnectionCallback): void;

                    /**
                     * Calls UpdateConnection.
                     * @param request UpdateConnectionRequest message or plain object
                     * @returns Promise
                     */
                    public updateConnection(request: google.privacy.dlp.v2.IUpdateConnectionRequest): Promise<google.privacy.dlp.v2.Connection>;
                }

                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|createDiscoveryConfig}.
                     * @param error Error, if any
                     * @param [response] DiscoveryConfig
                     */
                    type CreateDiscoveryConfigCallback = (error: (Error|null), response?: google.privacy.dlp.v2.DiscoveryConfig) => void;

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

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

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

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|deleteDiscoveryConfig}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteDiscoveryConfigCallback = (error: (Error|null), response?: google.protobuf.Empty) => 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|listProjectDataProfiles}.
                     * @param error Error, if any
                     * @param [response] ListProjectDataProfilesResponse
                     */
                    type ListProjectDataProfilesCallback = (error: (Error|null), response?: google.privacy.dlp.v2.ListProjectDataProfilesResponse) => void;

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

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

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

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

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

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

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

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

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|deleteTableDataProfile}.
                     * @param error Error, if any
                     * @param [response] Empty
                     */
                    type DeleteTableDataProfileCallback = (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;

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

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

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

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

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

                    /**
                     * Callback as used by {@link google.privacy.dlp.v2.DlpService|updateConnection}.
                     * @param error Error, if any
                     * @param [response] Connection
                     */
                    type UpdateConnectionCallback = (error: (Error|null), response?: google.privacy.dlp.v2.Connection) => 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 ExcludeByImageFindings. */
                interface IExcludeByImageFindings {

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

                    /** ExcludeByImageFindings imageContainmentType */
                    imageContainmentType?: (google.privacy.dlp.v2.IImageContainmentType|null);
                }

                /** Represents an ExcludeByImageFindings. */
                class ExcludeByImageFindings implements IExcludeByImageFindings {

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

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

                    /** ExcludeByImageFindings imageContainmentType. */
                    public imageContainmentType?: (google.privacy.dlp.v2.IImageContainmentType|null);

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

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

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

                    /**
                     * Decodes an ExcludeByImageFindings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ExcludeByImageFindings
                     * @throws {Error} If the payload is not 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.ExcludeByImageFindings;

                    /**
                     * Decodes an ExcludeByImageFindings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ExcludeByImageFindings
                     * @throws {Error} If the payload 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.ExcludeByImageFindings;

                    /**
                     * Verifies an ExcludeByImageFindings message.
                     * @param message Plain 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 ExcludeByImageFindings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ExcludeByImageFindings
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ExcludeByImageFindings;

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

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

                    /**
                     * Gets the default type url for ExcludeByImageFindings
                     * @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 excludeByImageFindings */
                    excludeByImageFindings?: (google.privacy.dlp.v2.IExcludeByImageFindings|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 excludeByImageFindings. */
                    public excludeByImageFindings?: (google.privacy.dlp.v2.IExcludeByImageFindings|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"|"excludeByImageFindings");

                    /**
                     * 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 AdjustByMatchingInfoTypes. */
                interface IAdjustByMatchingInfoTypes {

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

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

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

                /** Represents an AdjustByMatchingInfoTypes. */
                class AdjustByMatchingInfoTypes implements IAdjustByMatchingInfoTypes {

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

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

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

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

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

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

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

                    /**
                     * Decodes an AdjustByMatchingInfoTypes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AdjustByMatchingInfoTypes
                     * @throws {Error} If the payload is not 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.AdjustByMatchingInfoTypes;

                    /**
                     * Decodes an AdjustByMatchingInfoTypes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AdjustByMatchingInfoTypes
                     * @throws {Error} If the payload 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.AdjustByMatchingInfoTypes;

                    /**
                     * Verifies an AdjustByMatchingInfoTypes message.
                     * @param message Plain 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 AdjustByMatchingInfoTypes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AdjustByMatchingInfoTypes
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AdjustByMatchingInfoTypes;

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

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

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

                /** Properties of an AdjustByImageFindings. */
                interface IAdjustByImageFindings {

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

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

                    /** AdjustByImageFindings imageContainmentType */
                    imageContainmentType?: (google.privacy.dlp.v2.IImageContainmentType|null);
                }

                /** Represents an AdjustByImageFindings. */
                class AdjustByImageFindings implements IAdjustByImageFindings {

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

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

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

                    /** AdjustByImageFindings imageContainmentType. */
                    public imageContainmentType?: (google.privacy.dlp.v2.IImageContainmentType|null);

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

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

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

                    /**
                     * Decodes an AdjustByImageFindings message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AdjustByImageFindings
                     * @throws {Error} If the payload is not 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.AdjustByImageFindings;

                    /**
                     * Decodes an AdjustByImageFindings message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AdjustByImageFindings
                     * @throws {Error} If the payload 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.AdjustByImageFindings;

                    /**
                     * Verifies an AdjustByImageFindings message.
                     * @param message Plain 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 AdjustByImageFindings message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AdjustByImageFindings
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AdjustByImageFindings;

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

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

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

                /** Properties of an AdjustmentRule. */
                interface IAdjustmentRule {

                    /** AdjustmentRule adjustByMatchingInfoTypes */
                    adjustByMatchingInfoTypes?: (google.privacy.dlp.v2.IAdjustByMatchingInfoTypes|null);

                    /** AdjustmentRule adjustByImageFindings */
                    adjustByImageFindings?: (google.privacy.dlp.v2.IAdjustByImageFindings|null);

                    /** AdjustmentRule likelihoodAdjustment */
                    likelihoodAdjustment?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.ILikelihoodAdjustment|null);
                }

                /** Represents an AdjustmentRule. */
                class AdjustmentRule implements IAdjustmentRule {

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

                    /** AdjustmentRule adjustByMatchingInfoTypes. */
                    public adjustByMatchingInfoTypes?: (google.privacy.dlp.v2.IAdjustByMatchingInfoTypes|null);

                    /** AdjustmentRule adjustByImageFindings. */
                    public adjustByImageFindings?: (google.privacy.dlp.v2.IAdjustByImageFindings|null);

                    /** AdjustmentRule likelihoodAdjustment. */
                    public likelihoodAdjustment?: (google.privacy.dlp.v2.CustomInfoType.DetectionRule.ILikelihoodAdjustment|null);

                    /** AdjustmentRule conditions. */
                    public conditions?: ("adjustByMatchingInfoTypes"|"adjustByImageFindings");

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

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

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

                    /**
                     * Decodes an AdjustmentRule message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AdjustmentRule
                     * @throws {Error} If the payload is not 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.AdjustmentRule;

                    /**
                     * Decodes an AdjustmentRule message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AdjustmentRule
                     * @throws {Error} If the payload 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.AdjustmentRule;

                    /**
                     * Verifies an AdjustmentRule message.
                     * @param message Plain 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 AdjustmentRule message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AdjustmentRule
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AdjustmentRule;

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

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

                    /**
                     * Gets the default type url for AdjustmentRule
                     * @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);

                    /** InspectionRule adjustmentRule */
                    adjustmentRule?: (google.privacy.dlp.v2.IAdjustmentRule|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 adjustmentRule. */
                    public adjustmentRule?: (google.privacy.dlp.v2.IAdjustmentRule|null);

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

                    /**
                     * 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 minLikelihoodPerInfoType */
                    minLikelihoodPerInfoType?: (google.privacy.dlp.v2.InspectConfig.IInfoTypeLikelihood[]|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 minLikelihoodPerInfoType. */
                    public minLikelihoodPerInfoType: google.privacy.dlp.v2.InspectConfig.IInfoTypeLikelihood[];

                    /** 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 an InfoTypeLikelihood. */
                    interface IInfoTypeLikelihood {

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

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

                    /** Represents an InfoTypeLikelihood. */
                    class InfoTypeLikelihood implements IInfoTypeLikelihood {

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

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

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

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

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

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

                        /**
                         * Decodes an InfoTypeLikelihood message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns InfoTypeLikelihood
                         * @throws {Error} If the payload is not 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.InfoTypeLikelihood;

                        /**
                         * Decodes an InfoTypeLikelihood message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns InfoTypeLikelihood
                         * @throws {Error} If the payload 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.InfoTypeLikelihood;

                        /**
                         * Verifies an InfoTypeLikelihood message.
                         * @param message Plain 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 InfoTypeLikelihood message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns InfoTypeLikelihood
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.InspectConfig.InfoTypeLikelihood;

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

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

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

                    /** 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|Buffer|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|Buffer|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,
                        AUDIO = 15,
                        VIDEO = 16,
                        EXECUTABLE = 17,
                        AI_MODEL = 18
                    }
                }

                /** 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);

                    /** MetadataLocation keyValueMetadataLabel */
                    keyValueMetadataLabel?: (google.privacy.dlp.v2.IKeyValueMetadataLabel|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 keyValueMetadataLabel. */
                    public keyValueMetadataLabel?: (google.privacy.dlp.v2.IKeyValueMetadataLabel|null);

                    /** MetadataLocation label. */
                    public label?: ("storageLabel"|"keyValueMetadataLabel");

                    /**
                     * 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 KeyValueMetadataLabel. */
                interface IKeyValueMetadataLabel {

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

                /** Represents a KeyValueMetadataLabel. */
                class KeyValueMetadataLabel implements IKeyValueMetadataLabel {

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

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

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

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

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

                    /**
                     * Decodes a KeyValueMetadataLabel message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns KeyValueMetadataLabel
                     * @throws {Error} If the payload is not 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.KeyValueMetadataLabel;

                    /**
                     * Decodes a KeyValueMetadataLabel message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns KeyValueMetadataLabel
                     * @throws {Error} If the payload 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.KeyValueMetadataLabel;

                    /**
                     * Verifies a KeyValueMetadataLabel message.
                     * @param message Plain 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 KeyValueMetadataLabel message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns KeyValueMetadataLabel
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.KeyValueMetadataLabel;

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

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

                    /**
                     * Gets the default type url for KeyValueMetadataLabel
                     * @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);

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

                    /** RedactImageRequest deidentifyTemplate */
                    deidentifyTemplate?: (string|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);

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

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

                    /**
                     * 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|Buffer|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|Buffer|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 storagePath */
                    storagePath?: (google.privacy.dlp.v2.ICloudStoragePath|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 storagePath. */
                    public storagePath?: (google.privacy.dlp.v2.ICloudStoragePath|null);

                    /** OutputStorageConfig outputSchema. */
                    public outputSchema: (google.privacy.dlp.v2.OutputStorageConfig.OutputSchema|keyof typeof google.privacy.dlp.v2.OutputStorageConfig.OutputSchema);

                    /** OutputStorageConfig type. */
                    public type?: ("table"|"storagePath");

                    /**
                     * 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 numRowsProcessed */
                        numRowsProcessed?: (number|Long|string|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 numRowsProcessed. */
                        public numRowsProcessed: (number|Long|string);

                        /** 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 DataProfileBigQueryRowSchema. */
                interface IDataProfileBigQueryRowSchema {

                    /** DataProfileBigQueryRowSchema tableProfile */
                    tableProfile?: (google.privacy.dlp.v2.ITableDataProfile|null);

                    /** DataProfileBigQueryRowSchema columnProfile */
                    columnProfile?: (google.privacy.dlp.v2.IColumnDataProfile|null);

                    /** DataProfileBigQueryRowSchema fileStoreProfile */
                    fileStoreProfile?: (google.privacy.dlp.v2.IFileStoreDataProfile|null);
                }

                /** Represents a DataProfileBigQueryRowSchema. */
                class DataProfileBigQueryRowSchema implements IDataProfileBigQueryRowSchema {

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

                    /** DataProfileBigQueryRowSchema tableProfile. */
                    public tableProfile?: (google.privacy.dlp.v2.ITableDataProfile|null);

                    /** DataProfileBigQueryRowSchema columnProfile. */
                    public columnProfile?: (google.privacy.dlp.v2.IColumnDataProfile|null);

                    /** DataProfileBigQueryRowSchema fileStoreProfile. */
                    public fileStoreProfile?: (google.privacy.dlp.v2.IFileStoreDataProfile|null);

                    /** DataProfileBigQueryRowSchema dataProfile. */
                    public dataProfile?: ("tableProfile"|"columnProfile"|"fileStoreProfile");

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

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

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

                    /**
                     * Decodes a DataProfileBigQueryRowSchema message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfileBigQueryRowSchema
                     * @throws {Error} If the payload is not 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.DataProfileBigQueryRowSchema;

                    /**
                     * Decodes a DataProfileBigQueryRowSchema message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfileBigQueryRowSchema
                     * @throws {Error} If the payload 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.DataProfileBigQueryRowSchema;

                    /**
                     * Verifies a DataProfileBigQueryRowSchema message.
                     * @param message Plain 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 DataProfileBigQueryRowSchema message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfileBigQueryRowSchema
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileBigQueryRowSchema;

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

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

                    /**
                     * Gets the default type url for DataProfileBigQueryRowSchema
                     * @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 ActionDetails. */
                interface IActionDetails {

                    /** ActionDetails deidentifyDetails */
                    deidentifyDetails?: (google.privacy.dlp.v2.IDeidentifyDataSourceDetails|null);
                }

                /** Represents an ActionDetails. */
                class ActionDetails implements IActionDetails {

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

                    /** ActionDetails deidentifyDetails. */
                    public deidentifyDetails?: (google.privacy.dlp.v2.IDeidentifyDataSourceDetails|null);

                    /** ActionDetails details. */
                    public details?: "deidentifyDetails";

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

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

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

                    /**
                     * Decodes an ActionDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ActionDetails
                     * @throws {Error} If the payload is not 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.ActionDetails;

                    /**
                     * Decodes an ActionDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ActionDetails
                     * @throws {Error} If the payload 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.ActionDetails;

                    /**
                     * Verifies an ActionDetails message.
                     * @param message Plain 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 ActionDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ActionDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ActionDetails;

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

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

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

                /** Properties of a DeidentifyDataSourceStats. */
                interface IDeidentifyDataSourceStats {

                    /** DeidentifyDataSourceStats transformedBytes */
                    transformedBytes?: (number|Long|string|null);

                    /** DeidentifyDataSourceStats transformationCount */
                    transformationCount?: (number|Long|string|null);

                    /** DeidentifyDataSourceStats transformationErrorCount */
                    transformationErrorCount?: (number|Long|string|null);
                }

                /** Represents a DeidentifyDataSourceStats. */
                class DeidentifyDataSourceStats implements IDeidentifyDataSourceStats {

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

                    /** DeidentifyDataSourceStats transformedBytes. */
                    public transformedBytes: (number|Long|string);

                    /** DeidentifyDataSourceStats transformationCount. */
                    public transformationCount: (number|Long|string);

                    /** DeidentifyDataSourceStats transformationErrorCount. */
                    public transformationErrorCount: (number|Long|string);

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

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

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

                    /**
                     * Decodes a DeidentifyDataSourceStats message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeidentifyDataSourceStats
                     * @throws {Error} If the payload is not 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.DeidentifyDataSourceStats;

                    /**
                     * Decodes a DeidentifyDataSourceStats message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeidentifyDataSourceStats
                     * @throws {Error} If the payload 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.DeidentifyDataSourceStats;

                    /**
                     * Verifies a DeidentifyDataSourceStats message.
                     * @param message Plain 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 DeidentifyDataSourceStats message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeidentifyDataSourceStats
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeidentifyDataSourceStats;

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

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

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

                /** Properties of a DeidentifyDataSourceDetails. */
                interface IDeidentifyDataSourceDetails {

                    /** DeidentifyDataSourceDetails requestedOptions */
                    requestedOptions?: (google.privacy.dlp.v2.DeidentifyDataSourceDetails.IRequestedDeidentifyOptions|null);

                    /** DeidentifyDataSourceDetails deidentifyStats */
                    deidentifyStats?: (google.privacy.dlp.v2.IDeidentifyDataSourceStats|null);
                }

                /** Represents a DeidentifyDataSourceDetails. */
                class DeidentifyDataSourceDetails implements IDeidentifyDataSourceDetails {

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

                    /** DeidentifyDataSourceDetails requestedOptions. */
                    public requestedOptions?: (google.privacy.dlp.v2.DeidentifyDataSourceDetails.IRequestedDeidentifyOptions|null);

                    /** DeidentifyDataSourceDetails deidentifyStats. */
                    public deidentifyStats?: (google.privacy.dlp.v2.IDeidentifyDataSourceStats|null);

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

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

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

                    /**
                     * Decodes a DeidentifyDataSourceDetails message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeidentifyDataSourceDetails
                     * @throws {Error} If the payload is not 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.DeidentifyDataSourceDetails;

                    /**
                     * Decodes a DeidentifyDataSourceDetails message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeidentifyDataSourceDetails
                     * @throws {Error} If the payload 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.DeidentifyDataSourceDetails;

                    /**
                     * Verifies a DeidentifyDataSourceDetails message.
                     * @param message Plain 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 DeidentifyDataSourceDetails message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeidentifyDataSourceDetails
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeidentifyDataSourceDetails;

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

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

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

                namespace DeidentifyDataSourceDetails {

                    /** Properties of a RequestedDeidentifyOptions. */
                    interface IRequestedDeidentifyOptions {

                        /** RequestedDeidentifyOptions snapshotDeidentifyTemplate */
                        snapshotDeidentifyTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);

                        /** RequestedDeidentifyOptions snapshotStructuredDeidentifyTemplate */
                        snapshotStructuredDeidentifyTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);

                        /** RequestedDeidentifyOptions snapshotImageRedactTemplate */
                        snapshotImageRedactTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);
                    }

                    /** Represents a RequestedDeidentifyOptions. */
                    class RequestedDeidentifyOptions implements IRequestedDeidentifyOptions {

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

                        /** RequestedDeidentifyOptions snapshotDeidentifyTemplate. */
                        public snapshotDeidentifyTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);

                        /** RequestedDeidentifyOptions snapshotStructuredDeidentifyTemplate. */
                        public snapshotStructuredDeidentifyTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);

                        /** RequestedDeidentifyOptions snapshotImageRedactTemplate. */
                        public snapshotImageRedactTemplate?: (google.privacy.dlp.v2.IDeidentifyTemplate|null);

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

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

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

                        /**
                         * Decodes a RequestedDeidentifyOptions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns RequestedDeidentifyOptions
                         * @throws {Error} If the payload is not 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.DeidentifyDataSourceDetails.RequestedDeidentifyOptions;

                        /**
                         * Decodes a RequestedDeidentifyOptions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns RequestedDeidentifyOptions
                         * @throws {Error} If the payload 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.DeidentifyDataSourceDetails.RequestedDeidentifyOptions;

                        /**
                         * Verifies a RequestedDeidentifyOptions message.
                         * @param message Plain 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 RequestedDeidentifyOptions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns RequestedDeidentifyOptions
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeidentifyDataSourceDetails.RequestedDeidentifyOptions;

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

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

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

                /** Properties of a LocationSupport. */
                interface ILocationSupport {

                    /** LocationSupport regionalizationScope */
                    regionalizationScope?: (google.privacy.dlp.v2.LocationSupport.RegionalizationScope|keyof typeof google.privacy.dlp.v2.LocationSupport.RegionalizationScope|null);

                    /** LocationSupport locations */
                    locations?: (string[]|null);
                }

                /** Represents a LocationSupport. */
                class LocationSupport implements ILocationSupport {

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

                    /** LocationSupport regionalizationScope. */
                    public regionalizationScope: (google.privacy.dlp.v2.LocationSupport.RegionalizationScope|keyof typeof google.privacy.dlp.v2.LocationSupport.RegionalizationScope);

                    /** LocationSupport locations. */
                    public locations: string[];

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

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

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

                    /**
                     * Decodes a LocationSupport message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns LocationSupport
                     * @throws {Error} If the payload is not 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.LocationSupport;

                    /**
                     * Decodes a LocationSupport message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns LocationSupport
                     * @throws {Error} If the payload 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.LocationSupport;

                    /**
                     * Verifies a LocationSupport message.
                     * @param message Plain 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 LocationSupport message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns LocationSupport
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.LocationSupport;

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

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

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

                namespace LocationSupport {

                    /** RegionalizationScope enum. */
                    enum RegionalizationScope {
                        REGIONALIZATION_SCOPE_UNSPECIFIED = 0,
                        REGIONAL = 1,
                        ANY_LOCATION = 2
                    }
                }

                /** 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 locationSupport */
                    locationSupport?: (google.privacy.dlp.v2.ILocationSupport|null);

                    /** InfoTypeDescription example */
                    example?: (string|null);

                    /** InfoTypeDescription versions */
                    versions?: (google.privacy.dlp.v2.IVersionDescription[]|null);

                    /** InfoTypeDescription categories */
                    categories?: (google.privacy.dlp.v2.IInfoTypeCategory[]|null);

                    /** InfoTypeDescription sensitivityScore */
                    sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** InfoTypeDescription specificInfoTypes */
                    specificInfoTypes?: (string[]|null);

                    /** InfoTypeDescription launchStatus */
                    launchStatus?: (google.privacy.dlp.v2.InfoTypeDescription.InfoTypeLaunchStatus|keyof typeof google.privacy.dlp.v2.InfoTypeDescription.InfoTypeLaunchStatus|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 locationSupport. */
                    public locationSupport?: (google.privacy.dlp.v2.ILocationSupport|null);

                    /** InfoTypeDescription example. */
                    public example: string;

                    /** InfoTypeDescription versions. */
                    public versions: google.privacy.dlp.v2.IVersionDescription[];

                    /** InfoTypeDescription categories. */
                    public categories: google.privacy.dlp.v2.IInfoTypeCategory[];

                    /** InfoTypeDescription sensitivityScore. */
                    public sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** InfoTypeDescription specificInfoTypes. */
                    public specificInfoTypes: string[];

                    /** InfoTypeDescription launchStatus. */
                    public launchStatus: (google.privacy.dlp.v2.InfoTypeDescription.InfoTypeLaunchStatus|keyof typeof google.privacy.dlp.v2.InfoTypeDescription.InfoTypeLaunchStatus);

                    /**
                     * 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;
                }

                namespace InfoTypeDescription {

                    /** InfoTypeLaunchStatus enum. */
                    enum InfoTypeLaunchStatus {
                        INFO_TYPE_LAUNCH_STATUS_UNSPECIFIED = 0,
                        GENERAL_AVAILABILITY = 1,
                        PUBLIC_PREVIEW = 2,
                        PRIVATE_PREVIEW = 3
                    }
                }

                /** 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,
                        ARMENIA = 51,
                        AUSTRALIA = 3,
                        AUSTRIA = 53,
                        AZERBAIJAN = 48,
                        BELARUS = 50,
                        BELGIUM = 4,
                        BRAZIL = 5,
                        CANADA = 6,
                        CHILE = 7,
                        CHINA = 8,
                        COLOMBIA = 9,
                        CROATIA = 42,
                        CZECHIA = 52,
                        DENMARK = 10,
                        FRANCE = 11,
                        FINLAND = 12,
                        GERMANY = 13,
                        HONG_KONG = 14,
                        INDIA = 15,
                        INDONESIA = 16,
                        IRELAND = 17,
                        ISRAEL = 18,
                        ITALY = 19,
                        JAPAN = 20,
                        KAZAKHSTAN = 47,
                        KOREA = 21,
                        MEXICO = 22,
                        THE_NETHERLANDS = 23,
                        NEW_ZEALAND = 41,
                        NORWAY = 24,
                        PARAGUAY = 25,
                        PERU = 26,
                        POLAND = 27,
                        PORTUGAL = 28,
                        RUSSIA = 44,
                        SINGAPORE = 29,
                        SOUTH_AFRICA = 30,
                        SPAIN = 31,
                        SWEDEN = 32,
                        SWITZERLAND = 43,
                        TAIWAN = 33,
                        THAILAND = 34,
                        TURKEY = 35,
                        UKRAINE = 45,
                        UNITED_KINGDOM = 36,
                        UNITED_STATES = 37,
                        URUGUAY = 38,
                        UZBEKISTAN = 46,
                        VENEZUELA = 39,
                        INTERNAL = 40
                    }

                    /** 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,
                        CUSTOM = 8
                    }
                }

                /** 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|Buffer|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|Buffer|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|Buffer|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|Buffer|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);

                    /** Error extraInfo */
                    extraInfo?: (google.privacy.dlp.v2.Error.ErrorExtraInfo|keyof typeof google.privacy.dlp.v2.Error.ErrorExtraInfo|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[];

                    /** Error extraInfo. */
                    public extraInfo: (google.privacy.dlp.v2.Error.ErrorExtraInfo|keyof typeof google.privacy.dlp.v2.Error.ErrorExtraInfo);

                    /**
                     * 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;
                }

                namespace Error {

                    /** ErrorExtraInfo enum. */
                    enum ErrorExtraInfo {
                        ERROR_INFO_UNSPECIFIED = 0,
                        IMAGE_SCAN_UNAVAILABLE_IN_REGION = 1,
                        FILE_STORE_CLUSTER_UNSUPPORTED = 2
                    }
                }

                /** 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 publishFindingsToDataplexCatalog */
                    publishFindingsToDataplexCatalog?: (google.privacy.dlp.v2.Action.IPublishFindingsToDataplexCatalog|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 publishFindingsToDataplexCatalog. */
                    public publishFindingsToDataplexCatalog?: (google.privacy.dlp.v2.Action.IPublishFindingsToDataplexCatalog|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"|"publishFindingsToDataplexCatalog"|"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 PublishFindingsToDataplexCatalog. */
                    interface IPublishFindingsToDataplexCatalog {
                    }

                    /** Represents a PublishFindingsToDataplexCatalog. */
                    class PublishFindingsToDataplexCatalog implements IPublishFindingsToDataplexCatalog {

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

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

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

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

                        /**
                         * Decodes a PublishFindingsToDataplexCatalog message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PublishFindingsToDataplexCatalog
                         * @throws {Error} If the payload is not 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.PublishFindingsToDataplexCatalog;

                        /**
                         * Decodes a PublishFindingsToDataplexCatalog message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PublishFindingsToDataplexCatalog
                         * @throws {Error} If the payload 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.PublishFindingsToDataplexCatalog;

                        /**
                         * Verifies a PublishFindingsToDataplexCatalog message.
                         * @param message Plain 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 PublishFindingsToDataplexCatalog message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PublishFindingsToDataplexCatalog
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Action.PublishFindingsToDataplexCatalog;

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

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

                        /**
                         * Gets the default type url for PublishFindingsToDataplexCatalog
                         * @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 CreateDiscoveryConfigRequest. */
                interface ICreateDiscoveryConfigRequest {

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

                    /** CreateDiscoveryConfigRequest discoveryConfig */
                    discoveryConfig?: (google.privacy.dlp.v2.IDiscoveryConfig|null);

                    /** CreateDiscoveryConfigRequest configId */
                    configId?: (string|null);
                }

                /** Represents a CreateDiscoveryConfigRequest. */
                class CreateDiscoveryConfigRequest implements ICreateDiscoveryConfigRequest {

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

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

                    /** CreateDiscoveryConfigRequest discoveryConfig. */
                    public discoveryConfig?: (google.privacy.dlp.v2.IDiscoveryConfig|null);

                    /** CreateDiscoveryConfigRequest configId. */
                    public configId: string;

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

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

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

                    /**
                     * Decodes a CreateDiscoveryConfigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateDiscoveryConfigRequest
                     * @throws {Error} If the payload is not 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.CreateDiscoveryConfigRequest;

                    /**
                     * Decodes a CreateDiscoveryConfigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateDiscoveryConfigRequest
                     * @throws {Error} If the payload 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.CreateDiscoveryConfigRequest;

                    /**
                     * Verifies a CreateDiscoveryConfigRequest message.
                     * @param message Plain 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 CreateDiscoveryConfigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateDiscoveryConfigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CreateDiscoveryConfigRequest;

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

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

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

                /** Properties of an UpdateDiscoveryConfigRequest. */
                interface IUpdateDiscoveryConfigRequest {

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

                    /** UpdateDiscoveryConfigRequest discoveryConfig */
                    discoveryConfig?: (google.privacy.dlp.v2.IDiscoveryConfig|null);

                    /** UpdateDiscoveryConfigRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateDiscoveryConfigRequest. */
                class UpdateDiscoveryConfigRequest implements IUpdateDiscoveryConfigRequest {

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

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

                    /** UpdateDiscoveryConfigRequest discoveryConfig. */
                    public discoveryConfig?: (google.privacy.dlp.v2.IDiscoveryConfig|null);

                    /** UpdateDiscoveryConfigRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

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

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

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

                    /**
                     * Decodes an UpdateDiscoveryConfigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateDiscoveryConfigRequest
                     * @throws {Error} If the payload is not 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.UpdateDiscoveryConfigRequest;

                    /**
                     * Decodes an UpdateDiscoveryConfigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateDiscoveryConfigRequest
                     * @throws {Error} If the payload 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.UpdateDiscoveryConfigRequest;

                    /**
                     * Verifies an UpdateDiscoveryConfigRequest message.
                     * @param message Plain 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 UpdateDiscoveryConfigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateDiscoveryConfigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.UpdateDiscoveryConfigRequest;

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

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

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

                /** Properties of a GetDiscoveryConfigRequest. */
                interface IGetDiscoveryConfigRequest {

                    /** GetDiscoveryConfigRequest name */
                    name?: (string|null);
                }

                /** Represents a GetDiscoveryConfigRequest. */
                class GetDiscoveryConfigRequest implements IGetDiscoveryConfigRequest {

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

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

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

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

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

                    /**
                     * Decodes a GetDiscoveryConfigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetDiscoveryConfigRequest
                     * @throws {Error} If the payload is not 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.GetDiscoveryConfigRequest;

                    /**
                     * Decodes a GetDiscoveryConfigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetDiscoveryConfigRequest
                     * @throws {Error} If the payload 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.GetDiscoveryConfigRequest;

                    /**
                     * Verifies a GetDiscoveryConfigRequest message.
                     * @param message Plain 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 GetDiscoveryConfigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetDiscoveryConfigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetDiscoveryConfigRequest;

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

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

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

                /** Properties of a ListDiscoveryConfigsRequest. */
                interface IListDiscoveryConfigsRequest {

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

                    /** ListDiscoveryConfigsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListDiscoveryConfigsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListDiscoveryConfigsRequest orderBy */
                    orderBy?: (string|null);
                }

                /** Represents a ListDiscoveryConfigsRequest. */
                class ListDiscoveryConfigsRequest implements IListDiscoveryConfigsRequest {

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

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

                    /** ListDiscoveryConfigsRequest pageToken. */
                    public pageToken: string;

                    /** ListDiscoveryConfigsRequest pageSize. */
                    public pageSize: number;

                    /** ListDiscoveryConfigsRequest orderBy. */
                    public orderBy: string;

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

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

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

                    /**
                     * Decodes a ListDiscoveryConfigsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDiscoveryConfigsRequest
                     * @throws {Error} If the payload is not 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.ListDiscoveryConfigsRequest;

                    /**
                     * Decodes a ListDiscoveryConfigsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDiscoveryConfigsRequest
                     * @throws {Error} If the payload 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.ListDiscoveryConfigsRequest;

                    /**
                     * Verifies a ListDiscoveryConfigsRequest message.
                     * @param message Plain 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 ListDiscoveryConfigsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDiscoveryConfigsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListDiscoveryConfigsRequest;

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

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

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

                /** Properties of a ListDiscoveryConfigsResponse. */
                interface IListDiscoveryConfigsResponse {

                    /** ListDiscoveryConfigsResponse discoveryConfigs */
                    discoveryConfigs?: (google.privacy.dlp.v2.IDiscoveryConfig[]|null);

                    /** ListDiscoveryConfigsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListDiscoveryConfigsResponse. */
                class ListDiscoveryConfigsResponse implements IListDiscoveryConfigsResponse {

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

                    /** ListDiscoveryConfigsResponse discoveryConfigs. */
                    public discoveryConfigs: google.privacy.dlp.v2.IDiscoveryConfig[];

                    /** ListDiscoveryConfigsResponse nextPageToken. */
                    public nextPageToken: string;

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

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

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

                    /**
                     * Decodes a ListDiscoveryConfigsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListDiscoveryConfigsResponse
                     * @throws {Error} If the payload is not 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.ListDiscoveryConfigsResponse;

                    /**
                     * Decodes a ListDiscoveryConfigsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListDiscoveryConfigsResponse
                     * @throws {Error} If the payload 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.ListDiscoveryConfigsResponse;

                    /**
                     * Verifies a ListDiscoveryConfigsResponse message.
                     * @param message Plain 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 ListDiscoveryConfigsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListDiscoveryConfigsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListDiscoveryConfigsResponse;

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

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

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

                /** Properties of a DeleteDiscoveryConfigRequest. */
                interface IDeleteDiscoveryConfigRequest {

                    /** DeleteDiscoveryConfigRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteDiscoveryConfigRequest. */
                class DeleteDiscoveryConfigRequest implements IDeleteDiscoveryConfigRequest {

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

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

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

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

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

                    /**
                     * Decodes a DeleteDiscoveryConfigRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteDiscoveryConfigRequest
                     * @throws {Error} If the payload is not 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.DeleteDiscoveryConfigRequest;

                    /**
                     * Decodes a DeleteDiscoveryConfigRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteDiscoveryConfigRequest
                     * @throws {Error} If the payload 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.DeleteDiscoveryConfigRequest;

                    /**
                     * Verifies a DeleteDiscoveryConfigRequest message.
                     * @param message Plain 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 DeleteDiscoveryConfigRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteDiscoveryConfigRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeleteDiscoveryConfigRequest;

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

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

                    /**
                     * Gets the default type url for DeleteDiscoveryConfigRequest
                     * @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;
                }

                /** ProfileGeneration enum. */
                enum ProfileGeneration {
                    PROFILE_GENERATION_UNSPECIFIED = 0,
                    PROFILE_GENERATION_NEW = 1,
                    PROFILE_GENERATION_UPDATE = 2
                }

                /** 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);

                    /** DataProfileAction publishToChronicle */
                    publishToChronicle?: (google.privacy.dlp.v2.DataProfileAction.IPublishToChronicle|null);

                    /** DataProfileAction publishToScc */
                    publishToScc?: (google.privacy.dlp.v2.DataProfileAction.IPublishToSecurityCommandCenter|null);

                    /** DataProfileAction tagResources */
                    tagResources?: (google.privacy.dlp.v2.DataProfileAction.ITagResources|null);

                    /** DataProfileAction publishToDataplexCatalog */
                    publishToDataplexCatalog?: (google.privacy.dlp.v2.DataProfileAction.IPublishToDataplexCatalog|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 publishToChronicle. */
                    public publishToChronicle?: (google.privacy.dlp.v2.DataProfileAction.IPublishToChronicle|null);

                    /** DataProfileAction publishToScc. */
                    public publishToScc?: (google.privacy.dlp.v2.DataProfileAction.IPublishToSecurityCommandCenter|null);

                    /** DataProfileAction tagResources. */
                    public tagResources?: (google.privacy.dlp.v2.DataProfileAction.ITagResources|null);

                    /** DataProfileAction publishToDataplexCatalog. */
                    public publishToDataplexCatalog?: (google.privacy.dlp.v2.DataProfileAction.IPublishToDataplexCatalog|null);

                    /** DataProfileAction action. */
                    public action?: ("exportData"|"pubSubNotification"|"publishToChronicle"|"publishToScc"|"tagResources"|"publishToDataplexCatalog");

                    /**
                     * 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);

                        /** Export sampleFindingsTable */
                        sampleFindingsTable?: (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);

                        /** Export sampleFindingsTable. */
                        public sampleFindingsTable?: (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,
                            FILE_STORE_PROFILE = 3
                        }
                    }

                    /** EventType enum. */
                    enum EventType {
                        EVENT_TYPE_UNSPECIFIED = 0,
                        NEW_PROFILE = 1,
                        CHANGED_PROFILE = 2,
                        SCORE_INCREASED = 3,
                        ERROR_CHANGED = 4
                    }

                    /** Properties of a PublishToChronicle. */
                    interface IPublishToChronicle {
                    }

                    /** Represents a PublishToChronicle. */
                    class PublishToChronicle implements IPublishToChronicle {

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

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

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

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

                        /**
                         * Decodes a PublishToChronicle message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PublishToChronicle
                         * @throws {Error} If the payload is not 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.PublishToChronicle;

                        /**
                         * Decodes a PublishToChronicle message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PublishToChronicle
                         * @throws {Error} If the payload 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.PublishToChronicle;

                        /**
                         * Verifies a PublishToChronicle message.
                         * @param message Plain 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 PublishToChronicle message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PublishToChronicle
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileAction.PublishToChronicle;

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

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

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

                    /** Properties of a PublishToSecurityCommandCenter. */
                    interface IPublishToSecurityCommandCenter {
                    }

                    /** Represents a PublishToSecurityCommandCenter. */
                    class PublishToSecurityCommandCenter implements IPublishToSecurityCommandCenter {

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

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

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

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

                        /**
                         * Decodes a PublishToSecurityCommandCenter message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PublishToSecurityCommandCenter
                         * @throws {Error} If the payload is not 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.PublishToSecurityCommandCenter;

                        /**
                         * Decodes a PublishToSecurityCommandCenter message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PublishToSecurityCommandCenter
                         * @throws {Error} If the payload 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.PublishToSecurityCommandCenter;

                        /**
                         * Verifies a PublishToSecurityCommandCenter message.
                         * @param message Plain 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 PublishToSecurityCommandCenter message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PublishToSecurityCommandCenter
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileAction.PublishToSecurityCommandCenter;

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

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

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

                    /** Properties of a PublishToDataplexCatalog. */
                    interface IPublishToDataplexCatalog {

                        /** PublishToDataplexCatalog lowerDataRiskToLow */
                        lowerDataRiskToLow?: (boolean|null);
                    }

                    /** Represents a PublishToDataplexCatalog. */
                    class PublishToDataplexCatalog implements IPublishToDataplexCatalog {

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

                        /** PublishToDataplexCatalog lowerDataRiskToLow. */
                        public lowerDataRiskToLow: boolean;

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

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

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

                        /**
                         * Decodes a PublishToDataplexCatalog message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns PublishToDataplexCatalog
                         * @throws {Error} If the payload is not 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.PublishToDataplexCatalog;

                        /**
                         * Decodes a PublishToDataplexCatalog message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns PublishToDataplexCatalog
                         * @throws {Error} If the payload 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.PublishToDataplexCatalog;

                        /**
                         * Verifies a PublishToDataplexCatalog message.
                         * @param message Plain 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 PublishToDataplexCatalog message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns PublishToDataplexCatalog
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileAction.PublishToDataplexCatalog;

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

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

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

                    /** Properties of a TagResources. */
                    interface ITagResources {

                        /** TagResources tagConditions */
                        tagConditions?: (google.privacy.dlp.v2.DataProfileAction.TagResources.ITagCondition[]|null);

                        /** TagResources profileGenerationsToTag */
                        profileGenerationsToTag?: (google.privacy.dlp.v2.ProfileGeneration[]|null);

                        /** TagResources lowerDataRiskToLow */
                        lowerDataRiskToLow?: (boolean|null);
                    }

                    /** Represents a TagResources. */
                    class TagResources implements ITagResources {

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

                        /** TagResources tagConditions. */
                        public tagConditions: google.privacy.dlp.v2.DataProfileAction.TagResources.ITagCondition[];

                        /** TagResources profileGenerationsToTag. */
                        public profileGenerationsToTag: google.privacy.dlp.v2.ProfileGeneration[];

                        /** TagResources lowerDataRiskToLow. */
                        public lowerDataRiskToLow: boolean;

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

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

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

                        /**
                         * Decodes a TagResources message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns TagResources
                         * @throws {Error} If the payload is not 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.TagResources;

                        /**
                         * Decodes a TagResources message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns TagResources
                         * @throws {Error} If the payload 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.TagResources;

                        /**
                         * Verifies a TagResources message.
                         * @param message Plain 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 TagResources message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns TagResources
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileAction.TagResources;

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

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

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

                    namespace TagResources {

                        /** Properties of a TagCondition. */
                        interface ITagCondition {

                            /** TagCondition tag */
                            tag?: (google.privacy.dlp.v2.DataProfileAction.TagResources.ITagValue|null);

                            /** TagCondition sensitivityScore */
                            sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);
                        }

                        /** Represents a TagCondition. */
                        class TagCondition implements ITagCondition {

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

                            /** TagCondition tag. */
                            public tag?: (google.privacy.dlp.v2.DataProfileAction.TagResources.ITagValue|null);

                            /** TagCondition sensitivityScore. */
                            public sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                            /** TagCondition type. */
                            public type?: "sensitivityScore";

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

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

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

                            /**
                             * Decodes a TagCondition message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TagCondition
                             * @throws {Error} If the payload is not 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.TagResources.TagCondition;

                            /**
                             * Decodes a TagCondition message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TagCondition
                             * @throws {Error} If the payload 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.TagResources.TagCondition;

                            /**
                             * Verifies a TagCondition message.
                             * @param message Plain 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 TagCondition message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TagCondition
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileAction.TagResources.TagCondition;

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

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

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

                        /** Properties of a TagValue. */
                        interface ITagValue {

                            /** TagValue namespacedValue */
                            namespacedValue?: (string|null);
                        }

                        /** Represents a TagValue. */
                        class TagValue implements ITagValue {

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

                            /** TagValue namespacedValue. */
                            public namespacedValue?: (string|null);

                            /** TagValue format. */
                            public format?: "namespacedValue";

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

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

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

                            /**
                             * Decodes a TagValue message from the specified reader or buffer.
                             * @param reader Reader or buffer to decode from
                             * @param [length] Message length if known beforehand
                             * @returns TagValue
                             * @throws {Error} If the payload is not 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.TagResources.TagValue;

                            /**
                             * Decodes a TagValue message from the specified reader or buffer, length delimited.
                             * @param reader Reader or buffer to decode from
                             * @returns TagValue
                             * @throws {Error} If the payload 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.TagResources.TagValue;

                            /**
                             * Verifies a TagValue message.
                             * @param message Plain 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 TagValue message from a plain object. Also converts values to their respective internal types.
                             * @param object Plain object
                             * @returns TagValue
                             */
                            public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileAction.TagResources.TagValue;

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

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

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

                /** Properties of a DataProfileFinding. */
                interface IDataProfileFinding {

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

                    /** DataProfileFinding infotype */
                    infotype?: (google.privacy.dlp.v2.IInfoType|null);

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

                    /** DataProfileFinding dataProfileResourceName */
                    dataProfileResourceName?: (string|null);

                    /** DataProfileFinding findingId */
                    findingId?: (string|null);

                    /** DataProfileFinding timestamp */
                    timestamp?: (google.protobuf.ITimestamp|null);

                    /** DataProfileFinding location */
                    location?: (google.privacy.dlp.v2.IDataProfileFindingLocation|null);

                    /** DataProfileFinding resourceVisibility */
                    resourceVisibility?: (google.privacy.dlp.v2.ResourceVisibility|keyof typeof google.privacy.dlp.v2.ResourceVisibility|null);

                    /** DataProfileFinding fullResourceName */
                    fullResourceName?: (string|null);

                    /** DataProfileFinding dataSourceType */
                    dataSourceType?: (google.privacy.dlp.v2.IDataSourceType|null);
                }

                /** Represents a DataProfileFinding. */
                class DataProfileFinding implements IDataProfileFinding {

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

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

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

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

                    /** DataProfileFinding dataProfileResourceName. */
                    public dataProfileResourceName: string;

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

                    /** DataProfileFinding timestamp. */
                    public timestamp?: (google.protobuf.ITimestamp|null);

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

                    /** DataProfileFinding resourceVisibility. */
                    public resourceVisibility: (google.privacy.dlp.v2.ResourceVisibility|keyof typeof google.privacy.dlp.v2.ResourceVisibility);

                    /** DataProfileFinding fullResourceName. */
                    public fullResourceName: string;

                    /** DataProfileFinding dataSourceType. */
                    public dataSourceType?: (google.privacy.dlp.v2.IDataSourceType|null);

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

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

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

                    /**
                     * Decodes a DataProfileFinding message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfileFinding
                     * @throws {Error} If the payload is not 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.DataProfileFinding;

                    /**
                     * Decodes a DataProfileFinding message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfileFinding
                     * @throws {Error} If the payload 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.DataProfileFinding;

                    /**
                     * Verifies a DataProfileFinding message.
                     * @param message Plain 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 DataProfileFinding message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfileFinding
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileFinding;

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

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

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

                /** Properties of a DataProfileFindingLocation. */
                interface IDataProfileFindingLocation {

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

                    /** DataProfileFindingLocation dataProfileFindingRecordLocation */
                    dataProfileFindingRecordLocation?: (google.privacy.dlp.v2.IDataProfileFindingRecordLocation|null);
                }

                /** Represents a DataProfileFindingLocation. */
                class DataProfileFindingLocation implements IDataProfileFindingLocation {

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

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

                    /** DataProfileFindingLocation dataProfileFindingRecordLocation. */
                    public dataProfileFindingRecordLocation?: (google.privacy.dlp.v2.IDataProfileFindingRecordLocation|null);

                    /** DataProfileFindingLocation locationExtraDetails. */
                    public locationExtraDetails?: "dataProfileFindingRecordLocation";

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

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

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

                    /**
                     * Decodes a DataProfileFindingLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfileFindingLocation
                     * @throws {Error} If the payload is not 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.DataProfileFindingLocation;

                    /**
                     * Decodes a DataProfileFindingLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfileFindingLocation
                     * @throws {Error} If the payload 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.DataProfileFindingLocation;

                    /**
                     * Verifies a DataProfileFindingLocation message.
                     * @param message Plain 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 DataProfileFindingLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfileFindingLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileFindingLocation;

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

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

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

                /** Properties of a DataProfileFindingRecordLocation. */
                interface IDataProfileFindingRecordLocation {

                    /** DataProfileFindingRecordLocation field */
                    field?: (google.privacy.dlp.v2.IFieldId|null);
                }

                /** Represents a DataProfileFindingRecordLocation. */
                class DataProfileFindingRecordLocation implements IDataProfileFindingRecordLocation {

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

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

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

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

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

                    /**
                     * Decodes a DataProfileFindingRecordLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataProfileFindingRecordLocation
                     * @throws {Error} If the payload is not 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.DataProfileFindingRecordLocation;

                    /**
                     * Decodes a DataProfileFindingRecordLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataProfileFindingRecordLocation
                     * @throws {Error} If the payload 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.DataProfileFindingRecordLocation;

                    /**
                     * Verifies a DataProfileFindingRecordLocation message.
                     * @param message Plain 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 DataProfileFindingRecordLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataProfileFindingRecordLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataProfileFindingRecordLocation;

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

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

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

                /** Properties of a DataProfileJobConfig. */
                interface IDataProfileJobConfig {

                    /** DataProfileJobConfig location */
                    location?: (google.privacy.dlp.v2.IDataProfileLocation|null);

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

                    /** DataProfileJobConfig otherCloudStartingLocation */
                    otherCloudStartingLocation?: (google.privacy.dlp.v2.IOtherCloudDiscoveryStartingLocation|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 otherCloudStartingLocation. */
                    public otherCloudStartingLocation?: (google.privacy.dlp.v2.IOtherCloudDiscoveryStartingLocation|null);

                    /** 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 BigQueryRegex. */
                interface IBigQueryRegex {

                    /** BigQueryRegex projectIdRegex */
                    projectIdRegex?: (string|null);

                    /** BigQueryRegex datasetIdRegex */
                    datasetIdRegex?: (string|null);

                    /** BigQueryRegex tableIdRegex */
                    tableIdRegex?: (string|null);
                }

                /** Represents a BigQueryRegex. */
                class BigQueryRegex implements IBigQueryRegex {

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

                    /** BigQueryRegex projectIdRegex. */
                    public projectIdRegex: string;

                    /** BigQueryRegex datasetIdRegex. */
                    public datasetIdRegex: string;

                    /** BigQueryRegex tableIdRegex. */
                    public tableIdRegex: string;

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

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

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

                    /**
                     * Decodes a BigQueryRegex message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryRegex
                     * @throws {Error} If the payload is not 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.BigQueryRegex;

                    /**
                     * Decodes a BigQueryRegex message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryRegex
                     * @throws {Error} If the payload 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.BigQueryRegex;

                    /**
                     * Verifies a BigQueryRegex message.
                     * @param message Plain 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 BigQueryRegex message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryRegex
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BigQueryRegex;

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

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

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

                /** Properties of a BigQueryRegexes. */
                interface IBigQueryRegexes {

                    /** BigQueryRegexes patterns */
                    patterns?: (google.privacy.dlp.v2.IBigQueryRegex[]|null);
                }

                /** Represents a BigQueryRegexes. */
                class BigQueryRegexes implements IBigQueryRegexes {

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

                    /** BigQueryRegexes patterns. */
                    public patterns: google.privacy.dlp.v2.IBigQueryRegex[];

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

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

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

                    /**
                     * Decodes a BigQueryRegexes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryRegexes
                     * @throws {Error} If the payload is not 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.BigQueryRegexes;

                    /**
                     * Decodes a BigQueryRegexes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryRegexes
                     * @throws {Error} If the payload 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.BigQueryRegexes;

                    /**
                     * Verifies a BigQueryRegexes message.
                     * @param message Plain 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 BigQueryRegexes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryRegexes
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BigQueryRegexes;

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

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

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

                /** Properties of a BigQueryTableTypes. */
                interface IBigQueryTableTypes {

                    /** BigQueryTableTypes types */
                    types?: (google.privacy.dlp.v2.BigQueryTableType[]|null);
                }

                /** Represents a BigQueryTableTypes. */
                class BigQueryTableTypes implements IBigQueryTableTypes {

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

                    /** BigQueryTableTypes types. */
                    public types: google.privacy.dlp.v2.BigQueryTableType[];

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

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

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

                    /**
                     * Decodes a BigQueryTableTypes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryTableTypes
                     * @throws {Error} If the payload is not 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.BigQueryTableTypes;

                    /**
                     * Decodes a BigQueryTableTypes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryTableTypes
                     * @throws {Error} If the payload 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.BigQueryTableTypes;

                    /**
                     * Verifies a BigQueryTableTypes message.
                     * @param message Plain 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 BigQueryTableTypes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryTableTypes
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BigQueryTableTypes;

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

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

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

                /** BigQueryTableTypeCollection enum. */
                enum BigQueryTableTypeCollection {
                    BIG_QUERY_COLLECTION_UNSPECIFIED = 0,
                    BIG_QUERY_COLLECTION_ALL_TYPES = 1,
                    BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES = 2
                }

                /** BigQueryTableType enum. */
                enum BigQueryTableType {
                    BIG_QUERY_TABLE_TYPE_UNSPECIFIED = 0,
                    BIG_QUERY_TABLE_TYPE_TABLE = 1,
                    BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE = 2,
                    BIG_QUERY_TABLE_TYPE_SNAPSHOT = 3
                }

                /** DataProfileUpdateFrequency enum. */
                enum DataProfileUpdateFrequency {
                    UPDATE_FREQUENCY_UNSPECIFIED = 0,
                    UPDATE_FREQUENCY_NEVER = 1,
                    UPDATE_FREQUENCY_DAILY = 2,
                    UPDATE_FREQUENCY_MONTHLY = 4
                }

                /** Properties of a Disabled. */
                interface IDisabled {
                }

                /** Represents a Disabled. */
                class Disabled implements IDisabled {

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

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

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

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

                    /**
                     * Decodes a Disabled message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Disabled
                     * @throws {Error} If the payload is not 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.Disabled;

                    /**
                     * Decodes a Disabled message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Disabled
                     * @throws {Error} If the payload 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.Disabled;

                    /**
                     * Verifies a Disabled message.
                     * @param message Plain 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 Disabled message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Disabled
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Disabled;

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

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

                    /**
                     * Gets the default type url for Disabled
                     * @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 DiscoveryConfig. */
                interface IDiscoveryConfig {

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

                    /** DiscoveryConfig displayName */
                    displayName?: (string|null);

                    /** DiscoveryConfig orgConfig */
                    orgConfig?: (google.privacy.dlp.v2.DiscoveryConfig.IOrgConfig|null);

                    /** DiscoveryConfig otherCloudStartingLocation */
                    otherCloudStartingLocation?: (google.privacy.dlp.v2.IOtherCloudDiscoveryStartingLocation|null);

                    /** DiscoveryConfig inspectTemplates */
                    inspectTemplates?: (string[]|null);

                    /** DiscoveryConfig actions */
                    actions?: (google.privacy.dlp.v2.IDataProfileAction[]|null);

                    /** DiscoveryConfig targets */
                    targets?: (google.privacy.dlp.v2.IDiscoveryTarget[]|null);

                    /** DiscoveryConfig errors */
                    errors?: (google.privacy.dlp.v2.IError[]|null);

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

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

                    /** DiscoveryConfig lastRunTime */
                    lastRunTime?: (google.protobuf.ITimestamp|null);

                    /** DiscoveryConfig status */
                    status?: (google.privacy.dlp.v2.DiscoveryConfig.Status|keyof typeof google.privacy.dlp.v2.DiscoveryConfig.Status|null);

                    /** DiscoveryConfig processingLocation */
                    processingLocation?: (google.privacy.dlp.v2.IProcessingLocation|null);
                }

                /** Represents a DiscoveryConfig. */
                class DiscoveryConfig implements IDiscoveryConfig {

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

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

                    /** DiscoveryConfig displayName. */
                    public displayName: string;

                    /** DiscoveryConfig orgConfig. */
                    public orgConfig?: (google.privacy.dlp.v2.DiscoveryConfig.IOrgConfig|null);

                    /** DiscoveryConfig otherCloudStartingLocation. */
                    public otherCloudStartingLocation?: (google.privacy.dlp.v2.IOtherCloudDiscoveryStartingLocation|null);

                    /** DiscoveryConfig inspectTemplates. */
                    public inspectTemplates: string[];

                    /** DiscoveryConfig actions. */
                    public actions: google.privacy.dlp.v2.IDataProfileAction[];

                    /** DiscoveryConfig targets. */
                    public targets: google.privacy.dlp.v2.IDiscoveryTarget[];

                    /** DiscoveryConfig errors. */
                    public errors: google.privacy.dlp.v2.IError[];

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

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

                    /** DiscoveryConfig lastRunTime. */
                    public lastRunTime?: (google.protobuf.ITimestamp|null);

                    /** DiscoveryConfig status. */
                    public status: (google.privacy.dlp.v2.DiscoveryConfig.Status|keyof typeof google.privacy.dlp.v2.DiscoveryConfig.Status);

                    /** DiscoveryConfig processingLocation. */
                    public processingLocation?: (google.privacy.dlp.v2.IProcessingLocation|null);

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

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

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

                    /**
                     * Decodes a DiscoveryConfig message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryConfig
                     * @throws {Error} If the payload is not 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.DiscoveryConfig;

                    /**
                     * Decodes a DiscoveryConfig message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryConfig
                     * @throws {Error} If the payload 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.DiscoveryConfig;

                    /**
                     * Verifies a DiscoveryConfig message.
                     * @param message Plain 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 DiscoveryConfig message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryConfig
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryConfig;

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

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

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

                namespace DiscoveryConfig {

                    /** Properties of an OrgConfig. */
                    interface IOrgConfig {

                        /** OrgConfig location */
                        location?: (google.privacy.dlp.v2.IDiscoveryStartingLocation|null);

                        /** OrgConfig projectId */
                        projectId?: (string|null);
                    }

                    /** Represents an OrgConfig. */
                    class OrgConfig implements IOrgConfig {

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

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

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

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

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

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

                        /**
                         * Decodes an OrgConfig message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns OrgConfig
                         * @throws {Error} If the payload is not 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.DiscoveryConfig.OrgConfig;

                        /**
                         * Decodes an OrgConfig message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns OrgConfig
                         * @throws {Error} If the payload 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.DiscoveryConfig.OrgConfig;

                        /**
                         * Verifies an OrgConfig message.
                         * @param message Plain 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 OrgConfig message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns OrgConfig
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryConfig.OrgConfig;

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

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

                        /**
                         * Gets the default type url for OrgConfig
                         * @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,
                        RUNNING = 1,
                        PAUSED = 2
                    }
                }

                /** Properties of a DiscoveryTarget. */
                interface IDiscoveryTarget {

                    /** DiscoveryTarget bigQueryTarget */
                    bigQueryTarget?: (google.privacy.dlp.v2.IBigQueryDiscoveryTarget|null);

                    /** DiscoveryTarget cloudSqlTarget */
                    cloudSqlTarget?: (google.privacy.dlp.v2.ICloudSqlDiscoveryTarget|null);

                    /** DiscoveryTarget secretsTarget */
                    secretsTarget?: (google.privacy.dlp.v2.ISecretsDiscoveryTarget|null);

                    /** DiscoveryTarget cloudStorageTarget */
                    cloudStorageTarget?: (google.privacy.dlp.v2.ICloudStorageDiscoveryTarget|null);

                    /** DiscoveryTarget otherCloudTarget */
                    otherCloudTarget?: (google.privacy.dlp.v2.IOtherCloudDiscoveryTarget|null);

                    /** DiscoveryTarget vertexDatasetTarget */
                    vertexDatasetTarget?: (google.privacy.dlp.v2.IVertexDatasetDiscoveryTarget|null);
                }

                /** Represents a DiscoveryTarget. */
                class DiscoveryTarget implements IDiscoveryTarget {

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

                    /** DiscoveryTarget bigQueryTarget. */
                    public bigQueryTarget?: (google.privacy.dlp.v2.IBigQueryDiscoveryTarget|null);

                    /** DiscoveryTarget cloudSqlTarget. */
                    public cloudSqlTarget?: (google.privacy.dlp.v2.ICloudSqlDiscoveryTarget|null);

                    /** DiscoveryTarget secretsTarget. */
                    public secretsTarget?: (google.privacy.dlp.v2.ISecretsDiscoveryTarget|null);

                    /** DiscoveryTarget cloudStorageTarget. */
                    public cloudStorageTarget?: (google.privacy.dlp.v2.ICloudStorageDiscoveryTarget|null);

                    /** DiscoveryTarget otherCloudTarget. */
                    public otherCloudTarget?: (google.privacy.dlp.v2.IOtherCloudDiscoveryTarget|null);

                    /** DiscoveryTarget vertexDatasetTarget. */
                    public vertexDatasetTarget?: (google.privacy.dlp.v2.IVertexDatasetDiscoveryTarget|null);

                    /** DiscoveryTarget target. */
                    public target?: ("bigQueryTarget"|"cloudSqlTarget"|"secretsTarget"|"cloudStorageTarget"|"otherCloudTarget"|"vertexDatasetTarget");

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

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

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

                    /**
                     * Decodes a DiscoveryTarget message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryTarget
                     * @throws {Error} If the payload is not 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.DiscoveryTarget;

                    /**
                     * Decodes a DiscoveryTarget message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryTarget
                     * @throws {Error} If the payload 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.DiscoveryTarget;

                    /**
                     * Verifies a DiscoveryTarget message.
                     * @param message Plain 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 DiscoveryTarget message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryTarget
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryTarget;

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

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

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

                /** Properties of a BigQueryDiscoveryTarget. */
                interface IBigQueryDiscoveryTarget {

                    /** BigQueryDiscoveryTarget filter */
                    filter?: (google.privacy.dlp.v2.IDiscoveryBigQueryFilter|null);

                    /** BigQueryDiscoveryTarget conditions */
                    conditions?: (google.privacy.dlp.v2.IDiscoveryBigQueryConditions|null);

                    /** BigQueryDiscoveryTarget cadence */
                    cadence?: (google.privacy.dlp.v2.IDiscoveryGenerationCadence|null);

                    /** BigQueryDiscoveryTarget disabled */
                    disabled?: (google.privacy.dlp.v2.IDisabled|null);
                }

                /** Represents a BigQueryDiscoveryTarget. */
                class BigQueryDiscoveryTarget implements IBigQueryDiscoveryTarget {

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

                    /** BigQueryDiscoveryTarget filter. */
                    public filter?: (google.privacy.dlp.v2.IDiscoveryBigQueryFilter|null);

                    /** BigQueryDiscoveryTarget conditions. */
                    public conditions?: (google.privacy.dlp.v2.IDiscoveryBigQueryConditions|null);

                    /** BigQueryDiscoveryTarget cadence. */
                    public cadence?: (google.privacy.dlp.v2.IDiscoveryGenerationCadence|null);

                    /** BigQueryDiscoveryTarget disabled. */
                    public disabled?: (google.privacy.dlp.v2.IDisabled|null);

                    /** BigQueryDiscoveryTarget frequency. */
                    public frequency?: ("cadence"|"disabled");

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

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

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

                    /**
                     * Decodes a BigQueryDiscoveryTarget message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryDiscoveryTarget
                     * @throws {Error} If the payload is not 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.BigQueryDiscoveryTarget;

                    /**
                     * Decodes a BigQueryDiscoveryTarget message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryDiscoveryTarget
                     * @throws {Error} If the payload 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.BigQueryDiscoveryTarget;

                    /**
                     * Verifies a BigQueryDiscoveryTarget message.
                     * @param message Plain 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 BigQueryDiscoveryTarget message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryDiscoveryTarget
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BigQueryDiscoveryTarget;

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

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

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

                /** Properties of a DiscoveryBigQueryFilter. */
                interface IDiscoveryBigQueryFilter {

                    /** DiscoveryBigQueryFilter tables */
                    tables?: (google.privacy.dlp.v2.IBigQueryTableCollection|null);

                    /** DiscoveryBigQueryFilter otherTables */
                    otherTables?: (google.privacy.dlp.v2.DiscoveryBigQueryFilter.IAllOtherBigQueryTables|null);

                    /** DiscoveryBigQueryFilter tableReference */
                    tableReference?: (google.privacy.dlp.v2.ITableReference|null);
                }

                /** Represents a DiscoveryBigQueryFilter. */
                class DiscoveryBigQueryFilter implements IDiscoveryBigQueryFilter {

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

                    /** DiscoveryBigQueryFilter tables. */
                    public tables?: (google.privacy.dlp.v2.IBigQueryTableCollection|null);

                    /** DiscoveryBigQueryFilter otherTables. */
                    public otherTables?: (google.privacy.dlp.v2.DiscoveryBigQueryFilter.IAllOtherBigQueryTables|null);

                    /** DiscoveryBigQueryFilter tableReference. */
                    public tableReference?: (google.privacy.dlp.v2.ITableReference|null);

                    /** DiscoveryBigQueryFilter filter. */
                    public filter?: ("tables"|"otherTables"|"tableReference");

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

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

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

                    /**
                     * Decodes a DiscoveryBigQueryFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryBigQueryFilter
                     * @throws {Error} If the payload is not 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.DiscoveryBigQueryFilter;

                    /**
                     * Decodes a DiscoveryBigQueryFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryBigQueryFilter
                     * @throws {Error} If the payload 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.DiscoveryBigQueryFilter;

                    /**
                     * Verifies a DiscoveryBigQueryFilter message.
                     * @param message Plain 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 DiscoveryBigQueryFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryBigQueryFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryBigQueryFilter;

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

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

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

                namespace DiscoveryBigQueryFilter {

                    /** Properties of an AllOtherBigQueryTables. */
                    interface IAllOtherBigQueryTables {
                    }

                    /** Represents an AllOtherBigQueryTables. */
                    class AllOtherBigQueryTables implements IAllOtherBigQueryTables {

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

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

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

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

                        /**
                         * Decodes an AllOtherBigQueryTables message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AllOtherBigQueryTables
                         * @throws {Error} If the payload is not 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.DiscoveryBigQueryFilter.AllOtherBigQueryTables;

                        /**
                         * Decodes an AllOtherBigQueryTables message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AllOtherBigQueryTables
                         * @throws {Error} If the payload 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.DiscoveryBigQueryFilter.AllOtherBigQueryTables;

                        /**
                         * Verifies an AllOtherBigQueryTables message.
                         * @param message Plain 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 AllOtherBigQueryTables message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AllOtherBigQueryTables
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryBigQueryFilter.AllOtherBigQueryTables;

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

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

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

                /** Properties of a BigQueryTableCollection. */
                interface IBigQueryTableCollection {

                    /** BigQueryTableCollection includeRegexes */
                    includeRegexes?: (google.privacy.dlp.v2.IBigQueryRegexes|null);
                }

                /** Represents a BigQueryTableCollection. */
                class BigQueryTableCollection implements IBigQueryTableCollection {

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

                    /** BigQueryTableCollection includeRegexes. */
                    public includeRegexes?: (google.privacy.dlp.v2.IBigQueryRegexes|null);

                    /** BigQueryTableCollection pattern. */
                    public pattern?: "includeRegexes";

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

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

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

                    /**
                     * Decodes a BigQueryTableCollection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns BigQueryTableCollection
                     * @throws {Error} If the payload is not 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.BigQueryTableCollection;

                    /**
                     * Decodes a BigQueryTableCollection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns BigQueryTableCollection
                     * @throws {Error} If the payload 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.BigQueryTableCollection;

                    /**
                     * Verifies a BigQueryTableCollection message.
                     * @param message Plain 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 BigQueryTableCollection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns BigQueryTableCollection
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.BigQueryTableCollection;

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

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

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

                /** Properties of a DiscoveryBigQueryConditions. */
                interface IDiscoveryBigQueryConditions {

                    /** DiscoveryBigQueryConditions createdAfter */
                    createdAfter?: (google.protobuf.ITimestamp|null);

                    /** DiscoveryBigQueryConditions types */
                    types?: (google.privacy.dlp.v2.IBigQueryTableTypes|null);

                    /** DiscoveryBigQueryConditions typeCollection */
                    typeCollection?: (google.privacy.dlp.v2.BigQueryTableTypeCollection|keyof typeof google.privacy.dlp.v2.BigQueryTableTypeCollection|null);

                    /** DiscoveryBigQueryConditions orConditions */
                    orConditions?: (google.privacy.dlp.v2.DiscoveryBigQueryConditions.IOrConditions|null);
                }

                /** Represents a DiscoveryBigQueryConditions. */
                class DiscoveryBigQueryConditions implements IDiscoveryBigQueryConditions {

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

                    /** DiscoveryBigQueryConditions createdAfter. */
                    public createdAfter?: (google.protobuf.ITimestamp|null);

                    /** DiscoveryBigQueryConditions types. */
                    public types?: (google.privacy.dlp.v2.IBigQueryTableTypes|null);

                    /** DiscoveryBigQueryConditions typeCollection. */
                    public typeCollection?: (google.privacy.dlp.v2.BigQueryTableTypeCollection|keyof typeof google.privacy.dlp.v2.BigQueryTableTypeCollection|null);

                    /** DiscoveryBigQueryConditions orConditions. */
                    public orConditions?: (google.privacy.dlp.v2.DiscoveryBigQueryConditions.IOrConditions|null);

                    /** DiscoveryBigQueryConditions includedTypes. */
                    public includedTypes?: ("types"|"typeCollection");

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

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

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

                    /**
                     * Decodes a DiscoveryBigQueryConditions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryBigQueryConditions
                     * @throws {Error} If the payload is not 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.DiscoveryBigQueryConditions;

                    /**
                     * Decodes a DiscoveryBigQueryConditions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryBigQueryConditions
                     * @throws {Error} If the payload 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.DiscoveryBigQueryConditions;

                    /**
                     * Verifies a DiscoveryBigQueryConditions message.
                     * @param message Plain 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 DiscoveryBigQueryConditions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryBigQueryConditions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryBigQueryConditions;

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

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

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

                namespace DiscoveryBigQueryConditions {

                    /** Properties of an OrConditions. */
                    interface IOrConditions {

                        /** OrConditions minRowCount */
                        minRowCount?: (number|null);

                        /** OrConditions minAge */
                        minAge?: (google.protobuf.IDuration|null);
                    }

                    /** Represents an OrConditions. */
                    class OrConditions implements IOrConditions {

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

                        /** OrConditions minRowCount. */
                        public minRowCount: number;

                        /** OrConditions minAge. */
                        public minAge?: (google.protobuf.IDuration|null);

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

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

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

                        /**
                         * Decodes an OrConditions message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns OrConditions
                         * @throws {Error} If the payload is not 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.DiscoveryBigQueryConditions.OrConditions;

                        /**
                         * Decodes an OrConditions message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns OrConditions
                         * @throws {Error} If the payload 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.DiscoveryBigQueryConditions.OrConditions;

                        /**
                         * Verifies an OrConditions message.
                         * @param message Plain 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 OrConditions message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns OrConditions
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryBigQueryConditions.OrConditions;

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

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

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

                /** Properties of a DiscoveryGenerationCadence. */
                interface IDiscoveryGenerationCadence {

                    /** DiscoveryGenerationCadence schemaModifiedCadence */
                    schemaModifiedCadence?: (google.privacy.dlp.v2.IDiscoverySchemaModifiedCadence|null);

                    /** DiscoveryGenerationCadence tableModifiedCadence */
                    tableModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryTableModifiedCadence|null);

                    /** DiscoveryGenerationCadence inspectTemplateModifiedCadence */
                    inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);

                    /** DiscoveryGenerationCadence refreshFrequency */
                    refreshFrequency?: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency|null);
                }

                /** Represents a DiscoveryGenerationCadence. */
                class DiscoveryGenerationCadence implements IDiscoveryGenerationCadence {

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

                    /** DiscoveryGenerationCadence schemaModifiedCadence. */
                    public schemaModifiedCadence?: (google.privacy.dlp.v2.IDiscoverySchemaModifiedCadence|null);

                    /** DiscoveryGenerationCadence tableModifiedCadence. */
                    public tableModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryTableModifiedCadence|null);

                    /** DiscoveryGenerationCadence inspectTemplateModifiedCadence. */
                    public inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);

                    /** DiscoveryGenerationCadence refreshFrequency. */
                    public refreshFrequency: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency);

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

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

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

                    /**
                     * Decodes a DiscoveryGenerationCadence message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryGenerationCadence
                     * @throws {Error} If the payload is not 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.DiscoveryGenerationCadence;

                    /**
                     * Decodes a DiscoveryGenerationCadence message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryGenerationCadence
                     * @throws {Error} If the payload 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.DiscoveryGenerationCadence;

                    /**
                     * Verifies a DiscoveryGenerationCadence message.
                     * @param message Plain 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 DiscoveryGenerationCadence message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryGenerationCadence
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryGenerationCadence;

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

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

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

                /** Properties of a DiscoveryTableModifiedCadence. */
                interface IDiscoveryTableModifiedCadence {

                    /** DiscoveryTableModifiedCadence types */
                    types?: (google.privacy.dlp.v2.BigQueryTableModification[]|null);

                    /** DiscoveryTableModifiedCadence frequency */
                    frequency?: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency|null);
                }

                /** Represents a DiscoveryTableModifiedCadence. */
                class DiscoveryTableModifiedCadence implements IDiscoveryTableModifiedCadence {

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

                    /** DiscoveryTableModifiedCadence types. */
                    public types: google.privacy.dlp.v2.BigQueryTableModification[];

                    /** DiscoveryTableModifiedCadence frequency. */
                    public frequency: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency);

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

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

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

                    /**
                     * Decodes a DiscoveryTableModifiedCadence message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryTableModifiedCadence
                     * @throws {Error} If the payload is not 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.DiscoveryTableModifiedCadence;

                    /**
                     * Decodes a DiscoveryTableModifiedCadence message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryTableModifiedCadence
                     * @throws {Error} If the payload 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.DiscoveryTableModifiedCadence;

                    /**
                     * Verifies a DiscoveryTableModifiedCadence message.
                     * @param message Plain 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 DiscoveryTableModifiedCadence message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryTableModifiedCadence
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryTableModifiedCadence;

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

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

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

                /** BigQueryTableModification enum. */
                enum BigQueryTableModification {
                    TABLE_MODIFICATION_UNSPECIFIED = 0,
                    TABLE_MODIFIED_TIMESTAMP = 1
                }

                /** Properties of a DiscoverySchemaModifiedCadence. */
                interface IDiscoverySchemaModifiedCadence {

                    /** DiscoverySchemaModifiedCadence types */
                    types?: (google.privacy.dlp.v2.BigQuerySchemaModification[]|null);

                    /** DiscoverySchemaModifiedCadence frequency */
                    frequency?: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency|null);
                }

                /** Represents a DiscoverySchemaModifiedCadence. */
                class DiscoverySchemaModifiedCadence implements IDiscoverySchemaModifiedCadence {

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

                    /** DiscoverySchemaModifiedCadence types. */
                    public types: google.privacy.dlp.v2.BigQuerySchemaModification[];

                    /** DiscoverySchemaModifiedCadence frequency. */
                    public frequency: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency);

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

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

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

                    /**
                     * Decodes a DiscoverySchemaModifiedCadence message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoverySchemaModifiedCadence
                     * @throws {Error} If the payload is not 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.DiscoverySchemaModifiedCadence;

                    /**
                     * Decodes a DiscoverySchemaModifiedCadence message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoverySchemaModifiedCadence
                     * @throws {Error} If the payload 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.DiscoverySchemaModifiedCadence;

                    /**
                     * Verifies a DiscoverySchemaModifiedCadence message.
                     * @param message Plain 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 DiscoverySchemaModifiedCadence message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoverySchemaModifiedCadence
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoverySchemaModifiedCadence;

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

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

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

                /** BigQuerySchemaModification enum. */
                enum BigQuerySchemaModification {
                    SCHEMA_MODIFICATION_UNSPECIFIED = 0,
                    SCHEMA_NEW_COLUMNS = 1,
                    SCHEMA_REMOVED_COLUMNS = 2
                }

                /** Properties of a DiscoveryInspectTemplateModifiedCadence. */
                interface IDiscoveryInspectTemplateModifiedCadence {

                    /** DiscoveryInspectTemplateModifiedCadence frequency */
                    frequency?: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency|null);
                }

                /** Represents a DiscoveryInspectTemplateModifiedCadence. */
                class DiscoveryInspectTemplateModifiedCadence implements IDiscoveryInspectTemplateModifiedCadence {

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

                    /** DiscoveryInspectTemplateModifiedCadence frequency. */
                    public frequency: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency);

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

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

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

                    /**
                     * Decodes a DiscoveryInspectTemplateModifiedCadence message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryInspectTemplateModifiedCadence
                     * @throws {Error} If the payload is not 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.DiscoveryInspectTemplateModifiedCadence;

                    /**
                     * Decodes a DiscoveryInspectTemplateModifiedCadence message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryInspectTemplateModifiedCadence
                     * @throws {Error} If the payload 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.DiscoveryInspectTemplateModifiedCadence;

                    /**
                     * Verifies a DiscoveryInspectTemplateModifiedCadence message.
                     * @param message Plain 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 DiscoveryInspectTemplateModifiedCadence message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryInspectTemplateModifiedCadence
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryInspectTemplateModifiedCadence;

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

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

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

                /** Properties of a CloudSqlDiscoveryTarget. */
                interface ICloudSqlDiscoveryTarget {

                    /** CloudSqlDiscoveryTarget filter */
                    filter?: (google.privacy.dlp.v2.IDiscoveryCloudSqlFilter|null);

                    /** CloudSqlDiscoveryTarget conditions */
                    conditions?: (google.privacy.dlp.v2.IDiscoveryCloudSqlConditions|null);

                    /** CloudSqlDiscoveryTarget generationCadence */
                    generationCadence?: (google.privacy.dlp.v2.IDiscoveryCloudSqlGenerationCadence|null);

                    /** CloudSqlDiscoveryTarget disabled */
                    disabled?: (google.privacy.dlp.v2.IDisabled|null);
                }

                /** Represents a CloudSqlDiscoveryTarget. */
                class CloudSqlDiscoveryTarget implements ICloudSqlDiscoveryTarget {

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

                    /** CloudSqlDiscoveryTarget filter. */
                    public filter?: (google.privacy.dlp.v2.IDiscoveryCloudSqlFilter|null);

                    /** CloudSqlDiscoveryTarget conditions. */
                    public conditions?: (google.privacy.dlp.v2.IDiscoveryCloudSqlConditions|null);

                    /** CloudSqlDiscoveryTarget generationCadence. */
                    public generationCadence?: (google.privacy.dlp.v2.IDiscoveryCloudSqlGenerationCadence|null);

                    /** CloudSqlDiscoveryTarget disabled. */
                    public disabled?: (google.privacy.dlp.v2.IDisabled|null);

                    /** CloudSqlDiscoveryTarget cadence. */
                    public cadence?: ("generationCadence"|"disabled");

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

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

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

                    /**
                     * Decodes a CloudSqlDiscoveryTarget message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudSqlDiscoveryTarget
                     * @throws {Error} If the payload is not 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.CloudSqlDiscoveryTarget;

                    /**
                     * Decodes a CloudSqlDiscoveryTarget message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudSqlDiscoveryTarget
                     * @throws {Error} If the payload 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.CloudSqlDiscoveryTarget;

                    /**
                     * Verifies a CloudSqlDiscoveryTarget message.
                     * @param message Plain 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 CloudSqlDiscoveryTarget message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudSqlDiscoveryTarget
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudSqlDiscoveryTarget;

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

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

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

                /** Properties of a DiscoveryCloudSqlFilter. */
                interface IDiscoveryCloudSqlFilter {

                    /** DiscoveryCloudSqlFilter collection */
                    collection?: (google.privacy.dlp.v2.IDatabaseResourceCollection|null);

                    /** DiscoveryCloudSqlFilter others */
                    others?: (google.privacy.dlp.v2.IAllOtherDatabaseResources|null);

                    /** DiscoveryCloudSqlFilter databaseResourceReference */
                    databaseResourceReference?: (google.privacy.dlp.v2.IDatabaseResourceReference|null);
                }

                /** Represents a DiscoveryCloudSqlFilter. */
                class DiscoveryCloudSqlFilter implements IDiscoveryCloudSqlFilter {

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

                    /** DiscoveryCloudSqlFilter collection. */
                    public collection?: (google.privacy.dlp.v2.IDatabaseResourceCollection|null);

                    /** DiscoveryCloudSqlFilter others. */
                    public others?: (google.privacy.dlp.v2.IAllOtherDatabaseResources|null);

                    /** DiscoveryCloudSqlFilter databaseResourceReference. */
                    public databaseResourceReference?: (google.privacy.dlp.v2.IDatabaseResourceReference|null);

                    /** DiscoveryCloudSqlFilter filter. */
                    public filter?: ("collection"|"others"|"databaseResourceReference");

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

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

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

                    /**
                     * Decodes a DiscoveryCloudSqlFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryCloudSqlFilter
                     * @throws {Error} If the payload is not 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.DiscoveryCloudSqlFilter;

                    /**
                     * Decodes a DiscoveryCloudSqlFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryCloudSqlFilter
                     * @throws {Error} If the payload 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.DiscoveryCloudSqlFilter;

                    /**
                     * Verifies a DiscoveryCloudSqlFilter message.
                     * @param message Plain 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 DiscoveryCloudSqlFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryCloudSqlFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryCloudSqlFilter;

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

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

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

                /** Properties of a DatabaseResourceCollection. */
                interface IDatabaseResourceCollection {

                    /** DatabaseResourceCollection includeRegexes */
                    includeRegexes?: (google.privacy.dlp.v2.IDatabaseResourceRegexes|null);
                }

                /** Represents a DatabaseResourceCollection. */
                class DatabaseResourceCollection implements IDatabaseResourceCollection {

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

                    /** DatabaseResourceCollection includeRegexes. */
                    public includeRegexes?: (google.privacy.dlp.v2.IDatabaseResourceRegexes|null);

                    /** DatabaseResourceCollection pattern. */
                    public pattern?: "includeRegexes";

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

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

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

                    /**
                     * Decodes a DatabaseResourceCollection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DatabaseResourceCollection
                     * @throws {Error} If the payload is not 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.DatabaseResourceCollection;

                    /**
                     * Decodes a DatabaseResourceCollection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DatabaseResourceCollection
                     * @throws {Error} If the payload 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.DatabaseResourceCollection;

                    /**
                     * Verifies a DatabaseResourceCollection message.
                     * @param message Plain 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 DatabaseResourceCollection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DatabaseResourceCollection
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DatabaseResourceCollection;

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

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

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

                /** Properties of a DatabaseResourceRegexes. */
                interface IDatabaseResourceRegexes {

                    /** DatabaseResourceRegexes patterns */
                    patterns?: (google.privacy.dlp.v2.IDatabaseResourceRegex[]|null);
                }

                /** Represents a DatabaseResourceRegexes. */
                class DatabaseResourceRegexes implements IDatabaseResourceRegexes {

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

                    /** DatabaseResourceRegexes patterns. */
                    public patterns: google.privacy.dlp.v2.IDatabaseResourceRegex[];

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

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

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

                    /**
                     * Decodes a DatabaseResourceRegexes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DatabaseResourceRegexes
                     * @throws {Error} If the payload is not 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.DatabaseResourceRegexes;

                    /**
                     * Decodes a DatabaseResourceRegexes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DatabaseResourceRegexes
                     * @throws {Error} If the payload 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.DatabaseResourceRegexes;

                    /**
                     * Verifies a DatabaseResourceRegexes message.
                     * @param message Plain 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 DatabaseResourceRegexes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DatabaseResourceRegexes
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DatabaseResourceRegexes;

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

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

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

                /** Properties of a DatabaseResourceRegex. */
                interface IDatabaseResourceRegex {

                    /** DatabaseResourceRegex projectIdRegex */
                    projectIdRegex?: (string|null);

                    /** DatabaseResourceRegex instanceRegex */
                    instanceRegex?: (string|null);

                    /** DatabaseResourceRegex databaseRegex */
                    databaseRegex?: (string|null);

                    /** DatabaseResourceRegex databaseResourceNameRegex */
                    databaseResourceNameRegex?: (string|null);
                }

                /** Represents a DatabaseResourceRegex. */
                class DatabaseResourceRegex implements IDatabaseResourceRegex {

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

                    /** DatabaseResourceRegex projectIdRegex. */
                    public projectIdRegex: string;

                    /** DatabaseResourceRegex instanceRegex. */
                    public instanceRegex: string;

                    /** DatabaseResourceRegex databaseRegex. */
                    public databaseRegex: string;

                    /** DatabaseResourceRegex databaseResourceNameRegex. */
                    public databaseResourceNameRegex: string;

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

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

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

                    /**
                     * Decodes a DatabaseResourceRegex message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DatabaseResourceRegex
                     * @throws {Error} If the payload is not 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.DatabaseResourceRegex;

                    /**
                     * Decodes a DatabaseResourceRegex message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DatabaseResourceRegex
                     * @throws {Error} If the payload 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.DatabaseResourceRegex;

                    /**
                     * Verifies a DatabaseResourceRegex message.
                     * @param message Plain 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 DatabaseResourceRegex message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DatabaseResourceRegex
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DatabaseResourceRegex;

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

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

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

                /** Properties of an AllOtherDatabaseResources. */
                interface IAllOtherDatabaseResources {
                }

                /** Represents an AllOtherDatabaseResources. */
                class AllOtherDatabaseResources implements IAllOtherDatabaseResources {

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

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

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

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

                    /**
                     * Decodes an AllOtherDatabaseResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllOtherDatabaseResources
                     * @throws {Error} If the payload is not 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.AllOtherDatabaseResources;

                    /**
                     * Decodes an AllOtherDatabaseResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllOtherDatabaseResources
                     * @throws {Error} If the payload 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.AllOtherDatabaseResources;

                    /**
                     * Verifies an AllOtherDatabaseResources message.
                     * @param message Plain 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 AllOtherDatabaseResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllOtherDatabaseResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AllOtherDatabaseResources;

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

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

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

                /** Properties of a DatabaseResourceReference. */
                interface IDatabaseResourceReference {

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

                    /** DatabaseResourceReference instance */
                    instance?: (string|null);

                    /** DatabaseResourceReference database */
                    database?: (string|null);

                    /** DatabaseResourceReference databaseResource */
                    databaseResource?: (string|null);
                }

                /** Represents a DatabaseResourceReference. */
                class DatabaseResourceReference implements IDatabaseResourceReference {

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

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

                    /** DatabaseResourceReference instance. */
                    public instance: string;

                    /** DatabaseResourceReference database. */
                    public database: string;

                    /** DatabaseResourceReference databaseResource. */
                    public databaseResource: string;

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

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

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

                    /**
                     * Decodes a DatabaseResourceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DatabaseResourceReference
                     * @throws {Error} If the payload is not 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.DatabaseResourceReference;

                    /**
                     * Decodes a DatabaseResourceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DatabaseResourceReference
                     * @throws {Error} If the payload 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.DatabaseResourceReference;

                    /**
                     * Verifies a DatabaseResourceReference message.
                     * @param message Plain 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 DatabaseResourceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DatabaseResourceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DatabaseResourceReference;

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

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

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

                /** Properties of a DiscoveryCloudSqlConditions. */
                interface IDiscoveryCloudSqlConditions {

                    /** DiscoveryCloudSqlConditions databaseEngines */
                    databaseEngines?: (google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseEngine[]|null);

                    /** DiscoveryCloudSqlConditions types */
                    types?: (google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseResourceType[]|null);
                }

                /** Represents a DiscoveryCloudSqlConditions. */
                class DiscoveryCloudSqlConditions implements IDiscoveryCloudSqlConditions {

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

                    /** DiscoveryCloudSqlConditions databaseEngines. */
                    public databaseEngines: google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseEngine[];

                    /** DiscoveryCloudSqlConditions types. */
                    public types: google.privacy.dlp.v2.DiscoveryCloudSqlConditions.DatabaseResourceType[];

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

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

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

                    /**
                     * Decodes a DiscoveryCloudSqlConditions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryCloudSqlConditions
                     * @throws {Error} If the payload is not 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.DiscoveryCloudSqlConditions;

                    /**
                     * Decodes a DiscoveryCloudSqlConditions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryCloudSqlConditions
                     * @throws {Error} If the payload 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.DiscoveryCloudSqlConditions;

                    /**
                     * Verifies a DiscoveryCloudSqlConditions message.
                     * @param message Plain 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 DiscoveryCloudSqlConditions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryCloudSqlConditions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryCloudSqlConditions;

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

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

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

                namespace DiscoveryCloudSqlConditions {

                    /** DatabaseEngine enum. */
                    enum DatabaseEngine {
                        DATABASE_ENGINE_UNSPECIFIED = 0,
                        ALL_SUPPORTED_DATABASE_ENGINES = 1,
                        MYSQL = 2,
                        POSTGRES = 3
                    }

                    /** DatabaseResourceType enum. */
                    enum DatabaseResourceType {
                        DATABASE_RESOURCE_TYPE_UNSPECIFIED = 0,
                        DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES = 1,
                        DATABASE_RESOURCE_TYPE_TABLE = 2
                    }
                }

                /** Properties of a DiscoveryCloudSqlGenerationCadence. */
                interface IDiscoveryCloudSqlGenerationCadence {

                    /** DiscoveryCloudSqlGenerationCadence schemaModifiedCadence */
                    schemaModifiedCadence?: (google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.ISchemaModifiedCadence|null);

                    /** DiscoveryCloudSqlGenerationCadence refreshFrequency */
                    refreshFrequency?: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency|null);

                    /** DiscoveryCloudSqlGenerationCadence inspectTemplateModifiedCadence */
                    inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);
                }

                /** Represents a DiscoveryCloudSqlGenerationCadence. */
                class DiscoveryCloudSqlGenerationCadence implements IDiscoveryCloudSqlGenerationCadence {

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

                    /** DiscoveryCloudSqlGenerationCadence schemaModifiedCadence. */
                    public schemaModifiedCadence?: (google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.ISchemaModifiedCadence|null);

                    /** DiscoveryCloudSqlGenerationCadence refreshFrequency. */
                    public refreshFrequency: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency);

                    /** DiscoveryCloudSqlGenerationCadence inspectTemplateModifiedCadence. */
                    public inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);

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

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

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

                    /**
                     * Decodes a DiscoveryCloudSqlGenerationCadence message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryCloudSqlGenerationCadence
                     * @throws {Error} If the payload is not 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.DiscoveryCloudSqlGenerationCadence;

                    /**
                     * Decodes a DiscoveryCloudSqlGenerationCadence message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryCloudSqlGenerationCadence
                     * @throws {Error} If the payload 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.DiscoveryCloudSqlGenerationCadence;

                    /**
                     * Verifies a DiscoveryCloudSqlGenerationCadence message.
                     * @param message Plain 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 DiscoveryCloudSqlGenerationCadence message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryCloudSqlGenerationCadence
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence;

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

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

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

                namespace DiscoveryCloudSqlGenerationCadence {

                    /** Properties of a SchemaModifiedCadence. */
                    interface ISchemaModifiedCadence {

                        /** SchemaModifiedCadence types */
                        types?: (google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence.CloudSqlSchemaModification[]|null);

                        /** SchemaModifiedCadence frequency */
                        frequency?: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency|null);
                    }

                    /** Represents a SchemaModifiedCadence. */
                    class SchemaModifiedCadence implements ISchemaModifiedCadence {

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

                        /** SchemaModifiedCadence types. */
                        public types: google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence.CloudSqlSchemaModification[];

                        /** SchemaModifiedCadence frequency. */
                        public frequency: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency);

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

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

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

                        /**
                         * Decodes a SchemaModifiedCadence message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns SchemaModifiedCadence
                         * @throws {Error} If the payload is not 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.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence;

                        /**
                         * Decodes a SchemaModifiedCadence message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns SchemaModifiedCadence
                         * @throws {Error} If the payload 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.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence;

                        /**
                         * Verifies a SchemaModifiedCadence message.
                         * @param message Plain 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 SchemaModifiedCadence message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns SchemaModifiedCadence
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryCloudSqlGenerationCadence.SchemaModifiedCadence;

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

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

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

                    namespace SchemaModifiedCadence {

                        /** CloudSqlSchemaModification enum. */
                        enum CloudSqlSchemaModification {
                            SQL_SCHEMA_MODIFICATION_UNSPECIFIED = 0,
                            NEW_COLUMNS = 1,
                            REMOVED_COLUMNS = 2
                        }
                    }
                }

                /** Properties of a SecretsDiscoveryTarget. */
                interface ISecretsDiscoveryTarget {
                }

                /** Represents a SecretsDiscoveryTarget. */
                class SecretsDiscoveryTarget implements ISecretsDiscoveryTarget {

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

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

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

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

                    /**
                     * Decodes a SecretsDiscoveryTarget message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecretsDiscoveryTarget
                     * @throws {Error} If the payload is not 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.SecretsDiscoveryTarget;

                    /**
                     * Decodes a SecretsDiscoveryTarget message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecretsDiscoveryTarget
                     * @throws {Error} If the payload 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.SecretsDiscoveryTarget;

                    /**
                     * Verifies a SecretsDiscoveryTarget message.
                     * @param message Plain 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 SecretsDiscoveryTarget message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecretsDiscoveryTarget
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.SecretsDiscoveryTarget;

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

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

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

                /** Properties of a CloudStorageDiscoveryTarget. */
                interface ICloudStorageDiscoveryTarget {

                    /** CloudStorageDiscoveryTarget filter */
                    filter?: (google.privacy.dlp.v2.IDiscoveryCloudStorageFilter|null);

                    /** CloudStorageDiscoveryTarget conditions */
                    conditions?: (google.privacy.dlp.v2.IDiscoveryFileStoreConditions|null);

                    /** CloudStorageDiscoveryTarget generationCadence */
                    generationCadence?: (google.privacy.dlp.v2.IDiscoveryCloudStorageGenerationCadence|null);

                    /** CloudStorageDiscoveryTarget disabled */
                    disabled?: (google.privacy.dlp.v2.IDisabled|null);
                }

                /** Represents a CloudStorageDiscoveryTarget. */
                class CloudStorageDiscoveryTarget implements ICloudStorageDiscoveryTarget {

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

                    /** CloudStorageDiscoveryTarget filter. */
                    public filter?: (google.privacy.dlp.v2.IDiscoveryCloudStorageFilter|null);

                    /** CloudStorageDiscoveryTarget conditions. */
                    public conditions?: (google.privacy.dlp.v2.IDiscoveryFileStoreConditions|null);

                    /** CloudStorageDiscoveryTarget generationCadence. */
                    public generationCadence?: (google.privacy.dlp.v2.IDiscoveryCloudStorageGenerationCadence|null);

                    /** CloudStorageDiscoveryTarget disabled. */
                    public disabled?: (google.privacy.dlp.v2.IDisabled|null);

                    /** CloudStorageDiscoveryTarget cadence. */
                    public cadence?: ("generationCadence"|"disabled");

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

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

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

                    /**
                     * Decodes a CloudStorageDiscoveryTarget message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudStorageDiscoveryTarget
                     * @throws {Error} If the payload is not 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.CloudStorageDiscoveryTarget;

                    /**
                     * Decodes a CloudStorageDiscoveryTarget message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudStorageDiscoveryTarget
                     * @throws {Error} If the payload 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.CloudStorageDiscoveryTarget;

                    /**
                     * Verifies a CloudStorageDiscoveryTarget message.
                     * @param message Plain 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 CloudStorageDiscoveryTarget message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudStorageDiscoveryTarget
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudStorageDiscoveryTarget;

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

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

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

                /** Properties of a DiscoveryCloudStorageFilter. */
                interface IDiscoveryCloudStorageFilter {

                    /** DiscoveryCloudStorageFilter collection */
                    collection?: (google.privacy.dlp.v2.IFileStoreCollection|null);

                    /** DiscoveryCloudStorageFilter cloudStorageResourceReference */
                    cloudStorageResourceReference?: (google.privacy.dlp.v2.ICloudStorageResourceReference|null);

                    /** DiscoveryCloudStorageFilter others */
                    others?: (google.privacy.dlp.v2.IAllOtherResources|null);
                }

                /** Represents a DiscoveryCloudStorageFilter. */
                class DiscoveryCloudStorageFilter implements IDiscoveryCloudStorageFilter {

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

                    /** DiscoveryCloudStorageFilter collection. */
                    public collection?: (google.privacy.dlp.v2.IFileStoreCollection|null);

                    /** DiscoveryCloudStorageFilter cloudStorageResourceReference. */
                    public cloudStorageResourceReference?: (google.privacy.dlp.v2.ICloudStorageResourceReference|null);

                    /** DiscoveryCloudStorageFilter others. */
                    public others?: (google.privacy.dlp.v2.IAllOtherResources|null);

                    /** DiscoveryCloudStorageFilter filter. */
                    public filter?: ("collection"|"cloudStorageResourceReference"|"others");

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

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

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

                    /**
                     * Decodes a DiscoveryCloudStorageFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryCloudStorageFilter
                     * @throws {Error} If the payload is not 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.DiscoveryCloudStorageFilter;

                    /**
                     * Decodes a DiscoveryCloudStorageFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryCloudStorageFilter
                     * @throws {Error} If the payload 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.DiscoveryCloudStorageFilter;

                    /**
                     * Verifies a DiscoveryCloudStorageFilter message.
                     * @param message Plain 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 DiscoveryCloudStorageFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryCloudStorageFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryCloudStorageFilter;

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

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

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

                /** Properties of a FileStoreCollection. */
                interface IFileStoreCollection {

                    /** FileStoreCollection includeRegexes */
                    includeRegexes?: (google.privacy.dlp.v2.IFileStoreRegexes|null);

                    /** FileStoreCollection includeTags */
                    includeTags?: (google.privacy.dlp.v2.ITagFilters|null);
                }

                /** Represents a FileStoreCollection. */
                class FileStoreCollection implements IFileStoreCollection {

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

                    /** FileStoreCollection includeRegexes. */
                    public includeRegexes?: (google.privacy.dlp.v2.IFileStoreRegexes|null);

                    /** FileStoreCollection includeTags. */
                    public includeTags?: (google.privacy.dlp.v2.ITagFilters|null);

                    /** FileStoreCollection pattern. */
                    public pattern?: "includeRegexes";

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

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

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

                    /**
                     * Decodes a FileStoreCollection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileStoreCollection
                     * @throws {Error} If the payload is not 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.FileStoreCollection;

                    /**
                     * Decodes a FileStoreCollection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileStoreCollection
                     * @throws {Error} If the payload 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.FileStoreCollection;

                    /**
                     * Verifies a FileStoreCollection message.
                     * @param message Plain 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 FileStoreCollection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileStoreCollection
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FileStoreCollection;

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

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

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

                /** Properties of a FileStoreRegexes. */
                interface IFileStoreRegexes {

                    /** FileStoreRegexes patterns */
                    patterns?: (google.privacy.dlp.v2.IFileStoreRegex[]|null);
                }

                /** Represents a FileStoreRegexes. */
                class FileStoreRegexes implements IFileStoreRegexes {

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

                    /** FileStoreRegexes patterns. */
                    public patterns: google.privacy.dlp.v2.IFileStoreRegex[];

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

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

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

                    /**
                     * Decodes a FileStoreRegexes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileStoreRegexes
                     * @throws {Error} If the payload is not 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.FileStoreRegexes;

                    /**
                     * Decodes a FileStoreRegexes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileStoreRegexes
                     * @throws {Error} If the payload 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.FileStoreRegexes;

                    /**
                     * Verifies a FileStoreRegexes message.
                     * @param message Plain 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 FileStoreRegexes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileStoreRegexes
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FileStoreRegexes;

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

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

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

                /** Properties of a FileStoreRegex. */
                interface IFileStoreRegex {

                    /** FileStoreRegex cloudStorageRegex */
                    cloudStorageRegex?: (google.privacy.dlp.v2.ICloudStorageRegex|null);
                }

                /** Represents a FileStoreRegex. */
                class FileStoreRegex implements IFileStoreRegex {

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

                    /** FileStoreRegex cloudStorageRegex. */
                    public cloudStorageRegex?: (google.privacy.dlp.v2.ICloudStorageRegex|null);

                    /** FileStoreRegex resourceRegex. */
                    public resourceRegex?: "cloudStorageRegex";

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

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

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

                    /**
                     * Decodes a FileStoreRegex message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileStoreRegex
                     * @throws {Error} If the payload is not 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.FileStoreRegex;

                    /**
                     * Decodes a FileStoreRegex message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileStoreRegex
                     * @throws {Error} If the payload 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.FileStoreRegex;

                    /**
                     * Verifies a FileStoreRegex message.
                     * @param message Plain 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 FileStoreRegex message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileStoreRegex
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FileStoreRegex;

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

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

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

                /** Properties of a CloudStorageRegex. */
                interface ICloudStorageRegex {

                    /** CloudStorageRegex projectIdRegex */
                    projectIdRegex?: (string|null);

                    /** CloudStorageRegex bucketNameRegex */
                    bucketNameRegex?: (string|null);
                }

                /** Represents a CloudStorageRegex. */
                class CloudStorageRegex implements ICloudStorageRegex {

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

                    /** CloudStorageRegex projectIdRegex. */
                    public projectIdRegex: string;

                    /** CloudStorageRegex bucketNameRegex. */
                    public bucketNameRegex: string;

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

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

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

                    /**
                     * Decodes a CloudStorageRegex message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudStorageRegex
                     * @throws {Error} If the payload is not 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.CloudStorageRegex;

                    /**
                     * Decodes a CloudStorageRegex message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudStorageRegex
                     * @throws {Error} If the payload 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.CloudStorageRegex;

                    /**
                     * Verifies a CloudStorageRegex message.
                     * @param message Plain 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 CloudStorageRegex message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudStorageRegex
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudStorageRegex;

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

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

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

                /** Properties of a CloudStorageResourceReference. */
                interface ICloudStorageResourceReference {

                    /** CloudStorageResourceReference bucketName */
                    bucketName?: (string|null);

                    /** CloudStorageResourceReference projectId */
                    projectId?: (string|null);
                }

                /** Represents a CloudStorageResourceReference. */
                class CloudStorageResourceReference implements ICloudStorageResourceReference {

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

                    /** CloudStorageResourceReference bucketName. */
                    public bucketName: string;

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

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

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

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

                    /**
                     * Decodes a CloudStorageResourceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudStorageResourceReference
                     * @throws {Error} If the payload is not 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.CloudStorageResourceReference;

                    /**
                     * Decodes a CloudStorageResourceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudStorageResourceReference
                     * @throws {Error} If the payload 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.CloudStorageResourceReference;

                    /**
                     * Verifies a CloudStorageResourceReference message.
                     * @param message Plain 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 CloudStorageResourceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudStorageResourceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudStorageResourceReference;

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

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

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

                /** Properties of a DiscoveryCloudStorageGenerationCadence. */
                interface IDiscoveryCloudStorageGenerationCadence {

                    /** DiscoveryCloudStorageGenerationCadence refreshFrequency */
                    refreshFrequency?: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency|null);

                    /** DiscoveryCloudStorageGenerationCadence inspectTemplateModifiedCadence */
                    inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);
                }

                /** Represents a DiscoveryCloudStorageGenerationCadence. */
                class DiscoveryCloudStorageGenerationCadence implements IDiscoveryCloudStorageGenerationCadence {

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

                    /** DiscoveryCloudStorageGenerationCadence refreshFrequency. */
                    public refreshFrequency: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency);

                    /** DiscoveryCloudStorageGenerationCadence inspectTemplateModifiedCadence. */
                    public inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);

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

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

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

                    /**
                     * Decodes a DiscoveryCloudStorageGenerationCadence message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryCloudStorageGenerationCadence
                     * @throws {Error} If the payload is not 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.DiscoveryCloudStorageGenerationCadence;

                    /**
                     * Decodes a DiscoveryCloudStorageGenerationCadence message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryCloudStorageGenerationCadence
                     * @throws {Error} If the payload 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.DiscoveryCloudStorageGenerationCadence;

                    /**
                     * Verifies a DiscoveryCloudStorageGenerationCadence message.
                     * @param message Plain 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 DiscoveryCloudStorageGenerationCadence message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryCloudStorageGenerationCadence
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryCloudStorageGenerationCadence;

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

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

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

                /** Properties of a DiscoveryCloudStorageConditions. */
                interface IDiscoveryCloudStorageConditions {

                    /** DiscoveryCloudStorageConditions includedObjectAttributes */
                    includedObjectAttributes?: (google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageObjectAttribute[]|null);

                    /** DiscoveryCloudStorageConditions includedBucketAttributes */
                    includedBucketAttributes?: (google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageBucketAttribute[]|null);
                }

                /** Represents a DiscoveryCloudStorageConditions. */
                class DiscoveryCloudStorageConditions implements IDiscoveryCloudStorageConditions {

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

                    /** DiscoveryCloudStorageConditions includedObjectAttributes. */
                    public includedObjectAttributes: google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageObjectAttribute[];

                    /** DiscoveryCloudStorageConditions includedBucketAttributes. */
                    public includedBucketAttributes: google.privacy.dlp.v2.DiscoveryCloudStorageConditions.CloudStorageBucketAttribute[];

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

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

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

                    /**
                     * Decodes a DiscoveryCloudStorageConditions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryCloudStorageConditions
                     * @throws {Error} If the payload is not 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.DiscoveryCloudStorageConditions;

                    /**
                     * Decodes a DiscoveryCloudStorageConditions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryCloudStorageConditions
                     * @throws {Error} If the payload 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.DiscoveryCloudStorageConditions;

                    /**
                     * Verifies a DiscoveryCloudStorageConditions message.
                     * @param message Plain 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 DiscoveryCloudStorageConditions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryCloudStorageConditions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryCloudStorageConditions;

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

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

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

                namespace DiscoveryCloudStorageConditions {

                    /** CloudStorageObjectAttribute enum. */
                    enum CloudStorageObjectAttribute {
                        CLOUD_STORAGE_OBJECT_ATTRIBUTE_UNSPECIFIED = 0,
                        ALL_SUPPORTED_OBJECTS = 1,
                        STANDARD = 2,
                        NEARLINE = 3,
                        COLDLINE = 4,
                        ARCHIVE = 5,
                        REGIONAL = 6,
                        MULTI_REGIONAL = 7,
                        DURABLE_REDUCED_AVAILABILITY = 8
                    }

                    /** CloudStorageBucketAttribute enum. */
                    enum CloudStorageBucketAttribute {
                        CLOUD_STORAGE_BUCKET_ATTRIBUTE_UNSPECIFIED = 0,
                        ALL_SUPPORTED_BUCKETS = 1,
                        AUTOCLASS_DISABLED = 2,
                        AUTOCLASS_ENABLED = 3
                    }
                }

                /** Properties of a DiscoveryFileStoreConditions. */
                interface IDiscoveryFileStoreConditions {

                    /** DiscoveryFileStoreConditions createdAfter */
                    createdAfter?: (google.protobuf.ITimestamp|null);

                    /** DiscoveryFileStoreConditions minAge */
                    minAge?: (google.protobuf.IDuration|null);

                    /** DiscoveryFileStoreConditions cloudStorageConditions */
                    cloudStorageConditions?: (google.privacy.dlp.v2.IDiscoveryCloudStorageConditions|null);
                }

                /** Represents a DiscoveryFileStoreConditions. */
                class DiscoveryFileStoreConditions implements IDiscoveryFileStoreConditions {

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

                    /** DiscoveryFileStoreConditions createdAfter. */
                    public createdAfter?: (google.protobuf.ITimestamp|null);

                    /** DiscoveryFileStoreConditions minAge. */
                    public minAge?: (google.protobuf.IDuration|null);

                    /** DiscoveryFileStoreConditions cloudStorageConditions. */
                    public cloudStorageConditions?: (google.privacy.dlp.v2.IDiscoveryCloudStorageConditions|null);

                    /** DiscoveryFileStoreConditions conditions. */
                    public conditions?: "cloudStorageConditions";

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

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

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

                    /**
                     * Decodes a DiscoveryFileStoreConditions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryFileStoreConditions
                     * @throws {Error} If the payload is not 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.DiscoveryFileStoreConditions;

                    /**
                     * Decodes a DiscoveryFileStoreConditions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryFileStoreConditions
                     * @throws {Error} If the payload 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.DiscoveryFileStoreConditions;

                    /**
                     * Verifies a DiscoveryFileStoreConditions message.
                     * @param message Plain 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 DiscoveryFileStoreConditions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryFileStoreConditions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryFileStoreConditions;

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

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

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

                /** Properties of an OtherCloudDiscoveryTarget. */
                interface IOtherCloudDiscoveryTarget {

                    /** OtherCloudDiscoveryTarget dataSourceType */
                    dataSourceType?: (google.privacy.dlp.v2.IDataSourceType|null);

                    /** OtherCloudDiscoveryTarget filter */
                    filter?: (google.privacy.dlp.v2.IDiscoveryOtherCloudFilter|null);

                    /** OtherCloudDiscoveryTarget conditions */
                    conditions?: (google.privacy.dlp.v2.IDiscoveryOtherCloudConditions|null);

                    /** OtherCloudDiscoveryTarget generationCadence */
                    generationCadence?: (google.privacy.dlp.v2.IDiscoveryOtherCloudGenerationCadence|null);

                    /** OtherCloudDiscoveryTarget disabled */
                    disabled?: (google.privacy.dlp.v2.IDisabled|null);
                }

                /** Represents an OtherCloudDiscoveryTarget. */
                class OtherCloudDiscoveryTarget implements IOtherCloudDiscoveryTarget {

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

                    /** OtherCloudDiscoveryTarget dataSourceType. */
                    public dataSourceType?: (google.privacy.dlp.v2.IDataSourceType|null);

                    /** OtherCloudDiscoveryTarget filter. */
                    public filter?: (google.privacy.dlp.v2.IDiscoveryOtherCloudFilter|null);

                    /** OtherCloudDiscoveryTarget conditions. */
                    public conditions?: (google.privacy.dlp.v2.IDiscoveryOtherCloudConditions|null);

                    /** OtherCloudDiscoveryTarget generationCadence. */
                    public generationCadence?: (google.privacy.dlp.v2.IDiscoveryOtherCloudGenerationCadence|null);

                    /** OtherCloudDiscoveryTarget disabled. */
                    public disabled?: (google.privacy.dlp.v2.IDisabled|null);

                    /** OtherCloudDiscoveryTarget cadence. */
                    public cadence?: ("generationCadence"|"disabled");

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

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

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

                    /**
                     * Decodes an OtherCloudDiscoveryTarget message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OtherCloudDiscoveryTarget
                     * @throws {Error} If the payload is not 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.OtherCloudDiscoveryTarget;

                    /**
                     * Decodes an OtherCloudDiscoveryTarget message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OtherCloudDiscoveryTarget
                     * @throws {Error} If the payload 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.OtherCloudDiscoveryTarget;

                    /**
                     * Verifies an OtherCloudDiscoveryTarget message.
                     * @param message Plain 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 OtherCloudDiscoveryTarget message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OtherCloudDiscoveryTarget
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.OtherCloudDiscoveryTarget;

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

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

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

                /** Properties of a DiscoveryOtherCloudFilter. */
                interface IDiscoveryOtherCloudFilter {

                    /** DiscoveryOtherCloudFilter collection */
                    collection?: (google.privacy.dlp.v2.IOtherCloudResourceCollection|null);

                    /** DiscoveryOtherCloudFilter singleResource */
                    singleResource?: (google.privacy.dlp.v2.IOtherCloudSingleResourceReference|null);

                    /** DiscoveryOtherCloudFilter others */
                    others?: (google.privacy.dlp.v2.IAllOtherResources|null);
                }

                /** Represents a DiscoveryOtherCloudFilter. */
                class DiscoveryOtherCloudFilter implements IDiscoveryOtherCloudFilter {

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

                    /** DiscoveryOtherCloudFilter collection. */
                    public collection?: (google.privacy.dlp.v2.IOtherCloudResourceCollection|null);

                    /** DiscoveryOtherCloudFilter singleResource. */
                    public singleResource?: (google.privacy.dlp.v2.IOtherCloudSingleResourceReference|null);

                    /** DiscoveryOtherCloudFilter others. */
                    public others?: (google.privacy.dlp.v2.IAllOtherResources|null);

                    /** DiscoveryOtherCloudFilter filter. */
                    public filter?: ("collection"|"singleResource"|"others");

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

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

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

                    /**
                     * Decodes a DiscoveryOtherCloudFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryOtherCloudFilter
                     * @throws {Error} If the payload is not 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.DiscoveryOtherCloudFilter;

                    /**
                     * Decodes a DiscoveryOtherCloudFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryOtherCloudFilter
                     * @throws {Error} If the payload 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.DiscoveryOtherCloudFilter;

                    /**
                     * Verifies a DiscoveryOtherCloudFilter message.
                     * @param message Plain 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 DiscoveryOtherCloudFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryOtherCloudFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryOtherCloudFilter;

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

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

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

                /** Properties of an OtherCloudResourceCollection. */
                interface IOtherCloudResourceCollection {

                    /** OtherCloudResourceCollection includeRegexes */
                    includeRegexes?: (google.privacy.dlp.v2.IOtherCloudResourceRegexes|null);
                }

                /** Represents an OtherCloudResourceCollection. */
                class OtherCloudResourceCollection implements IOtherCloudResourceCollection {

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

                    /** OtherCloudResourceCollection includeRegexes. */
                    public includeRegexes?: (google.privacy.dlp.v2.IOtherCloudResourceRegexes|null);

                    /** OtherCloudResourceCollection pattern. */
                    public pattern?: "includeRegexes";

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

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

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

                    /**
                     * Decodes an OtherCloudResourceCollection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OtherCloudResourceCollection
                     * @throws {Error} If the payload is not 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.OtherCloudResourceCollection;

                    /**
                     * Decodes an OtherCloudResourceCollection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OtherCloudResourceCollection
                     * @throws {Error} If the payload 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.OtherCloudResourceCollection;

                    /**
                     * Verifies an OtherCloudResourceCollection message.
                     * @param message Plain 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 OtherCloudResourceCollection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OtherCloudResourceCollection
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.OtherCloudResourceCollection;

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

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

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

                /** Properties of an OtherCloudResourceRegexes. */
                interface IOtherCloudResourceRegexes {

                    /** OtherCloudResourceRegexes patterns */
                    patterns?: (google.privacy.dlp.v2.IOtherCloudResourceRegex[]|null);
                }

                /** Represents an OtherCloudResourceRegexes. */
                class OtherCloudResourceRegexes implements IOtherCloudResourceRegexes {

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

                    /** OtherCloudResourceRegexes patterns. */
                    public patterns: google.privacy.dlp.v2.IOtherCloudResourceRegex[];

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

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

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

                    /**
                     * Decodes an OtherCloudResourceRegexes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OtherCloudResourceRegexes
                     * @throws {Error} If the payload is not 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.OtherCloudResourceRegexes;

                    /**
                     * Decodes an OtherCloudResourceRegexes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OtherCloudResourceRegexes
                     * @throws {Error} If the payload 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.OtherCloudResourceRegexes;

                    /**
                     * Verifies an OtherCloudResourceRegexes message.
                     * @param message Plain 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 OtherCloudResourceRegexes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OtherCloudResourceRegexes
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.OtherCloudResourceRegexes;

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

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

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

                /** Properties of an OtherCloudResourceRegex. */
                interface IOtherCloudResourceRegex {

                    /** OtherCloudResourceRegex amazonS3BucketRegex */
                    amazonS3BucketRegex?: (google.privacy.dlp.v2.IAmazonS3BucketRegex|null);
                }

                /** Represents an OtherCloudResourceRegex. */
                class OtherCloudResourceRegex implements IOtherCloudResourceRegex {

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

                    /** OtherCloudResourceRegex amazonS3BucketRegex. */
                    public amazonS3BucketRegex?: (google.privacy.dlp.v2.IAmazonS3BucketRegex|null);

                    /** OtherCloudResourceRegex resourceRegex. */
                    public resourceRegex?: "amazonS3BucketRegex";

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

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

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

                    /**
                     * Decodes an OtherCloudResourceRegex message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OtherCloudResourceRegex
                     * @throws {Error} If the payload is not 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.OtherCloudResourceRegex;

                    /**
                     * Decodes an OtherCloudResourceRegex message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OtherCloudResourceRegex
                     * @throws {Error} If the payload 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.OtherCloudResourceRegex;

                    /**
                     * Verifies an OtherCloudResourceRegex message.
                     * @param message Plain 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 OtherCloudResourceRegex message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OtherCloudResourceRegex
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.OtherCloudResourceRegex;

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

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

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

                /** Properties of an AwsAccountRegex. */
                interface IAwsAccountRegex {

                    /** AwsAccountRegex accountIdRegex */
                    accountIdRegex?: (string|null);
                }

                /** Represents an AwsAccountRegex. */
                class AwsAccountRegex implements IAwsAccountRegex {

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

                    /** AwsAccountRegex accountIdRegex. */
                    public accountIdRegex: string;

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

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

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

                    /**
                     * Decodes an AwsAccountRegex message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AwsAccountRegex
                     * @throws {Error} If the payload is not 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.AwsAccountRegex;

                    /**
                     * Decodes an AwsAccountRegex message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AwsAccountRegex
                     * @throws {Error} If the payload 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.AwsAccountRegex;

                    /**
                     * Verifies an AwsAccountRegex message.
                     * @param message Plain 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 AwsAccountRegex message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AwsAccountRegex
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AwsAccountRegex;

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

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

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

                /** Properties of an AmazonS3BucketRegex. */
                interface IAmazonS3BucketRegex {

                    /** AmazonS3BucketRegex awsAccountRegex */
                    awsAccountRegex?: (google.privacy.dlp.v2.IAwsAccountRegex|null);

                    /** AmazonS3BucketRegex bucketNameRegex */
                    bucketNameRegex?: (string|null);
                }

                /** Represents an AmazonS3BucketRegex. */
                class AmazonS3BucketRegex implements IAmazonS3BucketRegex {

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

                    /** AmazonS3BucketRegex awsAccountRegex. */
                    public awsAccountRegex?: (google.privacy.dlp.v2.IAwsAccountRegex|null);

                    /** AmazonS3BucketRegex bucketNameRegex. */
                    public bucketNameRegex: string;

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

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

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

                    /**
                     * Decodes an AmazonS3BucketRegex message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AmazonS3BucketRegex
                     * @throws {Error} If the payload is not 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.AmazonS3BucketRegex;

                    /**
                     * Decodes an AmazonS3BucketRegex message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AmazonS3BucketRegex
                     * @throws {Error} If the payload 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.AmazonS3BucketRegex;

                    /**
                     * Verifies an AmazonS3BucketRegex message.
                     * @param message Plain 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 AmazonS3BucketRegex message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AmazonS3BucketRegex
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AmazonS3BucketRegex;

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

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

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

                /** Properties of an OtherCloudSingleResourceReference. */
                interface IOtherCloudSingleResourceReference {

                    /** OtherCloudSingleResourceReference amazonS3Bucket */
                    amazonS3Bucket?: (google.privacy.dlp.v2.IAmazonS3Bucket|null);
                }

                /** Represents an OtherCloudSingleResourceReference. */
                class OtherCloudSingleResourceReference implements IOtherCloudSingleResourceReference {

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

                    /** OtherCloudSingleResourceReference amazonS3Bucket. */
                    public amazonS3Bucket?: (google.privacy.dlp.v2.IAmazonS3Bucket|null);

                    /** OtherCloudSingleResourceReference resource. */
                    public resource?: "amazonS3Bucket";

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

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

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

                    /**
                     * Decodes an OtherCloudSingleResourceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OtherCloudSingleResourceReference
                     * @throws {Error} If the payload is not 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.OtherCloudSingleResourceReference;

                    /**
                     * Decodes an OtherCloudSingleResourceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OtherCloudSingleResourceReference
                     * @throws {Error} If the payload 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.OtherCloudSingleResourceReference;

                    /**
                     * Verifies an OtherCloudSingleResourceReference message.
                     * @param message Plain 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 OtherCloudSingleResourceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OtherCloudSingleResourceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.OtherCloudSingleResourceReference;

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

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

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

                /** Properties of an AwsAccount. */
                interface IAwsAccount {

                    /** AwsAccount accountId */
                    accountId?: (string|null);
                }

                /** Represents an AwsAccount. */
                class AwsAccount implements IAwsAccount {

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

                    /** AwsAccount accountId. */
                    public accountId: string;

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

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

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

                    /**
                     * Decodes an AwsAccount message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AwsAccount
                     * @throws {Error} If the payload is not 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.AwsAccount;

                    /**
                     * Decodes an AwsAccount message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AwsAccount
                     * @throws {Error} If the payload 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.AwsAccount;

                    /**
                     * Verifies an AwsAccount message.
                     * @param message Plain 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 AwsAccount message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AwsAccount
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AwsAccount;

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

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

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

                /** Properties of an AmazonS3Bucket. */
                interface IAmazonS3Bucket {

                    /** AmazonS3Bucket awsAccount */
                    awsAccount?: (google.privacy.dlp.v2.IAwsAccount|null);

                    /** AmazonS3Bucket bucketName */
                    bucketName?: (string|null);
                }

                /** Represents an AmazonS3Bucket. */
                class AmazonS3Bucket implements IAmazonS3Bucket {

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

                    /** AmazonS3Bucket awsAccount. */
                    public awsAccount?: (google.privacy.dlp.v2.IAwsAccount|null);

                    /** AmazonS3Bucket bucketName. */
                    public bucketName: string;

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

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

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

                    /**
                     * Decodes an AmazonS3Bucket message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AmazonS3Bucket
                     * @throws {Error} If the payload is not 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.AmazonS3Bucket;

                    /**
                     * Decodes an AmazonS3Bucket message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AmazonS3Bucket
                     * @throws {Error} If the payload 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.AmazonS3Bucket;

                    /**
                     * Verifies an AmazonS3Bucket message.
                     * @param message Plain 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 AmazonS3Bucket message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AmazonS3Bucket
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AmazonS3Bucket;

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

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

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

                /** Properties of a DiscoveryOtherCloudConditions. */
                interface IDiscoveryOtherCloudConditions {

                    /** DiscoveryOtherCloudConditions minAge */
                    minAge?: (google.protobuf.IDuration|null);

                    /** DiscoveryOtherCloudConditions amazonS3BucketConditions */
                    amazonS3BucketConditions?: (google.privacy.dlp.v2.IAmazonS3BucketConditions|null);
                }

                /** Represents a DiscoveryOtherCloudConditions. */
                class DiscoveryOtherCloudConditions implements IDiscoveryOtherCloudConditions {

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

                    /** DiscoveryOtherCloudConditions minAge. */
                    public minAge?: (google.protobuf.IDuration|null);

                    /** DiscoveryOtherCloudConditions amazonS3BucketConditions. */
                    public amazonS3BucketConditions?: (google.privacy.dlp.v2.IAmazonS3BucketConditions|null);

                    /** DiscoveryOtherCloudConditions conditions. */
                    public conditions?: "amazonS3BucketConditions";

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

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

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

                    /**
                     * Decodes a DiscoveryOtherCloudConditions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryOtherCloudConditions
                     * @throws {Error} If the payload is not 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.DiscoveryOtherCloudConditions;

                    /**
                     * Decodes a DiscoveryOtherCloudConditions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryOtherCloudConditions
                     * @throws {Error} If the payload 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.DiscoveryOtherCloudConditions;

                    /**
                     * Verifies a DiscoveryOtherCloudConditions message.
                     * @param message Plain 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 DiscoveryOtherCloudConditions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryOtherCloudConditions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryOtherCloudConditions;

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

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

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

                /** Properties of an AmazonS3BucketConditions. */
                interface IAmazonS3BucketConditions {

                    /** AmazonS3BucketConditions bucketTypes */
                    bucketTypes?: (google.privacy.dlp.v2.AmazonS3BucketConditions.BucketType[]|null);

                    /** AmazonS3BucketConditions objectStorageClasses */
                    objectStorageClasses?: (google.privacy.dlp.v2.AmazonS3BucketConditions.ObjectStorageClass[]|null);
                }

                /** Represents an AmazonS3BucketConditions. */
                class AmazonS3BucketConditions implements IAmazonS3BucketConditions {

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

                    /** AmazonS3BucketConditions bucketTypes. */
                    public bucketTypes: google.privacy.dlp.v2.AmazonS3BucketConditions.BucketType[];

                    /** AmazonS3BucketConditions objectStorageClasses. */
                    public objectStorageClasses: google.privacy.dlp.v2.AmazonS3BucketConditions.ObjectStorageClass[];

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

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

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

                    /**
                     * Decodes an AmazonS3BucketConditions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AmazonS3BucketConditions
                     * @throws {Error} If the payload is not 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.AmazonS3BucketConditions;

                    /**
                     * Decodes an AmazonS3BucketConditions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AmazonS3BucketConditions
                     * @throws {Error} If the payload 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.AmazonS3BucketConditions;

                    /**
                     * Verifies an AmazonS3BucketConditions message.
                     * @param message Plain 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 AmazonS3BucketConditions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AmazonS3BucketConditions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AmazonS3BucketConditions;

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

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

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

                namespace AmazonS3BucketConditions {

                    /** BucketType enum. */
                    enum BucketType {
                        TYPE_UNSPECIFIED = 0,
                        TYPE_ALL_SUPPORTED = 1,
                        TYPE_GENERAL_PURPOSE = 2
                    }

                    /** ObjectStorageClass enum. */
                    enum ObjectStorageClass {
                        UNSPECIFIED = 0,
                        ALL_SUPPORTED_CLASSES = 1,
                        STANDARD = 2,
                        STANDARD_INFREQUENT_ACCESS = 4,
                        GLACIER_INSTANT_RETRIEVAL = 6,
                        INTELLIGENT_TIERING = 7
                    }
                }

                /** Properties of a DiscoveryOtherCloudGenerationCadence. */
                interface IDiscoveryOtherCloudGenerationCadence {

                    /** DiscoveryOtherCloudGenerationCadence refreshFrequency */
                    refreshFrequency?: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency|null);

                    /** DiscoveryOtherCloudGenerationCadence inspectTemplateModifiedCadence */
                    inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);
                }

                /** Represents a DiscoveryOtherCloudGenerationCadence. */
                class DiscoveryOtherCloudGenerationCadence implements IDiscoveryOtherCloudGenerationCadence {

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

                    /** DiscoveryOtherCloudGenerationCadence refreshFrequency. */
                    public refreshFrequency: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency);

                    /** DiscoveryOtherCloudGenerationCadence inspectTemplateModifiedCadence. */
                    public inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);

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

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

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

                    /**
                     * Decodes a DiscoveryOtherCloudGenerationCadence message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryOtherCloudGenerationCadence
                     * @throws {Error} If the payload is not 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.DiscoveryOtherCloudGenerationCadence;

                    /**
                     * Decodes a DiscoveryOtherCloudGenerationCadence message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryOtherCloudGenerationCadence
                     * @throws {Error} If the payload 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.DiscoveryOtherCloudGenerationCadence;

                    /**
                     * Verifies a DiscoveryOtherCloudGenerationCadence message.
                     * @param message Plain 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 DiscoveryOtherCloudGenerationCadence message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryOtherCloudGenerationCadence
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryOtherCloudGenerationCadence;

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

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

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

                /** Properties of a DiscoveryStartingLocation. */
                interface IDiscoveryStartingLocation {

                    /** DiscoveryStartingLocation organizationId */
                    organizationId?: (number|Long|string|null);

                    /** DiscoveryStartingLocation folderId */
                    folderId?: (number|Long|string|null);
                }

                /** Represents a DiscoveryStartingLocation. */
                class DiscoveryStartingLocation implements IDiscoveryStartingLocation {

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

                    /** DiscoveryStartingLocation organizationId. */
                    public organizationId?: (number|Long|string|null);

                    /** DiscoveryStartingLocation folderId. */
                    public folderId?: (number|Long|string|null);

                    /** DiscoveryStartingLocation location. */
                    public location?: ("organizationId"|"folderId");

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

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

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

                    /**
                     * Decodes a DiscoveryStartingLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryStartingLocation
                     * @throws {Error} If the payload is not 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.DiscoveryStartingLocation;

                    /**
                     * Decodes a DiscoveryStartingLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryStartingLocation
                     * @throws {Error} If the payload 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.DiscoveryStartingLocation;

                    /**
                     * Verifies a DiscoveryStartingLocation message.
                     * @param message Plain 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 DiscoveryStartingLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryStartingLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryStartingLocation;

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

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

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

                /** Properties of an OtherCloudDiscoveryStartingLocation. */
                interface IOtherCloudDiscoveryStartingLocation {

                    /** OtherCloudDiscoveryStartingLocation awsLocation */
                    awsLocation?: (google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation.IAwsDiscoveryStartingLocation|null);
                }

                /** Represents an OtherCloudDiscoveryStartingLocation. */
                class OtherCloudDiscoveryStartingLocation implements IOtherCloudDiscoveryStartingLocation {

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

                    /** OtherCloudDiscoveryStartingLocation awsLocation. */
                    public awsLocation?: (google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation.IAwsDiscoveryStartingLocation|null);

                    /** OtherCloudDiscoveryStartingLocation location. */
                    public location?: "awsLocation";

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

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

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

                    /**
                     * Decodes an OtherCloudDiscoveryStartingLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns OtherCloudDiscoveryStartingLocation
                     * @throws {Error} If the payload is not 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.OtherCloudDiscoveryStartingLocation;

                    /**
                     * Decodes an OtherCloudDiscoveryStartingLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns OtherCloudDiscoveryStartingLocation
                     * @throws {Error} If the payload 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.OtherCloudDiscoveryStartingLocation;

                    /**
                     * Verifies an OtherCloudDiscoveryStartingLocation message.
                     * @param message Plain 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 OtherCloudDiscoveryStartingLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns OtherCloudDiscoveryStartingLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation;

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

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

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

                namespace OtherCloudDiscoveryStartingLocation {

                    /** Properties of an AwsDiscoveryStartingLocation. */
                    interface IAwsDiscoveryStartingLocation {

                        /** AwsDiscoveryStartingLocation accountId */
                        accountId?: (string|null);

                        /** AwsDiscoveryStartingLocation allAssetInventoryAssets */
                        allAssetInventoryAssets?: (boolean|null);
                    }

                    /** Represents an AwsDiscoveryStartingLocation. */
                    class AwsDiscoveryStartingLocation implements IAwsDiscoveryStartingLocation {

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

                        /** AwsDiscoveryStartingLocation accountId. */
                        public accountId?: (string|null);

                        /** AwsDiscoveryStartingLocation allAssetInventoryAssets. */
                        public allAssetInventoryAssets?: (boolean|null);

                        /** AwsDiscoveryStartingLocation scope. */
                        public scope?: ("accountId"|"allAssetInventoryAssets");

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

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

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

                        /**
                         * Decodes an AwsDiscoveryStartingLocation message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns AwsDiscoveryStartingLocation
                         * @throws {Error} If the payload is not 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.OtherCloudDiscoveryStartingLocation.AwsDiscoveryStartingLocation;

                        /**
                         * Decodes an AwsDiscoveryStartingLocation message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns AwsDiscoveryStartingLocation
                         * @throws {Error} If the payload 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.OtherCloudDiscoveryStartingLocation.AwsDiscoveryStartingLocation;

                        /**
                         * Verifies an AwsDiscoveryStartingLocation message.
                         * @param message Plain 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 AwsDiscoveryStartingLocation message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns AwsDiscoveryStartingLocation
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.OtherCloudDiscoveryStartingLocation.AwsDiscoveryStartingLocation;

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

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

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

                /** Properties of an AllOtherResources. */
                interface IAllOtherResources {
                }

                /** Represents an AllOtherResources. */
                class AllOtherResources implements IAllOtherResources {

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

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

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

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

                    /**
                     * Decodes an AllOtherResources message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns AllOtherResources
                     * @throws {Error} If the payload is not 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.AllOtherResources;

                    /**
                     * Decodes an AllOtherResources message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns AllOtherResources
                     * @throws {Error} If the payload 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.AllOtherResources;

                    /**
                     * Verifies an AllOtherResources message.
                     * @param message Plain 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 AllOtherResources message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns AllOtherResources
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.AllOtherResources;

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

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

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

                /** Properties of a VertexDatasetDiscoveryTarget. */
                interface IVertexDatasetDiscoveryTarget {

                    /** VertexDatasetDiscoveryTarget filter */
                    filter?: (google.privacy.dlp.v2.IDiscoveryVertexDatasetFilter|null);

                    /** VertexDatasetDiscoveryTarget conditions */
                    conditions?: (google.privacy.dlp.v2.IDiscoveryVertexDatasetConditions|null);

                    /** VertexDatasetDiscoveryTarget generationCadence */
                    generationCadence?: (google.privacy.dlp.v2.IDiscoveryVertexDatasetGenerationCadence|null);

                    /** VertexDatasetDiscoveryTarget disabled */
                    disabled?: (google.privacy.dlp.v2.IDisabled|null);
                }

                /** Represents a VertexDatasetDiscoveryTarget. */
                class VertexDatasetDiscoveryTarget implements IVertexDatasetDiscoveryTarget {

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

                    /** VertexDatasetDiscoveryTarget filter. */
                    public filter?: (google.privacy.dlp.v2.IDiscoveryVertexDatasetFilter|null);

                    /** VertexDatasetDiscoveryTarget conditions. */
                    public conditions?: (google.privacy.dlp.v2.IDiscoveryVertexDatasetConditions|null);

                    /** VertexDatasetDiscoveryTarget generationCadence. */
                    public generationCadence?: (google.privacy.dlp.v2.IDiscoveryVertexDatasetGenerationCadence|null);

                    /** VertexDatasetDiscoveryTarget disabled. */
                    public disabled?: (google.privacy.dlp.v2.IDisabled|null);

                    /** VertexDatasetDiscoveryTarget cadence. */
                    public cadence?: ("generationCadence"|"disabled");

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

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

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

                    /**
                     * Decodes a VertexDatasetDiscoveryTarget message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VertexDatasetDiscoveryTarget
                     * @throws {Error} If the payload is not 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.VertexDatasetDiscoveryTarget;

                    /**
                     * Decodes a VertexDatasetDiscoveryTarget message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VertexDatasetDiscoveryTarget
                     * @throws {Error} If the payload 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.VertexDatasetDiscoveryTarget;

                    /**
                     * Verifies a VertexDatasetDiscoveryTarget message.
                     * @param message Plain 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 VertexDatasetDiscoveryTarget message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VertexDatasetDiscoveryTarget
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.VertexDatasetDiscoveryTarget;

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

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

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

                /** Properties of a DiscoveryVertexDatasetFilter. */
                interface IDiscoveryVertexDatasetFilter {

                    /** DiscoveryVertexDatasetFilter collection */
                    collection?: (google.privacy.dlp.v2.IVertexDatasetCollection|null);

                    /** DiscoveryVertexDatasetFilter vertexDatasetResourceReference */
                    vertexDatasetResourceReference?: (google.privacy.dlp.v2.IVertexDatasetResourceReference|null);

                    /** DiscoveryVertexDatasetFilter others */
                    others?: (google.privacy.dlp.v2.IAllOtherResources|null);
                }

                /** Represents a DiscoveryVertexDatasetFilter. */
                class DiscoveryVertexDatasetFilter implements IDiscoveryVertexDatasetFilter {

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

                    /** DiscoveryVertexDatasetFilter collection. */
                    public collection?: (google.privacy.dlp.v2.IVertexDatasetCollection|null);

                    /** DiscoveryVertexDatasetFilter vertexDatasetResourceReference. */
                    public vertexDatasetResourceReference?: (google.privacy.dlp.v2.IVertexDatasetResourceReference|null);

                    /** DiscoveryVertexDatasetFilter others. */
                    public others?: (google.privacy.dlp.v2.IAllOtherResources|null);

                    /** DiscoveryVertexDatasetFilter filter. */
                    public filter?: ("collection"|"vertexDatasetResourceReference"|"others");

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

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

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

                    /**
                     * Decodes a DiscoveryVertexDatasetFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryVertexDatasetFilter
                     * @throws {Error} If the payload is not 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.DiscoveryVertexDatasetFilter;

                    /**
                     * Decodes a DiscoveryVertexDatasetFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryVertexDatasetFilter
                     * @throws {Error} If the payload 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.DiscoveryVertexDatasetFilter;

                    /**
                     * Verifies a DiscoveryVertexDatasetFilter message.
                     * @param message Plain 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 DiscoveryVertexDatasetFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryVertexDatasetFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryVertexDatasetFilter;

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

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

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

                /** Properties of a VertexDatasetCollection. */
                interface IVertexDatasetCollection {

                    /** VertexDatasetCollection vertexDatasetRegexes */
                    vertexDatasetRegexes?: (google.privacy.dlp.v2.IVertexDatasetRegexes|null);
                }

                /** Represents a VertexDatasetCollection. */
                class VertexDatasetCollection implements IVertexDatasetCollection {

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

                    /** VertexDatasetCollection vertexDatasetRegexes. */
                    public vertexDatasetRegexes?: (google.privacy.dlp.v2.IVertexDatasetRegexes|null);

                    /** VertexDatasetCollection pattern. */
                    public pattern?: "vertexDatasetRegexes";

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

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

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

                    /**
                     * Decodes a VertexDatasetCollection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VertexDatasetCollection
                     * @throws {Error} If the payload is not 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.VertexDatasetCollection;

                    /**
                     * Decodes a VertexDatasetCollection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VertexDatasetCollection
                     * @throws {Error} If the payload 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.VertexDatasetCollection;

                    /**
                     * Verifies a VertexDatasetCollection message.
                     * @param message Plain 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 VertexDatasetCollection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VertexDatasetCollection
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.VertexDatasetCollection;

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

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

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

                /** Properties of a VertexDatasetRegexes. */
                interface IVertexDatasetRegexes {

                    /** VertexDatasetRegexes patterns */
                    patterns?: (google.privacy.dlp.v2.IVertexDatasetRegex[]|null);
                }

                /** Represents a VertexDatasetRegexes. */
                class VertexDatasetRegexes implements IVertexDatasetRegexes {

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

                    /** VertexDatasetRegexes patterns. */
                    public patterns: google.privacy.dlp.v2.IVertexDatasetRegex[];

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

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

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

                    /**
                     * Decodes a VertexDatasetRegexes message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VertexDatasetRegexes
                     * @throws {Error} If the payload is not 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.VertexDatasetRegexes;

                    /**
                     * Decodes a VertexDatasetRegexes message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VertexDatasetRegexes
                     * @throws {Error} If the payload 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.VertexDatasetRegexes;

                    /**
                     * Verifies a VertexDatasetRegexes message.
                     * @param message Plain 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 VertexDatasetRegexes message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VertexDatasetRegexes
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.VertexDatasetRegexes;

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

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

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

                /** Properties of a VertexDatasetRegex. */
                interface IVertexDatasetRegex {

                    /** VertexDatasetRegex projectIdRegex */
                    projectIdRegex?: (string|null);
                }

                /** Represents a VertexDatasetRegex. */
                class VertexDatasetRegex implements IVertexDatasetRegex {

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

                    /** VertexDatasetRegex projectIdRegex. */
                    public projectIdRegex: string;

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

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

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

                    /**
                     * Decodes a VertexDatasetRegex message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VertexDatasetRegex
                     * @throws {Error} If the payload is not 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.VertexDatasetRegex;

                    /**
                     * Decodes a VertexDatasetRegex message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VertexDatasetRegex
                     * @throws {Error} If the payload 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.VertexDatasetRegex;

                    /**
                     * Verifies a VertexDatasetRegex message.
                     * @param message Plain 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 VertexDatasetRegex message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VertexDatasetRegex
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.VertexDatasetRegex;

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

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

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

                /** Properties of a VertexDatasetResourceReference. */
                interface IVertexDatasetResourceReference {

                    /** VertexDatasetResourceReference datasetResourceName */
                    datasetResourceName?: (string|null);
                }

                /** Represents a VertexDatasetResourceReference. */
                class VertexDatasetResourceReference implements IVertexDatasetResourceReference {

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

                    /** VertexDatasetResourceReference datasetResourceName. */
                    public datasetResourceName: string;

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

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

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

                    /**
                     * Decodes a VertexDatasetResourceReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns VertexDatasetResourceReference
                     * @throws {Error} If the payload is not 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.VertexDatasetResourceReference;

                    /**
                     * Decodes a VertexDatasetResourceReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns VertexDatasetResourceReference
                     * @throws {Error} If the payload 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.VertexDatasetResourceReference;

                    /**
                     * Verifies a VertexDatasetResourceReference message.
                     * @param message Plain 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 VertexDatasetResourceReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns VertexDatasetResourceReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.VertexDatasetResourceReference;

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

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

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

                /** Properties of a DiscoveryVertexDatasetConditions. */
                interface IDiscoveryVertexDatasetConditions {

                    /** DiscoveryVertexDatasetConditions createdAfter */
                    createdAfter?: (google.protobuf.ITimestamp|null);

                    /** DiscoveryVertexDatasetConditions minAge */
                    minAge?: (google.protobuf.IDuration|null);
                }

                /** Represents a DiscoveryVertexDatasetConditions. */
                class DiscoveryVertexDatasetConditions implements IDiscoveryVertexDatasetConditions {

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

                    /** DiscoveryVertexDatasetConditions createdAfter. */
                    public createdAfter?: (google.protobuf.ITimestamp|null);

                    /** DiscoveryVertexDatasetConditions minAge. */
                    public minAge?: (google.protobuf.IDuration|null);

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

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

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

                    /**
                     * Decodes a DiscoveryVertexDatasetConditions message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryVertexDatasetConditions
                     * @throws {Error} If the payload is not 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.DiscoveryVertexDatasetConditions;

                    /**
                     * Decodes a DiscoveryVertexDatasetConditions message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryVertexDatasetConditions
                     * @throws {Error} If the payload 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.DiscoveryVertexDatasetConditions;

                    /**
                     * Verifies a DiscoveryVertexDatasetConditions message.
                     * @param message Plain 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 DiscoveryVertexDatasetConditions message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryVertexDatasetConditions
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryVertexDatasetConditions;

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

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

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

                /** Properties of a DiscoveryVertexDatasetGenerationCadence. */
                interface IDiscoveryVertexDatasetGenerationCadence {

                    /** DiscoveryVertexDatasetGenerationCadence refreshFrequency */
                    refreshFrequency?: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency|null);

                    /** DiscoveryVertexDatasetGenerationCadence inspectTemplateModifiedCadence */
                    inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);
                }

                /** Represents a DiscoveryVertexDatasetGenerationCadence. */
                class DiscoveryVertexDatasetGenerationCadence implements IDiscoveryVertexDatasetGenerationCadence {

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

                    /** DiscoveryVertexDatasetGenerationCadence refreshFrequency. */
                    public refreshFrequency: (google.privacy.dlp.v2.DataProfileUpdateFrequency|keyof typeof google.privacy.dlp.v2.DataProfileUpdateFrequency);

                    /** DiscoveryVertexDatasetGenerationCadence inspectTemplateModifiedCadence. */
                    public inspectTemplateModifiedCadence?: (google.privacy.dlp.v2.IDiscoveryInspectTemplateModifiedCadence|null);

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

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

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

                    /**
                     * Decodes a DiscoveryVertexDatasetGenerationCadence message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DiscoveryVertexDatasetGenerationCadence
                     * @throws {Error} If the payload is not 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.DiscoveryVertexDatasetGenerationCadence;

                    /**
                     * Decodes a DiscoveryVertexDatasetGenerationCadence message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DiscoveryVertexDatasetGenerationCadence
                     * @throws {Error} If the payload 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.DiscoveryVertexDatasetGenerationCadence;

                    /**
                     * Verifies a DiscoveryVertexDatasetGenerationCadence message.
                     * @param message Plain 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 DiscoveryVertexDatasetGenerationCadence message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DiscoveryVertexDatasetGenerationCadence
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DiscoveryVertexDatasetGenerationCadence;

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

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

                    /**
                     * Gets the default type url for DiscoveryVertexDatasetGenerationCadence
                     * @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 lastModified */
                    lastModified?: (google.protobuf.ITimestamp|null);

                    /** DlpJob jobTriggerName */
                    jobTriggerName?: (string|null);

                    /** DlpJob errors */
                    errors?: (google.privacy.dlp.v2.IError[]|null);

                    /** DlpJob actionDetails */
                    actionDetails?: (google.privacy.dlp.v2.IActionDetails[]|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 lastModified. */
                    public lastModified?: (google.protobuf.ITimestamp|null);

                    /** DlpJob jobTriggerName. */
                    public jobTriggerName: string;

                    /** DlpJob errors. */
                    public errors: google.privacy.dlp.v2.IError[];

                    /** DlpJob actionDetails. */
                    public actionDetails: google.privacy.dlp.v2.IActionDetails[];

                    /** 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,
                    MATCHING_TYPE_RULE_SPECIFIC = 4
                }

                /** Properties of an ImageContainmentType. */
                interface IImageContainmentType {

                    /** ImageContainmentType encloses */
                    encloses?: (google.privacy.dlp.v2.IEncloses|null);

                    /** ImageContainmentType fullyInside */
                    fullyInside?: (google.privacy.dlp.v2.IFullyInside|null);

                    /** ImageContainmentType overlaps */
                    overlaps?: (google.privacy.dlp.v2.IOverlap|null);
                }

                /** Represents an ImageContainmentType. */
                class ImageContainmentType implements IImageContainmentType {

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

                    /** ImageContainmentType encloses. */
                    public encloses?: (google.privacy.dlp.v2.IEncloses|null);

                    /** ImageContainmentType fullyInside. */
                    public fullyInside?: (google.privacy.dlp.v2.IFullyInside|null);

                    /** ImageContainmentType overlaps. */
                    public overlaps?: (google.privacy.dlp.v2.IOverlap|null);

                    /** ImageContainmentType type. */
                    public type?: ("encloses"|"fullyInside"|"overlaps");

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

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

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

                    /**
                     * Decodes an ImageContainmentType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ImageContainmentType
                     * @throws {Error} If the payload is not 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.ImageContainmentType;

                    /**
                     * Decodes an ImageContainmentType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ImageContainmentType
                     * @throws {Error} If the payload 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.ImageContainmentType;

                    /**
                     * Verifies an ImageContainmentType message.
                     * @param message Plain 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 ImageContainmentType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ImageContainmentType
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ImageContainmentType;

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

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

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

                /** Properties of an Overlap. */
                interface IOverlap {
                }

                /** Represents an Overlap. */
                class Overlap implements IOverlap {

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

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

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

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

                    /**
                     * Decodes an Overlap message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Overlap
                     * @throws {Error} If the payload is not 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.Overlap;

                    /**
                     * Decodes an Overlap message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Overlap
                     * @throws {Error} If the payload 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.Overlap;

                    /**
                     * Verifies an Overlap message.
                     * @param message Plain 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 Overlap message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Overlap
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Overlap;

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

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

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

                /** Properties of an Encloses. */
                interface IEncloses {
                }

                /** Represents an Encloses. */
                class Encloses implements IEncloses {

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

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

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

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

                    /**
                     * Decodes an Encloses message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Encloses
                     * @throws {Error} If the payload is not 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.Encloses;

                    /**
                     * Decodes an Encloses message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Encloses
                     * @throws {Error} If the payload 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.Encloses;

                    /**
                     * Verifies an Encloses message.
                     * @param message Plain 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 Encloses message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Encloses
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Encloses;

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

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

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

                /** Properties of a FullyInside. */
                interface IFullyInside {
                }

                /** Represents a FullyInside. */
                class FullyInside implements IFullyInside {

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

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

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

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

                    /**
                     * Decodes a FullyInside message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FullyInside
                     * @throws {Error} If the payload is not 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.FullyInside;

                    /**
                     * Decodes a FullyInside message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FullyInside
                     * @throws {Error} If the payload 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.FullyInside;

                    /**
                     * Verifies a FullyInside message.
                     * @param message Plain 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 FullyInside message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FullyInside
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FullyInside;

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

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

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

                /** ContentOption enum. */
                enum ContentOption {
                    CONTENT_UNSPECIFIED = 0,
                    CONTENT_TEXT = 1,
                    CONTENT_IMAGE = 2
                }

                /** MetadataType enum. */
                enum MetadataType {
                    METADATATYPE_UNSPECIFIED = 0,
                    STORAGE_METADATA = 2,
                    CONTENT_METADATA = 3
                }

                /** 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 ListProjectDataProfilesRequest. */
                interface IListProjectDataProfilesRequest {

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

                    /** ListProjectDataProfilesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListProjectDataProfilesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListProjectDataProfilesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListProjectDataProfilesRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListProjectDataProfilesRequest. */
                class ListProjectDataProfilesRequest implements IListProjectDataProfilesRequest {

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

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

                    /** ListProjectDataProfilesRequest pageToken. */
                    public pageToken: string;

                    /** ListProjectDataProfilesRequest pageSize. */
                    public pageSize: number;

                    /** ListProjectDataProfilesRequest orderBy. */
                    public orderBy: string;

                    /** ListProjectDataProfilesRequest filter. */
                    public filter: string;

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

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

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

                    /**
                     * Decodes a ListProjectDataProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListProjectDataProfilesRequest
                     * @throws {Error} If the payload is not 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.ListProjectDataProfilesRequest;

                    /**
                     * Decodes a ListProjectDataProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListProjectDataProfilesRequest
                     * @throws {Error} If the payload 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.ListProjectDataProfilesRequest;

                    /**
                     * Verifies a ListProjectDataProfilesRequest message.
                     * @param message Plain 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 ListProjectDataProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListProjectDataProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListProjectDataProfilesRequest;

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

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

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

                /** Properties of a ListProjectDataProfilesResponse. */
                interface IListProjectDataProfilesResponse {

                    /** ListProjectDataProfilesResponse projectDataProfiles */
                    projectDataProfiles?: (google.privacy.dlp.v2.IProjectDataProfile[]|null);

                    /** ListProjectDataProfilesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListProjectDataProfilesResponse. */
                class ListProjectDataProfilesResponse implements IListProjectDataProfilesResponse {

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

                    /** ListProjectDataProfilesResponse projectDataProfiles. */
                    public projectDataProfiles: google.privacy.dlp.v2.IProjectDataProfile[];

                    /** ListProjectDataProfilesResponse nextPageToken. */
                    public nextPageToken: string;

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

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

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

                    /**
                     * Decodes a ListProjectDataProfilesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListProjectDataProfilesResponse
                     * @throws {Error} If the payload is not 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.ListProjectDataProfilesResponse;

                    /**
                     * Decodes a ListProjectDataProfilesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListProjectDataProfilesResponse
                     * @throws {Error} If the payload 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.ListProjectDataProfilesResponse;

                    /**
                     * Verifies a ListProjectDataProfilesResponse message.
                     * @param message Plain 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 ListProjectDataProfilesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListProjectDataProfilesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListProjectDataProfilesResponse;

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

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

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

                /** Properties of a ListTableDataProfilesRequest. */
                interface IListTableDataProfilesRequest {

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

                    /** ListTableDataProfilesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListTableDataProfilesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListTableDataProfilesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListTableDataProfilesRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListTableDataProfilesRequest. */
                class ListTableDataProfilesRequest implements IListTableDataProfilesRequest {

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

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

                    /** ListTableDataProfilesRequest pageToken. */
                    public pageToken: string;

                    /** ListTableDataProfilesRequest pageSize. */
                    public pageSize: number;

                    /** ListTableDataProfilesRequest orderBy. */
                    public orderBy: string;

                    /** ListTableDataProfilesRequest filter. */
                    public filter: string;

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

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

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

                    /**
                     * Decodes a ListTableDataProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTableDataProfilesRequest
                     * @throws {Error} If the payload is not 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.ListTableDataProfilesRequest;

                    /**
                     * Decodes a ListTableDataProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTableDataProfilesRequest
                     * @throws {Error} If the payload 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.ListTableDataProfilesRequest;

                    /**
                     * Verifies a ListTableDataProfilesRequest message.
                     * @param message Plain 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 ListTableDataProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTableDataProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListTableDataProfilesRequest;

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

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

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

                /** Properties of a ListTableDataProfilesResponse. */
                interface IListTableDataProfilesResponse {

                    /** ListTableDataProfilesResponse tableDataProfiles */
                    tableDataProfiles?: (google.privacy.dlp.v2.ITableDataProfile[]|null);

                    /** ListTableDataProfilesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListTableDataProfilesResponse. */
                class ListTableDataProfilesResponse implements IListTableDataProfilesResponse {

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

                    /** ListTableDataProfilesResponse tableDataProfiles. */
                    public tableDataProfiles: google.privacy.dlp.v2.ITableDataProfile[];

                    /** ListTableDataProfilesResponse nextPageToken. */
                    public nextPageToken: string;

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

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

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

                    /**
                     * Decodes a ListTableDataProfilesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListTableDataProfilesResponse
                     * @throws {Error} If the payload is not 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.ListTableDataProfilesResponse;

                    /**
                     * Decodes a ListTableDataProfilesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListTableDataProfilesResponse
                     * @throws {Error} If the payload 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.ListTableDataProfilesResponse;

                    /**
                     * Verifies a ListTableDataProfilesResponse message.
                     * @param message Plain 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 ListTableDataProfilesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListTableDataProfilesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListTableDataProfilesResponse;

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

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

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

                /** Properties of a ListColumnDataProfilesRequest. */
                interface IListColumnDataProfilesRequest {

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

                    /** ListColumnDataProfilesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListColumnDataProfilesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListColumnDataProfilesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListColumnDataProfilesRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListColumnDataProfilesRequest. */
                class ListColumnDataProfilesRequest implements IListColumnDataProfilesRequest {

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

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

                    /** ListColumnDataProfilesRequest pageToken. */
                    public pageToken: string;

                    /** ListColumnDataProfilesRequest pageSize. */
                    public pageSize: number;

                    /** ListColumnDataProfilesRequest orderBy. */
                    public orderBy: string;

                    /** ListColumnDataProfilesRequest filter. */
                    public filter: string;

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

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

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

                    /**
                     * Decodes a ListColumnDataProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListColumnDataProfilesRequest
                     * @throws {Error} If the payload is not 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.ListColumnDataProfilesRequest;

                    /**
                     * Decodes a ListColumnDataProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListColumnDataProfilesRequest
                     * @throws {Error} If the payload 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.ListColumnDataProfilesRequest;

                    /**
                     * Verifies a ListColumnDataProfilesRequest message.
                     * @param message Plain 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 ListColumnDataProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListColumnDataProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListColumnDataProfilesRequest;

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

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

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

                /** Properties of a ListColumnDataProfilesResponse. */
                interface IListColumnDataProfilesResponse {

                    /** ListColumnDataProfilesResponse columnDataProfiles */
                    columnDataProfiles?: (google.privacy.dlp.v2.IColumnDataProfile[]|null);

                    /** ListColumnDataProfilesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListColumnDataProfilesResponse. */
                class ListColumnDataProfilesResponse implements IListColumnDataProfilesResponse {

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

                    /** ListColumnDataProfilesResponse columnDataProfiles. */
                    public columnDataProfiles: google.privacy.dlp.v2.IColumnDataProfile[];

                    /** ListColumnDataProfilesResponse nextPageToken. */
                    public nextPageToken: string;

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

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

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

                    /**
                     * Decodes a ListColumnDataProfilesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListColumnDataProfilesResponse
                     * @throws {Error} If the payload is not 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.ListColumnDataProfilesResponse;

                    /**
                     * Decodes a ListColumnDataProfilesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListColumnDataProfilesResponse
                     * @throws {Error} If the payload 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.ListColumnDataProfilesResponse;

                    /**
                     * Verifies a ListColumnDataProfilesResponse message.
                     * @param message Plain 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 ListColumnDataProfilesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListColumnDataProfilesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListColumnDataProfilesResponse;

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

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

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

                /** 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_UNKNOWN = 12,
                        RISK_MODERATE = 20,
                        RISK_HIGH = 30
                    }
                }

                /** Properties of a ProjectDataProfile. */
                interface IProjectDataProfile {

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

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

                    /** ProjectDataProfile profileLastGenerated */
                    profileLastGenerated?: (google.protobuf.ITimestamp|null);

                    /** ProjectDataProfile sensitivityScore */
                    sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** ProjectDataProfile dataRiskLevel */
                    dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

                    /** ProjectDataProfile profileStatus */
                    profileStatus?: (google.privacy.dlp.v2.IProfileStatus|null);

                    /** ProjectDataProfile tableDataProfileCount */
                    tableDataProfileCount?: (number|Long|string|null);

                    /** ProjectDataProfile fileStoreDataProfileCount */
                    fileStoreDataProfileCount?: (number|Long|string|null);
                }

                /** Represents a ProjectDataProfile. */
                class ProjectDataProfile implements IProjectDataProfile {

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

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

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

                    /** ProjectDataProfile profileLastGenerated. */
                    public profileLastGenerated?: (google.protobuf.ITimestamp|null);

                    /** ProjectDataProfile sensitivityScore. */
                    public sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** ProjectDataProfile dataRiskLevel. */
                    public dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

                    /** ProjectDataProfile profileStatus. */
                    public profileStatus?: (google.privacy.dlp.v2.IProfileStatus|null);

                    /** ProjectDataProfile tableDataProfileCount. */
                    public tableDataProfileCount: (number|Long|string);

                    /** ProjectDataProfile fileStoreDataProfileCount. */
                    public fileStoreDataProfileCount: (number|Long|string);

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

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

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

                    /**
                     * Decodes a ProjectDataProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProjectDataProfile
                     * @throws {Error} If the payload is not 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.ProjectDataProfile;

                    /**
                     * Decodes a ProjectDataProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProjectDataProfile
                     * @throws {Error} If the payload 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.ProjectDataProfile;

                    /**
                     * Verifies a ProjectDataProfile message.
                     * @param message Plain 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 ProjectDataProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProjectDataProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ProjectDataProfile;

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

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

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

                /** ResourceVisibility enum. */
                enum ResourceVisibility {
                    RESOURCE_VISIBILITY_UNSPECIFIED = 0,
                    RESOURCE_VISIBILITY_PUBLIC = 10,
                    RESOURCE_VISIBILITY_INCONCLUSIVE = 15,
                    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);

                    /** DataProfileConfigSnapshot discoveryConfig */
                    discoveryConfig?: (google.privacy.dlp.v2.IDiscoveryConfig|null);

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

                    /** DataProfileConfigSnapshot inspectTemplateModifiedTime */
                    inspectTemplateModifiedTime?: (google.protobuf.ITimestamp|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);

                    /** DataProfileConfigSnapshot discoveryConfig. */
                    public discoveryConfig?: (google.privacy.dlp.v2.IDiscoveryConfig|null);

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

                    /** DataProfileConfigSnapshot inspectTemplateModifiedTime. */
                    public inspectTemplateModifiedTime?: (google.protobuf.ITimestamp|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 dataSourceType */
                    dataSourceType?: (google.privacy.dlp.v2.IDataSourceType|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);

                    /** TableDataProfile sampleFindingsTable */
                    sampleFindingsTable?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** TableDataProfile tags */
                    tags?: (google.privacy.dlp.v2.ITag[]|null);

                    /** TableDataProfile relatedResources */
                    relatedResources?: (google.privacy.dlp.v2.IRelatedResource[]|null);

                    /** TableDataProfile domains */
                    domains?: (google.privacy.dlp.v2.IDomain[]|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 dataSourceType. */
                    public dataSourceType?: (google.privacy.dlp.v2.IDataSourceType|null);

                    /** 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);

                    /** TableDataProfile sampleFindingsTable. */
                    public sampleFindingsTable?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** TableDataProfile tags. */
                    public tags: google.privacy.dlp.v2.ITag[];

                    /** TableDataProfile relatedResources. */
                    public relatedResources: google.privacy.dlp.v2.IRelatedResource[];

                    /** TableDataProfile domains. */
                    public domains: google.privacy.dlp.v2.IDomain[];

                    /**
                     * 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);

                    /** OtherInfoTypeSummary excludedFromAnalysis */
                    excludedFromAnalysis?: (boolean|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;

                    /** OtherInfoTypeSummary excludedFromAnalysis. */
                    public excludedFromAnalysis: boolean;

                    /**
                     * 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;
                }

                /** NullPercentageLevel enum. */
                enum NullPercentageLevel {
                    NULL_PERCENTAGE_LEVEL_UNSPECIFIED = 0,
                    NULL_PERCENTAGE_VERY_LOW = 1,
                    NULL_PERCENTAGE_LOW = 2,
                    NULL_PERCENTAGE_MEDIUM = 3,
                    NULL_PERCENTAGE_HIGH = 4
                }

                /** UniquenessScoreLevel enum. */
                enum UniquenessScoreLevel {
                    UNIQUENESS_SCORE_LEVEL_UNSPECIFIED = 0,
                    UNIQUENESS_SCORE_LOW = 1,
                    UNIQUENESS_SCORE_MEDIUM = 2,
                    UNIQUENESS_SCORE_HIGH = 3
                }

                /** Properties of a ColumnDataProfile. */
                interface IColumnDataProfile {

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

                    /** ColumnDataProfile profileStatus */
                    profileStatus?: (google.privacy.dlp.v2.IProfileStatus|null);

                    /** ColumnDataProfile state */
                    state?: (google.privacy.dlp.v2.ColumnDataProfile.State|keyof typeof google.privacy.dlp.v2.ColumnDataProfile.State|null);

                    /** ColumnDataProfile profileLastGenerated */
                    profileLastGenerated?: (google.protobuf.ITimestamp|null);

                    /** ColumnDataProfile tableDataProfile */
                    tableDataProfile?: (string|null);

                    /** ColumnDataProfile tableFullResource */
                    tableFullResource?: (string|null);

                    /** ColumnDataProfile datasetProjectId */
                    datasetProjectId?: (string|null);

                    /** ColumnDataProfile datasetLocation */
                    datasetLocation?: (string|null);

                    /** ColumnDataProfile datasetId */
                    datasetId?: (string|null);

                    /** ColumnDataProfile tableId */
                    tableId?: (string|null);

                    /** ColumnDataProfile column */
                    column?: (string|null);

                    /** ColumnDataProfile sensitivityScore */
                    sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** ColumnDataProfile dataRiskLevel */
                    dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

                    /** ColumnDataProfile columnInfoType */
                    columnInfoType?: (google.privacy.dlp.v2.IInfoTypeSummary|null);

                    /** ColumnDataProfile otherMatches */
                    otherMatches?: (google.privacy.dlp.v2.IOtherInfoTypeSummary[]|null);

                    /** ColumnDataProfile estimatedNullPercentage */
                    estimatedNullPercentage?: (google.privacy.dlp.v2.NullPercentageLevel|keyof typeof google.privacy.dlp.v2.NullPercentageLevel|null);

                    /** ColumnDataProfile estimatedUniquenessScore */
                    estimatedUniquenessScore?: (google.privacy.dlp.v2.UniquenessScoreLevel|keyof typeof google.privacy.dlp.v2.UniquenessScoreLevel|null);

                    /** ColumnDataProfile freeTextScore */
                    freeTextScore?: (number|null);

                    /** ColumnDataProfile columnType */
                    columnType?: (google.privacy.dlp.v2.ColumnDataProfile.ColumnDataType|keyof typeof google.privacy.dlp.v2.ColumnDataProfile.ColumnDataType|null);

                    /** ColumnDataProfile policyState */
                    policyState?: (google.privacy.dlp.v2.ColumnDataProfile.ColumnPolicyState|keyof typeof google.privacy.dlp.v2.ColumnDataProfile.ColumnPolicyState|null);
                }

                /** Represents a ColumnDataProfile. */
                class ColumnDataProfile implements IColumnDataProfile {

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

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

                    /** ColumnDataProfile profileStatus. */
                    public profileStatus?: (google.privacy.dlp.v2.IProfileStatus|null);

                    /** ColumnDataProfile state. */
                    public state: (google.privacy.dlp.v2.ColumnDataProfile.State|keyof typeof google.privacy.dlp.v2.ColumnDataProfile.State);

                    /** ColumnDataProfile profileLastGenerated. */
                    public profileLastGenerated?: (google.protobuf.ITimestamp|null);

                    /** ColumnDataProfile tableDataProfile. */
                    public tableDataProfile: string;

                    /** ColumnDataProfile tableFullResource. */
                    public tableFullResource: string;

                    /** ColumnDataProfile datasetProjectId. */
                    public datasetProjectId: string;

                    /** ColumnDataProfile datasetLocation. */
                    public datasetLocation: string;

                    /** ColumnDataProfile datasetId. */
                    public datasetId: string;

                    /** ColumnDataProfile tableId. */
                    public tableId: string;

                    /** ColumnDataProfile column. */
                    public column: string;

                    /** ColumnDataProfile sensitivityScore. */
                    public sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** ColumnDataProfile dataRiskLevel. */
                    public dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

                    /** ColumnDataProfile columnInfoType. */
                    public columnInfoType?: (google.privacy.dlp.v2.IInfoTypeSummary|null);

                    /** ColumnDataProfile otherMatches. */
                    public otherMatches: google.privacy.dlp.v2.IOtherInfoTypeSummary[];

                    /** ColumnDataProfile estimatedNullPercentage. */
                    public estimatedNullPercentage: (google.privacy.dlp.v2.NullPercentageLevel|keyof typeof google.privacy.dlp.v2.NullPercentageLevel);

                    /** ColumnDataProfile estimatedUniquenessScore. */
                    public estimatedUniquenessScore: (google.privacy.dlp.v2.UniquenessScoreLevel|keyof typeof google.privacy.dlp.v2.UniquenessScoreLevel);

                    /** ColumnDataProfile freeTextScore. */
                    public freeTextScore: number;

                    /** ColumnDataProfile columnType. */
                    public columnType: (google.privacy.dlp.v2.ColumnDataProfile.ColumnDataType|keyof typeof google.privacy.dlp.v2.ColumnDataProfile.ColumnDataType);

                    /** ColumnDataProfile policyState. */
                    public policyState: (google.privacy.dlp.v2.ColumnDataProfile.ColumnPolicyState|keyof typeof google.privacy.dlp.v2.ColumnDataProfile.ColumnPolicyState);

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

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

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

                    /**
                     * Decodes a ColumnDataProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ColumnDataProfile
                     * @throws {Error} If the payload is not 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.ColumnDataProfile;

                    /**
                     * Decodes a ColumnDataProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ColumnDataProfile
                     * @throws {Error} If the payload 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.ColumnDataProfile;

                    /**
                     * Verifies a ColumnDataProfile message.
                     * @param message Plain 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 ColumnDataProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ColumnDataProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ColumnDataProfile;

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

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

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

                namespace ColumnDataProfile {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        RUNNING = 1,
                        DONE = 2
                    }

                    /** ColumnDataType enum. */
                    enum ColumnDataType {
                        COLUMN_DATA_TYPE_UNSPECIFIED = 0,
                        TYPE_INT64 = 1,
                        TYPE_BOOL = 2,
                        TYPE_FLOAT64 = 3,
                        TYPE_STRING = 4,
                        TYPE_BYTES = 5,
                        TYPE_TIMESTAMP = 6,
                        TYPE_DATE = 7,
                        TYPE_TIME = 8,
                        TYPE_DATETIME = 9,
                        TYPE_GEOGRAPHY = 10,
                        TYPE_NUMERIC = 11,
                        TYPE_RECORD = 12,
                        TYPE_BIGNUMERIC = 13,
                        TYPE_JSON = 14,
                        TYPE_INTERVAL = 15,
                        TYPE_RANGE_DATE = 16,
                        TYPE_RANGE_DATETIME = 17,
                        TYPE_RANGE_TIMESTAMP = 18
                    }

                    /** ColumnPolicyState enum. */
                    enum ColumnPolicyState {
                        COLUMN_POLICY_STATE_UNSPECIFIED = 0,
                        COLUMN_POLICY_TAGGED = 1
                    }
                }

                /** Properties of a FileStoreDataProfile. */
                interface IFileStoreDataProfile {

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

                    /** FileStoreDataProfile dataSourceType */
                    dataSourceType?: (google.privacy.dlp.v2.IDataSourceType|null);

                    /** FileStoreDataProfile projectDataProfile */
                    projectDataProfile?: (string|null);

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

                    /** FileStoreDataProfile fileStoreLocation */
                    fileStoreLocation?: (string|null);

                    /** FileStoreDataProfile dataStorageLocations */
                    dataStorageLocations?: (string[]|null);

                    /** FileStoreDataProfile locationType */
                    locationType?: (string|null);

                    /** FileStoreDataProfile fileStorePath */
                    fileStorePath?: (string|null);

                    /** FileStoreDataProfile fullResource */
                    fullResource?: (string|null);

                    /** FileStoreDataProfile configSnapshot */
                    configSnapshot?: (google.privacy.dlp.v2.IDataProfileConfigSnapshot|null);

                    /** FileStoreDataProfile profileStatus */
                    profileStatus?: (google.privacy.dlp.v2.IProfileStatus|null);

                    /** FileStoreDataProfile state */
                    state?: (google.privacy.dlp.v2.FileStoreDataProfile.State|keyof typeof google.privacy.dlp.v2.FileStoreDataProfile.State|null);

                    /** FileStoreDataProfile profileLastGenerated */
                    profileLastGenerated?: (google.protobuf.ITimestamp|null);

                    /** FileStoreDataProfile resourceVisibility */
                    resourceVisibility?: (google.privacy.dlp.v2.ResourceVisibility|keyof typeof google.privacy.dlp.v2.ResourceVisibility|null);

                    /** FileStoreDataProfile sensitivityScore */
                    sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** FileStoreDataProfile dataRiskLevel */
                    dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

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

                    /** FileStoreDataProfile lastModifiedTime */
                    lastModifiedTime?: (google.protobuf.ITimestamp|null);

                    /** FileStoreDataProfile fileClusterSummaries */
                    fileClusterSummaries?: (google.privacy.dlp.v2.IFileClusterSummary[]|null);

                    /** FileStoreDataProfile resourceAttributes */
                    resourceAttributes?: ({ [k: string]: google.privacy.dlp.v2.IValue }|null);

                    /** FileStoreDataProfile resourceLabels */
                    resourceLabels?: ({ [k: string]: string }|null);

                    /** FileStoreDataProfile fileStoreInfoTypeSummaries */
                    fileStoreInfoTypeSummaries?: (google.privacy.dlp.v2.IFileStoreInfoTypeSummary[]|null);

                    /** FileStoreDataProfile sampleFindingsTable */
                    sampleFindingsTable?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** FileStoreDataProfile fileStoreIsEmpty */
                    fileStoreIsEmpty?: (boolean|null);

                    /** FileStoreDataProfile tags */
                    tags?: (google.privacy.dlp.v2.ITag[]|null);

                    /** FileStoreDataProfile relatedResources */
                    relatedResources?: (google.privacy.dlp.v2.IRelatedResource[]|null);

                    /** FileStoreDataProfile domains */
                    domains?: (google.privacy.dlp.v2.IDomain[]|null);
                }

                /** Represents a FileStoreDataProfile. */
                class FileStoreDataProfile implements IFileStoreDataProfile {

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

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

                    /** FileStoreDataProfile dataSourceType. */
                    public dataSourceType?: (google.privacy.dlp.v2.IDataSourceType|null);

                    /** FileStoreDataProfile projectDataProfile. */
                    public projectDataProfile: string;

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

                    /** FileStoreDataProfile fileStoreLocation. */
                    public fileStoreLocation: string;

                    /** FileStoreDataProfile dataStorageLocations. */
                    public dataStorageLocations: string[];

                    /** FileStoreDataProfile locationType. */
                    public locationType: string;

                    /** FileStoreDataProfile fileStorePath. */
                    public fileStorePath: string;

                    /** FileStoreDataProfile fullResource. */
                    public fullResource: string;

                    /** FileStoreDataProfile configSnapshot. */
                    public configSnapshot?: (google.privacy.dlp.v2.IDataProfileConfigSnapshot|null);

                    /** FileStoreDataProfile profileStatus. */
                    public profileStatus?: (google.privacy.dlp.v2.IProfileStatus|null);

                    /** FileStoreDataProfile state. */
                    public state: (google.privacy.dlp.v2.FileStoreDataProfile.State|keyof typeof google.privacy.dlp.v2.FileStoreDataProfile.State);

                    /** FileStoreDataProfile profileLastGenerated. */
                    public profileLastGenerated?: (google.protobuf.ITimestamp|null);

                    /** FileStoreDataProfile resourceVisibility. */
                    public resourceVisibility: (google.privacy.dlp.v2.ResourceVisibility|keyof typeof google.privacy.dlp.v2.ResourceVisibility);

                    /** FileStoreDataProfile sensitivityScore. */
                    public sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** FileStoreDataProfile dataRiskLevel. */
                    public dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

                    /** FileStoreDataProfile createTime. */
                    public createTime?: (google.protobuf.ITimestamp|null);

                    /** FileStoreDataProfile lastModifiedTime. */
                    public lastModifiedTime?: (google.protobuf.ITimestamp|null);

                    /** FileStoreDataProfile fileClusterSummaries. */
                    public fileClusterSummaries: google.privacy.dlp.v2.IFileClusterSummary[];

                    /** FileStoreDataProfile resourceAttributes. */
                    public resourceAttributes: { [k: string]: google.privacy.dlp.v2.IValue };

                    /** FileStoreDataProfile resourceLabels. */
                    public resourceLabels: { [k: string]: string };

                    /** FileStoreDataProfile fileStoreInfoTypeSummaries. */
                    public fileStoreInfoTypeSummaries: google.privacy.dlp.v2.IFileStoreInfoTypeSummary[];

                    /** FileStoreDataProfile sampleFindingsTable. */
                    public sampleFindingsTable?: (google.privacy.dlp.v2.IBigQueryTable|null);

                    /** FileStoreDataProfile fileStoreIsEmpty. */
                    public fileStoreIsEmpty: boolean;

                    /** FileStoreDataProfile tags. */
                    public tags: google.privacy.dlp.v2.ITag[];

                    /** FileStoreDataProfile relatedResources. */
                    public relatedResources: google.privacy.dlp.v2.IRelatedResource[];

                    /** FileStoreDataProfile domains. */
                    public domains: google.privacy.dlp.v2.IDomain[];

                    /**
                     * Creates a new FileStoreDataProfile instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FileStoreDataProfile instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFileStoreDataProfile): google.privacy.dlp.v2.FileStoreDataProfile;

                    /**
                     * Encodes the specified FileStoreDataProfile message. Does not implicitly {@link google.privacy.dlp.v2.FileStoreDataProfile.verify|verify} messages.
                     * @param message FileStoreDataProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFileStoreDataProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FileStoreDataProfile message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.FileStoreDataProfile.verify|verify} messages.
                     * @param message FileStoreDataProfile message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFileStoreDataProfile, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FileStoreDataProfile message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileStoreDataProfile
                     * @throws {Error} If the payload is not 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.FileStoreDataProfile;

                    /**
                     * Decodes a FileStoreDataProfile message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileStoreDataProfile
                     * @throws {Error} If the payload 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.FileStoreDataProfile;

                    /**
                     * Verifies a FileStoreDataProfile message.
                     * @param message Plain 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 FileStoreDataProfile message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileStoreDataProfile
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FileStoreDataProfile;

                    /**
                     * Creates a plain object from a FileStoreDataProfile message. Also converts values to other types if specified.
                     * @param message FileStoreDataProfile
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.FileStoreDataProfile, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FileStoreDataProfile to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FileStoreDataProfile
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FileStoreDataProfile {

                    /** State enum. */
                    enum State {
                        STATE_UNSPECIFIED = 0,
                        RUNNING = 1,
                        DONE = 2
                    }
                }

                /** Properties of a Tag. */
                interface ITag {

                    /** Tag namespacedTagValue */
                    namespacedTagValue?: (string|null);

                    /** Tag key */
                    key?: (string|null);

                    /** Tag value */
                    value?: (string|null);
                }

                /** Represents a Tag. */
                class Tag implements ITag {

                    /**
                     * Constructs a new Tag.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITag);

                    /** Tag namespacedTagValue. */
                    public namespacedTagValue: string;

                    /** Tag key. */
                    public key: string;

                    /** Tag value. */
                    public value: string;

                    /**
                     * Creates a new Tag instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Tag instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITag): google.privacy.dlp.v2.Tag;

                    /**
                     * Encodes the specified Tag message. Does not implicitly {@link google.privacy.dlp.v2.Tag.verify|verify} messages.
                     * @param message Tag message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITag, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Tag message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Tag.verify|verify} messages.
                     * @param message Tag message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITag, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Tag message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Tag
                     * @throws {Error} If the payload is not 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.Tag;

                    /**
                     * Decodes a Tag message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Tag
                     * @throws {Error} If the payload 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.Tag;

                    /**
                     * Verifies a Tag message.
                     * @param message Plain 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 Tag message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Tag
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Tag;

                    /**
                     * Creates a plain object from a Tag message. Also converts values to other types if specified.
                     * @param message Tag
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Tag, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Tag to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Tag
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TagFilters. */
                interface ITagFilters {

                    /** TagFilters tagFilters */
                    tagFilters?: (google.privacy.dlp.v2.ITagFilter[]|null);
                }

                /** Represents a TagFilters. */
                class TagFilters implements ITagFilters {

                    /**
                     * Constructs a new TagFilters.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITagFilters);

                    /** TagFilters tagFilters. */
                    public tagFilters: google.privacy.dlp.v2.ITagFilter[];

                    /**
                     * Creates a new TagFilters instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TagFilters instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITagFilters): google.privacy.dlp.v2.TagFilters;

                    /**
                     * Encodes the specified TagFilters message. Does not implicitly {@link google.privacy.dlp.v2.TagFilters.verify|verify} messages.
                     * @param message TagFilters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITagFilters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TagFilters message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TagFilters.verify|verify} messages.
                     * @param message TagFilters message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITagFilters, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TagFilters message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TagFilters
                     * @throws {Error} If the payload is not 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.TagFilters;

                    /**
                     * Decodes a TagFilters message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TagFilters
                     * @throws {Error} If the payload 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.TagFilters;

                    /**
                     * Verifies a TagFilters message.
                     * @param message Plain 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 TagFilters message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TagFilters
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TagFilters;

                    /**
                     * Creates a plain object from a TagFilters message. Also converts values to other types if specified.
                     * @param message TagFilters
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TagFilters, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TagFilters to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TagFilters
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a TagFilter. */
                interface ITagFilter {

                    /** TagFilter namespacedTagValue */
                    namespacedTagValue?: (string|null);

                    /** TagFilter namespacedTagKey */
                    namespacedTagKey?: (string|null);
                }

                /** Represents a TagFilter. */
                class TagFilter implements ITagFilter {

                    /**
                     * Constructs a new TagFilter.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITagFilter);

                    /** TagFilter namespacedTagValue. */
                    public namespacedTagValue?: (string|null);

                    /** TagFilter namespacedTagKey. */
                    public namespacedTagKey?: (string|null);

                    /** TagFilter format. */
                    public format?: ("namespacedTagValue"|"namespacedTagKey");

                    /**
                     * Creates a new TagFilter instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TagFilter instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITagFilter): google.privacy.dlp.v2.TagFilter;

                    /**
                     * Encodes the specified TagFilter message. Does not implicitly {@link google.privacy.dlp.v2.TagFilter.verify|verify} messages.
                     * @param message TagFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITagFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TagFilter message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TagFilter.verify|verify} messages.
                     * @param message TagFilter message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITagFilter, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TagFilter message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TagFilter
                     * @throws {Error} If the payload is not 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.TagFilter;

                    /**
                     * Decodes a TagFilter message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TagFilter
                     * @throws {Error} If the payload 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.TagFilter;

                    /**
                     * Verifies a TagFilter message.
                     * @param message Plain 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 TagFilter message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TagFilter
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TagFilter;

                    /**
                     * Creates a plain object from a TagFilter message. Also converts values to other types if specified.
                     * @param message TagFilter
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TagFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TagFilter to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TagFilter
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a RelatedResource. */
                interface IRelatedResource {

                    /** RelatedResource fullResource */
                    fullResource?: (string|null);
                }

                /** Represents a RelatedResource. */
                class RelatedResource implements IRelatedResource {

                    /**
                     * Constructs a new RelatedResource.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IRelatedResource);

                    /** RelatedResource fullResource. */
                    public fullResource: string;

                    /**
                     * Creates a new RelatedResource instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns RelatedResource instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IRelatedResource): google.privacy.dlp.v2.RelatedResource;

                    /**
                     * Encodes the specified RelatedResource message. Does not implicitly {@link google.privacy.dlp.v2.RelatedResource.verify|verify} messages.
                     * @param message RelatedResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IRelatedResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified RelatedResource message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.RelatedResource.verify|verify} messages.
                     * @param message RelatedResource message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IRelatedResource, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a RelatedResource message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns RelatedResource
                     * @throws {Error} If the payload is not 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.RelatedResource;

                    /**
                     * Decodes a RelatedResource message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns RelatedResource
                     * @throws {Error} If the payload 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.RelatedResource;

                    /**
                     * Verifies a RelatedResource message.
                     * @param message Plain 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 RelatedResource message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns RelatedResource
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.RelatedResource;

                    /**
                     * Creates a plain object from a RelatedResource message. Also converts values to other types if specified.
                     * @param message RelatedResource
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.RelatedResource, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this RelatedResource to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for RelatedResource
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FileStoreInfoTypeSummary. */
                interface IFileStoreInfoTypeSummary {

                    /** FileStoreInfoTypeSummary infoType */
                    infoType?: (google.privacy.dlp.v2.IInfoType|null);
                }

                /** Represents a FileStoreInfoTypeSummary. */
                class FileStoreInfoTypeSummary implements IFileStoreInfoTypeSummary {

                    /**
                     * Constructs a new FileStoreInfoTypeSummary.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IFileStoreInfoTypeSummary);

                    /** FileStoreInfoTypeSummary infoType. */
                    public infoType?: (google.privacy.dlp.v2.IInfoType|null);

                    /**
                     * Creates a new FileStoreInfoTypeSummary instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FileStoreInfoTypeSummary instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFileStoreInfoTypeSummary): google.privacy.dlp.v2.FileStoreInfoTypeSummary;

                    /**
                     * Encodes the specified FileStoreInfoTypeSummary message. Does not implicitly {@link google.privacy.dlp.v2.FileStoreInfoTypeSummary.verify|verify} messages.
                     * @param message FileStoreInfoTypeSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFileStoreInfoTypeSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FileStoreInfoTypeSummary message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.FileStoreInfoTypeSummary.verify|verify} messages.
                     * @param message FileStoreInfoTypeSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFileStoreInfoTypeSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FileStoreInfoTypeSummary message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileStoreInfoTypeSummary
                     * @throws {Error} If the payload is not 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.FileStoreInfoTypeSummary;

                    /**
                     * Decodes a FileStoreInfoTypeSummary message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileStoreInfoTypeSummary
                     * @throws {Error} If the payload 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.FileStoreInfoTypeSummary;

                    /**
                     * Verifies a FileStoreInfoTypeSummary message.
                     * @param message Plain 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 FileStoreInfoTypeSummary message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileStoreInfoTypeSummary
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FileStoreInfoTypeSummary;

                    /**
                     * Creates a plain object from a FileStoreInfoTypeSummary message. Also converts values to other types if specified.
                     * @param message FileStoreInfoTypeSummary
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.FileStoreInfoTypeSummary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FileStoreInfoTypeSummary to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FileStoreInfoTypeSummary
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FileExtensionInfo. */
                interface IFileExtensionInfo {

                    /** FileExtensionInfo fileExtension */
                    fileExtension?: (string|null);
                }

                /** Represents a FileExtensionInfo. */
                class FileExtensionInfo implements IFileExtensionInfo {

                    /**
                     * Constructs a new FileExtensionInfo.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IFileExtensionInfo);

                    /** FileExtensionInfo fileExtension. */
                    public fileExtension: string;

                    /**
                     * Creates a new FileExtensionInfo instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FileExtensionInfo instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFileExtensionInfo): google.privacy.dlp.v2.FileExtensionInfo;

                    /**
                     * Encodes the specified FileExtensionInfo message. Does not implicitly {@link google.privacy.dlp.v2.FileExtensionInfo.verify|verify} messages.
                     * @param message FileExtensionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFileExtensionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FileExtensionInfo message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.FileExtensionInfo.verify|verify} messages.
                     * @param message FileExtensionInfo message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFileExtensionInfo, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FileExtensionInfo message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileExtensionInfo
                     * @throws {Error} If the payload is not 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.FileExtensionInfo;

                    /**
                     * Decodes a FileExtensionInfo message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileExtensionInfo
                     * @throws {Error} If the payload 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.FileExtensionInfo;

                    /**
                     * Verifies a FileExtensionInfo message.
                     * @param message Plain 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 FileExtensionInfo message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileExtensionInfo
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FileExtensionInfo;

                    /**
                     * Creates a plain object from a FileExtensionInfo message. Also converts values to other types if specified.
                     * @param message FileExtensionInfo
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.FileExtensionInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FileExtensionInfo to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FileExtensionInfo
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FileClusterSummary. */
                interface IFileClusterSummary {

                    /** FileClusterSummary fileClusterType */
                    fileClusterType?: (google.privacy.dlp.v2.IFileClusterType|null);

                    /** FileClusterSummary fileStoreInfoTypeSummaries */
                    fileStoreInfoTypeSummaries?: (google.privacy.dlp.v2.IFileStoreInfoTypeSummary[]|null);

                    /** FileClusterSummary sensitivityScore */
                    sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** FileClusterSummary dataRiskLevel */
                    dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

                    /** FileClusterSummary errors */
                    errors?: (google.privacy.dlp.v2.IError[]|null);

                    /** FileClusterSummary fileExtensionsScanned */
                    fileExtensionsScanned?: (google.privacy.dlp.v2.IFileExtensionInfo[]|null);

                    /** FileClusterSummary fileExtensionsSeen */
                    fileExtensionsSeen?: (google.privacy.dlp.v2.IFileExtensionInfo[]|null);

                    /** FileClusterSummary noFilesExist */
                    noFilesExist?: (boolean|null);
                }

                /** Represents a FileClusterSummary. */
                class FileClusterSummary implements IFileClusterSummary {

                    /**
                     * Constructs a new FileClusterSummary.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IFileClusterSummary);

                    /** FileClusterSummary fileClusterType. */
                    public fileClusterType?: (google.privacy.dlp.v2.IFileClusterType|null);

                    /** FileClusterSummary fileStoreInfoTypeSummaries. */
                    public fileStoreInfoTypeSummaries: google.privacy.dlp.v2.IFileStoreInfoTypeSummary[];

                    /** FileClusterSummary sensitivityScore. */
                    public sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** FileClusterSummary dataRiskLevel. */
                    public dataRiskLevel?: (google.privacy.dlp.v2.IDataRiskLevel|null);

                    /** FileClusterSummary errors. */
                    public errors: google.privacy.dlp.v2.IError[];

                    /** FileClusterSummary fileExtensionsScanned. */
                    public fileExtensionsScanned: google.privacy.dlp.v2.IFileExtensionInfo[];

                    /** FileClusterSummary fileExtensionsSeen. */
                    public fileExtensionsSeen: google.privacy.dlp.v2.IFileExtensionInfo[];

                    /** FileClusterSummary noFilesExist. */
                    public noFilesExist: boolean;

                    /**
                     * Creates a new FileClusterSummary instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FileClusterSummary instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFileClusterSummary): google.privacy.dlp.v2.FileClusterSummary;

                    /**
                     * Encodes the specified FileClusterSummary message. Does not implicitly {@link google.privacy.dlp.v2.FileClusterSummary.verify|verify} messages.
                     * @param message FileClusterSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFileClusterSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FileClusterSummary message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.FileClusterSummary.verify|verify} messages.
                     * @param message FileClusterSummary message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFileClusterSummary, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FileClusterSummary message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileClusterSummary
                     * @throws {Error} If the payload is not 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.FileClusterSummary;

                    /**
                     * Decodes a FileClusterSummary message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileClusterSummary
                     * @throws {Error} If the payload 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.FileClusterSummary;

                    /**
                     * Verifies a FileClusterSummary message.
                     * @param message Plain 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 FileClusterSummary message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileClusterSummary
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FileClusterSummary;

                    /**
                     * Creates a plain object from a FileClusterSummary message. Also converts values to other types if specified.
                     * @param message FileClusterSummary
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.FileClusterSummary, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FileClusterSummary to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FileClusterSummary
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetProjectDataProfileRequest. */
                interface IGetProjectDataProfileRequest {

                    /** GetProjectDataProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a GetProjectDataProfileRequest. */
                class GetProjectDataProfileRequest implements IGetProjectDataProfileRequest {

                    /**
                     * Constructs a new GetProjectDataProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetProjectDataProfileRequest);

                    /** GetProjectDataProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetProjectDataProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetProjectDataProfileRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetProjectDataProfileRequest): google.privacy.dlp.v2.GetProjectDataProfileRequest;

                    /**
                     * Encodes the specified GetProjectDataProfileRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetProjectDataProfileRequest.verify|verify} messages.
                     * @param message GetProjectDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetProjectDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetProjectDataProfileRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetProjectDataProfileRequest.verify|verify} messages.
                     * @param message GetProjectDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetProjectDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetProjectDataProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetProjectDataProfileRequest
                     * @throws {Error} If the payload is not 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.GetProjectDataProfileRequest;

                    /**
                     * Decodes a GetProjectDataProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetProjectDataProfileRequest
                     * @throws {Error} If the payload 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.GetProjectDataProfileRequest;

                    /**
                     * Verifies a GetProjectDataProfileRequest message.
                     * @param message Plain 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 GetProjectDataProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetProjectDataProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetProjectDataProfileRequest;

                    /**
                     * Creates a plain object from a GetProjectDataProfileRequest message. Also converts values to other types if specified.
                     * @param message GetProjectDataProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetProjectDataProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetProjectDataProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetProjectDataProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetFileStoreDataProfileRequest. */
                interface IGetFileStoreDataProfileRequest {

                    /** GetFileStoreDataProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a GetFileStoreDataProfileRequest. */
                class GetFileStoreDataProfileRequest implements IGetFileStoreDataProfileRequest {

                    /**
                     * Constructs a new GetFileStoreDataProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetFileStoreDataProfileRequest);

                    /** GetFileStoreDataProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetFileStoreDataProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetFileStoreDataProfileRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetFileStoreDataProfileRequest): google.privacy.dlp.v2.GetFileStoreDataProfileRequest;

                    /**
                     * Encodes the specified GetFileStoreDataProfileRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetFileStoreDataProfileRequest.verify|verify} messages.
                     * @param message GetFileStoreDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetFileStoreDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetFileStoreDataProfileRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetFileStoreDataProfileRequest.verify|verify} messages.
                     * @param message GetFileStoreDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetFileStoreDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetFileStoreDataProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetFileStoreDataProfileRequest
                     * @throws {Error} If the payload is not 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.GetFileStoreDataProfileRequest;

                    /**
                     * Decodes a GetFileStoreDataProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetFileStoreDataProfileRequest
                     * @throws {Error} If the payload 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.GetFileStoreDataProfileRequest;

                    /**
                     * Verifies a GetFileStoreDataProfileRequest message.
                     * @param message Plain 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 GetFileStoreDataProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetFileStoreDataProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetFileStoreDataProfileRequest;

                    /**
                     * Creates a plain object from a GetFileStoreDataProfileRequest message. Also converts values to other types if specified.
                     * @param message GetFileStoreDataProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetFileStoreDataProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetFileStoreDataProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetFileStoreDataProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListFileStoreDataProfilesRequest. */
                interface IListFileStoreDataProfilesRequest {

                    /** ListFileStoreDataProfilesRequest parent */
                    parent?: (string|null);

                    /** ListFileStoreDataProfilesRequest pageToken */
                    pageToken?: (string|null);

                    /** ListFileStoreDataProfilesRequest pageSize */
                    pageSize?: (number|null);

                    /** ListFileStoreDataProfilesRequest orderBy */
                    orderBy?: (string|null);

                    /** ListFileStoreDataProfilesRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListFileStoreDataProfilesRequest. */
                class ListFileStoreDataProfilesRequest implements IListFileStoreDataProfilesRequest {

                    /**
                     * Constructs a new ListFileStoreDataProfilesRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListFileStoreDataProfilesRequest);

                    /** ListFileStoreDataProfilesRequest parent. */
                    public parent: string;

                    /** ListFileStoreDataProfilesRequest pageToken. */
                    public pageToken: string;

                    /** ListFileStoreDataProfilesRequest pageSize. */
                    public pageSize: number;

                    /** ListFileStoreDataProfilesRequest orderBy. */
                    public orderBy: string;

                    /** ListFileStoreDataProfilesRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new ListFileStoreDataProfilesRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListFileStoreDataProfilesRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListFileStoreDataProfilesRequest): google.privacy.dlp.v2.ListFileStoreDataProfilesRequest;

                    /**
                     * Encodes the specified ListFileStoreDataProfilesRequest message. Does not implicitly {@link google.privacy.dlp.v2.ListFileStoreDataProfilesRequest.verify|verify} messages.
                     * @param message ListFileStoreDataProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListFileStoreDataProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListFileStoreDataProfilesRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListFileStoreDataProfilesRequest.verify|verify} messages.
                     * @param message ListFileStoreDataProfilesRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListFileStoreDataProfilesRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListFileStoreDataProfilesRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListFileStoreDataProfilesRequest
                     * @throws {Error} If the payload is not 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.ListFileStoreDataProfilesRequest;

                    /**
                     * Decodes a ListFileStoreDataProfilesRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListFileStoreDataProfilesRequest
                     * @throws {Error} If the payload 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.ListFileStoreDataProfilesRequest;

                    /**
                     * Verifies a ListFileStoreDataProfilesRequest message.
                     * @param message Plain 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 ListFileStoreDataProfilesRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListFileStoreDataProfilesRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListFileStoreDataProfilesRequest;

                    /**
                     * Creates a plain object from a ListFileStoreDataProfilesRequest message. Also converts values to other types if specified.
                     * @param message ListFileStoreDataProfilesRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListFileStoreDataProfilesRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListFileStoreDataProfilesRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListFileStoreDataProfilesRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListFileStoreDataProfilesResponse. */
                interface IListFileStoreDataProfilesResponse {

                    /** ListFileStoreDataProfilesResponse fileStoreDataProfiles */
                    fileStoreDataProfiles?: (google.privacy.dlp.v2.IFileStoreDataProfile[]|null);

                    /** ListFileStoreDataProfilesResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListFileStoreDataProfilesResponse. */
                class ListFileStoreDataProfilesResponse implements IListFileStoreDataProfilesResponse {

                    /**
                     * Constructs a new ListFileStoreDataProfilesResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListFileStoreDataProfilesResponse);

                    /** ListFileStoreDataProfilesResponse fileStoreDataProfiles. */
                    public fileStoreDataProfiles: google.privacy.dlp.v2.IFileStoreDataProfile[];

                    /** ListFileStoreDataProfilesResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListFileStoreDataProfilesResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListFileStoreDataProfilesResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListFileStoreDataProfilesResponse): google.privacy.dlp.v2.ListFileStoreDataProfilesResponse;

                    /**
                     * Encodes the specified ListFileStoreDataProfilesResponse message. Does not implicitly {@link google.privacy.dlp.v2.ListFileStoreDataProfilesResponse.verify|verify} messages.
                     * @param message ListFileStoreDataProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListFileStoreDataProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListFileStoreDataProfilesResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListFileStoreDataProfilesResponse.verify|verify} messages.
                     * @param message ListFileStoreDataProfilesResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListFileStoreDataProfilesResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListFileStoreDataProfilesResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListFileStoreDataProfilesResponse
                     * @throws {Error} If the payload is not 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.ListFileStoreDataProfilesResponse;

                    /**
                     * Decodes a ListFileStoreDataProfilesResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListFileStoreDataProfilesResponse
                     * @throws {Error} If the payload 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.ListFileStoreDataProfilesResponse;

                    /**
                     * Verifies a ListFileStoreDataProfilesResponse message.
                     * @param message Plain 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 ListFileStoreDataProfilesResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListFileStoreDataProfilesResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListFileStoreDataProfilesResponse;

                    /**
                     * Creates a plain object from a ListFileStoreDataProfilesResponse message. Also converts values to other types if specified.
                     * @param message ListFileStoreDataProfilesResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListFileStoreDataProfilesResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListFileStoreDataProfilesResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListFileStoreDataProfilesResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteFileStoreDataProfileRequest. */
                interface IDeleteFileStoreDataProfileRequest {

                    /** DeleteFileStoreDataProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteFileStoreDataProfileRequest. */
                class DeleteFileStoreDataProfileRequest implements IDeleteFileStoreDataProfileRequest {

                    /**
                     * Constructs a new DeleteFileStoreDataProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeleteFileStoreDataProfileRequest);

                    /** DeleteFileStoreDataProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteFileStoreDataProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteFileStoreDataProfileRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeleteFileStoreDataProfileRequest): google.privacy.dlp.v2.DeleteFileStoreDataProfileRequest;

                    /**
                     * Encodes the specified DeleteFileStoreDataProfileRequest message. Does not implicitly {@link google.privacy.dlp.v2.DeleteFileStoreDataProfileRequest.verify|verify} messages.
                     * @param message DeleteFileStoreDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeleteFileStoreDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteFileStoreDataProfileRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeleteFileStoreDataProfileRequest.verify|verify} messages.
                     * @param message DeleteFileStoreDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeleteFileStoreDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteFileStoreDataProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteFileStoreDataProfileRequest
                     * @throws {Error} If the payload is not 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.DeleteFileStoreDataProfileRequest;

                    /**
                     * Decodes a DeleteFileStoreDataProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteFileStoreDataProfileRequest
                     * @throws {Error} If the payload 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.DeleteFileStoreDataProfileRequest;

                    /**
                     * Verifies a DeleteFileStoreDataProfileRequest message.
                     * @param message Plain 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 DeleteFileStoreDataProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteFileStoreDataProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeleteFileStoreDataProfileRequest;

                    /**
                     * Creates a plain object from a DeleteFileStoreDataProfileRequest message. Also converts values to other types if specified.
                     * @param message DeleteFileStoreDataProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeleteFileStoreDataProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteFileStoreDataProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteFileStoreDataProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetTableDataProfileRequest. */
                interface IGetTableDataProfileRequest {

                    /** GetTableDataProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a GetTableDataProfileRequest. */
                class GetTableDataProfileRequest implements IGetTableDataProfileRequest {

                    /**
                     * Constructs a new GetTableDataProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetTableDataProfileRequest);

                    /** GetTableDataProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetTableDataProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetTableDataProfileRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetTableDataProfileRequest): google.privacy.dlp.v2.GetTableDataProfileRequest;

                    /**
                     * Encodes the specified GetTableDataProfileRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetTableDataProfileRequest.verify|verify} messages.
                     * @param message GetTableDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetTableDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetTableDataProfileRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetTableDataProfileRequest.verify|verify} messages.
                     * @param message GetTableDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetTableDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetTableDataProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetTableDataProfileRequest
                     * @throws {Error} If the payload is not 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.GetTableDataProfileRequest;

                    /**
                     * Decodes a GetTableDataProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetTableDataProfileRequest
                     * @throws {Error} If the payload 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.GetTableDataProfileRequest;

                    /**
                     * Verifies a GetTableDataProfileRequest message.
                     * @param message Plain 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 GetTableDataProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetTableDataProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetTableDataProfileRequest;

                    /**
                     * Creates a plain object from a GetTableDataProfileRequest message. Also converts values to other types if specified.
                     * @param message GetTableDataProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetTableDataProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetTableDataProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetTableDataProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetColumnDataProfileRequest. */
                interface IGetColumnDataProfileRequest {

                    /** GetColumnDataProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a GetColumnDataProfileRequest. */
                class GetColumnDataProfileRequest implements IGetColumnDataProfileRequest {

                    /**
                     * Constructs a new GetColumnDataProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetColumnDataProfileRequest);

                    /** GetColumnDataProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetColumnDataProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetColumnDataProfileRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetColumnDataProfileRequest): google.privacy.dlp.v2.GetColumnDataProfileRequest;

                    /**
                     * Encodes the specified GetColumnDataProfileRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetColumnDataProfileRequest.verify|verify} messages.
                     * @param message GetColumnDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetColumnDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetColumnDataProfileRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetColumnDataProfileRequest.verify|verify} messages.
                     * @param message GetColumnDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetColumnDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetColumnDataProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetColumnDataProfileRequest
                     * @throws {Error} If the payload is not 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.GetColumnDataProfileRequest;

                    /**
                     * Decodes a GetColumnDataProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetColumnDataProfileRequest
                     * @throws {Error} If the payload 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.GetColumnDataProfileRequest;

                    /**
                     * Verifies a GetColumnDataProfileRequest message.
                     * @param message Plain 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 GetColumnDataProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetColumnDataProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetColumnDataProfileRequest;

                    /**
                     * Creates a plain object from a GetColumnDataProfileRequest message. Also converts values to other types if specified.
                     * @param message GetColumnDataProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetColumnDataProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetColumnDataProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetColumnDataProfileRequest
                     * @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 fileStoreProfile */
                    fileStoreProfile?: (google.privacy.dlp.v2.IFileStoreDataProfile|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 fileStoreProfile. */
                    public fileStoreProfile?: (google.privacy.dlp.v2.IFileStoreDataProfile|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 a CreateConnectionRequest. */
                interface ICreateConnectionRequest {

                    /** CreateConnectionRequest parent */
                    parent?: (string|null);

                    /** CreateConnectionRequest connection */
                    connection?: (google.privacy.dlp.v2.IConnection|null);
                }

                /** Represents a CreateConnectionRequest. */
                class CreateConnectionRequest implements ICreateConnectionRequest {

                    /**
                     * Constructs a new CreateConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICreateConnectionRequest);

                    /** CreateConnectionRequest parent. */
                    public parent: string;

                    /** CreateConnectionRequest connection. */
                    public connection?: (google.privacy.dlp.v2.IConnection|null);

                    /**
                     * Creates a new CreateConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CreateConnectionRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICreateConnectionRequest): google.privacy.dlp.v2.CreateConnectionRequest;

                    /**
                     * Encodes the specified CreateConnectionRequest message. Does not implicitly {@link google.privacy.dlp.v2.CreateConnectionRequest.verify|verify} messages.
                     * @param message CreateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICreateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CreateConnectionRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CreateConnectionRequest.verify|verify} messages.
                     * @param message CreateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICreateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CreateConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CreateConnectionRequest
                     * @throws {Error} If the payload is not 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.CreateConnectionRequest;

                    /**
                     * Decodes a CreateConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CreateConnectionRequest
                     * @throws {Error} If the payload 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.CreateConnectionRequest;

                    /**
                     * Verifies a CreateConnectionRequest message.
                     * @param message Plain 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 CreateConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CreateConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CreateConnectionRequest;

                    /**
                     * Creates a plain object from a CreateConnectionRequest message. Also converts values to other types if specified.
                     * @param message CreateConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CreateConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CreateConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CreateConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a GetConnectionRequest. */
                interface IGetConnectionRequest {

                    /** GetConnectionRequest name */
                    name?: (string|null);
                }

                /** Represents a GetConnectionRequest. */
                class GetConnectionRequest implements IGetConnectionRequest {

                    /**
                     * Constructs a new GetConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IGetConnectionRequest);

                    /** GetConnectionRequest name. */
                    public name: string;

                    /**
                     * Creates a new GetConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns GetConnectionRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IGetConnectionRequest): google.privacy.dlp.v2.GetConnectionRequest;

                    /**
                     * Encodes the specified GetConnectionRequest message. Does not implicitly {@link google.privacy.dlp.v2.GetConnectionRequest.verify|verify} messages.
                     * @param message GetConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IGetConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified GetConnectionRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.GetConnectionRequest.verify|verify} messages.
                     * @param message GetConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IGetConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a GetConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns GetConnectionRequest
                     * @throws {Error} If the payload is not 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.GetConnectionRequest;

                    /**
                     * Decodes a GetConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns GetConnectionRequest
                     * @throws {Error} If the payload 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.GetConnectionRequest;

                    /**
                     * Verifies a GetConnectionRequest message.
                     * @param message Plain 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 GetConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns GetConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.GetConnectionRequest;

                    /**
                     * Creates a plain object from a GetConnectionRequest message. Also converts values to other types if specified.
                     * @param message GetConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.GetConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this GetConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for GetConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConnectionsRequest. */
                interface IListConnectionsRequest {

                    /** ListConnectionsRequest parent */
                    parent?: (string|null);

                    /** ListConnectionsRequest pageSize */
                    pageSize?: (number|null);

                    /** ListConnectionsRequest pageToken */
                    pageToken?: (string|null);

                    /** ListConnectionsRequest filter */
                    filter?: (string|null);
                }

                /** Represents a ListConnectionsRequest. */
                class ListConnectionsRequest implements IListConnectionsRequest {

                    /**
                     * Constructs a new ListConnectionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListConnectionsRequest);

                    /** ListConnectionsRequest parent. */
                    public parent: string;

                    /** ListConnectionsRequest pageSize. */
                    public pageSize: number;

                    /** ListConnectionsRequest pageToken. */
                    public pageToken: string;

                    /** ListConnectionsRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new ListConnectionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConnectionsRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListConnectionsRequest): google.privacy.dlp.v2.ListConnectionsRequest;

                    /**
                     * Encodes the specified ListConnectionsRequest message. Does not implicitly {@link google.privacy.dlp.v2.ListConnectionsRequest.verify|verify} messages.
                     * @param message ListConnectionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListConnectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConnectionsRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListConnectionsRequest.verify|verify} messages.
                     * @param message ListConnectionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListConnectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConnectionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConnectionsRequest
                     * @throws {Error} If the payload is not 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.ListConnectionsRequest;

                    /**
                     * Decodes a ListConnectionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConnectionsRequest
                     * @throws {Error} If the payload 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.ListConnectionsRequest;

                    /**
                     * Verifies a ListConnectionsRequest message.
                     * @param message Plain 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 ListConnectionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConnectionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListConnectionsRequest;

                    /**
                     * Creates a plain object from a ListConnectionsRequest message. Also converts values to other types if specified.
                     * @param message ListConnectionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListConnectionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConnectionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConnectionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SearchConnectionsRequest. */
                interface ISearchConnectionsRequest {

                    /** SearchConnectionsRequest parent */
                    parent?: (string|null);

                    /** SearchConnectionsRequest pageSize */
                    pageSize?: (number|null);

                    /** SearchConnectionsRequest pageToken */
                    pageToken?: (string|null);

                    /** SearchConnectionsRequest filter */
                    filter?: (string|null);
                }

                /** Represents a SearchConnectionsRequest. */
                class SearchConnectionsRequest implements ISearchConnectionsRequest {

                    /**
                     * Constructs a new SearchConnectionsRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ISearchConnectionsRequest);

                    /** SearchConnectionsRequest parent. */
                    public parent: string;

                    /** SearchConnectionsRequest pageSize. */
                    public pageSize: number;

                    /** SearchConnectionsRequest pageToken. */
                    public pageToken: string;

                    /** SearchConnectionsRequest filter. */
                    public filter: string;

                    /**
                     * Creates a new SearchConnectionsRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchConnectionsRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ISearchConnectionsRequest): google.privacy.dlp.v2.SearchConnectionsRequest;

                    /**
                     * Encodes the specified SearchConnectionsRequest message. Does not implicitly {@link google.privacy.dlp.v2.SearchConnectionsRequest.verify|verify} messages.
                     * @param message SearchConnectionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ISearchConnectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchConnectionsRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.SearchConnectionsRequest.verify|verify} messages.
                     * @param message SearchConnectionsRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ISearchConnectionsRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchConnectionsRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchConnectionsRequest
                     * @throws {Error} If the payload is not 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.SearchConnectionsRequest;

                    /**
                     * Decodes a SearchConnectionsRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchConnectionsRequest
                     * @throws {Error} If the payload 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.SearchConnectionsRequest;

                    /**
                     * Verifies a SearchConnectionsRequest message.
                     * @param message Plain 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 SearchConnectionsRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchConnectionsRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.SearchConnectionsRequest;

                    /**
                     * Creates a plain object from a SearchConnectionsRequest message. Also converts values to other types if specified.
                     * @param message SearchConnectionsRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.SearchConnectionsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchConnectionsRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchConnectionsRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a ListConnectionsResponse. */
                interface IListConnectionsResponse {

                    /** ListConnectionsResponse connections */
                    connections?: (google.privacy.dlp.v2.IConnection[]|null);

                    /** ListConnectionsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a ListConnectionsResponse. */
                class ListConnectionsResponse implements IListConnectionsResponse {

                    /**
                     * Constructs a new ListConnectionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IListConnectionsResponse);

                    /** ListConnectionsResponse connections. */
                    public connections: google.privacy.dlp.v2.IConnection[];

                    /** ListConnectionsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new ListConnectionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ListConnectionsResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IListConnectionsResponse): google.privacy.dlp.v2.ListConnectionsResponse;

                    /**
                     * Encodes the specified ListConnectionsResponse message. Does not implicitly {@link google.privacy.dlp.v2.ListConnectionsResponse.verify|verify} messages.
                     * @param message ListConnectionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IListConnectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ListConnectionsResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ListConnectionsResponse.verify|verify} messages.
                     * @param message ListConnectionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IListConnectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ListConnectionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ListConnectionsResponse
                     * @throws {Error} If the payload is not 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.ListConnectionsResponse;

                    /**
                     * Decodes a ListConnectionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ListConnectionsResponse
                     * @throws {Error} If the payload 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.ListConnectionsResponse;

                    /**
                     * Verifies a ListConnectionsResponse message.
                     * @param message Plain 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 ListConnectionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ListConnectionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ListConnectionsResponse;

                    /**
                     * Creates a plain object from a ListConnectionsResponse message. Also converts values to other types if specified.
                     * @param message ListConnectionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ListConnectionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ListConnectionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ListConnectionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a SearchConnectionsResponse. */
                interface ISearchConnectionsResponse {

                    /** SearchConnectionsResponse connections */
                    connections?: (google.privacy.dlp.v2.IConnection[]|null);

                    /** SearchConnectionsResponse nextPageToken */
                    nextPageToken?: (string|null);
                }

                /** Represents a SearchConnectionsResponse. */
                class SearchConnectionsResponse implements ISearchConnectionsResponse {

                    /**
                     * Constructs a new SearchConnectionsResponse.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ISearchConnectionsResponse);

                    /** SearchConnectionsResponse connections. */
                    public connections: google.privacy.dlp.v2.IConnection[];

                    /** SearchConnectionsResponse nextPageToken. */
                    public nextPageToken: string;

                    /**
                     * Creates a new SearchConnectionsResponse instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SearchConnectionsResponse instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ISearchConnectionsResponse): google.privacy.dlp.v2.SearchConnectionsResponse;

                    /**
                     * Encodes the specified SearchConnectionsResponse message. Does not implicitly {@link google.privacy.dlp.v2.SearchConnectionsResponse.verify|verify} messages.
                     * @param message SearchConnectionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ISearchConnectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SearchConnectionsResponse message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.SearchConnectionsResponse.verify|verify} messages.
                     * @param message SearchConnectionsResponse message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ISearchConnectionsResponse, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SearchConnectionsResponse message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SearchConnectionsResponse
                     * @throws {Error} If the payload is not 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.SearchConnectionsResponse;

                    /**
                     * Decodes a SearchConnectionsResponse message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SearchConnectionsResponse
                     * @throws {Error} If the payload 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.SearchConnectionsResponse;

                    /**
                     * Verifies a SearchConnectionsResponse message.
                     * @param message Plain 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 SearchConnectionsResponse message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SearchConnectionsResponse
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.SearchConnectionsResponse;

                    /**
                     * Creates a plain object from a SearchConnectionsResponse message. Also converts values to other types if specified.
                     * @param message SearchConnectionsResponse
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.SearchConnectionsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SearchConnectionsResponse to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SearchConnectionsResponse
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of an UpdateConnectionRequest. */
                interface IUpdateConnectionRequest {

                    /** UpdateConnectionRequest name */
                    name?: (string|null);

                    /** UpdateConnectionRequest connection */
                    connection?: (google.privacy.dlp.v2.IConnection|null);

                    /** UpdateConnectionRequest updateMask */
                    updateMask?: (google.protobuf.IFieldMask|null);
                }

                /** Represents an UpdateConnectionRequest. */
                class UpdateConnectionRequest implements IUpdateConnectionRequest {

                    /**
                     * Constructs a new UpdateConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IUpdateConnectionRequest);

                    /** UpdateConnectionRequest name. */
                    public name: string;

                    /** UpdateConnectionRequest connection. */
                    public connection?: (google.privacy.dlp.v2.IConnection|null);

                    /** UpdateConnectionRequest updateMask. */
                    public updateMask?: (google.protobuf.IFieldMask|null);

                    /**
                     * Creates a new UpdateConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns UpdateConnectionRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IUpdateConnectionRequest): google.privacy.dlp.v2.UpdateConnectionRequest;

                    /**
                     * Encodes the specified UpdateConnectionRequest message. Does not implicitly {@link google.privacy.dlp.v2.UpdateConnectionRequest.verify|verify} messages.
                     * @param message UpdateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IUpdateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified UpdateConnectionRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.UpdateConnectionRequest.verify|verify} messages.
                     * @param message UpdateConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IUpdateConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes an UpdateConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns UpdateConnectionRequest
                     * @throws {Error} If the payload is not 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.UpdateConnectionRequest;

                    /**
                     * Decodes an UpdateConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns UpdateConnectionRequest
                     * @throws {Error} If the payload 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.UpdateConnectionRequest;

                    /**
                     * Verifies an UpdateConnectionRequest message.
                     * @param message Plain 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 UpdateConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns UpdateConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.UpdateConnectionRequest;

                    /**
                     * Creates a plain object from an UpdateConnectionRequest message. Also converts values to other types if specified.
                     * @param message UpdateConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.UpdateConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this UpdateConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for UpdateConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DeleteConnectionRequest. */
                interface IDeleteConnectionRequest {

                    /** DeleteConnectionRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteConnectionRequest. */
                class DeleteConnectionRequest implements IDeleteConnectionRequest {

                    /**
                     * Constructs a new DeleteConnectionRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeleteConnectionRequest);

                    /** DeleteConnectionRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteConnectionRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteConnectionRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeleteConnectionRequest): google.privacy.dlp.v2.DeleteConnectionRequest;

                    /**
                     * Encodes the specified DeleteConnectionRequest message. Does not implicitly {@link google.privacy.dlp.v2.DeleteConnectionRequest.verify|verify} messages.
                     * @param message DeleteConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeleteConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteConnectionRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeleteConnectionRequest.verify|verify} messages.
                     * @param message DeleteConnectionRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeleteConnectionRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteConnectionRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteConnectionRequest
                     * @throws {Error} If the payload is not 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.DeleteConnectionRequest;

                    /**
                     * Decodes a DeleteConnectionRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteConnectionRequest
                     * @throws {Error} If the payload 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.DeleteConnectionRequest;

                    /**
                     * Verifies a DeleteConnectionRequest message.
                     * @param message Plain 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 DeleteConnectionRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteConnectionRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeleteConnectionRequest;

                    /**
                     * Creates a plain object from a DeleteConnectionRequest message. Also converts values to other types if specified.
                     * @param message DeleteConnectionRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeleteConnectionRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteConnectionRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteConnectionRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Connection. */
                interface IConnection {

                    /** Connection name */
                    name?: (string|null);

                    /** Connection state */
                    state?: (google.privacy.dlp.v2.ConnectionState|keyof typeof google.privacy.dlp.v2.ConnectionState|null);

                    /** Connection errors */
                    errors?: (google.privacy.dlp.v2.IError[]|null);

                    /** Connection cloudSql */
                    cloudSql?: (google.privacy.dlp.v2.ICloudSqlProperties|null);
                }

                /** Represents a Connection. */
                class Connection implements IConnection {

                    /**
                     * Constructs a new Connection.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IConnection);

                    /** Connection name. */
                    public name: string;

                    /** Connection state. */
                    public state: (google.privacy.dlp.v2.ConnectionState|keyof typeof google.privacy.dlp.v2.ConnectionState);

                    /** Connection errors. */
                    public errors: google.privacy.dlp.v2.IError[];

                    /** Connection cloudSql. */
                    public cloudSql?: (google.privacy.dlp.v2.ICloudSqlProperties|null);

                    /** Connection properties. */
                    public properties?: "cloudSql";

                    /**
                     * Creates a new Connection instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Connection instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IConnection): google.privacy.dlp.v2.Connection;

                    /**
                     * Encodes the specified Connection message. Does not implicitly {@link google.privacy.dlp.v2.Connection.verify|verify} messages.
                     * @param message Connection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Connection message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Connection.verify|verify} messages.
                     * @param message Connection message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IConnection, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Connection message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Connection
                     * @throws {Error} If the payload is not 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.Connection;

                    /**
                     * Decodes a Connection message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Connection
                     * @throws {Error} If the payload 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.Connection;

                    /**
                     * Verifies a Connection message.
                     * @param message Plain 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 Connection message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Connection
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Connection;

                    /**
                     * Creates a plain object from a Connection message. Also converts values to other types if specified.
                     * @param message Connection
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Connection, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Connection to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Connection
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** ConnectionState enum. */
                enum ConnectionState {
                    CONNECTION_STATE_UNSPECIFIED = 0,
                    MISSING_CREDENTIALS = 1,
                    AVAILABLE = 2,
                    ERROR = 3
                }

                /** Properties of a SecretManagerCredential. */
                interface ISecretManagerCredential {

                    /** SecretManagerCredential username */
                    username?: (string|null);

                    /** SecretManagerCredential passwordSecretVersionName */
                    passwordSecretVersionName?: (string|null);
                }

                /** Represents a SecretManagerCredential. */
                class SecretManagerCredential implements ISecretManagerCredential {

                    /**
                     * Constructs a new SecretManagerCredential.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ISecretManagerCredential);

                    /** SecretManagerCredential username. */
                    public username: string;

                    /** SecretManagerCredential passwordSecretVersionName. */
                    public passwordSecretVersionName: string;

                    /**
                     * Creates a new SecretManagerCredential instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SecretManagerCredential instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ISecretManagerCredential): google.privacy.dlp.v2.SecretManagerCredential;

                    /**
                     * Encodes the specified SecretManagerCredential message. Does not implicitly {@link google.privacy.dlp.v2.SecretManagerCredential.verify|verify} messages.
                     * @param message SecretManagerCredential message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ISecretManagerCredential, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SecretManagerCredential message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.SecretManagerCredential.verify|verify} messages.
                     * @param message SecretManagerCredential message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ISecretManagerCredential, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SecretManagerCredential message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SecretManagerCredential
                     * @throws {Error} If the payload is not 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.SecretManagerCredential;

                    /**
                     * Decodes a SecretManagerCredential message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SecretManagerCredential
                     * @throws {Error} If the payload 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.SecretManagerCredential;

                    /**
                     * Verifies a SecretManagerCredential message.
                     * @param message Plain 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 SecretManagerCredential message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SecretManagerCredential
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.SecretManagerCredential;

                    /**
                     * Creates a plain object from a SecretManagerCredential message. Also converts values to other types if specified.
                     * @param message SecretManagerCredential
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.SecretManagerCredential, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SecretManagerCredential to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SecretManagerCredential
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloudSqlIamCredential. */
                interface ICloudSqlIamCredential {
                }

                /** Represents a CloudSqlIamCredential. */
                class CloudSqlIamCredential implements ICloudSqlIamCredential {

                    /**
                     * Constructs a new CloudSqlIamCredential.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICloudSqlIamCredential);

                    /**
                     * Creates a new CloudSqlIamCredential instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloudSqlIamCredential instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICloudSqlIamCredential): google.privacy.dlp.v2.CloudSqlIamCredential;

                    /**
                     * Encodes the specified CloudSqlIamCredential message. Does not implicitly {@link google.privacy.dlp.v2.CloudSqlIamCredential.verify|verify} messages.
                     * @param message CloudSqlIamCredential message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICloudSqlIamCredential, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloudSqlIamCredential message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CloudSqlIamCredential.verify|verify} messages.
                     * @param message CloudSqlIamCredential message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICloudSqlIamCredential, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloudSqlIamCredential message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudSqlIamCredential
                     * @throws {Error} If the payload is not 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.CloudSqlIamCredential;

                    /**
                     * Decodes a CloudSqlIamCredential message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudSqlIamCredential
                     * @throws {Error} If the payload 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.CloudSqlIamCredential;

                    /**
                     * Verifies a CloudSqlIamCredential message.
                     * @param message Plain 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 CloudSqlIamCredential message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudSqlIamCredential
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudSqlIamCredential;

                    /**
                     * Creates a plain object from a CloudSqlIamCredential message. Also converts values to other types if specified.
                     * @param message CloudSqlIamCredential
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CloudSqlIamCredential, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloudSqlIamCredential to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloudSqlIamCredential
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a CloudSqlProperties. */
                interface ICloudSqlProperties {

                    /** CloudSqlProperties connectionName */
                    connectionName?: (string|null);

                    /** CloudSqlProperties usernamePassword */
                    usernamePassword?: (google.privacy.dlp.v2.ISecretManagerCredential|null);

                    /** CloudSqlProperties cloudSqlIam */
                    cloudSqlIam?: (google.privacy.dlp.v2.ICloudSqlIamCredential|null);

                    /** CloudSqlProperties maxConnections */
                    maxConnections?: (number|null);

                    /** CloudSqlProperties databaseEngine */
                    databaseEngine?: (google.privacy.dlp.v2.CloudSqlProperties.DatabaseEngine|keyof typeof google.privacy.dlp.v2.CloudSqlProperties.DatabaseEngine|null);
                }

                /** Represents a CloudSqlProperties. */
                class CloudSqlProperties implements ICloudSqlProperties {

                    /**
                     * Constructs a new CloudSqlProperties.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ICloudSqlProperties);

                    /** CloudSqlProperties connectionName. */
                    public connectionName: string;

                    /** CloudSqlProperties usernamePassword. */
                    public usernamePassword?: (google.privacy.dlp.v2.ISecretManagerCredential|null);

                    /** CloudSqlProperties cloudSqlIam. */
                    public cloudSqlIam?: (google.privacy.dlp.v2.ICloudSqlIamCredential|null);

                    /** CloudSqlProperties maxConnections. */
                    public maxConnections: number;

                    /** CloudSqlProperties databaseEngine. */
                    public databaseEngine: (google.privacy.dlp.v2.CloudSqlProperties.DatabaseEngine|keyof typeof google.privacy.dlp.v2.CloudSqlProperties.DatabaseEngine);

                    /** CloudSqlProperties credential. */
                    public credential?: ("usernamePassword"|"cloudSqlIam");

                    /**
                     * Creates a new CloudSqlProperties instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns CloudSqlProperties instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ICloudSqlProperties): google.privacy.dlp.v2.CloudSqlProperties;

                    /**
                     * Encodes the specified CloudSqlProperties message. Does not implicitly {@link google.privacy.dlp.v2.CloudSqlProperties.verify|verify} messages.
                     * @param message CloudSqlProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ICloudSqlProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified CloudSqlProperties message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CloudSqlProperties.verify|verify} messages.
                     * @param message CloudSqlProperties message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ICloudSqlProperties, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a CloudSqlProperties message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns CloudSqlProperties
                     * @throws {Error} If the payload is not 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.CloudSqlProperties;

                    /**
                     * Decodes a CloudSqlProperties message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns CloudSqlProperties
                     * @throws {Error} If the payload 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.CloudSqlProperties;

                    /**
                     * Verifies a CloudSqlProperties message.
                     * @param message Plain 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 CloudSqlProperties message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns CloudSqlProperties
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CloudSqlProperties;

                    /**
                     * Creates a plain object from a CloudSqlProperties message. Also converts values to other types if specified.
                     * @param message CloudSqlProperties
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.CloudSqlProperties, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this CloudSqlProperties to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for CloudSqlProperties
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace CloudSqlProperties {

                    /** DatabaseEngine enum. */
                    enum DatabaseEngine {
                        DATABASE_ENGINE_UNKNOWN = 0,
                        DATABASE_ENGINE_MYSQL = 1,
                        DATABASE_ENGINE_POSTGRES = 2
                    }
                }

                /** Properties of a DeleteTableDataProfileRequest. */
                interface IDeleteTableDataProfileRequest {

                    /** DeleteTableDataProfileRequest name */
                    name?: (string|null);
                }

                /** Represents a DeleteTableDataProfileRequest. */
                class DeleteTableDataProfileRequest implements IDeleteTableDataProfileRequest {

                    /**
                     * Constructs a new DeleteTableDataProfileRequest.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDeleteTableDataProfileRequest);

                    /** DeleteTableDataProfileRequest name. */
                    public name: string;

                    /**
                     * Creates a new DeleteTableDataProfileRequest instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DeleteTableDataProfileRequest instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDeleteTableDataProfileRequest): google.privacy.dlp.v2.DeleteTableDataProfileRequest;

                    /**
                     * Encodes the specified DeleteTableDataProfileRequest message. Does not implicitly {@link google.privacy.dlp.v2.DeleteTableDataProfileRequest.verify|verify} messages.
                     * @param message DeleteTableDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDeleteTableDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DeleteTableDataProfileRequest message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DeleteTableDataProfileRequest.verify|verify} messages.
                     * @param message DeleteTableDataProfileRequest message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDeleteTableDataProfileRequest, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DeleteTableDataProfileRequest message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DeleteTableDataProfileRequest
                     * @throws {Error} If the payload is not 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.DeleteTableDataProfileRequest;

                    /**
                     * Decodes a DeleteTableDataProfileRequest message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DeleteTableDataProfileRequest
                     * @throws {Error} If the payload 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.DeleteTableDataProfileRequest;

                    /**
                     * Verifies a DeleteTableDataProfileRequest message.
                     * @param message Plain 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 DeleteTableDataProfileRequest message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DeleteTableDataProfileRequest
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DeleteTableDataProfileRequest;

                    /**
                     * Creates a plain object from a DeleteTableDataProfileRequest message. Also converts values to other types if specified.
                     * @param message DeleteTableDataProfileRequest
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DeleteTableDataProfileRequest, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DeleteTableDataProfileRequest to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DeleteTableDataProfileRequest
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a DataSourceType. */
                interface IDataSourceType {

                    /** DataSourceType dataSource */
                    dataSource?: (string|null);
                }

                /** Represents a DataSourceType. */
                class DataSourceType implements IDataSourceType {

                    /**
                     * Constructs a new DataSourceType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDataSourceType);

                    /** DataSourceType dataSource. */
                    public dataSource: string;

                    /**
                     * Creates a new DataSourceType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns DataSourceType instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDataSourceType): google.privacy.dlp.v2.DataSourceType;

                    /**
                     * Encodes the specified DataSourceType message. Does not implicitly {@link google.privacy.dlp.v2.DataSourceType.verify|verify} messages.
                     * @param message DataSourceType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDataSourceType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified DataSourceType message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.DataSourceType.verify|verify} messages.
                     * @param message DataSourceType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDataSourceType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a DataSourceType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns DataSourceType
                     * @throws {Error} If the payload is not 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.DataSourceType;

                    /**
                     * Decodes a DataSourceType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns DataSourceType
                     * @throws {Error} If the payload 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.DataSourceType;

                    /**
                     * Verifies a DataSourceType message.
                     * @param message Plain 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 DataSourceType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns DataSourceType
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.DataSourceType;

                    /**
                     * Creates a plain object from a DataSourceType message. Also converts values to other types if specified.
                     * @param message DataSourceType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.DataSourceType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this DataSourceType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for DataSourceType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a FileClusterType. */
                interface IFileClusterType {

                    /** FileClusterType cluster */
                    cluster?: (google.privacy.dlp.v2.FileClusterType.Cluster|keyof typeof google.privacy.dlp.v2.FileClusterType.Cluster|null);
                }

                /** Represents a FileClusterType. */
                class FileClusterType implements IFileClusterType {

                    /**
                     * Constructs a new FileClusterType.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IFileClusterType);

                    /** FileClusterType cluster. */
                    public cluster?: (google.privacy.dlp.v2.FileClusterType.Cluster|keyof typeof google.privacy.dlp.v2.FileClusterType.Cluster|null);

                    /** FileClusterType fileClusterType. */
                    public fileClusterType?: "cluster";

                    /**
                     * Creates a new FileClusterType instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns FileClusterType instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IFileClusterType): google.privacy.dlp.v2.FileClusterType;

                    /**
                     * Encodes the specified FileClusterType message. Does not implicitly {@link google.privacy.dlp.v2.FileClusterType.verify|verify} messages.
                     * @param message FileClusterType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IFileClusterType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified FileClusterType message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.FileClusterType.verify|verify} messages.
                     * @param message FileClusterType message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IFileClusterType, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a FileClusterType message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns FileClusterType
                     * @throws {Error} If the payload is not 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.FileClusterType;

                    /**
                     * Decodes a FileClusterType message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns FileClusterType
                     * @throws {Error} If the payload 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.FileClusterType;

                    /**
                     * Verifies a FileClusterType message.
                     * @param message Plain 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 FileClusterType message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns FileClusterType
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.FileClusterType;

                    /**
                     * Creates a plain object from a FileClusterType message. Also converts values to other types if specified.
                     * @param message FileClusterType
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.FileClusterType, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this FileClusterType to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for FileClusterType
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace FileClusterType {

                    /** Cluster enum. */
                    enum Cluster {
                        CLUSTER_UNSPECIFIED = 0,
                        CLUSTER_UNKNOWN = 1,
                        CLUSTER_TEXT = 2,
                        CLUSTER_STRUCTURED_DATA = 3,
                        CLUSTER_SOURCE_CODE = 4,
                        CLUSTER_RICH_DOCUMENT = 5,
                        CLUSTER_IMAGE = 6,
                        CLUSTER_ARCHIVE = 7,
                        CLUSTER_MULTIMEDIA = 8,
                        CLUSTER_EXECUTABLE = 9,
                        CLUSTER_AI_MODEL = 10
                    }
                }

                /** Properties of a ProcessingLocation. */
                interface IProcessingLocation {

                    /** ProcessingLocation imageFallbackLocation */
                    imageFallbackLocation?: (google.privacy.dlp.v2.ProcessingLocation.IImageFallbackLocation|null);

                    /** ProcessingLocation documentFallbackLocation */
                    documentFallbackLocation?: (google.privacy.dlp.v2.ProcessingLocation.IDocumentFallbackLocation|null);
                }

                /** Represents a ProcessingLocation. */
                class ProcessingLocation implements IProcessingLocation {

                    /**
                     * Constructs a new ProcessingLocation.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IProcessingLocation);

                    /** ProcessingLocation imageFallbackLocation. */
                    public imageFallbackLocation?: (google.privacy.dlp.v2.ProcessingLocation.IImageFallbackLocation|null);

                    /** ProcessingLocation documentFallbackLocation. */
                    public documentFallbackLocation?: (google.privacy.dlp.v2.ProcessingLocation.IDocumentFallbackLocation|null);

                    /**
                     * Creates a new ProcessingLocation instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns ProcessingLocation instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IProcessingLocation): google.privacy.dlp.v2.ProcessingLocation;

                    /**
                     * Encodes the specified ProcessingLocation message. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.verify|verify} messages.
                     * @param message ProcessingLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IProcessingLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified ProcessingLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.verify|verify} messages.
                     * @param message ProcessingLocation message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IProcessingLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a ProcessingLocation message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns ProcessingLocation
                     * @throws {Error} If the payload is not 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.ProcessingLocation;

                    /**
                     * Decodes a ProcessingLocation message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns ProcessingLocation
                     * @throws {Error} If the payload 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.ProcessingLocation;

                    /**
                     * Verifies a ProcessingLocation message.
                     * @param message Plain 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 ProcessingLocation message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns ProcessingLocation
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ProcessingLocation;

                    /**
                     * Creates a plain object from a ProcessingLocation message. Also converts values to other types if specified.
                     * @param message ProcessingLocation
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.ProcessingLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this ProcessingLocation to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for ProcessingLocation
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace ProcessingLocation {

                    /** Properties of a MultiRegionProcessing. */
                    interface IMultiRegionProcessing {
                    }

                    /** Represents a MultiRegionProcessing. */
                    class MultiRegionProcessing implements IMultiRegionProcessing {

                        /**
                         * Constructs a new MultiRegionProcessing.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.ProcessingLocation.IMultiRegionProcessing);

                        /**
                         * Creates a new MultiRegionProcessing instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MultiRegionProcessing instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.ProcessingLocation.IMultiRegionProcessing): google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing;

                        /**
                         * Encodes the specified MultiRegionProcessing message. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing.verify|verify} messages.
                         * @param message MultiRegionProcessing message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.ProcessingLocation.IMultiRegionProcessing, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MultiRegionProcessing message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing.verify|verify} messages.
                         * @param message MultiRegionProcessing message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.ProcessingLocation.IMultiRegionProcessing, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MultiRegionProcessing message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MultiRegionProcessing
                         * @throws {Error} If the payload is not 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.ProcessingLocation.MultiRegionProcessing;

                        /**
                         * Decodes a MultiRegionProcessing message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MultiRegionProcessing
                         * @throws {Error} If the payload 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.ProcessingLocation.MultiRegionProcessing;

                        /**
                         * Verifies a MultiRegionProcessing message.
                         * @param message Plain 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 MultiRegionProcessing message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MultiRegionProcessing
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing;

                        /**
                         * Creates a plain object from a MultiRegionProcessing message. Also converts values to other types if specified.
                         * @param message MultiRegionProcessing
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.ProcessingLocation.MultiRegionProcessing, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MultiRegionProcessing to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MultiRegionProcessing
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a GlobalProcessing. */
                    interface IGlobalProcessing {
                    }

                    /** Represents a GlobalProcessing. */
                    class GlobalProcessing implements IGlobalProcessing {

                        /**
                         * Constructs a new GlobalProcessing.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.ProcessingLocation.IGlobalProcessing);

                        /**
                         * Creates a new GlobalProcessing instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns GlobalProcessing instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.ProcessingLocation.IGlobalProcessing): google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing;

                        /**
                         * Encodes the specified GlobalProcessing message. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing.verify|verify} messages.
                         * @param message GlobalProcessing message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.ProcessingLocation.IGlobalProcessing, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified GlobalProcessing message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing.verify|verify} messages.
                         * @param message GlobalProcessing message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.ProcessingLocation.IGlobalProcessing, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a GlobalProcessing message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns GlobalProcessing
                         * @throws {Error} If the payload is not 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.ProcessingLocation.GlobalProcessing;

                        /**
                         * Decodes a GlobalProcessing message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns GlobalProcessing
                         * @throws {Error} If the payload 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.ProcessingLocation.GlobalProcessing;

                        /**
                         * Verifies a GlobalProcessing message.
                         * @param message Plain 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 GlobalProcessing message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns GlobalProcessing
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing;

                        /**
                         * Creates a plain object from a GlobalProcessing message. Also converts values to other types if specified.
                         * @param message GlobalProcessing
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.ProcessingLocation.GlobalProcessing, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this GlobalProcessing to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for GlobalProcessing
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of an ImageFallbackLocation. */
                    interface IImageFallbackLocation {

                        /** ImageFallbackLocation multiRegionProcessing */
                        multiRegionProcessing?: (google.privacy.dlp.v2.ProcessingLocation.IMultiRegionProcessing|null);

                        /** ImageFallbackLocation globalProcessing */
                        globalProcessing?: (google.privacy.dlp.v2.ProcessingLocation.IGlobalProcessing|null);
                    }

                    /** Represents an ImageFallbackLocation. */
                    class ImageFallbackLocation implements IImageFallbackLocation {

                        /**
                         * Constructs a new ImageFallbackLocation.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.ProcessingLocation.IImageFallbackLocation);

                        /** ImageFallbackLocation multiRegionProcessing. */
                        public multiRegionProcessing?: (google.privacy.dlp.v2.ProcessingLocation.IMultiRegionProcessing|null);

                        /** ImageFallbackLocation globalProcessing. */
                        public globalProcessing?: (google.privacy.dlp.v2.ProcessingLocation.IGlobalProcessing|null);

                        /**
                         * Creates a new ImageFallbackLocation instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns ImageFallbackLocation instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.ProcessingLocation.IImageFallbackLocation): google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation;

                        /**
                         * Encodes the specified ImageFallbackLocation message. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation.verify|verify} messages.
                         * @param message ImageFallbackLocation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.ProcessingLocation.IImageFallbackLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified ImageFallbackLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation.verify|verify} messages.
                         * @param message ImageFallbackLocation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.ProcessingLocation.IImageFallbackLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes an ImageFallbackLocation message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns ImageFallbackLocation
                         * @throws {Error} If the payload is not 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.ProcessingLocation.ImageFallbackLocation;

                        /**
                         * Decodes an ImageFallbackLocation message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns ImageFallbackLocation
                         * @throws {Error} If the payload 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.ProcessingLocation.ImageFallbackLocation;

                        /**
                         * Verifies an ImageFallbackLocation message.
                         * @param message Plain 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 ImageFallbackLocation message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns ImageFallbackLocation
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation;

                        /**
                         * Creates a plain object from an ImageFallbackLocation message. Also converts values to other types if specified.
                         * @param message ImageFallbackLocation
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.ProcessingLocation.ImageFallbackLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this ImageFallbackLocation to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for ImageFallbackLocation
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }

                    /** Properties of a DocumentFallbackLocation. */
                    interface IDocumentFallbackLocation {

                        /** DocumentFallbackLocation multiRegionProcessing */
                        multiRegionProcessing?: (google.privacy.dlp.v2.ProcessingLocation.IMultiRegionProcessing|null);

                        /** DocumentFallbackLocation globalProcessing */
                        globalProcessing?: (google.privacy.dlp.v2.ProcessingLocation.IGlobalProcessing|null);
                    }

                    /** Represents a DocumentFallbackLocation. */
                    class DocumentFallbackLocation implements IDocumentFallbackLocation {

                        /**
                         * Constructs a new DocumentFallbackLocation.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.ProcessingLocation.IDocumentFallbackLocation);

                        /** DocumentFallbackLocation multiRegionProcessing. */
                        public multiRegionProcessing?: (google.privacy.dlp.v2.ProcessingLocation.IMultiRegionProcessing|null);

                        /** DocumentFallbackLocation globalProcessing. */
                        public globalProcessing?: (google.privacy.dlp.v2.ProcessingLocation.IGlobalProcessing|null);

                        /**
                         * Creates a new DocumentFallbackLocation instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns DocumentFallbackLocation instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.ProcessingLocation.IDocumentFallbackLocation): google.privacy.dlp.v2.ProcessingLocation.DocumentFallbackLocation;

                        /**
                         * Encodes the specified DocumentFallbackLocation message. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.DocumentFallbackLocation.verify|verify} messages.
                         * @param message DocumentFallbackLocation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.ProcessingLocation.IDocumentFallbackLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified DocumentFallbackLocation message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.ProcessingLocation.DocumentFallbackLocation.verify|verify} messages.
                         * @param message DocumentFallbackLocation message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.ProcessingLocation.IDocumentFallbackLocation, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a DocumentFallbackLocation message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns DocumentFallbackLocation
                         * @throws {Error} If the payload is not 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.ProcessingLocation.DocumentFallbackLocation;

                        /**
                         * Decodes a DocumentFallbackLocation message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns DocumentFallbackLocation
                         * @throws {Error} If the payload 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.ProcessingLocation.DocumentFallbackLocation;

                        /**
                         * Verifies a DocumentFallbackLocation message.
                         * @param message Plain 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 DocumentFallbackLocation message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns DocumentFallbackLocation
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.ProcessingLocation.DocumentFallbackLocation;

                        /**
                         * Creates a plain object from a DocumentFallbackLocation message. Also converts values to other types if specified.
                         * @param message DocumentFallbackLocation
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.ProcessingLocation.DocumentFallbackLocation, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this DocumentFallbackLocation to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for DocumentFallbackLocation
                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                         * @returns The default type url
                         */
                        public static getTypeUrl(typeUrlPrefix?: string): string;
                    }
                }

                /** Properties of a SaveToGcsFindingsOutput. */
                interface ISaveToGcsFindingsOutput {

                    /** SaveToGcsFindingsOutput findings */
                    findings?: (google.privacy.dlp.v2.IFinding[]|null);
                }

                /** Represents a SaveToGcsFindingsOutput. */
                class SaveToGcsFindingsOutput implements ISaveToGcsFindingsOutput {

                    /**
                     * Constructs a new SaveToGcsFindingsOutput.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ISaveToGcsFindingsOutput);

                    /** SaveToGcsFindingsOutput findings. */
                    public findings: google.privacy.dlp.v2.IFinding[];

                    /**
                     * Creates a new SaveToGcsFindingsOutput instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns SaveToGcsFindingsOutput instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ISaveToGcsFindingsOutput): google.privacy.dlp.v2.SaveToGcsFindingsOutput;

                    /**
                     * Encodes the specified SaveToGcsFindingsOutput message. Does not implicitly {@link google.privacy.dlp.v2.SaveToGcsFindingsOutput.verify|verify} messages.
                     * @param message SaveToGcsFindingsOutput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ISaveToGcsFindingsOutput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified SaveToGcsFindingsOutput message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.SaveToGcsFindingsOutput.verify|verify} messages.
                     * @param message SaveToGcsFindingsOutput message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ISaveToGcsFindingsOutput, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a SaveToGcsFindingsOutput message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns SaveToGcsFindingsOutput
                     * @throws {Error} If the payload is not 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.SaveToGcsFindingsOutput;

                    /**
                     * Decodes a SaveToGcsFindingsOutput message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns SaveToGcsFindingsOutput
                     * @throws {Error} If the payload 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.SaveToGcsFindingsOutput;

                    /**
                     * Verifies a SaveToGcsFindingsOutput message.
                     * @param message Plain 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 SaveToGcsFindingsOutput message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns SaveToGcsFindingsOutput
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.SaveToGcsFindingsOutput;

                    /**
                     * Creates a plain object from a SaveToGcsFindingsOutput message. Also converts values to other types if specified.
                     * @param message SaveToGcsFindingsOutput
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.SaveToGcsFindingsOutput, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this SaveToGcsFindingsOutput to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for SaveToGcsFindingsOutput
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                /** Properties of a Domain. */
                interface IDomain {

                    /** Domain category */
                    category?: (google.privacy.dlp.v2.Domain.Category|keyof typeof google.privacy.dlp.v2.Domain.Category|null);

                    /** Domain signals */
                    signals?: (google.privacy.dlp.v2.Domain.Signal[]|null);
                }

                /** Represents a Domain. */
                class Domain implements IDomain {

                    /**
                     * Constructs a new Domain.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.IDomain);

                    /** Domain category. */
                    public category: (google.privacy.dlp.v2.Domain.Category|keyof typeof google.privacy.dlp.v2.Domain.Category);

                    /** Domain signals. */
                    public signals: google.privacy.dlp.v2.Domain.Signal[];

                    /**
                     * Creates a new Domain instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns Domain instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.IDomain): google.privacy.dlp.v2.Domain;

                    /**
                     * Encodes the specified Domain message. Does not implicitly {@link google.privacy.dlp.v2.Domain.verify|verify} messages.
                     * @param message Domain message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.IDomain, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified Domain message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.Domain.verify|verify} messages.
                     * @param message Domain message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.IDomain, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a Domain message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns Domain
                     * @throws {Error} If the payload is not 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.Domain;

                    /**
                     * Decodes a Domain message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns Domain
                     * @throws {Error} If the payload 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.Domain;

                    /**
                     * Verifies a Domain message.
                     * @param message Plain 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 Domain message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns Domain
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.Domain;

                    /**
                     * Creates a plain object from a Domain message. Also converts values to other types if specified.
                     * @param message Domain
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.Domain, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this Domain to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for Domain
                     * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                     * @returns The default type url
                     */
                    public static getTypeUrl(typeUrlPrefix?: string): string;
                }

                namespace Domain {

                    /** Category enum. */
                    enum Category {
                        CATEGORY_UNSPECIFIED = 0,
                        AI = 1,
                        CODE = 2
                    }

                    /** Signal enum. */
                    enum Signal {
                        SIGNAL_UNSPECIFIED = 0,
                        MODEL = 1,
                        TEXT_EMBEDDING = 2,
                        EMBEDDING = 7,
                        VERTEX_PLUGIN = 3,
                        VECTOR_PLUGIN = 4,
                        SOURCE_CODE = 5,
                        SERVICE = 6
                    }
                }

                /** Properties of an InfoType. */
                interface IInfoType {

                    /** InfoType name */
                    name?: (string|null);

                    /** InfoType version */
                    version?: (string|null);

                    /** InfoType sensitivityScore */
                    sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|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;

                    /** InfoType sensitivityScore. */
                    public sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /**
                     * 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_UNKNOWN = 12,
                        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 metadataKeyValueExpression */
                    metadataKeyValueExpression?: (google.privacy.dlp.v2.CustomInfoType.IMetadataKeyValueExpression|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);

                    /** CustomInfoType sensitivityScore */
                    sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|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 metadataKeyValueExpression. */
                    public metadataKeyValueExpression?: (google.privacy.dlp.v2.CustomInfoType.IMetadataKeyValueExpression|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 sensitivityScore. */
                    public sensitivityScore?: (google.privacy.dlp.v2.ISensitivityScore|null);

                    /** CustomInfoType type. */
                    public type?: ("dictionary"|"regex"|"surrogateType"|"storedType"|"metadataKeyValueExpression");

                    /**
                     * 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 MetadataKeyValueExpression. */
                    interface IMetadataKeyValueExpression {

                        /** MetadataKeyValueExpression keyRegex */
                        keyRegex?: (string|null);

                        /** MetadataKeyValueExpression valueRegex */
                        valueRegex?: (string|null);
                    }

                    /** Represents a MetadataKeyValueExpression. */
                    class MetadataKeyValueExpression implements IMetadataKeyValueExpression {

                        /**
                         * Constructs a new MetadataKeyValueExpression.
                         * @param [properties] Properties to set
                         */
                        constructor(properties?: google.privacy.dlp.v2.CustomInfoType.IMetadataKeyValueExpression);

                        /** MetadataKeyValueExpression keyRegex. */
                        public keyRegex: string;

                        /** MetadataKeyValueExpression valueRegex. */
                        public valueRegex: string;

                        /**
                         * Creates a new MetadataKeyValueExpression instance using the specified properties.
                         * @param [properties] Properties to set
                         * @returns MetadataKeyValueExpression instance
                         */
                        public static create(properties?: google.privacy.dlp.v2.CustomInfoType.IMetadataKeyValueExpression): google.privacy.dlp.v2.CustomInfoType.MetadataKeyValueExpression;

                        /**
                         * Encodes the specified MetadataKeyValueExpression message. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.MetadataKeyValueExpression.verify|verify} messages.
                         * @param message MetadataKeyValueExpression message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encode(message: google.privacy.dlp.v2.CustomInfoType.IMetadataKeyValueExpression, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Encodes the specified MetadataKeyValueExpression message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.CustomInfoType.MetadataKeyValueExpression.verify|verify} messages.
                         * @param message MetadataKeyValueExpression message or plain object to encode
                         * @param [writer] Writer to encode to
                         * @returns Writer
                         */
                        public static encodeDelimited(message: google.privacy.dlp.v2.CustomInfoType.IMetadataKeyValueExpression, writer?: $protobuf.Writer): $protobuf.Writer;

                        /**
                         * Decodes a MetadataKeyValueExpression message from the specified reader or buffer.
                         * @param reader Reader or buffer to decode from
                         * @param [length] Message length if known beforehand
                         * @returns MetadataKeyValueExpression
                         * @throws {Error} If the payload is not 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.MetadataKeyValueExpression;

                        /**
                         * Decodes a MetadataKeyValueExpression message from the specified reader or buffer, length delimited.
                         * @param reader Reader or buffer to decode from
                         * @returns MetadataKeyValueExpression
                         * @throws {Error} If the payload 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.MetadataKeyValueExpression;

                        /**
                         * Verifies a MetadataKeyValueExpression message.
                         * @param message Plain 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 MetadataKeyValueExpression message from a plain object. Also converts values to their respective internal types.
                         * @param object Plain object
                         * @returns MetadataKeyValueExpression
                         */
                        public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.CustomInfoType.MetadataKeyValueExpression;

                        /**
                         * Creates a plain object from a MetadataKeyValueExpression message. Also converts values to other types if specified.
                         * @param message MetadataKeyValueExpression
                         * @param [options] Conversion options
                         * @returns Plain object
                         */
                        public static toObject(message: google.privacy.dlp.v2.CustomInfoType.MetadataKeyValueExpression, options?: $protobuf.IConversionOptions): { [k: string]: any };

                        /**
                         * Converts this MetadataKeyValueExpression to JSON.
                         * @returns JSON object
                         */
                        public toJSON(): { [k: string]: any };

                        /**
                         * Gets the default type url for MetadataKeyValueExpression
                         * @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 TableReference. */
                interface ITableReference {

                    /** TableReference datasetId */
                    datasetId?: (string|null);

                    /** TableReference tableId */
                    tableId?: (string|null);

                    /** TableReference projectId */
                    projectId?: (string|null);
                }

                /** Represents a TableReference. */
                class TableReference implements ITableReference {

                    /**
                     * Constructs a new TableReference.
                     * @param [properties] Properties to set
                     */
                    constructor(properties?: google.privacy.dlp.v2.ITableReference);

                    /** TableReference datasetId. */
                    public datasetId: string;

                    /** TableReference tableId. */
                    public tableId: string;

                    /** TableReference projectId. */
                    public projectId: string;

                    /**
                     * Creates a new TableReference instance using the specified properties.
                     * @param [properties] Properties to set
                     * @returns TableReference instance
                     */
                    public static create(properties?: google.privacy.dlp.v2.ITableReference): google.privacy.dlp.v2.TableReference;

                    /**
                     * Encodes the specified TableReference message. Does not implicitly {@link google.privacy.dlp.v2.TableReference.verify|verify} messages.
                     * @param message TableReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encode(message: google.privacy.dlp.v2.ITableReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Encodes the specified TableReference message, length delimited. Does not implicitly {@link google.privacy.dlp.v2.TableReference.verify|verify} messages.
                     * @param message TableReference message or plain object to encode
                     * @param [writer] Writer to encode to
                     * @returns Writer
                     */
                    public static encodeDelimited(message: google.privacy.dlp.v2.ITableReference, writer?: $protobuf.Writer): $protobuf.Writer;

                    /**
                     * Decodes a TableReference message from the specified reader or buffer.
                     * @param reader Reader or buffer to decode from
                     * @param [length] Message length if known beforehand
                     * @returns TableReference
                     * @throws {Error} If the payload is not 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.TableReference;

                    /**
                     * Decodes a TableReference message from the specified reader or buffer, length delimited.
                     * @param reader Reader or buffer to decode from
                     * @returns TableReference
                     * @throws {Error} If the payload 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.TableReference;

                    /**
                     * Verifies a TableReference message.
                     * @param message Plain 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 TableReference message from a plain object. Also converts values to their respective internal types.
                     * @param object Plain object
                     * @returns TableReference
                     */
                    public static fromObject(object: { [k: string]: any }): google.privacy.dlp.v2.TableReference;

                    /**
                     * Creates a plain object from a TableReference message. Also converts values to other types if specified.
                     * @param message TableReference
                     * @param [options] Conversion options
                     * @returns Plain object
                     */
                    public static toObject(message: google.privacy.dlp.v2.TableReference, options?: $protobuf.IConversionOptions): { [k: string]: any };

                    /**
                     * Converts this TableReference to JSON.
                     * @returns JSON object
                     */
                    public toJSON(): { [k: string]: any };

                    /**
                     * Gets the default type url for TableReference
                     * @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);

            /** Publishing protoReferenceDocumentationUri */
            protoReferenceDocumentationUri?: (string|null);

            /** Publishing restReferenceDocumentationUri */
            restReferenceDocumentationUri?: (string|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[];

            /** Publishing protoReferenceDocumentationUri. */
            public protoReferenceDocumentationUri: string;

            /** Publishing restReferenceDocumentationUri. */
            public restReferenceDocumentationUri: string;

            /**
             * 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);

            /** DotnetSettings renamedServices */
            renamedServices?: ({ [k: string]: string }|null);

            /** DotnetSettings renamedResources */
            renamedResources?: ({ [k: string]: string }|null);

            /** DotnetSettings ignoredResources */
            ignoredResources?: (string[]|null);

            /** DotnetSettings forcedNamespaceAliases */
            forcedNamespaceAliases?: (string[]|null);

            /** DotnetSettings handwrittenSignatures */
            handwrittenSignatures?: (string[]|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);

            /** DotnetSettings renamedServices. */
            public renamedServices: { [k: string]: string };

            /** DotnetSettings renamedResources. */
            public renamedResources: { [k: string]: string };

            /** DotnetSettings ignoredResources. */
            public ignoredResources: string[];

            /** DotnetSettings forcedNamespaceAliases. */
            public forcedNamespaceAliases: string[];

            /** DotnetSettings handwrittenSignatures. */
            public handwrittenSignatures: string[];

            /**
             * 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);

            /** MethodSettings autoPopulatedFields */
            autoPopulatedFields?: (string[]|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);

            /** MethodSettings autoPopulatedFields. */
            public autoPopulatedFields: string[];

            /**
             * 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,
            SHOPPING = 5,
            GEO = 6,
            GENERATIVE_AI = 7
        }

        /** 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,
            IDENTIFIER = 8
        }

        /** 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;
        }

        /** Edition enum. */
        enum Edition {
            EDITION_UNKNOWN = 0,
            EDITION_PROTO2 = 998,
            EDITION_PROTO3 = 999,
            EDITION_2023 = 1000,
            EDITION_2024 = 1001,
            EDITION_1_TEST_ONLY = 1,
            EDITION_2_TEST_ONLY = 2,
            EDITION_99997_TEST_ONLY = 99997,
            EDITION_99998_TEST_ONLY = 99998,
            EDITION_99999_TEST_ONLY = 99999,
            EDITION_MAX = 2147483647
        }

        /** 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?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|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: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /**
             * 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);

            /** ExtensionRangeOptions declaration */
            declaration?: (google.protobuf.ExtensionRangeOptions.IDeclaration[]|null);

            /** ExtensionRangeOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** ExtensionRangeOptions verification */
            verification?: (google.protobuf.ExtensionRangeOptions.VerificationState|keyof typeof google.protobuf.ExtensionRangeOptions.VerificationState|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[];

            /** ExtensionRangeOptions declaration. */
            public declaration: google.protobuf.ExtensionRangeOptions.IDeclaration[];

            /** ExtensionRangeOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** ExtensionRangeOptions verification. */
            public verification: (google.protobuf.ExtensionRangeOptions.VerificationState|keyof typeof google.protobuf.ExtensionRangeOptions.VerificationState);

            /**
             * 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;
        }

        namespace ExtensionRangeOptions {

            /** Properties of a Declaration. */
            interface IDeclaration {

                /** Declaration number */
                number?: (number|null);

                /** Declaration fullName */
                fullName?: (string|null);

                /** Declaration type */
                type?: (string|null);

                /** Declaration reserved */
                reserved?: (boolean|null);

                /** Declaration repeated */
                repeated?: (boolean|null);
            }

            /** Represents a Declaration. */
            class Declaration implements IDeclaration {

                /**
                 * Constructs a new Declaration.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.ExtensionRangeOptions.IDeclaration);

                /** Declaration number. */
                public number: number;

                /** Declaration fullName. */
                public fullName: string;

                /** Declaration type. */
                public type: string;

                /** Declaration reserved. */
                public reserved: boolean;

                /** Declaration repeated. */
                public repeated: boolean;

                /**
                 * Creates a new Declaration instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns Declaration instance
                 */
                public static create(properties?: google.protobuf.ExtensionRangeOptions.IDeclaration): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Encodes the specified Declaration message. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.Declaration.verify|verify} messages.
                 * @param message Declaration message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.ExtensionRangeOptions.IDeclaration, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified Declaration message, length delimited. Does not implicitly {@link google.protobuf.ExtensionRangeOptions.Declaration.verify|verify} messages.
                 * @param message Declaration message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.ExtensionRangeOptions.IDeclaration, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a Declaration message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns Declaration
                 * @throws {Error} If the payload is not 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.Declaration;

                /**
                 * Decodes a Declaration message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns Declaration
                 * @throws {Error} If the payload 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.Declaration;

                /**
                 * Verifies a Declaration message.
                 * @param message Plain 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 Declaration message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns Declaration
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.ExtensionRangeOptions.Declaration;

                /**
                 * Creates a plain object from a Declaration message. Also converts values to other types if specified.
                 * @param message Declaration
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.ExtensionRangeOptions.Declaration, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this Declaration to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for Declaration
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }

            /** VerificationState enum. */
            enum VerificationState {
                DECLARATION = 0,
                UNVERIFIED = 1
            }
        }

        /** 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_REPEATED = 3,
                LABEL_REQUIRED = 2
            }
        }

        /** 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 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 features */
            features?: (google.protobuf.IFeatureSet|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 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 features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** 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 features */
            features?: (google.protobuf.IFeatureSet|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 features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** 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 targets */
            targets?: (google.protobuf.FieldOptions.OptionTargetType[]|null);

            /** FieldOptions editionDefaults */
            editionDefaults?: (google.protobuf.FieldOptions.IEditionDefault[]|null);

            /** FieldOptions features */
            features?: (google.protobuf.IFeatureSet|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 targets. */
            public targets: google.protobuf.FieldOptions.OptionTargetType[];

            /** FieldOptions editionDefaults. */
            public editionDefaults: google.protobuf.FieldOptions.IEditionDefault[];

            /** FieldOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** 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 EditionDefault. */
            interface IEditionDefault {

                /** EditionDefault edition */
                edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** EditionDefault value */
                value?: (string|null);
            }

            /** Represents an EditionDefault. */
            class EditionDefault implements IEditionDefault {

                /**
                 * Constructs a new EditionDefault.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FieldOptions.IEditionDefault);

                /** EditionDefault edition. */
                public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** EditionDefault value. */
                public value: string;

                /**
                 * Creates a new EditionDefault instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns EditionDefault instance
                 */
                public static create(properties?: google.protobuf.FieldOptions.IEditionDefault): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Encodes the specified EditionDefault message. Does not implicitly {@link google.protobuf.FieldOptions.EditionDefault.verify|verify} messages.
                 * @param message EditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FieldOptions.IEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified EditionDefault message, length delimited. Does not implicitly {@link google.protobuf.FieldOptions.EditionDefault.verify|verify} messages.
                 * @param message EditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FieldOptions.IEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes an EditionDefault message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns EditionDefault
                 * @throws {Error} If the payload is not 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.EditionDefault;

                /**
                 * Decodes an EditionDefault message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns EditionDefault
                 * @throws {Error} If the payload 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.EditionDefault;

                /**
                 * Verifies an EditionDefault message.
                 * @param message Plain 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 EditionDefault message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns EditionDefault
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FieldOptions.EditionDefault;

                /**
                 * Creates a plain object from an EditionDefault message. Also converts values to other types if specified.
                 * @param message EditionDefault
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FieldOptions.EditionDefault, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this EditionDefault to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for EditionDefault
                 * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
                 * @returns The default type url
                 */
                public static getTypeUrl(typeUrlPrefix?: string): string;
            }
        }

        /** Properties of an OneofOptions. */
        interface IOneofOptions {

            /** OneofOptions features */
            features?: (google.protobuf.IFeatureSet|null);

            /** 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 features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** 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 features */
            features?: (google.protobuf.IFeatureSet|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 features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** 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 features */
            features?: (google.protobuf.IFeatureSet|null);

            /** EnumValueOptions debugRedact */
            debugRedact?: (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 features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** EnumValueOptions debugRedact. */
            public debugRedact: 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 features */
            features?: (google.protobuf.IFeatureSet|null);

            /** 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);

            /** ServiceOptions .google.api.apiVersion */
            ".google.api.apiVersion"?: (string|null);
        }

        /** Represents a ServiceOptions. */
        class ServiceOptions implements IServiceOptions {

            /**
             * Constructs a new ServiceOptions.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IServiceOptions);

            /** ServiceOptions features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** 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 features */
            features?: (google.protobuf.IFeatureSet|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 features. */
            public features?: (google.protobuf.IFeatureSet|null);

            /** 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|Buffer|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|Buffer|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 FeatureSet. */
        interface IFeatureSet {

            /** FeatureSet fieldPresence */
            fieldPresence?: (google.protobuf.FeatureSet.FieldPresence|keyof typeof google.protobuf.FeatureSet.FieldPresence|null);

            /** FeatureSet enumType */
            enumType?: (google.protobuf.FeatureSet.EnumType|keyof typeof google.protobuf.FeatureSet.EnumType|null);

            /** FeatureSet repeatedFieldEncoding */
            repeatedFieldEncoding?: (google.protobuf.FeatureSet.RepeatedFieldEncoding|keyof typeof google.protobuf.FeatureSet.RepeatedFieldEncoding|null);

            /** FeatureSet utf8Validation */
            utf8Validation?: (google.protobuf.FeatureSet.Utf8Validation|keyof typeof google.protobuf.FeatureSet.Utf8Validation|null);

            /** FeatureSet messageEncoding */
            messageEncoding?: (google.protobuf.FeatureSet.MessageEncoding|keyof typeof google.protobuf.FeatureSet.MessageEncoding|null);

            /** FeatureSet jsonFormat */
            jsonFormat?: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat|null);
        }

        /** Represents a FeatureSet. */
        class FeatureSet implements IFeatureSet {

            /**
             * Constructs a new FeatureSet.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFeatureSet);

            /** FeatureSet fieldPresence. */
            public fieldPresence: (google.protobuf.FeatureSet.FieldPresence|keyof typeof google.protobuf.FeatureSet.FieldPresence);

            /** FeatureSet enumType. */
            public enumType: (google.protobuf.FeatureSet.EnumType|keyof typeof google.protobuf.FeatureSet.EnumType);

            /** FeatureSet repeatedFieldEncoding. */
            public repeatedFieldEncoding: (google.protobuf.FeatureSet.RepeatedFieldEncoding|keyof typeof google.protobuf.FeatureSet.RepeatedFieldEncoding);

            /** FeatureSet utf8Validation. */
            public utf8Validation: (google.protobuf.FeatureSet.Utf8Validation|keyof typeof google.protobuf.FeatureSet.Utf8Validation);

            /** FeatureSet messageEncoding. */
            public messageEncoding: (google.protobuf.FeatureSet.MessageEncoding|keyof typeof google.protobuf.FeatureSet.MessageEncoding);

            /** FeatureSet jsonFormat. */
            public jsonFormat: (google.protobuf.FeatureSet.JsonFormat|keyof typeof google.protobuf.FeatureSet.JsonFormat);

            /**
             * Creates a new FeatureSet instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FeatureSet instance
             */
            public static create(properties?: google.protobuf.IFeatureSet): google.protobuf.FeatureSet;

            /**
             * Encodes the specified FeatureSet message. Does not implicitly {@link google.protobuf.FeatureSet.verify|verify} messages.
             * @param message FeatureSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFeatureSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FeatureSet message, length delimited. Does not implicitly {@link google.protobuf.FeatureSet.verify|verify} messages.
             * @param message FeatureSet message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFeatureSet, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FeatureSet message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FeatureSet
             * @throws {Error} If the payload is not 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.FeatureSet;

            /**
             * Decodes a FeatureSet message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FeatureSet
             * @throws {Error} If the payload 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.FeatureSet;

            /**
             * Verifies a FeatureSet message.
             * @param message Plain 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 FeatureSet message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FeatureSet
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSet;

            /**
             * Creates a plain object from a FeatureSet message. Also converts values to other types if specified.
             * @param message FeatureSet
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FeatureSet, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FeatureSet to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FeatureSet
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FeatureSet {

            /** FieldPresence enum. */
            enum FieldPresence {
                FIELD_PRESENCE_UNKNOWN = 0,
                EXPLICIT = 1,
                IMPLICIT = 2,
                LEGACY_REQUIRED = 3
            }

            /** EnumType enum. */
            enum EnumType {
                ENUM_TYPE_UNKNOWN = 0,
                OPEN = 1,
                CLOSED = 2
            }

            /** RepeatedFieldEncoding enum. */
            enum RepeatedFieldEncoding {
                REPEATED_FIELD_ENCODING_UNKNOWN = 0,
                PACKED = 1,
                EXPANDED = 2
            }

            /** Utf8Validation enum. */
            enum Utf8Validation {
                UTF8_VALIDATION_UNKNOWN = 0,
                VERIFY = 2,
                NONE = 3
            }

            /** MessageEncoding enum. */
            enum MessageEncoding {
                MESSAGE_ENCODING_UNKNOWN = 0,
                LENGTH_PREFIXED = 1,
                DELIMITED = 2
            }

            /** JsonFormat enum. */
            enum JsonFormat {
                JSON_FORMAT_UNKNOWN = 0,
                ALLOW = 1,
                LEGACY_BEST_EFFORT = 2
            }
        }

        /** Properties of a FeatureSetDefaults. */
        interface IFeatureSetDefaults {

            /** FeatureSetDefaults defaults */
            defaults?: (google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault[]|null);

            /** FeatureSetDefaults minimumEdition */
            minimumEdition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

            /** FeatureSetDefaults maximumEdition */
            maximumEdition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);
        }

        /** Represents a FeatureSetDefaults. */
        class FeatureSetDefaults implements IFeatureSetDefaults {

            /**
             * Constructs a new FeatureSetDefaults.
             * @param [properties] Properties to set
             */
            constructor(properties?: google.protobuf.IFeatureSetDefaults);

            /** FeatureSetDefaults defaults. */
            public defaults: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault[];

            /** FeatureSetDefaults minimumEdition. */
            public minimumEdition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /** FeatureSetDefaults maximumEdition. */
            public maximumEdition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

            /**
             * Creates a new FeatureSetDefaults instance using the specified properties.
             * @param [properties] Properties to set
             * @returns FeatureSetDefaults instance
             */
            public static create(properties?: google.protobuf.IFeatureSetDefaults): google.protobuf.FeatureSetDefaults;

            /**
             * Encodes the specified FeatureSetDefaults message. Does not implicitly {@link google.protobuf.FeatureSetDefaults.verify|verify} messages.
             * @param message FeatureSetDefaults message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encode(message: google.protobuf.IFeatureSetDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Encodes the specified FeatureSetDefaults message, length delimited. Does not implicitly {@link google.protobuf.FeatureSetDefaults.verify|verify} messages.
             * @param message FeatureSetDefaults message or plain object to encode
             * @param [writer] Writer to encode to
             * @returns Writer
             */
            public static encodeDelimited(message: google.protobuf.IFeatureSetDefaults, writer?: $protobuf.Writer): $protobuf.Writer;

            /**
             * Decodes a FeatureSetDefaults message from the specified reader or buffer.
             * @param reader Reader or buffer to decode from
             * @param [length] Message length if known beforehand
             * @returns FeatureSetDefaults
             * @throws {Error} If the payload is not 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.FeatureSetDefaults;

            /**
             * Decodes a FeatureSetDefaults message from the specified reader or buffer, length delimited.
             * @param reader Reader or buffer to decode from
             * @returns FeatureSetDefaults
             * @throws {Error} If the payload 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.FeatureSetDefaults;

            /**
             * Verifies a FeatureSetDefaults message.
             * @param message Plain 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 FeatureSetDefaults message from a plain object. Also converts values to their respective internal types.
             * @param object Plain object
             * @returns FeatureSetDefaults
             */
            public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSetDefaults;

            /**
             * Creates a plain object from a FeatureSetDefaults message. Also converts values to other types if specified.
             * @param message FeatureSetDefaults
             * @param [options] Conversion options
             * @returns Plain object
             */
            public static toObject(message: google.protobuf.FeatureSetDefaults, options?: $protobuf.IConversionOptions): { [k: string]: any };

            /**
             * Converts this FeatureSetDefaults to JSON.
             * @returns JSON object
             */
            public toJSON(): { [k: string]: any };

            /**
             * Gets the default type url for FeatureSetDefaults
             * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
             * @returns The default type url
             */
            public static getTypeUrl(typeUrlPrefix?: string): string;
        }

        namespace FeatureSetDefaults {

            /** Properties of a FeatureSetEditionDefault. */
            interface IFeatureSetEditionDefault {

                /** FeatureSetEditionDefault edition */
                edition?: (google.protobuf.Edition|keyof typeof google.protobuf.Edition|null);

                /** FeatureSetEditionDefault features */
                features?: (google.protobuf.IFeatureSet|null);
            }

            /** Represents a FeatureSetEditionDefault. */
            class FeatureSetEditionDefault implements IFeatureSetEditionDefault {

                /**
                 * Constructs a new FeatureSetEditionDefault.
                 * @param [properties] Properties to set
                 */
                constructor(properties?: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault);

                /** FeatureSetEditionDefault edition. */
                public edition: (google.protobuf.Edition|keyof typeof google.protobuf.Edition);

                /** FeatureSetEditionDefault features. */
                public features?: (google.protobuf.IFeatureSet|null);

                /**
                 * Creates a new FeatureSetEditionDefault instance using the specified properties.
                 * @param [properties] Properties to set
                 * @returns FeatureSetEditionDefault instance
                 */
                public static create(properties?: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Encodes the specified FeatureSetEditionDefault message. Does not implicitly {@link google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify|verify} messages.
                 * @param message FeatureSetEditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encode(message: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Encodes the specified FeatureSetEditionDefault message, length delimited. Does not implicitly {@link google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.verify|verify} messages.
                 * @param message FeatureSetEditionDefault message or plain object to encode
                 * @param [writer] Writer to encode to
                 * @returns Writer
                 */
                public static encodeDelimited(message: google.protobuf.FeatureSetDefaults.IFeatureSetEditionDefault, writer?: $protobuf.Writer): $protobuf.Writer;

                /**
                 * Decodes a FeatureSetEditionDefault message from the specified reader or buffer.
                 * @param reader Reader or buffer to decode from
                 * @param [length] Message length if known beforehand
                 * @returns FeatureSetEditionDefault
                 * @throws {Error} If the payload is not 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.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Decodes a FeatureSetEditionDefault message from the specified reader or buffer, length delimited.
                 * @param reader Reader or buffer to decode from
                 * @returns FeatureSetEditionDefault
                 * @throws {Error} If the payload 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.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Verifies a FeatureSetEditionDefault message.
                 * @param message Plain 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 FeatureSetEditionDefault message from a plain object. Also converts values to their respective internal types.
                 * @param object Plain object
                 * @returns FeatureSetEditionDefault
                 */
                public static fromObject(object: { [k: string]: any }): google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault;

                /**
                 * Creates a plain object from a FeatureSetEditionDefault message. Also converts values to other types if specified.
                 * @param message FeatureSetEditionDefault
                 * @param [options] Conversion options
                 * @returns Plain object
                 */
                public static toObject(message: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault, options?: $protobuf.IConversionOptions): { [k: string]: any };

                /**
                 * Converts this FeatureSetEditionDefault to JSON.
                 * @returns JSON object
                 */
                public toJSON(): { [k: string]: any };

                /**
                 * Gets the default type url for FeatureSetEditionDefault
                 * @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|Buffer|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|Buffer|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;
        }
    }
}
