// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/privacy/dlp/v2/dlp.proto

package dlp

import (
	context "context"
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	empty "github.com/golang/protobuf/ptypes/empty"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	status "google.golang.org/genproto/googleapis/rpc/status"
	date "google.golang.org/genproto/googleapis/type/date"
	dayofweek "google.golang.org/genproto/googleapis/type/dayofweek"
	timeofday "google.golang.org/genproto/googleapis/type/timeofday"
	field_mask "google.golang.org/genproto/protobuf/field_mask"
	grpc "google.golang.org/grpc"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Options describing which parts of the provided content should be scanned.
type ContentOption int32

const (
	// Includes entire content of a file or a data stream.
	ContentOption_CONTENT_UNSPECIFIED ContentOption = 0
	// Text content within the data, excluding any metadata.
	ContentOption_CONTENT_TEXT ContentOption = 1
	// Images found in the data.
	ContentOption_CONTENT_IMAGE ContentOption = 2
)

var ContentOption_name = map[int32]string{
	0: "CONTENT_UNSPECIFIED",
	1: "CONTENT_TEXT",
	2: "CONTENT_IMAGE",
}

var ContentOption_value = map[string]int32{
	"CONTENT_UNSPECIFIED": 0,
	"CONTENT_TEXT":        1,
	"CONTENT_IMAGE":       2,
}

func (x ContentOption) String() string {
	return proto.EnumName(ContentOption_name, int32(x))
}

func (ContentOption) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{0}
}

// Type of the match which can be applied to different ways of matching, like
// Dictionary, regular expression and intersecting with findings of another
// info type.
type MatchingType int32

const (
	// Invalid.
	MatchingType_MATCHING_TYPE_UNSPECIFIED MatchingType = 0
	// Full match.
	//
	// - Dictionary: join of Dictionary results matched complete finding quote
	// - Regex: all regex matches fill a finding quote start to end
	// - Exclude info type: completely inside affecting info types findings
	MatchingType_MATCHING_TYPE_FULL_MATCH MatchingType = 1
	// Partial match.
	//
	// - Dictionary: at least one of the tokens in the finding matches
	// - Regex: substring of the finding matches
	// - Exclude info type: intersects with affecting info types findings
	MatchingType_MATCHING_TYPE_PARTIAL_MATCH MatchingType = 2
	// Inverse match.
	//
	// - Dictionary: no tokens in the finding match the dictionary
	// - Regex: finding doesn't match the regex
	// - Exclude info type: no intersection with affecting info types findings
	MatchingType_MATCHING_TYPE_INVERSE_MATCH MatchingType = 3
)

var MatchingType_name = map[int32]string{
	0: "MATCHING_TYPE_UNSPECIFIED",
	1: "MATCHING_TYPE_FULL_MATCH",
	2: "MATCHING_TYPE_PARTIAL_MATCH",
	3: "MATCHING_TYPE_INVERSE_MATCH",
}

var MatchingType_value = map[string]int32{
	"MATCHING_TYPE_UNSPECIFIED":   0,
	"MATCHING_TYPE_FULL_MATCH":    1,
	"MATCHING_TYPE_PARTIAL_MATCH": 2,
	"MATCHING_TYPE_INVERSE_MATCH": 3,
}

func (x MatchingType) String() string {
	return proto.EnumName(MatchingType_name, int32(x))
}

func (MatchingType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{1}
}

// Parts of the APIs which use certain infoTypes.
type InfoTypeSupportedBy int32

const (
	InfoTypeSupportedBy_ENUM_TYPE_UNSPECIFIED InfoTypeSupportedBy = 0
	// Supported by the inspect operations.
	InfoTypeSupportedBy_INSPECT InfoTypeSupportedBy = 1
	// Supported by the risk analysis operations.
	InfoTypeSupportedBy_RISK_ANALYSIS InfoTypeSupportedBy = 2
)

var InfoTypeSupportedBy_name = map[int32]string{
	0: "ENUM_TYPE_UNSPECIFIED",
	1: "INSPECT",
	2: "RISK_ANALYSIS",
}

var InfoTypeSupportedBy_value = map[string]int32{
	"ENUM_TYPE_UNSPECIFIED": 0,
	"INSPECT":               1,
	"RISK_ANALYSIS":         2,
}

func (x InfoTypeSupportedBy) String() string {
	return proto.EnumName(InfoTypeSupportedBy_name, int32(x))
}

func (InfoTypeSupportedBy) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{2}
}

// Operators available for comparing the value of fields.
type RelationalOperator int32

const (
	RelationalOperator_RELATIONAL_OPERATOR_UNSPECIFIED RelationalOperator = 0
	// Equal. Attempts to match even with incompatible types.
	RelationalOperator_EQUAL_TO RelationalOperator = 1
	// Not equal to. Attempts to match even with incompatible types.
	RelationalOperator_NOT_EQUAL_TO RelationalOperator = 2
	// Greater than.
	RelationalOperator_GREATER_THAN RelationalOperator = 3
	// Less than.
	RelationalOperator_LESS_THAN RelationalOperator = 4
	// Greater than or equals.
	RelationalOperator_GREATER_THAN_OR_EQUALS RelationalOperator = 5
	// Less than or equals.
	RelationalOperator_LESS_THAN_OR_EQUALS RelationalOperator = 6
	// Exists
	RelationalOperator_EXISTS RelationalOperator = 7
)

var RelationalOperator_name = map[int32]string{
	0: "RELATIONAL_OPERATOR_UNSPECIFIED",
	1: "EQUAL_TO",
	2: "NOT_EQUAL_TO",
	3: "GREATER_THAN",
	4: "LESS_THAN",
	5: "GREATER_THAN_OR_EQUALS",
	6: "LESS_THAN_OR_EQUALS",
	7: "EXISTS",
}

var RelationalOperator_value = map[string]int32{
	"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,
}

func (x RelationalOperator) String() string {
	return proto.EnumName(RelationalOperator_name, int32(x))
}

func (RelationalOperator) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{3}
}

// An enum to represent the various type of DLP jobs.
type DlpJobType int32

const (
	DlpJobType_DLP_JOB_TYPE_UNSPECIFIED DlpJobType = 0
	// The job inspected Google Cloud for sensitive data.
	DlpJobType_INSPECT_JOB DlpJobType = 1
	// The job executed a Risk Analysis computation.
	DlpJobType_RISK_ANALYSIS_JOB DlpJobType = 2
)

var DlpJobType_name = map[int32]string{
	0: "DLP_JOB_TYPE_UNSPECIFIED",
	1: "INSPECT_JOB",
	2: "RISK_ANALYSIS_JOB",
}

var DlpJobType_value = map[string]int32{
	"DLP_JOB_TYPE_UNSPECIFIED": 0,
	"INSPECT_JOB":              1,
	"RISK_ANALYSIS_JOB":        2,
}

func (x DlpJobType) String() string {
	return proto.EnumName(DlpJobType_name, int32(x))
}

func (DlpJobType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{4}
}

// State of a StoredInfoType version.
type StoredInfoTypeState int32

const (
	StoredInfoTypeState_STORED_INFO_TYPE_STATE_UNSPECIFIED StoredInfoTypeState = 0
	// StoredInfoType version is being created.
	StoredInfoTypeState_PENDING StoredInfoTypeState = 1
	// StoredInfoType version is ready for use.
	StoredInfoTypeState_READY StoredInfoTypeState = 2
	// StoredInfoType creation failed. All relevant error messages are returned in
	// the `StoredInfoTypeVersion` message.
	StoredInfoTypeState_FAILED StoredInfoTypeState = 3
	// StoredInfoType is no longer valid because artifacts stored in
	// user-controlled storage were modified. To fix an invalid StoredInfoType,
	// use the `UpdateStoredInfoType` method to create a new version.
	StoredInfoTypeState_INVALID StoredInfoTypeState = 4
)

var StoredInfoTypeState_name = map[int32]string{
	0: "STORED_INFO_TYPE_STATE_UNSPECIFIED",
	1: "PENDING",
	2: "READY",
	3: "FAILED",
	4: "INVALID",
}

var StoredInfoTypeState_value = map[string]int32{
	"STORED_INFO_TYPE_STATE_UNSPECIFIED": 0,
	"PENDING":                            1,
	"READY":                              2,
	"FAILED":                             3,
	"INVALID":                            4,
}

func (x StoredInfoTypeState) String() string {
	return proto.EnumName(StoredInfoTypeState_name, int32(x))
}

func (StoredInfoTypeState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{5}
}

type ByteContentItem_BytesType int32

const (
	ByteContentItem_BYTES_TYPE_UNSPECIFIED ByteContentItem_BytesType = 0
	ByteContentItem_IMAGE                  ByteContentItem_BytesType = 6
	ByteContentItem_IMAGE_JPEG             ByteContentItem_BytesType = 1
	ByteContentItem_IMAGE_BMP              ByteContentItem_BytesType = 2
	ByteContentItem_IMAGE_PNG              ByteContentItem_BytesType = 3
	ByteContentItem_IMAGE_SVG              ByteContentItem_BytesType = 4
	ByteContentItem_TEXT_UTF8              ByteContentItem_BytesType = 5
)

var ByteContentItem_BytesType_name = map[int32]string{
	0: "BYTES_TYPE_UNSPECIFIED",
	6: "IMAGE",
	1: "IMAGE_JPEG",
	2: "IMAGE_BMP",
	3: "IMAGE_PNG",
	4: "IMAGE_SVG",
	5: "TEXT_UTF8",
}

var ByteContentItem_BytesType_value = map[string]int32{
	"BYTES_TYPE_UNSPECIFIED": 0,
	"IMAGE":                  6,
	"IMAGE_JPEG":             1,
	"IMAGE_BMP":              2,
	"IMAGE_PNG":              3,
	"IMAGE_SVG":              4,
	"TEXT_UTF8":              5,
}

func (x ByteContentItem_BytesType) String() string {
	return proto.EnumName(ByteContentItem_BytesType_name, int32(x))
}

func (ByteContentItem_BytesType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{5, 0}
}

// Predefined schemas for storing findings.
type OutputStorageConfig_OutputSchema int32

const (
	OutputStorageConfig_OUTPUT_SCHEMA_UNSPECIFIED OutputStorageConfig_OutputSchema = 0
	// Basic schema including only `info_type`, `quote`, `certainty`, and
	// `timestamp`.
	OutputStorageConfig_BASIC_COLUMNS OutputStorageConfig_OutputSchema = 1
	// Schema tailored to findings from scanning Google Cloud Storage.
	OutputStorageConfig_GCS_COLUMNS OutputStorageConfig_OutputSchema = 2
	// Schema tailored to findings from scanning Google Datastore.
	OutputStorageConfig_DATASTORE_COLUMNS OutputStorageConfig_OutputSchema = 3
	// Schema tailored to findings from scanning Google BigQuery.
	OutputStorageConfig_BIG_QUERY_COLUMNS OutputStorageConfig_OutputSchema = 4
	// Schema containing all columns.
	OutputStorageConfig_ALL_COLUMNS OutputStorageConfig_OutputSchema = 5
)

var OutputStorageConfig_OutputSchema_name = map[int32]string{
	0: "OUTPUT_SCHEMA_UNSPECIFIED",
	1: "BASIC_COLUMNS",
	2: "GCS_COLUMNS",
	3: "DATASTORE_COLUMNS",
	4: "BIG_QUERY_COLUMNS",
	5: "ALL_COLUMNS",
}

var OutputStorageConfig_OutputSchema_value = map[string]int32{
	"OUTPUT_SCHEMA_UNSPECIFIED": 0,
	"BASIC_COLUMNS":             1,
	"GCS_COLUMNS":               2,
	"DATASTORE_COLUMNS":         3,
	"BIG_QUERY_COLUMNS":         4,
	"ALL_COLUMNS":               5,
}

func (x OutputStorageConfig_OutputSchema) String() string {
	return proto.EnumName(OutputStorageConfig_OutputSchema_name, int32(x))
}

func (OutputStorageConfig_OutputSchema) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{27, 0}
}

type TimePartConfig_TimePart int32

const (
	TimePartConfig_TIME_PART_UNSPECIFIED TimePartConfig_TimePart = 0
	// [0-9999]
	TimePartConfig_YEAR TimePartConfig_TimePart = 1
	// [1-12]
	TimePartConfig_MONTH TimePartConfig_TimePart = 2
	// [1-31]
	TimePartConfig_DAY_OF_MONTH TimePartConfig_TimePart = 3
	// [1-7]
	TimePartConfig_DAY_OF_WEEK TimePartConfig_TimePart = 4
	// [1-52]
	TimePartConfig_WEEK_OF_YEAR TimePartConfig_TimePart = 5
	// [0-23]
	TimePartConfig_HOUR_OF_DAY TimePartConfig_TimePart = 6
)

var TimePartConfig_TimePart_name = map[int32]string{
	0: "TIME_PART_UNSPECIFIED",
	1: "YEAR",
	2: "MONTH",
	3: "DAY_OF_MONTH",
	4: "DAY_OF_WEEK",
	5: "WEEK_OF_YEAR",
	6: "HOUR_OF_DAY",
}

var TimePartConfig_TimePart_value = map[string]int32{
	"TIME_PART_UNSPECIFIED": 0,
	"YEAR":                  1,
	"MONTH":                 2,
	"DAY_OF_MONTH":          3,
	"DAY_OF_WEEK":           4,
	"WEEK_OF_YEAR":          5,
	"HOUR_OF_DAY":           6,
}

func (x TimePartConfig_TimePart) String() string {
	return proto.EnumName(TimePartConfig_TimePart_name, int32(x))
}

func (TimePartConfig_TimePart) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{44, 0}
}

type CharsToIgnore_CommonCharsToIgnore int32

const (
	CharsToIgnore_COMMON_CHARS_TO_IGNORE_UNSPECIFIED CharsToIgnore_CommonCharsToIgnore = 0
	// 0-9
	CharsToIgnore_NUMERIC CharsToIgnore_CommonCharsToIgnore = 1
	// A-Z
	CharsToIgnore_ALPHA_UPPER_CASE CharsToIgnore_CommonCharsToIgnore = 2
	// a-z
	CharsToIgnore_ALPHA_LOWER_CASE CharsToIgnore_CommonCharsToIgnore = 3
	// US Punctuation, one of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
	CharsToIgnore_PUNCTUATION CharsToIgnore_CommonCharsToIgnore = 4
	// Whitespace character, one of [ \t\n\x0B\f\r]
	CharsToIgnore_WHITESPACE CharsToIgnore_CommonCharsToIgnore = 5
)

var CharsToIgnore_CommonCharsToIgnore_name = map[int32]string{
	0: "COMMON_CHARS_TO_IGNORE_UNSPECIFIED",
	1: "NUMERIC",
	2: "ALPHA_UPPER_CASE",
	3: "ALPHA_LOWER_CASE",
	4: "PUNCTUATION",
	5: "WHITESPACE",
}

var CharsToIgnore_CommonCharsToIgnore_value = map[string]int32{
	"COMMON_CHARS_TO_IGNORE_UNSPECIFIED": 0,
	"NUMERIC":                            1,
	"ALPHA_UPPER_CASE":                   2,
	"ALPHA_LOWER_CASE":                   3,
	"PUNCTUATION":                        4,
	"WHITESPACE":                         5,
}

func (x CharsToIgnore_CommonCharsToIgnore) String() string {
	return proto.EnumName(CharsToIgnore_CommonCharsToIgnore_name, int32(x))
}

func (CharsToIgnore_CommonCharsToIgnore) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{50, 0}
}

// These are commonly used subsets of the alphabet that the FFX mode
// natively supports. In the algorithm, the alphabet is selected using
// the "radix". Therefore each corresponds to particular radix.
type CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet int32

const (
	CryptoReplaceFfxFpeConfig_FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 0
	// [0-9] (radix of 10)
	CryptoReplaceFfxFpeConfig_NUMERIC CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 1
	// [0-9A-F] (radix of 16)
	CryptoReplaceFfxFpeConfig_HEXADECIMAL CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 2
	// [0-9A-Z] (radix of 36)
	CryptoReplaceFfxFpeConfig_UPPER_CASE_ALPHA_NUMERIC CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 3
	// [0-9A-Za-z] (radix of 62)
	CryptoReplaceFfxFpeConfig_ALPHA_NUMERIC CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet = 4
)

var CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet_name = map[int32]string{
	0: "FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED",
	1: "NUMERIC",
	2: "HEXADECIMAL",
	3: "UPPER_CASE_ALPHA_NUMERIC",
	4: "ALPHA_NUMERIC",
}

var CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet_value = map[string]int32{
	"FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED": 0,
	"NUMERIC":                                1,
	"HEXADECIMAL":                            2,
	"UPPER_CASE_ALPHA_NUMERIC":               3,
	"ALPHA_NUMERIC":                          4,
}

func (x CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) String() string {
	return proto.EnumName(CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet_name, int32(x))
}

func (CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{54, 0}
}

type RecordCondition_Expressions_LogicalOperator int32

const (
	RecordCondition_Expressions_LOGICAL_OPERATOR_UNSPECIFIED RecordCondition_Expressions_LogicalOperator = 0
	RecordCondition_Expressions_AND                          RecordCondition_Expressions_LogicalOperator = 1
)

var RecordCondition_Expressions_LogicalOperator_name = map[int32]string{
	0: "LOGICAL_OPERATOR_UNSPECIFIED",
	1: "AND",
}

var RecordCondition_Expressions_LogicalOperator_value = map[string]int32{
	"LOGICAL_OPERATOR_UNSPECIFIED": 0,
	"AND":                          1,
}

func (x RecordCondition_Expressions_LogicalOperator) String() string {
	return proto.EnumName(RecordCondition_Expressions_LogicalOperator_name, int32(x))
}

func (RecordCondition_Expressions_LogicalOperator) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{64, 2, 0}
}

// Possible outcomes of transformations.
type TransformationSummary_TransformationResultCode int32

const (
	TransformationSummary_TRANSFORMATION_RESULT_CODE_UNSPECIFIED TransformationSummary_TransformationResultCode = 0
	TransformationSummary_SUCCESS                                TransformationSummary_TransformationResultCode = 1
	TransformationSummary_ERROR                                  TransformationSummary_TransformationResultCode = 2
)

var TransformationSummary_TransformationResultCode_name = map[int32]string{
	0: "TRANSFORMATION_RESULT_CODE_UNSPECIFIED",
	1: "SUCCESS",
	2: "ERROR",
}

var TransformationSummary_TransformationResultCode_value = map[string]int32{
	"TRANSFORMATION_RESULT_CODE_UNSPECIFIED": 0,
	"SUCCESS":                                1,
	"ERROR":                                  2,
}

func (x TransformationSummary_TransformationResultCode) String() string {
	return proto.EnumName(TransformationSummary_TransformationResultCode_name, int32(x))
}

func (TransformationSummary_TransformationResultCode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{66, 0}
}

// Whether the trigger is currently active. If PAUSED or CANCELLED, no jobs
// will be created with this configuration. The service may automatically
// pause triggers experiencing frequent errors. To restart a job, set the
// status to HEALTHY after correcting user errors.
type JobTrigger_Status int32

const (
	JobTrigger_STATUS_UNSPECIFIED JobTrigger_Status = 0
	// Trigger is healthy.
	JobTrigger_HEALTHY JobTrigger_Status = 1
	// Trigger is temporarily paused.
	JobTrigger_PAUSED JobTrigger_Status = 2
	// Trigger is cancelled and can not be resumed.
	JobTrigger_CANCELLED JobTrigger_Status = 3
)

var JobTrigger_Status_name = map[int32]string{
	0: "STATUS_UNSPECIFIED",
	1: "HEALTHY",
	2: "PAUSED",
	3: "CANCELLED",
}

var JobTrigger_Status_value = map[string]int32{
	"STATUS_UNSPECIFIED": 0,
	"HEALTHY":            1,
	"PAUSED":             2,
	"CANCELLED":          3,
}

func (x JobTrigger_Status) String() string {
	return proto.EnumName(JobTrigger_Status_name, int32(x))
}

func (JobTrigger_Status) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{71, 0}
}

type DlpJob_JobState int32

const (
	DlpJob_JOB_STATE_UNSPECIFIED DlpJob_JobState = 0
	// The job has not yet started.
	DlpJob_PENDING DlpJob_JobState = 1
	// The job is currently running.
	DlpJob_RUNNING DlpJob_JobState = 2
	// The job is no longer running.
	DlpJob_DONE DlpJob_JobState = 3
	// The job was canceled before it could complete.
	DlpJob_CANCELED DlpJob_JobState = 4
	// The job had an error and did not complete.
	DlpJob_FAILED DlpJob_JobState = 5
)

var DlpJob_JobState_name = map[int32]string{
	0: "JOB_STATE_UNSPECIFIED",
	1: "PENDING",
	2: "RUNNING",
	3: "DONE",
	4: "CANCELED",
	5: "FAILED",
}

var DlpJob_JobState_value = map[string]int32{
	"JOB_STATE_UNSPECIFIED": 0,
	"PENDING":               1,
	"RUNNING":               2,
	"DONE":                  3,
	"CANCELED":              4,
	"FAILED":                5,
}

func (x DlpJob_JobState) String() string {
	return proto.EnumName(DlpJob_JobState_name, int32(x))
}

func (DlpJob_JobState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{88, 0}
}

// List of exclude infoTypes.
type ExcludeInfoTypes struct {
	// InfoType list in ExclusionRule rule drops a finding when it overlaps or
	// contained within with a finding of an infoType from this list. For
	// example, for `InspectionRuleSet.info_types` containing "PHONE_NUMBER"` and
	// `exclusion_rule` containing `exclude_info_types.info_types` with
	// "EMAIL_ADDRESS" the phone number findings are dropped if they overlap
	// with EMAIL_ADDRESS finding.
	// That leads to "555-222-2222@example.org" to generate only a single
	// finding, namely email address.
	InfoTypes            []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *ExcludeInfoTypes) Reset()         { *m = ExcludeInfoTypes{} }
func (m *ExcludeInfoTypes) String() string { return proto.CompactTextString(m) }
func (*ExcludeInfoTypes) ProtoMessage()    {}
func (*ExcludeInfoTypes) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{0}
}

func (m *ExcludeInfoTypes) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ExcludeInfoTypes.Unmarshal(m, b)
}
func (m *ExcludeInfoTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ExcludeInfoTypes.Marshal(b, m, deterministic)
}
func (m *ExcludeInfoTypes) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ExcludeInfoTypes.Merge(m, src)
}
func (m *ExcludeInfoTypes) XXX_Size() int {
	return xxx_messageInfo_ExcludeInfoTypes.Size(m)
}
func (m *ExcludeInfoTypes) XXX_DiscardUnknown() {
	xxx_messageInfo_ExcludeInfoTypes.DiscardUnknown(m)
}

var xxx_messageInfo_ExcludeInfoTypes proto.InternalMessageInfo

func (m *ExcludeInfoTypes) GetInfoTypes() []*InfoType {
	if m != nil {
		return m.InfoTypes
	}
	return nil
}

// The rule that specifies conditions when findings of infoTypes specified in
// `InspectionRuleSet` are removed from results.
type ExclusionRule struct {
	// Types that are valid to be assigned to Type:
	//	*ExclusionRule_Dictionary
	//	*ExclusionRule_Regex
	//	*ExclusionRule_ExcludeInfoTypes
	Type isExclusionRule_Type `protobuf_oneof:"type"`
	// How the rule is applied, see MatchingType documentation for details.
	MatchingType         MatchingType `protobuf:"varint,4,opt,name=matching_type,json=matchingType,proto3,enum=google.privacy.dlp.v2.MatchingType" json:"matching_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *ExclusionRule) Reset()         { *m = ExclusionRule{} }
func (m *ExclusionRule) String() string { return proto.CompactTextString(m) }
func (*ExclusionRule) ProtoMessage()    {}
func (*ExclusionRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{1}
}

func (m *ExclusionRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ExclusionRule.Unmarshal(m, b)
}
func (m *ExclusionRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ExclusionRule.Marshal(b, m, deterministic)
}
func (m *ExclusionRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ExclusionRule.Merge(m, src)
}
func (m *ExclusionRule) XXX_Size() int {
	return xxx_messageInfo_ExclusionRule.Size(m)
}
func (m *ExclusionRule) XXX_DiscardUnknown() {
	xxx_messageInfo_ExclusionRule.DiscardUnknown(m)
}

var xxx_messageInfo_ExclusionRule proto.InternalMessageInfo

type isExclusionRule_Type interface {
	isExclusionRule_Type()
}

type ExclusionRule_Dictionary struct {
	Dictionary *CustomInfoType_Dictionary `protobuf:"bytes,1,opt,name=dictionary,proto3,oneof"`
}

type ExclusionRule_Regex struct {
	Regex *CustomInfoType_Regex `protobuf:"bytes,2,opt,name=regex,proto3,oneof"`
}

type ExclusionRule_ExcludeInfoTypes struct {
	ExcludeInfoTypes *ExcludeInfoTypes `protobuf:"bytes,3,opt,name=exclude_info_types,json=excludeInfoTypes,proto3,oneof"`
}

func (*ExclusionRule_Dictionary) isExclusionRule_Type() {}

func (*ExclusionRule_Regex) isExclusionRule_Type() {}

func (*ExclusionRule_ExcludeInfoTypes) isExclusionRule_Type() {}

func (m *ExclusionRule) GetType() isExclusionRule_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *ExclusionRule) GetDictionary() *CustomInfoType_Dictionary {
	if x, ok := m.GetType().(*ExclusionRule_Dictionary); ok {
		return x.Dictionary
	}
	return nil
}

func (m *ExclusionRule) GetRegex() *CustomInfoType_Regex {
	if x, ok := m.GetType().(*ExclusionRule_Regex); ok {
		return x.Regex
	}
	return nil
}

func (m *ExclusionRule) GetExcludeInfoTypes() *ExcludeInfoTypes {
	if x, ok := m.GetType().(*ExclusionRule_ExcludeInfoTypes); ok {
		return x.ExcludeInfoTypes
	}
	return nil
}

func (m *ExclusionRule) GetMatchingType() MatchingType {
	if m != nil {
		return m.MatchingType
	}
	return MatchingType_MATCHING_TYPE_UNSPECIFIED
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*ExclusionRule) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ExclusionRule_Dictionary)(nil),
		(*ExclusionRule_Regex)(nil),
		(*ExclusionRule_ExcludeInfoTypes)(nil),
	}
}

// A single inspection rule to be applied to infoTypes, specified in
// `InspectionRuleSet`.
type InspectionRule struct {
	// Types that are valid to be assigned to Type:
	//	*InspectionRule_HotwordRule
	//	*InspectionRule_ExclusionRule
	Type                 isInspectionRule_Type `protobuf_oneof:"type"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *InspectionRule) Reset()         { *m = InspectionRule{} }
func (m *InspectionRule) String() string { return proto.CompactTextString(m) }
func (*InspectionRule) ProtoMessage()    {}
func (*InspectionRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{2}
}

func (m *InspectionRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectionRule.Unmarshal(m, b)
}
func (m *InspectionRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectionRule.Marshal(b, m, deterministic)
}
func (m *InspectionRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectionRule.Merge(m, src)
}
func (m *InspectionRule) XXX_Size() int {
	return xxx_messageInfo_InspectionRule.Size(m)
}
func (m *InspectionRule) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectionRule.DiscardUnknown(m)
}

var xxx_messageInfo_InspectionRule proto.InternalMessageInfo

type isInspectionRule_Type interface {
	isInspectionRule_Type()
}

type InspectionRule_HotwordRule struct {
	HotwordRule *CustomInfoType_DetectionRule_HotwordRule `protobuf:"bytes,1,opt,name=hotword_rule,json=hotwordRule,proto3,oneof"`
}

type InspectionRule_ExclusionRule struct {
	ExclusionRule *ExclusionRule `protobuf:"bytes,2,opt,name=exclusion_rule,json=exclusionRule,proto3,oneof"`
}

func (*InspectionRule_HotwordRule) isInspectionRule_Type() {}

func (*InspectionRule_ExclusionRule) isInspectionRule_Type() {}

func (m *InspectionRule) GetType() isInspectionRule_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *InspectionRule) GetHotwordRule() *CustomInfoType_DetectionRule_HotwordRule {
	if x, ok := m.GetType().(*InspectionRule_HotwordRule); ok {
		return x.HotwordRule
	}
	return nil
}

func (m *InspectionRule) GetExclusionRule() *ExclusionRule {
	if x, ok := m.GetType().(*InspectionRule_ExclusionRule); ok {
		return x.ExclusionRule
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*InspectionRule) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*InspectionRule_HotwordRule)(nil),
		(*InspectionRule_ExclusionRule)(nil),
	}
}

// Rule set for modifying a set of infoTypes to alter behavior under certain
// circumstances, depending on the specific details of the rules within the set.
type InspectionRuleSet struct {
	// List of infoTypes this rule set is applied to.
	InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"`
	// Set of rules to be applied to infoTypes. The rules are applied in order.
	Rules                []*InspectionRule `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *InspectionRuleSet) Reset()         { *m = InspectionRuleSet{} }
func (m *InspectionRuleSet) String() string { return proto.CompactTextString(m) }
func (*InspectionRuleSet) ProtoMessage()    {}
func (*InspectionRuleSet) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{3}
}

func (m *InspectionRuleSet) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectionRuleSet.Unmarshal(m, b)
}
func (m *InspectionRuleSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectionRuleSet.Marshal(b, m, deterministic)
}
func (m *InspectionRuleSet) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectionRuleSet.Merge(m, src)
}
func (m *InspectionRuleSet) XXX_Size() int {
	return xxx_messageInfo_InspectionRuleSet.Size(m)
}
func (m *InspectionRuleSet) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectionRuleSet.DiscardUnknown(m)
}

var xxx_messageInfo_InspectionRuleSet proto.InternalMessageInfo

func (m *InspectionRuleSet) GetInfoTypes() []*InfoType {
	if m != nil {
		return m.InfoTypes
	}
	return nil
}

func (m *InspectionRuleSet) GetRules() []*InspectionRule {
	if m != nil {
		return m.Rules
	}
	return nil
}

// Configuration description of the scanning process.
// When used with redactContent only info_types and min_likelihood are currently
// used.
type InspectConfig struct {
	// Restricts what info_types to look for. The values must correspond to
	// InfoType values returned by ListInfoTypes or listed at
	// https://cloud.google.com/dlp/docs/infotypes-reference.
	//
	// When no InfoTypes or CustomInfoTypes are specified in a request, the
	// system may automatically choose what detectors to run. By default this may
	// be all types, but may change over time as detectors are updated.
	//
	// The special InfoType name "ALL_BASIC" can be used to trigger all detectors,
	// but may change over time as new InfoTypes are added. If you need precise
	// control and predictability as to what detectors are run you should specify
	// specific InfoTypes listed in the reference.
	InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"`
	// Only returns findings equal or above this threshold. The default is
	// POSSIBLE.
	// See https://cloud.google.com/dlp/docs/likelihood to learn more.
	MinLikelihood Likelihood                   `protobuf:"varint,2,opt,name=min_likelihood,json=minLikelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"min_likelihood,omitempty"`
	Limits        *InspectConfig_FindingLimits `protobuf:"bytes,3,opt,name=limits,proto3" json:"limits,omitempty"`
	// When true, a contextual quote from the data that triggered a finding is
	// included in the response; see Finding.quote.
	IncludeQuote bool `protobuf:"varint,4,opt,name=include_quote,json=includeQuote,proto3" json:"include_quote,omitempty"`
	// When true, excludes type information of the findings.
	ExcludeInfoTypes bool `protobuf:"varint,5,opt,name=exclude_info_types,json=excludeInfoTypes,proto3" json:"exclude_info_types,omitempty"`
	// CustomInfoTypes provided by the user. See
	// https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.
	CustomInfoTypes []*CustomInfoType `protobuf:"bytes,6,rep,name=custom_info_types,json=customInfoTypes,proto3" json:"custom_info_types,omitempty"`
	// List of options defining data content to scan.
	// If empty, text, images, and other content will be included.
	ContentOptions []ContentOption `protobuf:"varint,8,rep,packed,name=content_options,json=contentOptions,proto3,enum=google.privacy.dlp.v2.ContentOption" json:"content_options,omitempty"`
	// Set of rules to apply to the findings for this InspectConfig.
	// Exclusion rules, contained in the set are executed in the end, other
	// rules are executed in the order they are specified for each info type.
	RuleSet              []*InspectionRuleSet `protobuf:"bytes,10,rep,name=rule_set,json=ruleSet,proto3" json:"rule_set,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *InspectConfig) Reset()         { *m = InspectConfig{} }
func (m *InspectConfig) String() string { return proto.CompactTextString(m) }
func (*InspectConfig) ProtoMessage()    {}
func (*InspectConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{4}
}

func (m *InspectConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectConfig.Unmarshal(m, b)
}
func (m *InspectConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectConfig.Marshal(b, m, deterministic)
}
func (m *InspectConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectConfig.Merge(m, src)
}
func (m *InspectConfig) XXX_Size() int {
	return xxx_messageInfo_InspectConfig.Size(m)
}
func (m *InspectConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectConfig.DiscardUnknown(m)
}

var xxx_messageInfo_InspectConfig proto.InternalMessageInfo

func (m *InspectConfig) GetInfoTypes() []*InfoType {
	if m != nil {
		return m.InfoTypes
	}
	return nil
}

func (m *InspectConfig) GetMinLikelihood() Likelihood {
	if m != nil {
		return m.MinLikelihood
	}
	return Likelihood_LIKELIHOOD_UNSPECIFIED
}

func (m *InspectConfig) GetLimits() *InspectConfig_FindingLimits {
	if m != nil {
		return m.Limits
	}
	return nil
}

func (m *InspectConfig) GetIncludeQuote() bool {
	if m != nil {
		return m.IncludeQuote
	}
	return false
}

func (m *InspectConfig) GetExcludeInfoTypes() bool {
	if m != nil {
		return m.ExcludeInfoTypes
	}
	return false
}

func (m *InspectConfig) GetCustomInfoTypes() []*CustomInfoType {
	if m != nil {
		return m.CustomInfoTypes
	}
	return nil
}

func (m *InspectConfig) GetContentOptions() []ContentOption {
	if m != nil {
		return m.ContentOptions
	}
	return nil
}

func (m *InspectConfig) GetRuleSet() []*InspectionRuleSet {
	if m != nil {
		return m.RuleSet
	}
	return nil
}

type InspectConfig_FindingLimits struct {
	// Max number of findings that will be returned for each item scanned.
	// When set within `InspectDataSourceRequest`,
	// the maximum returned is 2000 regardless if this is set higher.
	// When set within `InspectContentRequest`, this field is ignored.
	MaxFindingsPerItem int32 `protobuf:"varint,1,opt,name=max_findings_per_item,json=maxFindingsPerItem,proto3" json:"max_findings_per_item,omitempty"`
	// Max number of findings that will be returned per request/job.
	// When set within `InspectContentRequest`, the maximum returned is 2000
	// regardless if this is set higher.
	MaxFindingsPerRequest int32 `protobuf:"varint,2,opt,name=max_findings_per_request,json=maxFindingsPerRequest,proto3" json:"max_findings_per_request,omitempty"`
	// Configuration of findings limit given for specified infoTypes.
	MaxFindingsPerInfoType []*InspectConfig_FindingLimits_InfoTypeLimit `protobuf:"bytes,3,rep,name=max_findings_per_info_type,json=maxFindingsPerInfoType,proto3" json:"max_findings_per_info_type,omitempty"`
	XXX_NoUnkeyedLiteral   struct{}                                     `json:"-"`
	XXX_unrecognized       []byte                                       `json:"-"`
	XXX_sizecache          int32                                        `json:"-"`
}

func (m *InspectConfig_FindingLimits) Reset()         { *m = InspectConfig_FindingLimits{} }
func (m *InspectConfig_FindingLimits) String() string { return proto.CompactTextString(m) }
func (*InspectConfig_FindingLimits) ProtoMessage()    {}
func (*InspectConfig_FindingLimits) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{4, 0}
}

func (m *InspectConfig_FindingLimits) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectConfig_FindingLimits.Unmarshal(m, b)
}
func (m *InspectConfig_FindingLimits) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectConfig_FindingLimits.Marshal(b, m, deterministic)
}
func (m *InspectConfig_FindingLimits) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectConfig_FindingLimits.Merge(m, src)
}
func (m *InspectConfig_FindingLimits) XXX_Size() int {
	return xxx_messageInfo_InspectConfig_FindingLimits.Size(m)
}
func (m *InspectConfig_FindingLimits) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectConfig_FindingLimits.DiscardUnknown(m)
}

var xxx_messageInfo_InspectConfig_FindingLimits proto.InternalMessageInfo

func (m *InspectConfig_FindingLimits) GetMaxFindingsPerItem() int32 {
	if m != nil {
		return m.MaxFindingsPerItem
	}
	return 0
}

func (m *InspectConfig_FindingLimits) GetMaxFindingsPerRequest() int32 {
	if m != nil {
		return m.MaxFindingsPerRequest
	}
	return 0
}

func (m *InspectConfig_FindingLimits) GetMaxFindingsPerInfoType() []*InspectConfig_FindingLimits_InfoTypeLimit {
	if m != nil {
		return m.MaxFindingsPerInfoType
	}
	return nil
}

// Max findings configuration per infoType, per content item or long
// running DlpJob.
type InspectConfig_FindingLimits_InfoTypeLimit struct {
	// Type of information the findings limit applies to. Only one limit per
	// info_type should be provided. If InfoTypeLimit does not have an
	// info_type, the DLP API applies the limit against all info_types that
	// are found but not specified in another InfoTypeLimit.
	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"`
	// Max findings limit for the given infoType.
	MaxFindings          int32    `protobuf:"varint,2,opt,name=max_findings,json=maxFindings,proto3" json:"max_findings,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *InspectConfig_FindingLimits_InfoTypeLimit) Reset() {
	*m = InspectConfig_FindingLimits_InfoTypeLimit{}
}
func (m *InspectConfig_FindingLimits_InfoTypeLimit) String() string { return proto.CompactTextString(m) }
func (*InspectConfig_FindingLimits_InfoTypeLimit) ProtoMessage()    {}
func (*InspectConfig_FindingLimits_InfoTypeLimit) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{4, 0, 0}
}

func (m *InspectConfig_FindingLimits_InfoTypeLimit) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectConfig_FindingLimits_InfoTypeLimit.Unmarshal(m, b)
}
func (m *InspectConfig_FindingLimits_InfoTypeLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectConfig_FindingLimits_InfoTypeLimit.Marshal(b, m, deterministic)
}
func (m *InspectConfig_FindingLimits_InfoTypeLimit) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectConfig_FindingLimits_InfoTypeLimit.Merge(m, src)
}
func (m *InspectConfig_FindingLimits_InfoTypeLimit) XXX_Size() int {
	return xxx_messageInfo_InspectConfig_FindingLimits_InfoTypeLimit.Size(m)
}
func (m *InspectConfig_FindingLimits_InfoTypeLimit) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectConfig_FindingLimits_InfoTypeLimit.DiscardUnknown(m)
}

var xxx_messageInfo_InspectConfig_FindingLimits_InfoTypeLimit proto.InternalMessageInfo

func (m *InspectConfig_FindingLimits_InfoTypeLimit) GetInfoType() *InfoType {
	if m != nil {
		return m.InfoType
	}
	return nil
}

func (m *InspectConfig_FindingLimits_InfoTypeLimit) GetMaxFindings() int32 {
	if m != nil {
		return m.MaxFindings
	}
	return 0
}

// Container for bytes to inspect or redact.
type ByteContentItem struct {
	// The type of data stored in the bytes string. Default will be TEXT_UTF8.
	Type ByteContentItem_BytesType `protobuf:"varint,1,opt,name=type,proto3,enum=google.privacy.dlp.v2.ByteContentItem_BytesType" json:"type,omitempty"`
	// Content data to inspect or redact.
	Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ByteContentItem) Reset()         { *m = ByteContentItem{} }
func (m *ByteContentItem) String() string { return proto.CompactTextString(m) }
func (*ByteContentItem) ProtoMessage()    {}
func (*ByteContentItem) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{5}
}

func (m *ByteContentItem) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ByteContentItem.Unmarshal(m, b)
}
func (m *ByteContentItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ByteContentItem.Marshal(b, m, deterministic)
}
func (m *ByteContentItem) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ByteContentItem.Merge(m, src)
}
func (m *ByteContentItem) XXX_Size() int {
	return xxx_messageInfo_ByteContentItem.Size(m)
}
func (m *ByteContentItem) XXX_DiscardUnknown() {
	xxx_messageInfo_ByteContentItem.DiscardUnknown(m)
}

var xxx_messageInfo_ByteContentItem proto.InternalMessageInfo

func (m *ByteContentItem) GetType() ByteContentItem_BytesType {
	if m != nil {
		return m.Type
	}
	return ByteContentItem_BYTES_TYPE_UNSPECIFIED
}

func (m *ByteContentItem) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

// Container structure for the content to inspect.
type ContentItem struct {
	// Data of the item either in the byte array or UTF-8 string form, or table.
	//
	// Types that are valid to be assigned to DataItem:
	//	*ContentItem_Value
	//	*ContentItem_Table
	//	*ContentItem_ByteItem
	DataItem             isContentItem_DataItem `protobuf_oneof:"data_item"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *ContentItem) Reset()         { *m = ContentItem{} }
func (m *ContentItem) String() string { return proto.CompactTextString(m) }
func (*ContentItem) ProtoMessage()    {}
func (*ContentItem) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{6}
}

func (m *ContentItem) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ContentItem.Unmarshal(m, b)
}
func (m *ContentItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ContentItem.Marshal(b, m, deterministic)
}
func (m *ContentItem) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ContentItem.Merge(m, src)
}
func (m *ContentItem) XXX_Size() int {
	return xxx_messageInfo_ContentItem.Size(m)
}
func (m *ContentItem) XXX_DiscardUnknown() {
	xxx_messageInfo_ContentItem.DiscardUnknown(m)
}

var xxx_messageInfo_ContentItem proto.InternalMessageInfo

type isContentItem_DataItem interface {
	isContentItem_DataItem()
}

type ContentItem_Value struct {
	Value string `protobuf:"bytes,3,opt,name=value,proto3,oneof"`
}

type ContentItem_Table struct {
	Table *Table `protobuf:"bytes,4,opt,name=table,proto3,oneof"`
}

type ContentItem_ByteItem struct {
	ByteItem *ByteContentItem `protobuf:"bytes,5,opt,name=byte_item,json=byteItem,proto3,oneof"`
}

func (*ContentItem_Value) isContentItem_DataItem() {}

func (*ContentItem_Table) isContentItem_DataItem() {}

func (*ContentItem_ByteItem) isContentItem_DataItem() {}

func (m *ContentItem) GetDataItem() isContentItem_DataItem {
	if m != nil {
		return m.DataItem
	}
	return nil
}

func (m *ContentItem) GetValue() string {
	if x, ok := m.GetDataItem().(*ContentItem_Value); ok {
		return x.Value
	}
	return ""
}

func (m *ContentItem) GetTable() *Table {
	if x, ok := m.GetDataItem().(*ContentItem_Table); ok {
		return x.Table
	}
	return nil
}

func (m *ContentItem) GetByteItem() *ByteContentItem {
	if x, ok := m.GetDataItem().(*ContentItem_ByteItem); ok {
		return x.ByteItem
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*ContentItem) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ContentItem_Value)(nil),
		(*ContentItem_Table)(nil),
		(*ContentItem_ByteItem)(nil),
	}
}

// Structured content to inspect. Up to 50,000 `Value`s per request allowed.
// See https://cloud.google.com/dlp/docs/inspecting-text#inspecting_a_table to
// learn more.
type Table struct {
	Headers              []*FieldId   `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"`
	Rows                 []*Table_Row `protobuf:"bytes,2,rep,name=rows,proto3" json:"rows,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *Table) Reset()         { *m = Table{} }
func (m *Table) String() string { return proto.CompactTextString(m) }
func (*Table) ProtoMessage()    {}
func (*Table) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{7}
}

func (m *Table) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Table.Unmarshal(m, b)
}
func (m *Table) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Table.Marshal(b, m, deterministic)
}
func (m *Table) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Table.Merge(m, src)
}
func (m *Table) XXX_Size() int {
	return xxx_messageInfo_Table.Size(m)
}
func (m *Table) XXX_DiscardUnknown() {
	xxx_messageInfo_Table.DiscardUnknown(m)
}

var xxx_messageInfo_Table proto.InternalMessageInfo

func (m *Table) GetHeaders() []*FieldId {
	if m != nil {
		return m.Headers
	}
	return nil
}

func (m *Table) GetRows() []*Table_Row {
	if m != nil {
		return m.Rows
	}
	return nil
}

type Table_Row struct {
	Values               []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Table_Row) Reset()         { *m = Table_Row{} }
func (m *Table_Row) String() string { return proto.CompactTextString(m) }
func (*Table_Row) ProtoMessage()    {}
func (*Table_Row) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{7, 0}
}

func (m *Table_Row) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Table_Row.Unmarshal(m, b)
}
func (m *Table_Row) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Table_Row.Marshal(b, m, deterministic)
}
func (m *Table_Row) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Table_Row.Merge(m, src)
}
func (m *Table_Row) XXX_Size() int {
	return xxx_messageInfo_Table_Row.Size(m)
}
func (m *Table_Row) XXX_DiscardUnknown() {
	xxx_messageInfo_Table_Row.DiscardUnknown(m)
}

var xxx_messageInfo_Table_Row proto.InternalMessageInfo

func (m *Table_Row) GetValues() []*Value {
	if m != nil {
		return m.Values
	}
	return nil
}

// All the findings for a single scanned item.
type InspectResult struct {
	// List of findings for an item.
	Findings []*Finding `protobuf:"bytes,1,rep,name=findings,proto3" json:"findings,omitempty"`
	// If true, then this item might have more findings than were returned,
	// and the findings returned are an arbitrary subset of all findings.
	// The findings list might be truncated because the input items were too
	// large, or because the server reached the maximum amount of resources
	// allowed for a single API call. For best results, divide the input into
	// smaller batches.
	FindingsTruncated    bool     `protobuf:"varint,2,opt,name=findings_truncated,json=findingsTruncated,proto3" json:"findings_truncated,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *InspectResult) Reset()         { *m = InspectResult{} }
func (m *InspectResult) String() string { return proto.CompactTextString(m) }
func (*InspectResult) ProtoMessage()    {}
func (*InspectResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{8}
}

func (m *InspectResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectResult.Unmarshal(m, b)
}
func (m *InspectResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectResult.Marshal(b, m, deterministic)
}
func (m *InspectResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectResult.Merge(m, src)
}
func (m *InspectResult) XXX_Size() int {
	return xxx_messageInfo_InspectResult.Size(m)
}
func (m *InspectResult) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectResult.DiscardUnknown(m)
}

var xxx_messageInfo_InspectResult proto.InternalMessageInfo

func (m *InspectResult) GetFindings() []*Finding {
	if m != nil {
		return m.Findings
	}
	return nil
}

func (m *InspectResult) GetFindingsTruncated() bool {
	if m != nil {
		return m.FindingsTruncated
	}
	return false
}

// Represents a piece of potentially sensitive content.
type Finding struct {
	// The content that was found. Even if the content is not textual, it
	// may be converted to a textual representation here.
	// Provided if `include_quote` is true and the finding is
	// less than or equal to 4096 bytes long. If the finding exceeds 4096 bytes
	// in length, the quote may be omitted.
	Quote string `protobuf:"bytes,1,opt,name=quote,proto3" json:"quote,omitempty"`
	// The type of content that might have been found.
	// Provided if `excluded_types` is false.
	InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"`
	// Confidence of how likely it is that the `info_type` is correct.
	Likelihood Likelihood `protobuf:"varint,3,opt,name=likelihood,proto3,enum=google.privacy.dlp.v2.Likelihood" json:"likelihood,omitempty"`
	// Where the content was found.
	Location *Location `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"`
	// Timestamp when finding was detected.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Contains data parsed from quotes. Only populated if include_quote was set
	// to true and a supported infoType was requested. Currently supported
	// infoTypes: DATE, DATE_OF_BIRTH and TIME.
	QuoteInfo            *QuoteInfo `protobuf:"bytes,7,opt,name=quote_info,json=quoteInfo,proto3" json:"quote_info,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *Finding) Reset()         { *m = Finding{} }
func (m *Finding) String() string { return proto.CompactTextString(m) }
func (*Finding) ProtoMessage()    {}
func (*Finding) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{9}
}

func (m *Finding) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Finding.Unmarshal(m, b)
}
func (m *Finding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Finding.Marshal(b, m, deterministic)
}
func (m *Finding) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Finding.Merge(m, src)
}
func (m *Finding) XXX_Size() int {
	return xxx_messageInfo_Finding.Size(m)
}
func (m *Finding) XXX_DiscardUnknown() {
	xxx_messageInfo_Finding.DiscardUnknown(m)
}

var xxx_messageInfo_Finding proto.InternalMessageInfo

func (m *Finding) GetQuote() string {
	if m != nil {
		return m.Quote
	}
	return ""
}

func (m *Finding) GetInfoType() *InfoType {
	if m != nil {
		return m.InfoType
	}
	return nil
}

func (m *Finding) GetLikelihood() Likelihood {
	if m != nil {
		return m.Likelihood
	}
	return Likelihood_LIKELIHOOD_UNSPECIFIED
}

func (m *Finding) GetLocation() *Location {
	if m != nil {
		return m.Location
	}
	return nil
}

func (m *Finding) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Finding) GetQuoteInfo() *QuoteInfo {
	if m != nil {
		return m.QuoteInfo
	}
	return nil
}

// Specifies the location of the finding.
type Location struct {
	// Zero-based byte offsets delimiting the finding.
	// These are relative to the finding's containing element.
	// Note that when the content is not textual, this references
	// the UTF-8 encoded textual representation of the content.
	// Omitted if content is an image.
	ByteRange *Range `protobuf:"bytes,1,opt,name=byte_range,json=byteRange,proto3" json:"byte_range,omitempty"`
	// Unicode character offsets delimiting the finding.
	// These are relative to the finding's containing element.
	// Provided when the content is text.
	CodepointRange *Range `protobuf:"bytes,2,opt,name=codepoint_range,json=codepointRange,proto3" json:"codepoint_range,omitempty"`
	// List of nested objects pointing to the precise location of the finding
	// within the file or record.
	ContentLocations     []*ContentLocation `protobuf:"bytes,7,rep,name=content_locations,json=contentLocations,proto3" json:"content_locations,omitempty"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *Location) Reset()         { *m = Location{} }
func (m *Location) String() string { return proto.CompactTextString(m) }
func (*Location) ProtoMessage()    {}
func (*Location) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{10}
}

func (m *Location) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Location.Unmarshal(m, b)
}
func (m *Location) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Location.Marshal(b, m, deterministic)
}
func (m *Location) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Location.Merge(m, src)
}
func (m *Location) XXX_Size() int {
	return xxx_messageInfo_Location.Size(m)
}
func (m *Location) XXX_DiscardUnknown() {
	xxx_messageInfo_Location.DiscardUnknown(m)
}

var xxx_messageInfo_Location proto.InternalMessageInfo

func (m *Location) GetByteRange() *Range {
	if m != nil {
		return m.ByteRange
	}
	return nil
}

func (m *Location) GetCodepointRange() *Range {
	if m != nil {
		return m.CodepointRange
	}
	return nil
}

func (m *Location) GetContentLocations() []*ContentLocation {
	if m != nil {
		return m.ContentLocations
	}
	return nil
}

// Findings container location data.
type ContentLocation struct {
	// Name of the container where the finding is located.
	// The top level name is the source file name or table name. Names of some
	// common storage containers are formatted as follows:
	//
	// * BigQuery tables:  `<project_id>:<dataset_id>.<table_id>`
	// * Cloud Storage files: `gs://<bucket>/<path>`
	// * Datastore namespace: <namespace>
	//
	// Nested names could be absent if the embedded object has no string
	// identifier (for an example an image contained within a document).
	ContainerName string `protobuf:"bytes,1,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"`
	// Type of the container within the file with location of the finding.
	//
	// Types that are valid to be assigned to Location:
	//	*ContentLocation_RecordLocation
	//	*ContentLocation_ImageLocation
	//	*ContentLocation_DocumentLocation
	Location isContentLocation_Location `protobuf_oneof:"location"`
	// Findings container modification timestamp, if applicable.
	// For Google Cloud Storage contains last file modification timestamp.
	// For BigQuery table contains last_modified_time property.
	// For Datastore - not populated.
	ContainerTimestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=container_timestamp,json=containerTimestamp,proto3" json:"container_timestamp,omitempty"`
	// Findings container version, if available
	// ("generation" for Google Cloud Storage).
	ContainerVersion     string   `protobuf:"bytes,7,opt,name=container_version,json=containerVersion,proto3" json:"container_version,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ContentLocation) Reset()         { *m = ContentLocation{} }
func (m *ContentLocation) String() string { return proto.CompactTextString(m) }
func (*ContentLocation) ProtoMessage()    {}
func (*ContentLocation) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{11}
}

func (m *ContentLocation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ContentLocation.Unmarshal(m, b)
}
func (m *ContentLocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ContentLocation.Marshal(b, m, deterministic)
}
func (m *ContentLocation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ContentLocation.Merge(m, src)
}
func (m *ContentLocation) XXX_Size() int {
	return xxx_messageInfo_ContentLocation.Size(m)
}
func (m *ContentLocation) XXX_DiscardUnknown() {
	xxx_messageInfo_ContentLocation.DiscardUnknown(m)
}

var xxx_messageInfo_ContentLocation proto.InternalMessageInfo

func (m *ContentLocation) GetContainerName() string {
	if m != nil {
		return m.ContainerName
	}
	return ""
}

type isContentLocation_Location interface {
	isContentLocation_Location()
}

type ContentLocation_RecordLocation struct {
	RecordLocation *RecordLocation `protobuf:"bytes,2,opt,name=record_location,json=recordLocation,proto3,oneof"`
}

type ContentLocation_ImageLocation struct {
	ImageLocation *ImageLocation `protobuf:"bytes,3,opt,name=image_location,json=imageLocation,proto3,oneof"`
}

type ContentLocation_DocumentLocation struct {
	DocumentLocation *DocumentLocation `protobuf:"bytes,5,opt,name=document_location,json=documentLocation,proto3,oneof"`
}

func (*ContentLocation_RecordLocation) isContentLocation_Location() {}

func (*ContentLocation_ImageLocation) isContentLocation_Location() {}

func (*ContentLocation_DocumentLocation) isContentLocation_Location() {}

func (m *ContentLocation) GetLocation() isContentLocation_Location {
	if m != nil {
		return m.Location
	}
	return nil
}

func (m *ContentLocation) GetRecordLocation() *RecordLocation {
	if x, ok := m.GetLocation().(*ContentLocation_RecordLocation); ok {
		return x.RecordLocation
	}
	return nil
}

func (m *ContentLocation) GetImageLocation() *ImageLocation {
	if x, ok := m.GetLocation().(*ContentLocation_ImageLocation); ok {
		return x.ImageLocation
	}
	return nil
}

func (m *ContentLocation) GetDocumentLocation() *DocumentLocation {
	if x, ok := m.GetLocation().(*ContentLocation_DocumentLocation); ok {
		return x.DocumentLocation
	}
	return nil
}

func (m *ContentLocation) GetContainerTimestamp() *timestamp.Timestamp {
	if m != nil {
		return m.ContainerTimestamp
	}
	return nil
}

func (m *ContentLocation) GetContainerVersion() string {
	if m != nil {
		return m.ContainerVersion
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*ContentLocation) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ContentLocation_RecordLocation)(nil),
		(*ContentLocation_ImageLocation)(nil),
		(*ContentLocation_DocumentLocation)(nil),
	}
}

// Location of a finding within a document.
type DocumentLocation struct {
	// Offset of the line, from the beginning of the file, where the finding
	// is located.
	FileOffset           int64    `protobuf:"varint,1,opt,name=file_offset,json=fileOffset,proto3" json:"file_offset,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DocumentLocation) Reset()         { *m = DocumentLocation{} }
func (m *DocumentLocation) String() string { return proto.CompactTextString(m) }
func (*DocumentLocation) ProtoMessage()    {}
func (*DocumentLocation) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{12}
}

func (m *DocumentLocation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DocumentLocation.Unmarshal(m, b)
}
func (m *DocumentLocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DocumentLocation.Marshal(b, m, deterministic)
}
func (m *DocumentLocation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DocumentLocation.Merge(m, src)
}
func (m *DocumentLocation) XXX_Size() int {
	return xxx_messageInfo_DocumentLocation.Size(m)
}
func (m *DocumentLocation) XXX_DiscardUnknown() {
	xxx_messageInfo_DocumentLocation.DiscardUnknown(m)
}

var xxx_messageInfo_DocumentLocation proto.InternalMessageInfo

func (m *DocumentLocation) GetFileOffset() int64 {
	if m != nil {
		return m.FileOffset
	}
	return 0
}

// Location of a finding within a row or record.
type RecordLocation struct {
	// Key of the finding.
	RecordKey *RecordKey `protobuf:"bytes,1,opt,name=record_key,json=recordKey,proto3" json:"record_key,omitempty"`
	// Field id of the field containing the finding.
	FieldId *FieldId `protobuf:"bytes,2,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	// Location within a `ContentItem.Table`.
	TableLocation        *TableLocation `protobuf:"bytes,3,opt,name=table_location,json=tableLocation,proto3" json:"table_location,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *RecordLocation) Reset()         { *m = RecordLocation{} }
func (m *RecordLocation) String() string { return proto.CompactTextString(m) }
func (*RecordLocation) ProtoMessage()    {}
func (*RecordLocation) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{13}
}

func (m *RecordLocation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RecordLocation.Unmarshal(m, b)
}
func (m *RecordLocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RecordLocation.Marshal(b, m, deterministic)
}
func (m *RecordLocation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RecordLocation.Merge(m, src)
}
func (m *RecordLocation) XXX_Size() int {
	return xxx_messageInfo_RecordLocation.Size(m)
}
func (m *RecordLocation) XXX_DiscardUnknown() {
	xxx_messageInfo_RecordLocation.DiscardUnknown(m)
}

var xxx_messageInfo_RecordLocation proto.InternalMessageInfo

func (m *RecordLocation) GetRecordKey() *RecordKey {
	if m != nil {
		return m.RecordKey
	}
	return nil
}

func (m *RecordLocation) GetFieldId() *FieldId {
	if m != nil {
		return m.FieldId
	}
	return nil
}

func (m *RecordLocation) GetTableLocation() *TableLocation {
	if m != nil {
		return m.TableLocation
	}
	return nil
}

// Location of a finding within a table.
type TableLocation struct {
	// The zero-based index of the row where the finding is located.
	RowIndex             int64    `protobuf:"varint,1,opt,name=row_index,json=rowIndex,proto3" json:"row_index,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TableLocation) Reset()         { *m = TableLocation{} }
func (m *TableLocation) String() string { return proto.CompactTextString(m) }
func (*TableLocation) ProtoMessage()    {}
func (*TableLocation) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{14}
}

func (m *TableLocation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TableLocation.Unmarshal(m, b)
}
func (m *TableLocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TableLocation.Marshal(b, m, deterministic)
}
func (m *TableLocation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TableLocation.Merge(m, src)
}
func (m *TableLocation) XXX_Size() int {
	return xxx_messageInfo_TableLocation.Size(m)
}
func (m *TableLocation) XXX_DiscardUnknown() {
	xxx_messageInfo_TableLocation.DiscardUnknown(m)
}

var xxx_messageInfo_TableLocation proto.InternalMessageInfo

func (m *TableLocation) GetRowIndex() int64 {
	if m != nil {
		return m.RowIndex
	}
	return 0
}

// Generic half-open interval [start, end)
type Range struct {
	// Index of the first character of the range (inclusive).
	Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"`
	// Index of the last character of the range (exclusive).
	End                  int64    `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Range) Reset()         { *m = Range{} }
func (m *Range) String() string { return proto.CompactTextString(m) }
func (*Range) ProtoMessage()    {}
func (*Range) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{15}
}

func (m *Range) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Range.Unmarshal(m, b)
}
func (m *Range) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Range.Marshal(b, m, deterministic)
}
func (m *Range) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Range.Merge(m, src)
}
func (m *Range) XXX_Size() int {
	return xxx_messageInfo_Range.Size(m)
}
func (m *Range) XXX_DiscardUnknown() {
	xxx_messageInfo_Range.DiscardUnknown(m)
}

var xxx_messageInfo_Range proto.InternalMessageInfo

func (m *Range) GetStart() int64 {
	if m != nil {
		return m.Start
	}
	return 0
}

func (m *Range) GetEnd() int64 {
	if m != nil {
		return m.End
	}
	return 0
}

// Location of the finding within an image.
type ImageLocation struct {
	// Bounding boxes locating the pixels within the image containing the finding.
	BoundingBoxes        []*BoundingBox `protobuf:"bytes,1,rep,name=bounding_boxes,json=boundingBoxes,proto3" json:"bounding_boxes,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *ImageLocation) Reset()         { *m = ImageLocation{} }
func (m *ImageLocation) String() string { return proto.CompactTextString(m) }
func (*ImageLocation) ProtoMessage()    {}
func (*ImageLocation) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{16}
}

func (m *ImageLocation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ImageLocation.Unmarshal(m, b)
}
func (m *ImageLocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ImageLocation.Marshal(b, m, deterministic)
}
func (m *ImageLocation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ImageLocation.Merge(m, src)
}
func (m *ImageLocation) XXX_Size() int {
	return xxx_messageInfo_ImageLocation.Size(m)
}
func (m *ImageLocation) XXX_DiscardUnknown() {
	xxx_messageInfo_ImageLocation.DiscardUnknown(m)
}

var xxx_messageInfo_ImageLocation proto.InternalMessageInfo

func (m *ImageLocation) GetBoundingBoxes() []*BoundingBox {
	if m != nil {
		return m.BoundingBoxes
	}
	return nil
}

// Bounding box encompassing detected text within an image.
type BoundingBox struct {
	// Top coordinate of the bounding box. (0,0) is upper left.
	Top int32 `protobuf:"varint,1,opt,name=top,proto3" json:"top,omitempty"`
	// Left coordinate of the bounding box. (0,0) is upper left.
	Left int32 `protobuf:"varint,2,opt,name=left,proto3" json:"left,omitempty"`
	// Width of the bounding box in pixels.
	Width int32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"`
	// Height of the bounding box in pixels.
	Height               int32    `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BoundingBox) Reset()         { *m = BoundingBox{} }
func (m *BoundingBox) String() string { return proto.CompactTextString(m) }
func (*BoundingBox) ProtoMessage()    {}
func (*BoundingBox) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{17}
}

func (m *BoundingBox) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BoundingBox.Unmarshal(m, b)
}
func (m *BoundingBox) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BoundingBox.Marshal(b, m, deterministic)
}
func (m *BoundingBox) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BoundingBox.Merge(m, src)
}
func (m *BoundingBox) XXX_Size() int {
	return xxx_messageInfo_BoundingBox.Size(m)
}
func (m *BoundingBox) XXX_DiscardUnknown() {
	xxx_messageInfo_BoundingBox.DiscardUnknown(m)
}

var xxx_messageInfo_BoundingBox proto.InternalMessageInfo

func (m *BoundingBox) GetTop() int32 {
	if m != nil {
		return m.Top
	}
	return 0
}

func (m *BoundingBox) GetLeft() int32 {
	if m != nil {
		return m.Left
	}
	return 0
}

func (m *BoundingBox) GetWidth() int32 {
	if m != nil {
		return m.Width
	}
	return 0
}

func (m *BoundingBox) GetHeight() int32 {
	if m != nil {
		return m.Height
	}
	return 0
}

// Request to search for potentially sensitive info in an image and redact it
// by covering it with a colored rectangle.
type RedactImageRequest struct {
	// The parent resource name, for example projects/my-project-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Configuration for the inspector.
	InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
	// The configuration for specifying what content to redact from images.
	ImageRedactionConfigs []*RedactImageRequest_ImageRedactionConfig `protobuf:"bytes,5,rep,name=image_redaction_configs,json=imageRedactionConfigs,proto3" json:"image_redaction_configs,omitempty"`
	// Whether the response should include findings along with the redacted
	// image.
	IncludeFindings bool `protobuf:"varint,6,opt,name=include_findings,json=includeFindings,proto3" json:"include_findings,omitempty"`
	// The content must be PNG, JPEG, SVG or BMP.
	ByteItem             *ByteContentItem `protobuf:"bytes,7,opt,name=byte_item,json=byteItem,proto3" json:"byte_item,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *RedactImageRequest) Reset()         { *m = RedactImageRequest{} }
func (m *RedactImageRequest) String() string { return proto.CompactTextString(m) }
func (*RedactImageRequest) ProtoMessage()    {}
func (*RedactImageRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{18}
}

func (m *RedactImageRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedactImageRequest.Unmarshal(m, b)
}
func (m *RedactImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedactImageRequest.Marshal(b, m, deterministic)
}
func (m *RedactImageRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedactImageRequest.Merge(m, src)
}
func (m *RedactImageRequest) XXX_Size() int {
	return xxx_messageInfo_RedactImageRequest.Size(m)
}
func (m *RedactImageRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_RedactImageRequest.DiscardUnknown(m)
}

var xxx_messageInfo_RedactImageRequest proto.InternalMessageInfo

func (m *RedactImageRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *RedactImageRequest) GetInspectConfig() *InspectConfig {
	if m != nil {
		return m.InspectConfig
	}
	return nil
}

func (m *RedactImageRequest) GetImageRedactionConfigs() []*RedactImageRequest_ImageRedactionConfig {
	if m != nil {
		return m.ImageRedactionConfigs
	}
	return nil
}

func (m *RedactImageRequest) GetIncludeFindings() bool {
	if m != nil {
		return m.IncludeFindings
	}
	return false
}

func (m *RedactImageRequest) GetByteItem() *ByteContentItem {
	if m != nil {
		return m.ByteItem
	}
	return nil
}

// Configuration for determining how redaction of images should occur.
type RedactImageRequest_ImageRedactionConfig struct {
	// Type of information to redact from images.
	//
	// Types that are valid to be assigned to Target:
	//	*RedactImageRequest_ImageRedactionConfig_InfoType
	//	*RedactImageRequest_ImageRedactionConfig_RedactAllText
	Target isRedactImageRequest_ImageRedactionConfig_Target `protobuf_oneof:"target"`
	// The color to use when redacting content from an image. If not specified,
	// the default is black.
	RedactionColor       *Color   `protobuf:"bytes,3,opt,name=redaction_color,json=redactionColor,proto3" json:"redaction_color,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RedactImageRequest_ImageRedactionConfig) Reset() {
	*m = RedactImageRequest_ImageRedactionConfig{}
}
func (m *RedactImageRequest_ImageRedactionConfig) String() string { return proto.CompactTextString(m) }
func (*RedactImageRequest_ImageRedactionConfig) ProtoMessage()    {}
func (*RedactImageRequest_ImageRedactionConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{18, 0}
}

func (m *RedactImageRequest_ImageRedactionConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedactImageRequest_ImageRedactionConfig.Unmarshal(m, b)
}
func (m *RedactImageRequest_ImageRedactionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedactImageRequest_ImageRedactionConfig.Marshal(b, m, deterministic)
}
func (m *RedactImageRequest_ImageRedactionConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedactImageRequest_ImageRedactionConfig.Merge(m, src)
}
func (m *RedactImageRequest_ImageRedactionConfig) XXX_Size() int {
	return xxx_messageInfo_RedactImageRequest_ImageRedactionConfig.Size(m)
}
func (m *RedactImageRequest_ImageRedactionConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_RedactImageRequest_ImageRedactionConfig.DiscardUnknown(m)
}

var xxx_messageInfo_RedactImageRequest_ImageRedactionConfig proto.InternalMessageInfo

type isRedactImageRequest_ImageRedactionConfig_Target interface {
	isRedactImageRequest_ImageRedactionConfig_Target()
}

type RedactImageRequest_ImageRedactionConfig_InfoType struct {
	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3,oneof"`
}

type RedactImageRequest_ImageRedactionConfig_RedactAllText struct {
	RedactAllText bool `protobuf:"varint,2,opt,name=redact_all_text,json=redactAllText,proto3,oneof"`
}

func (*RedactImageRequest_ImageRedactionConfig_InfoType) isRedactImageRequest_ImageRedactionConfig_Target() {
}

func (*RedactImageRequest_ImageRedactionConfig_RedactAllText) isRedactImageRequest_ImageRedactionConfig_Target() {
}

func (m *RedactImageRequest_ImageRedactionConfig) GetTarget() isRedactImageRequest_ImageRedactionConfig_Target {
	if m != nil {
		return m.Target
	}
	return nil
}

func (m *RedactImageRequest_ImageRedactionConfig) GetInfoType() *InfoType {
	if x, ok := m.GetTarget().(*RedactImageRequest_ImageRedactionConfig_InfoType); ok {
		return x.InfoType
	}
	return nil
}

func (m *RedactImageRequest_ImageRedactionConfig) GetRedactAllText() bool {
	if x, ok := m.GetTarget().(*RedactImageRequest_ImageRedactionConfig_RedactAllText); ok {
		return x.RedactAllText
	}
	return false
}

func (m *RedactImageRequest_ImageRedactionConfig) GetRedactionColor() *Color {
	if m != nil {
		return m.RedactionColor
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*RedactImageRequest_ImageRedactionConfig) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*RedactImageRequest_ImageRedactionConfig_InfoType)(nil),
		(*RedactImageRequest_ImageRedactionConfig_RedactAllText)(nil),
	}
}

// Represents a color in the RGB color space.
type Color struct {
	// The amount of red in the color as a value in the interval [0, 1].
	Red float32 `protobuf:"fixed32,1,opt,name=red,proto3" json:"red,omitempty"`
	// The amount of green in the color as a value in the interval [0, 1].
	Green float32 `protobuf:"fixed32,2,opt,name=green,proto3" json:"green,omitempty"`
	// The amount of blue in the color as a value in the interval [0, 1].
	Blue                 float32  `protobuf:"fixed32,3,opt,name=blue,proto3" json:"blue,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Color) Reset()         { *m = Color{} }
func (m *Color) String() string { return proto.CompactTextString(m) }
func (*Color) ProtoMessage()    {}
func (*Color) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{19}
}

func (m *Color) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Color.Unmarshal(m, b)
}
func (m *Color) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Color.Marshal(b, m, deterministic)
}
func (m *Color) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Color.Merge(m, src)
}
func (m *Color) XXX_Size() int {
	return xxx_messageInfo_Color.Size(m)
}
func (m *Color) XXX_DiscardUnknown() {
	xxx_messageInfo_Color.DiscardUnknown(m)
}

var xxx_messageInfo_Color proto.InternalMessageInfo

func (m *Color) GetRed() float32 {
	if m != nil {
		return m.Red
	}
	return 0
}

func (m *Color) GetGreen() float32 {
	if m != nil {
		return m.Green
	}
	return 0
}

func (m *Color) GetBlue() float32 {
	if m != nil {
		return m.Blue
	}
	return 0
}

// Results of redacting an image.
type RedactImageResponse struct {
	// The redacted image. The type will be the same as the original image.
	RedactedImage []byte `protobuf:"bytes,1,opt,name=redacted_image,json=redactedImage,proto3" json:"redacted_image,omitempty"`
	// If an image was being inspected and the InspectConfig's include_quote was
	// set to true, then this field will include all text, if any, that was found
	// in the image.
	ExtractedText string `protobuf:"bytes,2,opt,name=extracted_text,json=extractedText,proto3" json:"extracted_text,omitempty"`
	// The findings. Populated when include_findings in the request is true.
	InspectResult        *InspectResult `protobuf:"bytes,3,opt,name=inspect_result,json=inspectResult,proto3" json:"inspect_result,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *RedactImageResponse) Reset()         { *m = RedactImageResponse{} }
func (m *RedactImageResponse) String() string { return proto.CompactTextString(m) }
func (*RedactImageResponse) ProtoMessage()    {}
func (*RedactImageResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{20}
}

func (m *RedactImageResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedactImageResponse.Unmarshal(m, b)
}
func (m *RedactImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedactImageResponse.Marshal(b, m, deterministic)
}
func (m *RedactImageResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedactImageResponse.Merge(m, src)
}
func (m *RedactImageResponse) XXX_Size() int {
	return xxx_messageInfo_RedactImageResponse.Size(m)
}
func (m *RedactImageResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_RedactImageResponse.DiscardUnknown(m)
}

var xxx_messageInfo_RedactImageResponse proto.InternalMessageInfo

func (m *RedactImageResponse) GetRedactedImage() []byte {
	if m != nil {
		return m.RedactedImage
	}
	return nil
}

func (m *RedactImageResponse) GetExtractedText() string {
	if m != nil {
		return m.ExtractedText
	}
	return ""
}

func (m *RedactImageResponse) GetInspectResult() *InspectResult {
	if m != nil {
		return m.InspectResult
	}
	return nil
}

// Request to de-identify a list of items.
type DeidentifyContentRequest struct {
	// The parent resource name, for example projects/my-project-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Configuration for the de-identification of the content item.
	// Items specified here will override the template referenced by the
	// deidentify_template_name argument.
	DeidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=deidentify_config,json=deidentifyConfig,proto3" json:"deidentify_config,omitempty"`
	// Configuration for the inspector.
	// Items specified here will override the template referenced by the
	// inspect_template_name argument.
	InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
	// The item to de-identify. Will be treated as text.
	Item *ContentItem `protobuf:"bytes,4,opt,name=item,proto3" json:"item,omitempty"`
	// Optional template to use. Any configuration directly specified in
	// inspect_config will override those set in the template. Singular fields
	// that are set in this request will replace their corresponding fields in the
	// template. Repeated fields are appended. Singular sub-messages and groups
	// are recursively merged.
	InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"`
	// Optional template to use. Any configuration directly specified in
	// deidentify_config will override those set in the template. Singular fields
	// that are set in this request will replace their corresponding fields in the
	// template. Repeated fields are appended. Singular sub-messages and groups
	// are recursively merged.
	DeidentifyTemplateName string   `protobuf:"bytes,6,opt,name=deidentify_template_name,json=deidentifyTemplateName,proto3" json:"deidentify_template_name,omitempty"`
	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
	XXX_unrecognized       []byte   `json:"-"`
	XXX_sizecache          int32    `json:"-"`
}

func (m *DeidentifyContentRequest) Reset()         { *m = DeidentifyContentRequest{} }
func (m *DeidentifyContentRequest) String() string { return proto.CompactTextString(m) }
func (*DeidentifyContentRequest) ProtoMessage()    {}
func (*DeidentifyContentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{21}
}

func (m *DeidentifyContentRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeidentifyContentRequest.Unmarshal(m, b)
}
func (m *DeidentifyContentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeidentifyContentRequest.Marshal(b, m, deterministic)
}
func (m *DeidentifyContentRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeidentifyContentRequest.Merge(m, src)
}
func (m *DeidentifyContentRequest) XXX_Size() int {
	return xxx_messageInfo_DeidentifyContentRequest.Size(m)
}
func (m *DeidentifyContentRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeidentifyContentRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeidentifyContentRequest proto.InternalMessageInfo

func (m *DeidentifyContentRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *DeidentifyContentRequest) GetDeidentifyConfig() *DeidentifyConfig {
	if m != nil {
		return m.DeidentifyConfig
	}
	return nil
}

func (m *DeidentifyContentRequest) GetInspectConfig() *InspectConfig {
	if m != nil {
		return m.InspectConfig
	}
	return nil
}

func (m *DeidentifyContentRequest) GetItem() *ContentItem {
	if m != nil {
		return m.Item
	}
	return nil
}

func (m *DeidentifyContentRequest) GetInspectTemplateName() string {
	if m != nil {
		return m.InspectTemplateName
	}
	return ""
}

func (m *DeidentifyContentRequest) GetDeidentifyTemplateName() string {
	if m != nil {
		return m.DeidentifyTemplateName
	}
	return ""
}

// Results of de-identifying a ContentItem.
type DeidentifyContentResponse struct {
	// The de-identified item.
	Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	// An overview of the changes that were made on the `item`.
	Overview             *TransformationOverview `protobuf:"bytes,2,opt,name=overview,proto3" json:"overview,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *DeidentifyContentResponse) Reset()         { *m = DeidentifyContentResponse{} }
func (m *DeidentifyContentResponse) String() string { return proto.CompactTextString(m) }
func (*DeidentifyContentResponse) ProtoMessage()    {}
func (*DeidentifyContentResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{22}
}

func (m *DeidentifyContentResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeidentifyContentResponse.Unmarshal(m, b)
}
func (m *DeidentifyContentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeidentifyContentResponse.Marshal(b, m, deterministic)
}
func (m *DeidentifyContentResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeidentifyContentResponse.Merge(m, src)
}
func (m *DeidentifyContentResponse) XXX_Size() int {
	return xxx_messageInfo_DeidentifyContentResponse.Size(m)
}
func (m *DeidentifyContentResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DeidentifyContentResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DeidentifyContentResponse proto.InternalMessageInfo

func (m *DeidentifyContentResponse) GetItem() *ContentItem {
	if m != nil {
		return m.Item
	}
	return nil
}

func (m *DeidentifyContentResponse) GetOverview() *TransformationOverview {
	if m != nil {
		return m.Overview
	}
	return nil
}

// Request to re-identify an item.
type ReidentifyContentRequest struct {
	// The parent resource name.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Configuration for the re-identification of the content item.
	// This field shares the same proto message type that is used for
	// de-identification, however its usage here is for the reversal of the
	// previous de-identification. Re-identification is performed by examining
	// the transformations used to de-identify the items and executing the
	// reverse. This requires that only reversible transformations
	// be provided here. The reversible transformations are:
	//
	//  - `CryptoReplaceFfxFpeConfig`
	ReidentifyConfig *DeidentifyConfig `protobuf:"bytes,2,opt,name=reidentify_config,json=reidentifyConfig,proto3" json:"reidentify_config,omitempty"`
	// Configuration for the inspector.
	InspectConfig *InspectConfig `protobuf:"bytes,3,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
	// The item to re-identify. Will be treated as text.
	Item *ContentItem `protobuf:"bytes,4,opt,name=item,proto3" json:"item,omitempty"`
	// Optional template to use. Any configuration directly specified in
	// `inspect_config` will override those set in the template. Singular fields
	// that are set in this request will replace their corresponding fields in the
	// template. Repeated fields are appended. Singular sub-messages and groups
	// are recursively merged.
	InspectTemplateName string `protobuf:"bytes,5,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"`
	// Optional template to use. References an instance of `DeidentifyTemplate`.
	// Any configuration directly specified in `reidentify_config` or
	// `inspect_config` will override those set in the template. Singular fields
	// that are set in this request will replace their corresponding fields in the
	// template. Repeated fields are appended. Singular sub-messages and groups
	// are recursively merged.
	ReidentifyTemplateName string   `protobuf:"bytes,6,opt,name=reidentify_template_name,json=reidentifyTemplateName,proto3" json:"reidentify_template_name,omitempty"`
	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
	XXX_unrecognized       []byte   `json:"-"`
	XXX_sizecache          int32    `json:"-"`
}

func (m *ReidentifyContentRequest) Reset()         { *m = ReidentifyContentRequest{} }
func (m *ReidentifyContentRequest) String() string { return proto.CompactTextString(m) }
func (*ReidentifyContentRequest) ProtoMessage()    {}
func (*ReidentifyContentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{23}
}

func (m *ReidentifyContentRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReidentifyContentRequest.Unmarshal(m, b)
}
func (m *ReidentifyContentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReidentifyContentRequest.Marshal(b, m, deterministic)
}
func (m *ReidentifyContentRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReidentifyContentRequest.Merge(m, src)
}
func (m *ReidentifyContentRequest) XXX_Size() int {
	return xxx_messageInfo_ReidentifyContentRequest.Size(m)
}
func (m *ReidentifyContentRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ReidentifyContentRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ReidentifyContentRequest proto.InternalMessageInfo

func (m *ReidentifyContentRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *ReidentifyContentRequest) GetReidentifyConfig() *DeidentifyConfig {
	if m != nil {
		return m.ReidentifyConfig
	}
	return nil
}

func (m *ReidentifyContentRequest) GetInspectConfig() *InspectConfig {
	if m != nil {
		return m.InspectConfig
	}
	return nil
}

func (m *ReidentifyContentRequest) GetItem() *ContentItem {
	if m != nil {
		return m.Item
	}
	return nil
}

func (m *ReidentifyContentRequest) GetInspectTemplateName() string {
	if m != nil {
		return m.InspectTemplateName
	}
	return ""
}

func (m *ReidentifyContentRequest) GetReidentifyTemplateName() string {
	if m != nil {
		return m.ReidentifyTemplateName
	}
	return ""
}

// Results of re-identifying a item.
type ReidentifyContentResponse struct {
	// The re-identified item.
	Item *ContentItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"`
	// An overview of the changes that were made to the `item`.
	Overview             *TransformationOverview `protobuf:"bytes,2,opt,name=overview,proto3" json:"overview,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *ReidentifyContentResponse) Reset()         { *m = ReidentifyContentResponse{} }
func (m *ReidentifyContentResponse) String() string { return proto.CompactTextString(m) }
func (*ReidentifyContentResponse) ProtoMessage()    {}
func (*ReidentifyContentResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{24}
}

func (m *ReidentifyContentResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReidentifyContentResponse.Unmarshal(m, b)
}
func (m *ReidentifyContentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReidentifyContentResponse.Marshal(b, m, deterministic)
}
func (m *ReidentifyContentResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReidentifyContentResponse.Merge(m, src)
}
func (m *ReidentifyContentResponse) XXX_Size() int {
	return xxx_messageInfo_ReidentifyContentResponse.Size(m)
}
func (m *ReidentifyContentResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ReidentifyContentResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ReidentifyContentResponse proto.InternalMessageInfo

func (m *ReidentifyContentResponse) GetItem() *ContentItem {
	if m != nil {
		return m.Item
	}
	return nil
}

func (m *ReidentifyContentResponse) GetOverview() *TransformationOverview {
	if m != nil {
		return m.Overview
	}
	return nil
}

// Request to search for potentially sensitive info in a ContentItem.
type InspectContentRequest struct {
	// The parent resource name, for example projects/my-project-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Configuration for the inspector. What specified here will override
	// the template referenced by the inspect_template_name argument.
	InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
	// The item to inspect.
	Item *ContentItem `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"`
	// Optional template to use. Any configuration directly specified in
	// inspect_config will override those set in the template. Singular fields
	// that are set in this request will replace their corresponding fields in the
	// template. Repeated fields are appended. Singular sub-messages and groups
	// are recursively merged.
	InspectTemplateName  string   `protobuf:"bytes,4,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *InspectContentRequest) Reset()         { *m = InspectContentRequest{} }
func (m *InspectContentRequest) String() string { return proto.CompactTextString(m) }
func (*InspectContentRequest) ProtoMessage()    {}
func (*InspectContentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{25}
}

func (m *InspectContentRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectContentRequest.Unmarshal(m, b)
}
func (m *InspectContentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectContentRequest.Marshal(b, m, deterministic)
}
func (m *InspectContentRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectContentRequest.Merge(m, src)
}
func (m *InspectContentRequest) XXX_Size() int {
	return xxx_messageInfo_InspectContentRequest.Size(m)
}
func (m *InspectContentRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectContentRequest.DiscardUnknown(m)
}

var xxx_messageInfo_InspectContentRequest proto.InternalMessageInfo

func (m *InspectContentRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *InspectContentRequest) GetInspectConfig() *InspectConfig {
	if m != nil {
		return m.InspectConfig
	}
	return nil
}

func (m *InspectContentRequest) GetItem() *ContentItem {
	if m != nil {
		return m.Item
	}
	return nil
}

func (m *InspectContentRequest) GetInspectTemplateName() string {
	if m != nil {
		return m.InspectTemplateName
	}
	return ""
}

// Results of inspecting an item.
type InspectContentResponse struct {
	// The findings.
	Result               *InspectResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *InspectContentResponse) Reset()         { *m = InspectContentResponse{} }
func (m *InspectContentResponse) String() string { return proto.CompactTextString(m) }
func (*InspectContentResponse) ProtoMessage()    {}
func (*InspectContentResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{26}
}

func (m *InspectContentResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectContentResponse.Unmarshal(m, b)
}
func (m *InspectContentResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectContentResponse.Marshal(b, m, deterministic)
}
func (m *InspectContentResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectContentResponse.Merge(m, src)
}
func (m *InspectContentResponse) XXX_Size() int {
	return xxx_messageInfo_InspectContentResponse.Size(m)
}
func (m *InspectContentResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectContentResponse.DiscardUnknown(m)
}

var xxx_messageInfo_InspectContentResponse proto.InternalMessageInfo

func (m *InspectContentResponse) GetResult() *InspectResult {
	if m != nil {
		return m.Result
	}
	return nil
}

// Cloud repository for storing output.
type OutputStorageConfig struct {
	// Types that are valid to be assigned to Type:
	//	*OutputStorageConfig_Table
	Type isOutputStorageConfig_Type `protobuf_oneof:"type"`
	// Schema used for writing the findings for Inspect jobs. This field is only
	// used for Inspect and must be unspecified for Risk jobs. Columns are derived
	// from the `Finding` object. If appending to an existing table, any columns
	// from the predefined schema that are missing will be added. No columns in
	// the existing table will be deleted.
	//
	// If unspecified, then all available columns will be used for a new table or
	// an (existing) table with no schema, and no changes will be made to an
	// existing table that has a schema.
	OutputSchema         OutputStorageConfig_OutputSchema `protobuf:"varint,3,opt,name=output_schema,json=outputSchema,proto3,enum=google.privacy.dlp.v2.OutputStorageConfig_OutputSchema" json:"output_schema,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
	XXX_unrecognized     []byte                           `json:"-"`
	XXX_sizecache        int32                            `json:"-"`
}

func (m *OutputStorageConfig) Reset()         { *m = OutputStorageConfig{} }
func (m *OutputStorageConfig) String() string { return proto.CompactTextString(m) }
func (*OutputStorageConfig) ProtoMessage()    {}
func (*OutputStorageConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{27}
}

func (m *OutputStorageConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_OutputStorageConfig.Unmarshal(m, b)
}
func (m *OutputStorageConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_OutputStorageConfig.Marshal(b, m, deterministic)
}
func (m *OutputStorageConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_OutputStorageConfig.Merge(m, src)
}
func (m *OutputStorageConfig) XXX_Size() int {
	return xxx_messageInfo_OutputStorageConfig.Size(m)
}
func (m *OutputStorageConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_OutputStorageConfig.DiscardUnknown(m)
}

var xxx_messageInfo_OutputStorageConfig proto.InternalMessageInfo

type isOutputStorageConfig_Type interface {
	isOutputStorageConfig_Type()
}

type OutputStorageConfig_Table struct {
	Table *BigQueryTable `protobuf:"bytes,1,opt,name=table,proto3,oneof"`
}

func (*OutputStorageConfig_Table) isOutputStorageConfig_Type() {}

func (m *OutputStorageConfig) GetType() isOutputStorageConfig_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *OutputStorageConfig) GetTable() *BigQueryTable {
	if x, ok := m.GetType().(*OutputStorageConfig_Table); ok {
		return x.Table
	}
	return nil
}

func (m *OutputStorageConfig) GetOutputSchema() OutputStorageConfig_OutputSchema {
	if m != nil {
		return m.OutputSchema
	}
	return OutputStorageConfig_OUTPUT_SCHEMA_UNSPECIFIED
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*OutputStorageConfig) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*OutputStorageConfig_Table)(nil),
	}
}

// Statistics regarding a specific InfoType.
type InfoTypeStats struct {
	// The type of finding this stat is for.
	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"`
	// Number of findings for this infoType.
	Count                int64    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *InfoTypeStats) Reset()         { *m = InfoTypeStats{} }
func (m *InfoTypeStats) String() string { return proto.CompactTextString(m) }
func (*InfoTypeStats) ProtoMessage()    {}
func (*InfoTypeStats) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{28}
}

func (m *InfoTypeStats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InfoTypeStats.Unmarshal(m, b)
}
func (m *InfoTypeStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InfoTypeStats.Marshal(b, m, deterministic)
}
func (m *InfoTypeStats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InfoTypeStats.Merge(m, src)
}
func (m *InfoTypeStats) XXX_Size() int {
	return xxx_messageInfo_InfoTypeStats.Size(m)
}
func (m *InfoTypeStats) XXX_DiscardUnknown() {
	xxx_messageInfo_InfoTypeStats.DiscardUnknown(m)
}

var xxx_messageInfo_InfoTypeStats proto.InternalMessageInfo

func (m *InfoTypeStats) GetInfoType() *InfoType {
	if m != nil {
		return m.InfoType
	}
	return nil
}

func (m *InfoTypeStats) GetCount() int64 {
	if m != nil {
		return m.Count
	}
	return 0
}

// The results of an inspect DataSource job.
type InspectDataSourceDetails struct {
	// The configuration used for this job.
	RequestedOptions *InspectDataSourceDetails_RequestedOptions `protobuf:"bytes,2,opt,name=requested_options,json=requestedOptions,proto3" json:"requested_options,omitempty"`
	// A summary of the outcome of this inspect job.
	Result               *InspectDataSourceDetails_Result `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
	XXX_unrecognized     []byte                           `json:"-"`
	XXX_sizecache        int32                            `json:"-"`
}

func (m *InspectDataSourceDetails) Reset()         { *m = InspectDataSourceDetails{} }
func (m *InspectDataSourceDetails) String() string { return proto.CompactTextString(m) }
func (*InspectDataSourceDetails) ProtoMessage()    {}
func (*InspectDataSourceDetails) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{29}
}

func (m *InspectDataSourceDetails) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectDataSourceDetails.Unmarshal(m, b)
}
func (m *InspectDataSourceDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectDataSourceDetails.Marshal(b, m, deterministic)
}
func (m *InspectDataSourceDetails) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectDataSourceDetails.Merge(m, src)
}
func (m *InspectDataSourceDetails) XXX_Size() int {
	return xxx_messageInfo_InspectDataSourceDetails.Size(m)
}
func (m *InspectDataSourceDetails) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectDataSourceDetails.DiscardUnknown(m)
}

var xxx_messageInfo_InspectDataSourceDetails proto.InternalMessageInfo

func (m *InspectDataSourceDetails) GetRequestedOptions() *InspectDataSourceDetails_RequestedOptions {
	if m != nil {
		return m.RequestedOptions
	}
	return nil
}

func (m *InspectDataSourceDetails) GetResult() *InspectDataSourceDetails_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

type InspectDataSourceDetails_RequestedOptions struct {
	// If run with an InspectTemplate, a snapshot of its state at the time of
	// this run.
	SnapshotInspectTemplate *InspectTemplate  `protobuf:"bytes,1,opt,name=snapshot_inspect_template,json=snapshotInspectTemplate,proto3" json:"snapshot_inspect_template,omitempty"`
	JobConfig               *InspectJobConfig `protobuf:"bytes,3,opt,name=job_config,json=jobConfig,proto3" json:"job_config,omitempty"`
	XXX_NoUnkeyedLiteral    struct{}          `json:"-"`
	XXX_unrecognized        []byte            `json:"-"`
	XXX_sizecache           int32             `json:"-"`
}

func (m *InspectDataSourceDetails_RequestedOptions) Reset() {
	*m = InspectDataSourceDetails_RequestedOptions{}
}
func (m *InspectDataSourceDetails_RequestedOptions) String() string { return proto.CompactTextString(m) }
func (*InspectDataSourceDetails_RequestedOptions) ProtoMessage()    {}
func (*InspectDataSourceDetails_RequestedOptions) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{29, 0}
}

func (m *InspectDataSourceDetails_RequestedOptions) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectDataSourceDetails_RequestedOptions.Unmarshal(m, b)
}
func (m *InspectDataSourceDetails_RequestedOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectDataSourceDetails_RequestedOptions.Marshal(b, m, deterministic)
}
func (m *InspectDataSourceDetails_RequestedOptions) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectDataSourceDetails_RequestedOptions.Merge(m, src)
}
func (m *InspectDataSourceDetails_RequestedOptions) XXX_Size() int {
	return xxx_messageInfo_InspectDataSourceDetails_RequestedOptions.Size(m)
}
func (m *InspectDataSourceDetails_RequestedOptions) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectDataSourceDetails_RequestedOptions.DiscardUnknown(m)
}

var xxx_messageInfo_InspectDataSourceDetails_RequestedOptions proto.InternalMessageInfo

func (m *InspectDataSourceDetails_RequestedOptions) GetSnapshotInspectTemplate() *InspectTemplate {
	if m != nil {
		return m.SnapshotInspectTemplate
	}
	return nil
}

func (m *InspectDataSourceDetails_RequestedOptions) GetJobConfig() *InspectJobConfig {
	if m != nil {
		return m.JobConfig
	}
	return nil
}

// All result fields mentioned below are updated while the job is processing.
type InspectDataSourceDetails_Result struct {
	// Total size in bytes that were processed.
	ProcessedBytes int64 `protobuf:"varint,1,opt,name=processed_bytes,json=processedBytes,proto3" json:"processed_bytes,omitempty"`
	// Estimate of the number of bytes to process.
	TotalEstimatedBytes int64 `protobuf:"varint,2,opt,name=total_estimated_bytes,json=totalEstimatedBytes,proto3" json:"total_estimated_bytes,omitempty"`
	// Statistics of how many instances of each info type were found during
	// inspect job.
	InfoTypeStats        []*InfoTypeStats `protobuf:"bytes,3,rep,name=info_type_stats,json=infoTypeStats,proto3" json:"info_type_stats,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *InspectDataSourceDetails_Result) Reset()         { *m = InspectDataSourceDetails_Result{} }
func (m *InspectDataSourceDetails_Result) String() string { return proto.CompactTextString(m) }
func (*InspectDataSourceDetails_Result) ProtoMessage()    {}
func (*InspectDataSourceDetails_Result) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{29, 1}
}

func (m *InspectDataSourceDetails_Result) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectDataSourceDetails_Result.Unmarshal(m, b)
}
func (m *InspectDataSourceDetails_Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectDataSourceDetails_Result.Marshal(b, m, deterministic)
}
func (m *InspectDataSourceDetails_Result) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectDataSourceDetails_Result.Merge(m, src)
}
func (m *InspectDataSourceDetails_Result) XXX_Size() int {
	return xxx_messageInfo_InspectDataSourceDetails_Result.Size(m)
}
func (m *InspectDataSourceDetails_Result) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectDataSourceDetails_Result.DiscardUnknown(m)
}

var xxx_messageInfo_InspectDataSourceDetails_Result proto.InternalMessageInfo

func (m *InspectDataSourceDetails_Result) GetProcessedBytes() int64 {
	if m != nil {
		return m.ProcessedBytes
	}
	return 0
}

func (m *InspectDataSourceDetails_Result) GetTotalEstimatedBytes() int64 {
	if m != nil {
		return m.TotalEstimatedBytes
	}
	return 0
}

func (m *InspectDataSourceDetails_Result) GetInfoTypeStats() []*InfoTypeStats {
	if m != nil {
		return m.InfoTypeStats
	}
	return nil
}

// InfoType description.
type InfoTypeDescription struct {
	// Internal name of the infoType.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Human readable form of the infoType name.
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Which parts of the API supports this InfoType.
	SupportedBy []InfoTypeSupportedBy `protobuf:"varint,3,rep,packed,name=supported_by,json=supportedBy,proto3,enum=google.privacy.dlp.v2.InfoTypeSupportedBy" json:"supported_by,omitempty"`
	// Description of the infotype. Translated when language is provided in the
	// request.
	Description          string   `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *InfoTypeDescription) Reset()         { *m = InfoTypeDescription{} }
func (m *InfoTypeDescription) String() string { return proto.CompactTextString(m) }
func (*InfoTypeDescription) ProtoMessage()    {}
func (*InfoTypeDescription) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{30}
}

func (m *InfoTypeDescription) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InfoTypeDescription.Unmarshal(m, b)
}
func (m *InfoTypeDescription) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InfoTypeDescription.Marshal(b, m, deterministic)
}
func (m *InfoTypeDescription) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InfoTypeDescription.Merge(m, src)
}
func (m *InfoTypeDescription) XXX_Size() int {
	return xxx_messageInfo_InfoTypeDescription.Size(m)
}
func (m *InfoTypeDescription) XXX_DiscardUnknown() {
	xxx_messageInfo_InfoTypeDescription.DiscardUnknown(m)
}

var xxx_messageInfo_InfoTypeDescription proto.InternalMessageInfo

func (m *InfoTypeDescription) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *InfoTypeDescription) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

func (m *InfoTypeDescription) GetSupportedBy() []InfoTypeSupportedBy {
	if m != nil {
		return m.SupportedBy
	}
	return nil
}

func (m *InfoTypeDescription) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

// Request for the list of infoTypes.
type ListInfoTypesRequest struct {
	// Optional BCP-47 language code for localized infoType friendly
	// names. If omitted, or if localized strings are not available,
	// en-US strings will be returned.
	LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"`
	// Optional filter to only return infoTypes supported by certain parts of the
	// API. Defaults to supported_by=INSPECT.
	Filter               string   `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListInfoTypesRequest) Reset()         { *m = ListInfoTypesRequest{} }
func (m *ListInfoTypesRequest) String() string { return proto.CompactTextString(m) }
func (*ListInfoTypesRequest) ProtoMessage()    {}
func (*ListInfoTypesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{31}
}

func (m *ListInfoTypesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListInfoTypesRequest.Unmarshal(m, b)
}
func (m *ListInfoTypesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListInfoTypesRequest.Marshal(b, m, deterministic)
}
func (m *ListInfoTypesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListInfoTypesRequest.Merge(m, src)
}
func (m *ListInfoTypesRequest) XXX_Size() int {
	return xxx_messageInfo_ListInfoTypesRequest.Size(m)
}
func (m *ListInfoTypesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListInfoTypesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListInfoTypesRequest proto.InternalMessageInfo

func (m *ListInfoTypesRequest) GetLanguageCode() string {
	if m != nil {
		return m.LanguageCode
	}
	return ""
}

func (m *ListInfoTypesRequest) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

// Response to the ListInfoTypes request.
type ListInfoTypesResponse struct {
	// Set of sensitive infoTypes.
	InfoTypes            []*InfoTypeDescription `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *ListInfoTypesResponse) Reset()         { *m = ListInfoTypesResponse{} }
func (m *ListInfoTypesResponse) String() string { return proto.CompactTextString(m) }
func (*ListInfoTypesResponse) ProtoMessage()    {}
func (*ListInfoTypesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{32}
}

func (m *ListInfoTypesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListInfoTypesResponse.Unmarshal(m, b)
}
func (m *ListInfoTypesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListInfoTypesResponse.Marshal(b, m, deterministic)
}
func (m *ListInfoTypesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListInfoTypesResponse.Merge(m, src)
}
func (m *ListInfoTypesResponse) XXX_Size() int {
	return xxx_messageInfo_ListInfoTypesResponse.Size(m)
}
func (m *ListInfoTypesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListInfoTypesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListInfoTypesResponse proto.InternalMessageInfo

func (m *ListInfoTypesResponse) GetInfoTypes() []*InfoTypeDescription {
	if m != nil {
		return m.InfoTypes
	}
	return nil
}

// Configuration for a risk analysis job. See
// https://cloud.google.com/dlp/docs/concepts-risk-analysis to learn more.
type RiskAnalysisJobConfig struct {
	// Privacy metric to compute.
	PrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=privacy_metric,json=privacyMetric,proto3" json:"privacy_metric,omitempty"`
	// Input dataset to compute metrics over.
	SourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=source_table,json=sourceTable,proto3" json:"source_table,omitempty"`
	// Actions to execute at the completion of the job. Are executed in the order
	// provided.
	Actions              []*Action `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *RiskAnalysisJobConfig) Reset()         { *m = RiskAnalysisJobConfig{} }
func (m *RiskAnalysisJobConfig) String() string { return proto.CompactTextString(m) }
func (*RiskAnalysisJobConfig) ProtoMessage()    {}
func (*RiskAnalysisJobConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{33}
}

func (m *RiskAnalysisJobConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RiskAnalysisJobConfig.Unmarshal(m, b)
}
func (m *RiskAnalysisJobConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RiskAnalysisJobConfig.Marshal(b, m, deterministic)
}
func (m *RiskAnalysisJobConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RiskAnalysisJobConfig.Merge(m, src)
}
func (m *RiskAnalysisJobConfig) XXX_Size() int {
	return xxx_messageInfo_RiskAnalysisJobConfig.Size(m)
}
func (m *RiskAnalysisJobConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_RiskAnalysisJobConfig.DiscardUnknown(m)
}

var xxx_messageInfo_RiskAnalysisJobConfig proto.InternalMessageInfo

func (m *RiskAnalysisJobConfig) GetPrivacyMetric() *PrivacyMetric {
	if m != nil {
		return m.PrivacyMetric
	}
	return nil
}

func (m *RiskAnalysisJobConfig) GetSourceTable() *BigQueryTable {
	if m != nil {
		return m.SourceTable
	}
	return nil
}

func (m *RiskAnalysisJobConfig) GetActions() []*Action {
	if m != nil {
		return m.Actions
	}
	return nil
}

// A column with a semantic tag attached.
type QuasiId struct {
	// Identifies the column. [required]
	Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
	// Semantic tag that identifies what a column contains, to determine which
	// statistical model to use to estimate the reidentifiability of each
	// value. [required]
	//
	// Types that are valid to be assigned to Tag:
	//	*QuasiId_InfoType
	//	*QuasiId_CustomTag
	//	*QuasiId_Inferred
	Tag                  isQuasiId_Tag `protobuf_oneof:"tag"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *QuasiId) Reset()         { *m = QuasiId{} }
func (m *QuasiId) String() string { return proto.CompactTextString(m) }
func (*QuasiId) ProtoMessage()    {}
func (*QuasiId) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{34}
}

func (m *QuasiId) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QuasiId.Unmarshal(m, b)
}
func (m *QuasiId) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QuasiId.Marshal(b, m, deterministic)
}
func (m *QuasiId) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QuasiId.Merge(m, src)
}
func (m *QuasiId) XXX_Size() int {
	return xxx_messageInfo_QuasiId.Size(m)
}
func (m *QuasiId) XXX_DiscardUnknown() {
	xxx_messageInfo_QuasiId.DiscardUnknown(m)
}

var xxx_messageInfo_QuasiId proto.InternalMessageInfo

func (m *QuasiId) GetField() *FieldId {
	if m != nil {
		return m.Field
	}
	return nil
}

type isQuasiId_Tag interface {
	isQuasiId_Tag()
}

type QuasiId_InfoType struct {
	InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3,oneof"`
}

type QuasiId_CustomTag struct {
	CustomTag string `protobuf:"bytes,3,opt,name=custom_tag,json=customTag,proto3,oneof"`
}

type QuasiId_Inferred struct {
	Inferred *empty.Empty `protobuf:"bytes,4,opt,name=inferred,proto3,oneof"`
}

func (*QuasiId_InfoType) isQuasiId_Tag() {}

func (*QuasiId_CustomTag) isQuasiId_Tag() {}

func (*QuasiId_Inferred) isQuasiId_Tag() {}

func (m *QuasiId) GetTag() isQuasiId_Tag {
	if m != nil {
		return m.Tag
	}
	return nil
}

func (m *QuasiId) GetInfoType() *InfoType {
	if x, ok := m.GetTag().(*QuasiId_InfoType); ok {
		return x.InfoType
	}
	return nil
}

func (m *QuasiId) GetCustomTag() string {
	if x, ok := m.GetTag().(*QuasiId_CustomTag); ok {
		return x.CustomTag
	}
	return ""
}

func (m *QuasiId) GetInferred() *empty.Empty {
	if x, ok := m.GetTag().(*QuasiId_Inferred); ok {
		return x.Inferred
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*QuasiId) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*QuasiId_InfoType)(nil),
		(*QuasiId_CustomTag)(nil),
		(*QuasiId_Inferred)(nil),
	}
}

// An auxiliary table containing statistical information on the relative
// frequency of different quasi-identifiers values. It has one or several
// quasi-identifiers columns, and one column that indicates the relative
// frequency of each quasi-identifier tuple.
// If a tuple is present in the data but not in the auxiliary table, the
// corresponding relative frequency is assumed to be zero (and thus, the
// tuple is highly reidentifiable).
type StatisticalTable struct {
	// Auxiliary table location. [required]
	Table *BigQueryTable `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"`
	// Quasi-identifier columns. [required]
	QuasiIds []*StatisticalTable_QuasiIdentifierField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
	// The relative frequency column must contain a floating-point number
	// between 0 and 1 (inclusive). Null values are assumed to be zero.
	// [required]
	RelativeFrequency    *FieldId `protobuf:"bytes,2,opt,name=relative_frequency,json=relativeFrequency,proto3" json:"relative_frequency,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StatisticalTable) Reset()         { *m = StatisticalTable{} }
func (m *StatisticalTable) String() string { return proto.CompactTextString(m) }
func (*StatisticalTable) ProtoMessage()    {}
func (*StatisticalTable) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{35}
}

func (m *StatisticalTable) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatisticalTable.Unmarshal(m, b)
}
func (m *StatisticalTable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatisticalTable.Marshal(b, m, deterministic)
}
func (m *StatisticalTable) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatisticalTable.Merge(m, src)
}
func (m *StatisticalTable) XXX_Size() int {
	return xxx_messageInfo_StatisticalTable.Size(m)
}
func (m *StatisticalTable) XXX_DiscardUnknown() {
	xxx_messageInfo_StatisticalTable.DiscardUnknown(m)
}

var xxx_messageInfo_StatisticalTable proto.InternalMessageInfo

func (m *StatisticalTable) GetTable() *BigQueryTable {
	if m != nil {
		return m.Table
	}
	return nil
}

func (m *StatisticalTable) GetQuasiIds() []*StatisticalTable_QuasiIdentifierField {
	if m != nil {
		return m.QuasiIds
	}
	return nil
}

func (m *StatisticalTable) GetRelativeFrequency() *FieldId {
	if m != nil {
		return m.RelativeFrequency
	}
	return nil
}

// A quasi-identifier column has a custom_tag, used to know which column
// in the data corresponds to which column in the statistical model.
type StatisticalTable_QuasiIdentifierField struct {
	Field                *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
	CustomTag            string   `protobuf:"bytes,2,opt,name=custom_tag,json=customTag,proto3" json:"custom_tag,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StatisticalTable_QuasiIdentifierField) Reset()         { *m = StatisticalTable_QuasiIdentifierField{} }
func (m *StatisticalTable_QuasiIdentifierField) String() string { return proto.CompactTextString(m) }
func (*StatisticalTable_QuasiIdentifierField) ProtoMessage()    {}
func (*StatisticalTable_QuasiIdentifierField) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{35, 0}
}

func (m *StatisticalTable_QuasiIdentifierField) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StatisticalTable_QuasiIdentifierField.Unmarshal(m, b)
}
func (m *StatisticalTable_QuasiIdentifierField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StatisticalTable_QuasiIdentifierField.Marshal(b, m, deterministic)
}
func (m *StatisticalTable_QuasiIdentifierField) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StatisticalTable_QuasiIdentifierField.Merge(m, src)
}
func (m *StatisticalTable_QuasiIdentifierField) XXX_Size() int {
	return xxx_messageInfo_StatisticalTable_QuasiIdentifierField.Size(m)
}
func (m *StatisticalTable_QuasiIdentifierField) XXX_DiscardUnknown() {
	xxx_messageInfo_StatisticalTable_QuasiIdentifierField.DiscardUnknown(m)
}

var xxx_messageInfo_StatisticalTable_QuasiIdentifierField proto.InternalMessageInfo

func (m *StatisticalTable_QuasiIdentifierField) GetField() *FieldId {
	if m != nil {
		return m.Field
	}
	return nil
}

func (m *StatisticalTable_QuasiIdentifierField) GetCustomTag() string {
	if m != nil {
		return m.CustomTag
	}
	return ""
}

// Privacy metric to compute for reidentification risk analysis.
type PrivacyMetric struct {
	// Types that are valid to be assigned to Type:
	//	*PrivacyMetric_NumericalStatsConfig_
	//	*PrivacyMetric_CategoricalStatsConfig_
	//	*PrivacyMetric_KAnonymityConfig_
	//	*PrivacyMetric_LDiversityConfig_
	//	*PrivacyMetric_KMapEstimationConfig_
	//	*PrivacyMetric_DeltaPresenceEstimationConfig_
	Type                 isPrivacyMetric_Type `protobuf_oneof:"type"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *PrivacyMetric) Reset()         { *m = PrivacyMetric{} }
func (m *PrivacyMetric) String() string { return proto.CompactTextString(m) }
func (*PrivacyMetric) ProtoMessage()    {}
func (*PrivacyMetric) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36}
}

func (m *PrivacyMetric) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric.Unmarshal(m, b)
}
func (m *PrivacyMetric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric.Merge(m, src)
}
func (m *PrivacyMetric) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric.Size(m)
}
func (m *PrivacyMetric) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric proto.InternalMessageInfo

type isPrivacyMetric_Type interface {
	isPrivacyMetric_Type()
}

type PrivacyMetric_NumericalStatsConfig_ struct {
	NumericalStatsConfig *PrivacyMetric_NumericalStatsConfig `protobuf:"bytes,1,opt,name=numerical_stats_config,json=numericalStatsConfig,proto3,oneof"`
}

type PrivacyMetric_CategoricalStatsConfig_ struct {
	CategoricalStatsConfig *PrivacyMetric_CategoricalStatsConfig `protobuf:"bytes,2,opt,name=categorical_stats_config,json=categoricalStatsConfig,proto3,oneof"`
}

type PrivacyMetric_KAnonymityConfig_ struct {
	KAnonymityConfig *PrivacyMetric_KAnonymityConfig `protobuf:"bytes,3,opt,name=k_anonymity_config,json=kAnonymityConfig,proto3,oneof"`
}

type PrivacyMetric_LDiversityConfig_ struct {
	LDiversityConfig *PrivacyMetric_LDiversityConfig `protobuf:"bytes,4,opt,name=l_diversity_config,json=lDiversityConfig,proto3,oneof"`
}

type PrivacyMetric_KMapEstimationConfig_ struct {
	KMapEstimationConfig *PrivacyMetric_KMapEstimationConfig `protobuf:"bytes,5,opt,name=k_map_estimation_config,json=kMapEstimationConfig,proto3,oneof"`
}

type PrivacyMetric_DeltaPresenceEstimationConfig_ struct {
	DeltaPresenceEstimationConfig *PrivacyMetric_DeltaPresenceEstimationConfig `protobuf:"bytes,6,opt,name=delta_presence_estimation_config,json=deltaPresenceEstimationConfig,proto3,oneof"`
}

func (*PrivacyMetric_NumericalStatsConfig_) isPrivacyMetric_Type() {}

func (*PrivacyMetric_CategoricalStatsConfig_) isPrivacyMetric_Type() {}

func (*PrivacyMetric_KAnonymityConfig_) isPrivacyMetric_Type() {}

func (*PrivacyMetric_LDiversityConfig_) isPrivacyMetric_Type() {}

func (*PrivacyMetric_KMapEstimationConfig_) isPrivacyMetric_Type() {}

func (*PrivacyMetric_DeltaPresenceEstimationConfig_) isPrivacyMetric_Type() {}

func (m *PrivacyMetric) GetType() isPrivacyMetric_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *PrivacyMetric) GetNumericalStatsConfig() *PrivacyMetric_NumericalStatsConfig {
	if x, ok := m.GetType().(*PrivacyMetric_NumericalStatsConfig_); ok {
		return x.NumericalStatsConfig
	}
	return nil
}

func (m *PrivacyMetric) GetCategoricalStatsConfig() *PrivacyMetric_CategoricalStatsConfig {
	if x, ok := m.GetType().(*PrivacyMetric_CategoricalStatsConfig_); ok {
		return x.CategoricalStatsConfig
	}
	return nil
}

func (m *PrivacyMetric) GetKAnonymityConfig() *PrivacyMetric_KAnonymityConfig {
	if x, ok := m.GetType().(*PrivacyMetric_KAnonymityConfig_); ok {
		return x.KAnonymityConfig
	}
	return nil
}

func (m *PrivacyMetric) GetLDiversityConfig() *PrivacyMetric_LDiversityConfig {
	if x, ok := m.GetType().(*PrivacyMetric_LDiversityConfig_); ok {
		return x.LDiversityConfig
	}
	return nil
}

func (m *PrivacyMetric) GetKMapEstimationConfig() *PrivacyMetric_KMapEstimationConfig {
	if x, ok := m.GetType().(*PrivacyMetric_KMapEstimationConfig_); ok {
		return x.KMapEstimationConfig
	}
	return nil
}

func (m *PrivacyMetric) GetDeltaPresenceEstimationConfig() *PrivacyMetric_DeltaPresenceEstimationConfig {
	if x, ok := m.GetType().(*PrivacyMetric_DeltaPresenceEstimationConfig_); ok {
		return x.DeltaPresenceEstimationConfig
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*PrivacyMetric) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*PrivacyMetric_NumericalStatsConfig_)(nil),
		(*PrivacyMetric_CategoricalStatsConfig_)(nil),
		(*PrivacyMetric_KAnonymityConfig_)(nil),
		(*PrivacyMetric_LDiversityConfig_)(nil),
		(*PrivacyMetric_KMapEstimationConfig_)(nil),
		(*PrivacyMetric_DeltaPresenceEstimationConfig_)(nil),
	}
}

// Compute numerical stats over an individual column, including
// min, max, and quantiles.
type PrivacyMetric_NumericalStatsConfig struct {
	// Field to compute numerical stats on. Supported types are
	// integer, float, date, datetime, timestamp, time.
	Field                *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PrivacyMetric_NumericalStatsConfig) Reset()         { *m = PrivacyMetric_NumericalStatsConfig{} }
func (m *PrivacyMetric_NumericalStatsConfig) String() string { return proto.CompactTextString(m) }
func (*PrivacyMetric_NumericalStatsConfig) ProtoMessage()    {}
func (*PrivacyMetric_NumericalStatsConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36, 0}
}

func (m *PrivacyMetric_NumericalStatsConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric_NumericalStatsConfig.Unmarshal(m, b)
}
func (m *PrivacyMetric_NumericalStatsConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric_NumericalStatsConfig.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric_NumericalStatsConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric_NumericalStatsConfig.Merge(m, src)
}
func (m *PrivacyMetric_NumericalStatsConfig) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric_NumericalStatsConfig.Size(m)
}
func (m *PrivacyMetric_NumericalStatsConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric_NumericalStatsConfig.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric_NumericalStatsConfig proto.InternalMessageInfo

func (m *PrivacyMetric_NumericalStatsConfig) GetField() *FieldId {
	if m != nil {
		return m.Field
	}
	return nil
}

// Compute numerical stats over an individual column, including
// number of distinct values and value count distribution.
type PrivacyMetric_CategoricalStatsConfig struct {
	// Field to compute categorical stats on. All column types are
	// supported except for arrays and structs. However, it may be more
	// informative to use NumericalStats when the field type is supported,
	// depending on the data.
	Field                *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PrivacyMetric_CategoricalStatsConfig) Reset()         { *m = PrivacyMetric_CategoricalStatsConfig{} }
func (m *PrivacyMetric_CategoricalStatsConfig) String() string { return proto.CompactTextString(m) }
func (*PrivacyMetric_CategoricalStatsConfig) ProtoMessage()    {}
func (*PrivacyMetric_CategoricalStatsConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36, 1}
}

func (m *PrivacyMetric_CategoricalStatsConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric_CategoricalStatsConfig.Unmarshal(m, b)
}
func (m *PrivacyMetric_CategoricalStatsConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric_CategoricalStatsConfig.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric_CategoricalStatsConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric_CategoricalStatsConfig.Merge(m, src)
}
func (m *PrivacyMetric_CategoricalStatsConfig) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric_CategoricalStatsConfig.Size(m)
}
func (m *PrivacyMetric_CategoricalStatsConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric_CategoricalStatsConfig.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric_CategoricalStatsConfig proto.InternalMessageInfo

func (m *PrivacyMetric_CategoricalStatsConfig) GetField() *FieldId {
	if m != nil {
		return m.Field
	}
	return nil
}

// k-anonymity metric, used for analysis of reidentification risk.
type PrivacyMetric_KAnonymityConfig struct {
	// Set of fields to compute k-anonymity over. When multiple fields are
	// specified, they are considered a single composite key. Structs and
	// repeated data types are not supported; however, nested fields are
	// supported so long as they are not structs themselves or nested within
	// a repeated field.
	QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
	// Optional message indicating that multiple rows might be associated to a
	// single individual. If the same entity_id is associated to multiple
	// quasi-identifier tuples over distinct rows, we consider the entire
	// collection of tuples as the composite quasi-identifier. This collection
	// is a multiset: the order in which the different tuples appear in the
	// dataset is ignored, but their frequency is taken into account.
	//
	// Important note: a maximum of 1000 rows can be associated to a single
	// entity ID. If more rows are associated with the same entity ID, some
	// might be ignored.
	EntityId             *EntityId `protobuf:"bytes,2,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *PrivacyMetric_KAnonymityConfig) Reset()         { *m = PrivacyMetric_KAnonymityConfig{} }
func (m *PrivacyMetric_KAnonymityConfig) String() string { return proto.CompactTextString(m) }
func (*PrivacyMetric_KAnonymityConfig) ProtoMessage()    {}
func (*PrivacyMetric_KAnonymityConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36, 2}
}

func (m *PrivacyMetric_KAnonymityConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric_KAnonymityConfig.Unmarshal(m, b)
}
func (m *PrivacyMetric_KAnonymityConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric_KAnonymityConfig.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric_KAnonymityConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric_KAnonymityConfig.Merge(m, src)
}
func (m *PrivacyMetric_KAnonymityConfig) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric_KAnonymityConfig.Size(m)
}
func (m *PrivacyMetric_KAnonymityConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric_KAnonymityConfig.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric_KAnonymityConfig proto.InternalMessageInfo

func (m *PrivacyMetric_KAnonymityConfig) GetQuasiIds() []*FieldId {
	if m != nil {
		return m.QuasiIds
	}
	return nil
}

func (m *PrivacyMetric_KAnonymityConfig) GetEntityId() *EntityId {
	if m != nil {
		return m.EntityId
	}
	return nil
}

// l-diversity metric, used for analysis of reidentification risk.
type PrivacyMetric_LDiversityConfig struct {
	// Set of quasi-identifiers indicating how equivalence classes are
	// defined for the l-diversity computation. When multiple fields are
	// specified, they are considered a single composite key.
	QuasiIds []*FieldId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
	// Sensitive field for computing the l-value.
	SensitiveAttribute   *FieldId `protobuf:"bytes,2,opt,name=sensitive_attribute,json=sensitiveAttribute,proto3" json:"sensitive_attribute,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PrivacyMetric_LDiversityConfig) Reset()         { *m = PrivacyMetric_LDiversityConfig{} }
func (m *PrivacyMetric_LDiversityConfig) String() string { return proto.CompactTextString(m) }
func (*PrivacyMetric_LDiversityConfig) ProtoMessage()    {}
func (*PrivacyMetric_LDiversityConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36, 3}
}

func (m *PrivacyMetric_LDiversityConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric_LDiversityConfig.Unmarshal(m, b)
}
func (m *PrivacyMetric_LDiversityConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric_LDiversityConfig.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric_LDiversityConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric_LDiversityConfig.Merge(m, src)
}
func (m *PrivacyMetric_LDiversityConfig) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric_LDiversityConfig.Size(m)
}
func (m *PrivacyMetric_LDiversityConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric_LDiversityConfig.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric_LDiversityConfig proto.InternalMessageInfo

func (m *PrivacyMetric_LDiversityConfig) GetQuasiIds() []*FieldId {
	if m != nil {
		return m.QuasiIds
	}
	return nil
}

func (m *PrivacyMetric_LDiversityConfig) GetSensitiveAttribute() *FieldId {
	if m != nil {
		return m.SensitiveAttribute
	}
	return nil
}

// Reidentifiability metric. This corresponds to a risk model similar to what
// is called "journalist risk" in the literature, except the attack dataset is
// statistically modeled instead of being perfectly known. This can be done
// using publicly available data (like the US Census), or using a custom
// statistical model (indicated as one or several BigQuery tables), or by
// extrapolating from the distribution of values in the input dataset.
// A column with a semantic tag attached.
type PrivacyMetric_KMapEstimationConfig struct {
	// Fields considered to be quasi-identifiers. No two columns can have the
	// same tag. [required]
	QuasiIds []*PrivacyMetric_KMapEstimationConfig_TaggedField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
	// ISO 3166-1 alpha-2 region code to use in the statistical modeling.
	// Required if no column is tagged with a region-specific InfoType (like
	// US_ZIP_5) or a region code.
	RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"`
	// Several auxiliary tables can be used in the analysis. Each custom_tag
	// used to tag a quasi-identifiers column must appear in exactly one column
	// of one auxiliary table.
	AuxiliaryTables      []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable `protobuf:"bytes,3,rep,name=auxiliary_tables,json=auxiliaryTables,proto3" json:"auxiliary_tables,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                             `json:"-"`
	XXX_unrecognized     []byte                                               `json:"-"`
	XXX_sizecache        int32                                                `json:"-"`
}

func (m *PrivacyMetric_KMapEstimationConfig) Reset()         { *m = PrivacyMetric_KMapEstimationConfig{} }
func (m *PrivacyMetric_KMapEstimationConfig) String() string { return proto.CompactTextString(m) }
func (*PrivacyMetric_KMapEstimationConfig) ProtoMessage()    {}
func (*PrivacyMetric_KMapEstimationConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36, 4}
}

func (m *PrivacyMetric_KMapEstimationConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig.Unmarshal(m, b)
}
func (m *PrivacyMetric_KMapEstimationConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric_KMapEstimationConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric_KMapEstimationConfig.Merge(m, src)
}
func (m *PrivacyMetric_KMapEstimationConfig) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig.Size(m)
}
func (m *PrivacyMetric_KMapEstimationConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric_KMapEstimationConfig.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric_KMapEstimationConfig proto.InternalMessageInfo

func (m *PrivacyMetric_KMapEstimationConfig) GetQuasiIds() []*PrivacyMetric_KMapEstimationConfig_TaggedField {
	if m != nil {
		return m.QuasiIds
	}
	return nil
}

func (m *PrivacyMetric_KMapEstimationConfig) GetRegionCode() string {
	if m != nil {
		return m.RegionCode
	}
	return ""
}

func (m *PrivacyMetric_KMapEstimationConfig) GetAuxiliaryTables() []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable {
	if m != nil {
		return m.AuxiliaryTables
	}
	return nil
}

type PrivacyMetric_KMapEstimationConfig_TaggedField struct {
	// Identifies the column. [required]
	Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
	// Semantic tag that identifies what a column contains, to determine which
	// statistical model to use to estimate the reidentifiability of each
	// value. [required]
	//
	// Types that are valid to be assigned to Tag:
	//	*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType
	//	*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag
	//	*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred
	Tag                  isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag `protobuf_oneof:"tag"`
	XXX_NoUnkeyedLiteral struct{}                                             `json:"-"`
	XXX_unrecognized     []byte                                               `json:"-"`
	XXX_sizecache        int32                                                `json:"-"`
}

func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) Reset() {
	*m = PrivacyMetric_KMapEstimationConfig_TaggedField{}
}
func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) String() string {
	return proto.CompactTextString(m)
}
func (*PrivacyMetric_KMapEstimationConfig_TaggedField) ProtoMessage() {}
func (*PrivacyMetric_KMapEstimationConfig_TaggedField) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36, 4, 0}
}

func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_TaggedField.Unmarshal(m, b)
}
func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_TaggedField.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_TaggedField.Merge(m, src)
}
func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_TaggedField.Size(m)
}
func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_TaggedField.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_TaggedField proto.InternalMessageInfo

func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) GetField() *FieldId {
	if m != nil {
		return m.Field
	}
	return nil
}

type isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag interface {
	isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag()
}

type PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType struct {
	InfoType *InfoType `protobuf:"bytes,2,opt,name=info_type,json=infoType,proto3,oneof"`
}

type PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag struct {
	CustomTag string `protobuf:"bytes,3,opt,name=custom_tag,json=customTag,proto3,oneof"`
}

type PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred struct {
	Inferred *empty.Empty `protobuf:"bytes,4,opt,name=inferred,proto3,oneof"`
}

func (*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() {
}

func (*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() {
}

func (*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred) isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag() {
}

func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) GetTag() isPrivacyMetric_KMapEstimationConfig_TaggedField_Tag {
	if m != nil {
		return m.Tag
	}
	return nil
}

func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) GetInfoType() *InfoType {
	if x, ok := m.GetTag().(*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType); ok {
		return x.InfoType
	}
	return nil
}

func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) GetCustomTag() string {
	if x, ok := m.GetTag().(*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag); ok {
		return x.CustomTag
	}
	return ""
}

func (m *PrivacyMetric_KMapEstimationConfig_TaggedField) GetInferred() *empty.Empty {
	if x, ok := m.GetTag().(*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred); ok {
		return x.Inferred
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*PrivacyMetric_KMapEstimationConfig_TaggedField) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*PrivacyMetric_KMapEstimationConfig_TaggedField_InfoType)(nil),
		(*PrivacyMetric_KMapEstimationConfig_TaggedField_CustomTag)(nil),
		(*PrivacyMetric_KMapEstimationConfig_TaggedField_Inferred)(nil),
	}
}

// An auxiliary table contains statistical information on the relative
// frequency of different quasi-identifiers values. It has one or several
// quasi-identifiers columns, and one column that indicates the relative
// frequency of each quasi-identifier tuple.
// If a tuple is present in the data but not in the auxiliary table, the
// corresponding relative frequency is assumed to be zero (and thus, the
// tuple is highly reidentifiable).
type PrivacyMetric_KMapEstimationConfig_AuxiliaryTable struct {
	// Auxiliary table location. [required]
	Table *BigQueryTable `protobuf:"bytes,3,opt,name=table,proto3" json:"table,omitempty"`
	// Quasi-identifier columns. [required]
	QuasiIds []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
	// The relative frequency column must contain a floating-point number
	// between 0 and 1 (inclusive). Null values are assumed to be zero.
	// [required]
	RelativeFrequency    *FieldId `protobuf:"bytes,2,opt,name=relative_frequency,json=relativeFrequency,proto3" json:"relative_frequency,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) Reset() {
	*m = PrivacyMetric_KMapEstimationConfig_AuxiliaryTable{}
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) String() string {
	return proto.CompactTextString(m)
}
func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) ProtoMessage() {}
func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36, 4, 1}
}

func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable.Unmarshal(m, b)
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable.Merge(m, src)
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable.Size(m)
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable proto.InternalMessageInfo

func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetTable() *BigQueryTable {
	if m != nil {
		return m.Table
	}
	return nil
}

func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetQuasiIds() []*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField {
	if m != nil {
		return m.QuasiIds
	}
	return nil
}

func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable) GetRelativeFrequency() *FieldId {
	if m != nil {
		return m.RelativeFrequency
	}
	return nil
}

// A quasi-identifier column has a custom_tag, used to know which column
// in the data corresponds to which column in the statistical model.
type PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField struct {
	Field                *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
	CustomTag            string   `protobuf:"bytes,2,opt,name=custom_tag,json=customTag,proto3" json:"custom_tag,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) Reset() {
	*m = PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField{}
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) String() string {
	return proto.CompactTextString(m)
}
func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) ProtoMessage() {}
func (*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36, 4, 1, 0}
}

func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField.Unmarshal(m, b)
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField.Merge(m, src)
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField.Size(m)
}
func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField proto.InternalMessageInfo

func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) GetField() *FieldId {
	if m != nil {
		return m.Field
	}
	return nil
}

func (m *PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField) GetCustomTag() string {
	if m != nil {
		return m.CustomTag
	}
	return ""
}

// δ-presence metric, used to estimate how likely it is for an attacker to
// figure out that one given individual appears in a de-identified dataset.
// Similarly to the k-map metric, we cannot compute δ-presence exactly without
// knowing the attack dataset, so we use a statistical model instead.
type PrivacyMetric_DeltaPresenceEstimationConfig struct {
	// Fields considered to be quasi-identifiers. No two fields can have the
	// same tag. [required]
	QuasiIds []*QuasiId `protobuf:"bytes,1,rep,name=quasi_ids,json=quasiIds,proto3" json:"quasi_ids,omitempty"`
	// ISO 3166-1 alpha-2 region code to use in the statistical modeling.
	// Required if no column is tagged with a region-specific InfoType (like
	// US_ZIP_5) or a region code.
	RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"`
	// Several auxiliary tables can be used in the analysis. Each custom_tag
	// used to tag a quasi-identifiers field must appear in exactly one
	// field of one auxiliary table.
	AuxiliaryTables      []*StatisticalTable `protobuf:"bytes,3,rep,name=auxiliary_tables,json=auxiliaryTables,proto3" json:"auxiliary_tables,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *PrivacyMetric_DeltaPresenceEstimationConfig) Reset() {
	*m = PrivacyMetric_DeltaPresenceEstimationConfig{}
}
func (m *PrivacyMetric_DeltaPresenceEstimationConfig) String() string {
	return proto.CompactTextString(m)
}
func (*PrivacyMetric_DeltaPresenceEstimationConfig) ProtoMessage() {}
func (*PrivacyMetric_DeltaPresenceEstimationConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{36, 5}
}

func (m *PrivacyMetric_DeltaPresenceEstimationConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrivacyMetric_DeltaPresenceEstimationConfig.Unmarshal(m, b)
}
func (m *PrivacyMetric_DeltaPresenceEstimationConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrivacyMetric_DeltaPresenceEstimationConfig.Marshal(b, m, deterministic)
}
func (m *PrivacyMetric_DeltaPresenceEstimationConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrivacyMetric_DeltaPresenceEstimationConfig.Merge(m, src)
}
func (m *PrivacyMetric_DeltaPresenceEstimationConfig) XXX_Size() int {
	return xxx_messageInfo_PrivacyMetric_DeltaPresenceEstimationConfig.Size(m)
}
func (m *PrivacyMetric_DeltaPresenceEstimationConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_PrivacyMetric_DeltaPresenceEstimationConfig.DiscardUnknown(m)
}

var xxx_messageInfo_PrivacyMetric_DeltaPresenceEstimationConfig proto.InternalMessageInfo

func (m *PrivacyMetric_DeltaPresenceEstimationConfig) GetQuasiIds() []*QuasiId {
	if m != nil {
		return m.QuasiIds
	}
	return nil
}

func (m *PrivacyMetric_DeltaPresenceEstimationConfig) GetRegionCode() string {
	if m != nil {
		return m.RegionCode
	}
	return ""
}

func (m *PrivacyMetric_DeltaPresenceEstimationConfig) GetAuxiliaryTables() []*StatisticalTable {
	if m != nil {
		return m.AuxiliaryTables
	}
	return nil
}

// Result of a risk analysis operation request.
type AnalyzeDataSourceRiskDetails struct {
	// Privacy metric to compute.
	RequestedPrivacyMetric *PrivacyMetric `protobuf:"bytes,1,opt,name=requested_privacy_metric,json=requestedPrivacyMetric,proto3" json:"requested_privacy_metric,omitempty"`
	// Input dataset to compute metrics over.
	RequestedSourceTable *BigQueryTable `protobuf:"bytes,2,opt,name=requested_source_table,json=requestedSourceTable,proto3" json:"requested_source_table,omitempty"`
	// Values associated with this metric.
	//
	// Types that are valid to be assigned to Result:
	//	*AnalyzeDataSourceRiskDetails_NumericalStatsResult_
	//	*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_
	//	*AnalyzeDataSourceRiskDetails_KAnonymityResult_
	//	*AnalyzeDataSourceRiskDetails_LDiversityResult_
	//	*AnalyzeDataSourceRiskDetails_KMapEstimationResult_
	//	*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_
	Result               isAnalyzeDataSourceRiskDetails_Result `protobuf_oneof:"result"`
	XXX_NoUnkeyedLiteral struct{}                              `json:"-"`
	XXX_unrecognized     []byte                                `json:"-"`
	XXX_sizecache        int32                                 `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails) Reset()         { *m = AnalyzeDataSourceRiskDetails{} }
func (m *AnalyzeDataSourceRiskDetails) String() string { return proto.CompactTextString(m) }
func (*AnalyzeDataSourceRiskDetails) ProtoMessage()    {}
func (*AnalyzeDataSourceRiskDetails) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37}
}

func (m *AnalyzeDataSourceRiskDetails) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails) GetRequestedPrivacyMetric() *PrivacyMetric {
	if m != nil {
		return m.RequestedPrivacyMetric
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails) GetRequestedSourceTable() *BigQueryTable {
	if m != nil {
		return m.RequestedSourceTable
	}
	return nil
}

type isAnalyzeDataSourceRiskDetails_Result interface {
	isAnalyzeDataSourceRiskDetails_Result()
}

type AnalyzeDataSourceRiskDetails_NumericalStatsResult_ struct {
	NumericalStatsResult *AnalyzeDataSourceRiskDetails_NumericalStatsResult `protobuf:"bytes,3,opt,name=numerical_stats_result,json=numericalStatsResult,proto3,oneof"`
}

type AnalyzeDataSourceRiskDetails_CategoricalStatsResult_ struct {
	CategoricalStatsResult *AnalyzeDataSourceRiskDetails_CategoricalStatsResult `protobuf:"bytes,4,opt,name=categorical_stats_result,json=categoricalStatsResult,proto3,oneof"`
}

type AnalyzeDataSourceRiskDetails_KAnonymityResult_ struct {
	KAnonymityResult *AnalyzeDataSourceRiskDetails_KAnonymityResult `protobuf:"bytes,5,opt,name=k_anonymity_result,json=kAnonymityResult,proto3,oneof"`
}

type AnalyzeDataSourceRiskDetails_LDiversityResult_ struct {
	LDiversityResult *AnalyzeDataSourceRiskDetails_LDiversityResult `protobuf:"bytes,6,opt,name=l_diversity_result,json=lDiversityResult,proto3,oneof"`
}

type AnalyzeDataSourceRiskDetails_KMapEstimationResult_ struct {
	KMapEstimationResult *AnalyzeDataSourceRiskDetails_KMapEstimationResult `protobuf:"bytes,7,opt,name=k_map_estimation_result,json=kMapEstimationResult,proto3,oneof"`
}

type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_ struct {
	DeltaPresenceEstimationResult *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult `protobuf:"bytes,9,opt,name=delta_presence_estimation_result,json=deltaPresenceEstimationResult,proto3,oneof"`
}

func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult_) isAnalyzeDataSourceRiskDetails_Result() {}

func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_) isAnalyzeDataSourceRiskDetails_Result() {}

func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_) isAnalyzeDataSourceRiskDetails_Result() {}

func (*AnalyzeDataSourceRiskDetails_LDiversityResult_) isAnalyzeDataSourceRiskDetails_Result() {}

func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_) isAnalyzeDataSourceRiskDetails_Result() {}

func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_) isAnalyzeDataSourceRiskDetails_Result() {
}

func (m *AnalyzeDataSourceRiskDetails) GetResult() isAnalyzeDataSourceRiskDetails_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails) GetNumericalStatsResult() *AnalyzeDataSourceRiskDetails_NumericalStatsResult {
	if x, ok := m.GetResult().(*AnalyzeDataSourceRiskDetails_NumericalStatsResult_); ok {
		return x.NumericalStatsResult
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails) GetCategoricalStatsResult() *AnalyzeDataSourceRiskDetails_CategoricalStatsResult {
	if x, ok := m.GetResult().(*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_); ok {
		return x.CategoricalStatsResult
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails) GetKAnonymityResult() *AnalyzeDataSourceRiskDetails_KAnonymityResult {
	if x, ok := m.GetResult().(*AnalyzeDataSourceRiskDetails_KAnonymityResult_); ok {
		return x.KAnonymityResult
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails) GetLDiversityResult() *AnalyzeDataSourceRiskDetails_LDiversityResult {
	if x, ok := m.GetResult().(*AnalyzeDataSourceRiskDetails_LDiversityResult_); ok {
		return x.LDiversityResult
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails) GetKMapEstimationResult() *AnalyzeDataSourceRiskDetails_KMapEstimationResult {
	if x, ok := m.GetResult().(*AnalyzeDataSourceRiskDetails_KMapEstimationResult_); ok {
		return x.KMapEstimationResult
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails) GetDeltaPresenceEstimationResult() *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult {
	if x, ok := m.GetResult().(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_); ok {
		return x.DeltaPresenceEstimationResult
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*AnalyzeDataSourceRiskDetails) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*AnalyzeDataSourceRiskDetails_NumericalStatsResult_)(nil),
		(*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_)(nil),
		(*AnalyzeDataSourceRiskDetails_KAnonymityResult_)(nil),
		(*AnalyzeDataSourceRiskDetails_LDiversityResult_)(nil),
		(*AnalyzeDataSourceRiskDetails_KMapEstimationResult_)(nil),
		(*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_)(nil),
	}
}

// Result of the numerical stats computation.
type AnalyzeDataSourceRiskDetails_NumericalStatsResult struct {
	// Minimum value appearing in the column.
	MinValue *Value `protobuf:"bytes,1,opt,name=min_value,json=minValue,proto3" json:"min_value,omitempty"`
	// Maximum value appearing in the column.
	MaxValue *Value `protobuf:"bytes,2,opt,name=max_value,json=maxValue,proto3" json:"max_value,omitempty"`
	// List of 99 values that partition the set of field values into 100 equal
	// sized buckets.
	QuantileValues       []*Value `protobuf:"bytes,4,rep,name=quantile_values,json=quantileValues,proto3" json:"quantile_values,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) Reset() {
	*m = AnalyzeDataSourceRiskDetails_NumericalStatsResult{}
}
func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_NumericalStatsResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 0}
}

func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_NumericalStatsResult.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_NumericalStatsResult.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_NumericalStatsResult.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_NumericalStatsResult.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_NumericalStatsResult.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_NumericalStatsResult proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetMinValue() *Value {
	if m != nil {
		return m.MinValue
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetMaxValue() *Value {
	if m != nil {
		return m.MaxValue
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_NumericalStatsResult) GetQuantileValues() []*Value {
	if m != nil {
		return m.QuantileValues
	}
	return nil
}

// Result of the categorical stats computation.
type AnalyzeDataSourceRiskDetails_CategoricalStatsResult struct {
	// Histogram of value frequencies in the column.
	ValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket `protobuf:"bytes,5,rep,name=value_frequency_histogram_buckets,json=valueFrequencyHistogramBuckets,proto3" json:"value_frequency_histogram_buckets,omitempty"`
	XXX_NoUnkeyedLiteral           struct{}                                                                               `json:"-"`
	XXX_unrecognized               []byte                                                                                 `json:"-"`
	XXX_sizecache                  int32                                                                                  `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) Reset() {
	*m = AnalyzeDataSourceRiskDetails_CategoricalStatsResult{}
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 1}
}

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult) GetValueFrequencyHistogramBuckets() []*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket {
	if m != nil {
		return m.ValueFrequencyHistogramBuckets
	}
	return nil
}

type AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket struct {
	// Lower bound on the value frequency of the values in this bucket.
	ValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=value_frequency_lower_bound,json=valueFrequencyLowerBound,proto3" json:"value_frequency_lower_bound,omitempty"`
	// Upper bound on the value frequency of the values in this bucket.
	ValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=value_frequency_upper_bound,json=valueFrequencyUpperBound,proto3" json:"value_frequency_upper_bound,omitempty"`
	// Total number of values in this bucket.
	BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
	// Sample of value frequencies in this bucket. The total number of
	// values returned per bucket is capped at 20.
	BucketValues []*ValueFrequency `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"`
	// Total number of distinct values in this bucket.
	BucketValueCount     int64    `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) Reset() {
	*m = AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket{}
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) ProtoMessage() {
}
func (*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 1, 0}
}

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetValueFrequencyLowerBound() int64 {
	if m != nil {
		return m.ValueFrequencyLowerBound
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetValueFrequencyUpperBound() int64 {
	if m != nil {
		return m.ValueFrequencyUpperBound
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetBucketSize() int64 {
	if m != nil {
		return m.BucketSize
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetBucketValues() []*ValueFrequency {
	if m != nil {
		return m.BucketValues
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket) GetBucketValueCount() int64 {
	if m != nil {
		return m.BucketValueCount
	}
	return 0
}

// Result of the k-anonymity computation.
type AnalyzeDataSourceRiskDetails_KAnonymityResult struct {
	// Histogram of k-anonymity equivalence classes.
	EquivalenceClassHistogramBuckets []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket `protobuf:"bytes,5,rep,name=equivalence_class_histogram_buckets,json=equivalenceClassHistogramBuckets,proto3" json:"equivalence_class_histogram_buckets,omitempty"`
	XXX_NoUnkeyedLiteral             struct{}                                                                   `json:"-"`
	XXX_unrecognized                 []byte                                                                     `json:"-"`
	XXX_sizecache                    int32                                                                      `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult) Reset() {
	*m = AnalyzeDataSourceRiskDetails_KAnonymityResult{}
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_KAnonymityResult) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_KAnonymityResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 2}
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult) GetEquivalenceClassHistogramBuckets() []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket {
	if m != nil {
		return m.EquivalenceClassHistogramBuckets
	}
	return nil
}

// The set of columns' values that share the same ldiversity value
type AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass struct {
	// Set of values defining the equivalence class. One value per
	// quasi-identifier column in the original KAnonymity metric message.
	// The order is always the same as the original request.
	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"`
	// Size of the equivalence class, for example number of rows with the
	// above set of values.
	EquivalenceClassSize int64    `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize,proto3" json:"equivalence_class_size,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) Reset() {
	*m = AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass{}
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 2, 0}
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) GetQuasiIdsValues() []*Value {
	if m != nil {
		return m.QuasiIdsValues
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass) GetEquivalenceClassSize() int64 {
	if m != nil {
		return m.EquivalenceClassSize
	}
	return 0
}

type AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket struct {
	// Lower bound on the size of the equivalence classes in this bucket.
	EquivalenceClassSizeLowerBound int64 `protobuf:"varint,1,opt,name=equivalence_class_size_lower_bound,json=equivalenceClassSizeLowerBound,proto3" json:"equivalence_class_size_lower_bound,omitempty"`
	// Upper bound on the size of the equivalence classes in this bucket.
	EquivalenceClassSizeUpperBound int64 `protobuf:"varint,2,opt,name=equivalence_class_size_upper_bound,json=equivalenceClassSizeUpperBound,proto3" json:"equivalence_class_size_upper_bound,omitempty"`
	// Total number of equivalence classes in this bucket.
	BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
	// Sample of equivalence classes in this bucket. The total number of
	// classes returned per bucket is capped at 20.
	BucketValues []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"`
	// Total number of distinct equivalence classes in this bucket.
	BucketValueCount     int64    `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) Reset() {
	*m = AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket{}
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 2, 1}
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetEquivalenceClassSizeLowerBound() int64 {
	if m != nil {
		return m.EquivalenceClassSizeLowerBound
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetEquivalenceClassSizeUpperBound() int64 {
	if m != nil {
		return m.EquivalenceClassSizeUpperBound
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetBucketSize() int64 {
	if m != nil {
		return m.BucketSize
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass {
	if m != nil {
		return m.BucketValues
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket) GetBucketValueCount() int64 {
	if m != nil {
		return m.BucketValueCount
	}
	return 0
}

// Result of the l-diversity computation.
type AnalyzeDataSourceRiskDetails_LDiversityResult struct {
	// Histogram of l-diversity equivalence class sensitive value frequencies.
	SensitiveValueFrequencyHistogramBuckets []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket `protobuf:"bytes,5,rep,name=sensitive_value_frequency_histogram_buckets,json=sensitiveValueFrequencyHistogramBuckets,proto3" json:"sensitive_value_frequency_histogram_buckets,omitempty"`
	XXX_NoUnkeyedLiteral                    struct{}                                                                   `json:"-"`
	XXX_unrecognized                        []byte                                                                     `json:"-"`
	XXX_sizecache                           int32                                                                      `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult) Reset() {
	*m = AnalyzeDataSourceRiskDetails_LDiversityResult{}
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_LDiversityResult) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_LDiversityResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 3}
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult) GetSensitiveValueFrequencyHistogramBuckets() []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket {
	if m != nil {
		return m.SensitiveValueFrequencyHistogramBuckets
	}
	return nil
}

// The set of columns' values that share the same ldiversity value.
type AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass struct {
	// Quasi-identifier values defining the k-anonymity equivalence
	// class. The order is always the same as the original request.
	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"`
	// Size of the k-anonymity equivalence class.
	EquivalenceClassSize int64 `protobuf:"varint,2,opt,name=equivalence_class_size,json=equivalenceClassSize,proto3" json:"equivalence_class_size,omitempty"`
	// Number of distinct sensitive values in this equivalence class.
	NumDistinctSensitiveValues int64 `protobuf:"varint,3,opt,name=num_distinct_sensitive_values,json=numDistinctSensitiveValues,proto3" json:"num_distinct_sensitive_values,omitempty"`
	// Estimated frequencies of top sensitive values.
	TopSensitiveValues   []*ValueFrequency `protobuf:"bytes,4,rep,name=top_sensitive_values,json=topSensitiveValues,proto3" json:"top_sensitive_values,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) Reset() {
	*m = AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass{}
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 3, 0}
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetQuasiIdsValues() []*Value {
	if m != nil {
		return m.QuasiIdsValues
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetEquivalenceClassSize() int64 {
	if m != nil {
		return m.EquivalenceClassSize
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetNumDistinctSensitiveValues() int64 {
	if m != nil {
		return m.NumDistinctSensitiveValues
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass) GetTopSensitiveValues() []*ValueFrequency {
	if m != nil {
		return m.TopSensitiveValues
	}
	return nil
}

type AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket struct {
	// Lower bound on the sensitive value frequencies of the equivalence
	// classes in this bucket.
	SensitiveValueFrequencyLowerBound int64 `protobuf:"varint,1,opt,name=sensitive_value_frequency_lower_bound,json=sensitiveValueFrequencyLowerBound,proto3" json:"sensitive_value_frequency_lower_bound,omitempty"`
	// Upper bound on the sensitive value frequencies of the equivalence
	// classes in this bucket.
	SensitiveValueFrequencyUpperBound int64 `protobuf:"varint,2,opt,name=sensitive_value_frequency_upper_bound,json=sensitiveValueFrequencyUpperBound,proto3" json:"sensitive_value_frequency_upper_bound,omitempty"`
	// Total number of equivalence classes in this bucket.
	BucketSize int64 `protobuf:"varint,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
	// Sample of equivalence classes in this bucket. The total number of
	// classes returned per bucket is capped at 20.
	BucketValues []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass `protobuf:"bytes,4,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"`
	// Total number of distinct equivalence classes in this bucket.
	BucketValueCount     int64    `protobuf:"varint,5,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) Reset() {
	*m = AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket{}
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 3, 1}
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetSensitiveValueFrequencyLowerBound() int64 {
	if m != nil {
		return m.SensitiveValueFrequencyLowerBound
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetSensitiveValueFrequencyUpperBound() int64 {
	if m != nil {
		return m.SensitiveValueFrequencyUpperBound
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetBucketSize() int64 {
	if m != nil {
		return m.BucketSize
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass {
	if m != nil {
		return m.BucketValues
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket) GetBucketValueCount() int64 {
	if m != nil {
		return m.BucketValueCount
	}
	return 0
}

// Result of the reidentifiability analysis. Note that these results are an
// estimation, not exact values.
type AnalyzeDataSourceRiskDetails_KMapEstimationResult struct {
	// The intervals [min_anonymity, max_anonymity] do not overlap. If a value
	// doesn't correspond to any such interval, the associated frequency is
	// zero. For example, the following records:
	//   {min_anonymity: 1, max_anonymity: 1, frequency: 17}
	//   {min_anonymity: 2, max_anonymity: 3, frequency: 42}
	//   {min_anonymity: 5, max_anonymity: 10, frequency: 99}
	// mean that there are no record with an estimated anonymity of 4, 5, or
	// larger than 10.
	KMapEstimationHistogram []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket `protobuf:"bytes,1,rep,name=k_map_estimation_histogram,json=kMapEstimationHistogram,proto3" json:"k_map_estimation_histogram,omitempty"`
	XXX_NoUnkeyedLiteral    struct{}                                                                           `json:"-"`
	XXX_unrecognized        []byte                                                                             `json:"-"`
	XXX_sizecache           int32                                                                              `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult) Reset() {
	*m = AnalyzeDataSourceRiskDetails_KMapEstimationResult{}
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 4}
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult) GetKMapEstimationHistogram() []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket {
	if m != nil {
		return m.KMapEstimationHistogram
	}
	return nil
}

// A tuple of values for the quasi-identifier columns.
type AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues struct {
	// The quasi-identifier values.
	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"`
	// The estimated anonymity for these quasi-identifier values.
	EstimatedAnonymity   int64    `protobuf:"varint,2,opt,name=estimated_anonymity,json=estimatedAnonymity,proto3" json:"estimated_anonymity,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) Reset() {
	*m = AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues{}
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 4, 0}
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) GetQuasiIdsValues() []*Value {
	if m != nil {
		return m.QuasiIdsValues
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues) GetEstimatedAnonymity() int64 {
	if m != nil {
		return m.EstimatedAnonymity
	}
	return 0
}

// A KMapEstimationHistogramBucket message with the following values:
//   min_anonymity: 3
//   max_anonymity: 5
//   frequency: 42
// means that there are 42 records whose quasi-identifier values correspond
// to 3, 4 or 5 people in the overlying population. An important particular
// case is when min_anonymity = max_anonymity = 1: the frequency field then
// corresponds to the number of uniquely identifiable records.
type AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket struct {
	// Always positive.
	MinAnonymity int64 `protobuf:"varint,1,opt,name=min_anonymity,json=minAnonymity,proto3" json:"min_anonymity,omitempty"`
	// Always greater than or equal to min_anonymity.
	MaxAnonymity int64 `protobuf:"varint,2,opt,name=max_anonymity,json=maxAnonymity,proto3" json:"max_anonymity,omitempty"`
	// Number of records within these anonymity bounds.
	BucketSize int64 `protobuf:"varint,5,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
	// Sample of quasi-identifier tuple values in this bucket. The total
	// number of classes returned per bucket is capped at 20.
	BucketValues []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues `protobuf:"bytes,6,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"`
	// Total number of distinct quasi-identifier tuple values in this bucket.
	BucketValueCount     int64    `protobuf:"varint,7,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) Reset() {
	*m = AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket{}
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) ProtoMessage() {
}
func (*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 4, 1}
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetMinAnonymity() int64 {
	if m != nil {
		return m.MinAnonymity
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetMaxAnonymity() int64 {
	if m != nil {
		return m.MaxAnonymity
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetBucketSize() int64 {
	if m != nil {
		return m.BucketSize
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues {
	if m != nil {
		return m.BucketValues
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket) GetBucketValueCount() int64 {
	if m != nil {
		return m.BucketValueCount
	}
	return 0
}

// Result of the δ-presence computation. Note that these results are an
// estimation, not exact values.
type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult struct {
	// The intervals [min_probability, max_probability) do not overlap. If a
	// value doesn't correspond to any such interval, the associated frequency
	// is zero. For example, the following records:
	//   {min_probability: 0, max_probability: 0.1, frequency: 17}
	//   {min_probability: 0.2, max_probability: 0.3, frequency: 42}
	//   {min_probability: 0.3, max_probability: 0.4, frequency: 99}
	// mean that there are no record with an estimated probability in [0.1, 0.2)
	// nor larger or equal to 0.4.
	DeltaPresenceEstimationHistogram []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket `protobuf:"bytes,1,rep,name=delta_presence_estimation_histogram,json=deltaPresenceEstimationHistogram,proto3" json:"delta_presence_estimation_histogram,omitempty"`
	XXX_NoUnkeyedLiteral             struct{}                                                                                             `json:"-"`
	XXX_unrecognized                 []byte                                                                                               `json:"-"`
	XXX_sizecache                    int32                                                                                                `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) Reset() {
	*m = AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult{}
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) ProtoMessage() {}
func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 5}
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult) GetDeltaPresenceEstimationHistogram() []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket {
	if m != nil {
		return m.DeltaPresenceEstimationHistogram
	}
	return nil
}

// A tuple of values for the quasi-identifier columns.
type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues struct {
	// The quasi-identifier values.
	QuasiIdsValues []*Value `protobuf:"bytes,1,rep,name=quasi_ids_values,json=quasiIdsValues,proto3" json:"quasi_ids_values,omitempty"`
	// The estimated probability that a given individual sharing these
	// quasi-identifier values is in the dataset. This value, typically called
	// δ, is the ratio between the number of records in the dataset with these
	// quasi-identifier values, and the total number of individuals (inside
	// *and* outside the dataset) with these quasi-identifier values.
	// For example, if there are 15 individuals in the dataset who share the
	// same quasi-identifier values, and an estimated 100 people in the entire
	// population with these values, then δ is 0.15.
	EstimatedProbability float64  `protobuf:"fixed64,2,opt,name=estimated_probability,json=estimatedProbability,proto3" json:"estimated_probability,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) Reset() {
	*m = AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues{}
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) ProtoMessage() {
}
func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 5, 0}
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) GetQuasiIdsValues() []*Value {
	if m != nil {
		return m.QuasiIdsValues
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues) GetEstimatedProbability() float64 {
	if m != nil {
		return m.EstimatedProbability
	}
	return 0
}

// A DeltaPresenceEstimationHistogramBucket message with the following
// values:
//   min_probability: 0.1
//   max_probability: 0.2
//   frequency: 42
// means that there are 42 records for which δ is in [0.1, 0.2). An
// important particular case is when min_probability = max_probability = 1:
// then, every individual who shares this quasi-identifier combination is in
// the dataset.
type AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket struct {
	// Between 0 and 1.
	MinProbability float64 `protobuf:"fixed64,1,opt,name=min_probability,json=minProbability,proto3" json:"min_probability,omitempty"`
	// Always greater than or equal to min_probability.
	MaxProbability float64 `protobuf:"fixed64,2,opt,name=max_probability,json=maxProbability,proto3" json:"max_probability,omitempty"`
	// Number of records within these probability bounds.
	BucketSize int64 `protobuf:"varint,5,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
	// Sample of quasi-identifier tuple values in this bucket. The total
	// number of classes returned per bucket is capped at 20.
	BucketValues []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues `protobuf:"bytes,6,rep,name=bucket_values,json=bucketValues,proto3" json:"bucket_values,omitempty"`
	// Total number of distinct quasi-identifier tuple values in this bucket.
	BucketValueCount     int64    `protobuf:"varint,7,opt,name=bucket_value_count,json=bucketValueCount,proto3" json:"bucket_value_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) Reset() {
	*m = AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket{}
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) String() string {
	return proto.CompactTextString(m)
}
func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) ProtoMessage() {
}
func (*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{37, 5, 1}
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket.Unmarshal(m, b)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket.Marshal(b, m, deterministic)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket.Merge(m, src)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) XXX_Size() int {
	return xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket.Size(m)
}
func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) XXX_DiscardUnknown() {
	xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket.DiscardUnknown(m)
}

var xxx_messageInfo_AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket proto.InternalMessageInfo

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetMinProbability() float64 {
	if m != nil {
		return m.MinProbability
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetMaxProbability() float64 {
	if m != nil {
		return m.MaxProbability
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetBucketSize() int64 {
	if m != nil {
		return m.BucketSize
	}
	return 0
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetBucketValues() []*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues {
	if m != nil {
		return m.BucketValues
	}
	return nil
}

func (m *AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket) GetBucketValueCount() int64 {
	if m != nil {
		return m.BucketValueCount
	}
	return 0
}

// A value of a field, including its frequency.
type ValueFrequency struct {
	// A value contained in the field in question.
	Value *Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	// How many times the value is contained in the field.
	Count                int64    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ValueFrequency) Reset()         { *m = ValueFrequency{} }
func (m *ValueFrequency) String() string { return proto.CompactTextString(m) }
func (*ValueFrequency) ProtoMessage()    {}
func (*ValueFrequency) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{38}
}

func (m *ValueFrequency) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ValueFrequency.Unmarshal(m, b)
}
func (m *ValueFrequency) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ValueFrequency.Marshal(b, m, deterministic)
}
func (m *ValueFrequency) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ValueFrequency.Merge(m, src)
}
func (m *ValueFrequency) XXX_Size() int {
	return xxx_messageInfo_ValueFrequency.Size(m)
}
func (m *ValueFrequency) XXX_DiscardUnknown() {
	xxx_messageInfo_ValueFrequency.DiscardUnknown(m)
}

var xxx_messageInfo_ValueFrequency proto.InternalMessageInfo

func (m *ValueFrequency) GetValue() *Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *ValueFrequency) GetCount() int64 {
	if m != nil {
		return m.Count
	}
	return 0
}

// Set of primitive values supported by the system.
// Note that for the purposes of inspection or transformation, the number
// of bytes considered to comprise a 'Value' is based on its representation
// as a UTF-8 encoded string. For example, if 'integer_value' is set to
// 123456789, the number of bytes would be counted as 9, even though an
// int64 only holds up to 8 bytes of data.
type Value struct {
	// Types that are valid to be assigned to Type:
	//	*Value_IntegerValue
	//	*Value_FloatValue
	//	*Value_StringValue
	//	*Value_BooleanValue
	//	*Value_TimestampValue
	//	*Value_TimeValue
	//	*Value_DateValue
	//	*Value_DayOfWeekValue
	Type                 isValue_Type `protobuf_oneof:"type"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *Value) Reset()         { *m = Value{} }
func (m *Value) String() string { return proto.CompactTextString(m) }
func (*Value) ProtoMessage()    {}
func (*Value) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{39}
}

func (m *Value) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Value.Unmarshal(m, b)
}
func (m *Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Value.Marshal(b, m, deterministic)
}
func (m *Value) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Value.Merge(m, src)
}
func (m *Value) XXX_Size() int {
	return xxx_messageInfo_Value.Size(m)
}
func (m *Value) XXX_DiscardUnknown() {
	xxx_messageInfo_Value.DiscardUnknown(m)
}

var xxx_messageInfo_Value proto.InternalMessageInfo

type isValue_Type interface {
	isValue_Type()
}

type Value_IntegerValue struct {
	IntegerValue int64 `protobuf:"varint,1,opt,name=integer_value,json=integerValue,proto3,oneof"`
}

type Value_FloatValue struct {
	FloatValue float64 `protobuf:"fixed64,2,opt,name=float_value,json=floatValue,proto3,oneof"`
}

type Value_StringValue struct {
	StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"`
}

type Value_BooleanValue struct {
	BooleanValue bool `protobuf:"varint,4,opt,name=boolean_value,json=booleanValue,proto3,oneof"`
}

type Value_TimestampValue struct {
	TimestampValue *timestamp.Timestamp `protobuf:"bytes,5,opt,name=timestamp_value,json=timestampValue,proto3,oneof"`
}

type Value_TimeValue struct {
	TimeValue *timeofday.TimeOfDay `protobuf:"bytes,6,opt,name=time_value,json=timeValue,proto3,oneof"`
}

type Value_DateValue struct {
	DateValue *date.Date `protobuf:"bytes,7,opt,name=date_value,json=dateValue,proto3,oneof"`
}

type Value_DayOfWeekValue struct {
	DayOfWeekValue dayofweek.DayOfWeek `protobuf:"varint,8,opt,name=day_of_week_value,json=dayOfWeekValue,proto3,enum=google.type.DayOfWeek,oneof"`
}

func (*Value_IntegerValue) isValue_Type() {}

func (*Value_FloatValue) isValue_Type() {}

func (*Value_StringValue) isValue_Type() {}

func (*Value_BooleanValue) isValue_Type() {}

func (*Value_TimestampValue) isValue_Type() {}

func (*Value_TimeValue) isValue_Type() {}

func (*Value_DateValue) isValue_Type() {}

func (*Value_DayOfWeekValue) isValue_Type() {}

func (m *Value) GetType() isValue_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *Value) GetIntegerValue() int64 {
	if x, ok := m.GetType().(*Value_IntegerValue); ok {
		return x.IntegerValue
	}
	return 0
}

func (m *Value) GetFloatValue() float64 {
	if x, ok := m.GetType().(*Value_FloatValue); ok {
		return x.FloatValue
	}
	return 0
}

func (m *Value) GetStringValue() string {
	if x, ok := m.GetType().(*Value_StringValue); ok {
		return x.StringValue
	}
	return ""
}

func (m *Value) GetBooleanValue() bool {
	if x, ok := m.GetType().(*Value_BooleanValue); ok {
		return x.BooleanValue
	}
	return false
}

func (m *Value) GetTimestampValue() *timestamp.Timestamp {
	if x, ok := m.GetType().(*Value_TimestampValue); ok {
		return x.TimestampValue
	}
	return nil
}

func (m *Value) GetTimeValue() *timeofday.TimeOfDay {
	if x, ok := m.GetType().(*Value_TimeValue); ok {
		return x.TimeValue
	}
	return nil
}

func (m *Value) GetDateValue() *date.Date {
	if x, ok := m.GetType().(*Value_DateValue); ok {
		return x.DateValue
	}
	return nil
}

func (m *Value) GetDayOfWeekValue() dayofweek.DayOfWeek {
	if x, ok := m.GetType().(*Value_DayOfWeekValue); ok {
		return x.DayOfWeekValue
	}
	return dayofweek.DayOfWeek_DAY_OF_WEEK_UNSPECIFIED
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Value) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Value_IntegerValue)(nil),
		(*Value_FloatValue)(nil),
		(*Value_StringValue)(nil),
		(*Value_BooleanValue)(nil),
		(*Value_TimestampValue)(nil),
		(*Value_TimeValue)(nil),
		(*Value_DateValue)(nil),
		(*Value_DayOfWeekValue)(nil),
	}
}

// Message for infoType-dependent details parsed from quote.
type QuoteInfo struct {
	// Object representation of the quote.
	//
	// Types that are valid to be assigned to ParsedQuote:
	//	*QuoteInfo_DateTime
	ParsedQuote          isQuoteInfo_ParsedQuote `protobuf_oneof:"parsed_quote"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *QuoteInfo) Reset()         { *m = QuoteInfo{} }
func (m *QuoteInfo) String() string { return proto.CompactTextString(m) }
func (*QuoteInfo) ProtoMessage()    {}
func (*QuoteInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{40}
}

func (m *QuoteInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QuoteInfo.Unmarshal(m, b)
}
func (m *QuoteInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QuoteInfo.Marshal(b, m, deterministic)
}
func (m *QuoteInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QuoteInfo.Merge(m, src)
}
func (m *QuoteInfo) XXX_Size() int {
	return xxx_messageInfo_QuoteInfo.Size(m)
}
func (m *QuoteInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_QuoteInfo.DiscardUnknown(m)
}

var xxx_messageInfo_QuoteInfo proto.InternalMessageInfo

type isQuoteInfo_ParsedQuote interface {
	isQuoteInfo_ParsedQuote()
}

type QuoteInfo_DateTime struct {
	DateTime *DateTime `protobuf:"bytes,2,opt,name=date_time,json=dateTime,proto3,oneof"`
}

func (*QuoteInfo_DateTime) isQuoteInfo_ParsedQuote() {}

func (m *QuoteInfo) GetParsedQuote() isQuoteInfo_ParsedQuote {
	if m != nil {
		return m.ParsedQuote
	}
	return nil
}

func (m *QuoteInfo) GetDateTime() *DateTime {
	if x, ok := m.GetParsedQuote().(*QuoteInfo_DateTime); ok {
		return x.DateTime
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*QuoteInfo) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*QuoteInfo_DateTime)(nil),
	}
}

// Message for a date time object.
// e.g. 2018-01-01, 5th August.
type DateTime struct {
	// One or more of the following must be set. All fields are optional, but
	// when set must be valid date or time values.
	Date                 *date.Date           `protobuf:"bytes,1,opt,name=date,proto3" json:"date,omitempty"`
	DayOfWeek            dayofweek.DayOfWeek  `protobuf:"varint,2,opt,name=day_of_week,json=dayOfWeek,proto3,enum=google.type.DayOfWeek" json:"day_of_week,omitempty"`
	Time                 *timeofday.TimeOfDay `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
	TimeZone             *DateTime_TimeZone   `protobuf:"bytes,4,opt,name=time_zone,json=timeZone,proto3" json:"time_zone,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *DateTime) Reset()         { *m = DateTime{} }
func (m *DateTime) String() string { return proto.CompactTextString(m) }
func (*DateTime) ProtoMessage()    {}
func (*DateTime) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{41}
}

func (m *DateTime) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DateTime.Unmarshal(m, b)
}
func (m *DateTime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DateTime.Marshal(b, m, deterministic)
}
func (m *DateTime) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DateTime.Merge(m, src)
}
func (m *DateTime) XXX_Size() int {
	return xxx_messageInfo_DateTime.Size(m)
}
func (m *DateTime) XXX_DiscardUnknown() {
	xxx_messageInfo_DateTime.DiscardUnknown(m)
}

var xxx_messageInfo_DateTime proto.InternalMessageInfo

func (m *DateTime) GetDate() *date.Date {
	if m != nil {
		return m.Date
	}
	return nil
}

func (m *DateTime) GetDayOfWeek() dayofweek.DayOfWeek {
	if m != nil {
		return m.DayOfWeek
	}
	return dayofweek.DayOfWeek_DAY_OF_WEEK_UNSPECIFIED
}

func (m *DateTime) GetTime() *timeofday.TimeOfDay {
	if m != nil {
		return m.Time
	}
	return nil
}

func (m *DateTime) GetTimeZone() *DateTime_TimeZone {
	if m != nil {
		return m.TimeZone
	}
	return nil
}

type DateTime_TimeZone struct {
	// Set only if the offset can be determined. Positive for time ahead of UTC.
	// E.g. For "UTC-9", this value is -540.
	OffsetMinutes        int32    `protobuf:"varint,1,opt,name=offset_minutes,json=offsetMinutes,proto3" json:"offset_minutes,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DateTime_TimeZone) Reset()         { *m = DateTime_TimeZone{} }
func (m *DateTime_TimeZone) String() string { return proto.CompactTextString(m) }
func (*DateTime_TimeZone) ProtoMessage()    {}
func (*DateTime_TimeZone) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{41, 0}
}

func (m *DateTime_TimeZone) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DateTime_TimeZone.Unmarshal(m, b)
}
func (m *DateTime_TimeZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DateTime_TimeZone.Marshal(b, m, deterministic)
}
func (m *DateTime_TimeZone) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DateTime_TimeZone.Merge(m, src)
}
func (m *DateTime_TimeZone) XXX_Size() int {
	return xxx_messageInfo_DateTime_TimeZone.Size(m)
}
func (m *DateTime_TimeZone) XXX_DiscardUnknown() {
	xxx_messageInfo_DateTime_TimeZone.DiscardUnknown(m)
}

var xxx_messageInfo_DateTime_TimeZone proto.InternalMessageInfo

func (m *DateTime_TimeZone) GetOffsetMinutes() int32 {
	if m != nil {
		return m.OffsetMinutes
	}
	return 0
}

// The configuration that controls how the data will change.
type DeidentifyConfig struct {
	// Types that are valid to be assigned to Transformation:
	//	*DeidentifyConfig_InfoTypeTransformations
	//	*DeidentifyConfig_RecordTransformations
	Transformation       isDeidentifyConfig_Transformation `protobuf_oneof:"transformation"`
	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
	XXX_unrecognized     []byte                            `json:"-"`
	XXX_sizecache        int32                             `json:"-"`
}

func (m *DeidentifyConfig) Reset()         { *m = DeidentifyConfig{} }
func (m *DeidentifyConfig) String() string { return proto.CompactTextString(m) }
func (*DeidentifyConfig) ProtoMessage()    {}
func (*DeidentifyConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{42}
}

func (m *DeidentifyConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeidentifyConfig.Unmarshal(m, b)
}
func (m *DeidentifyConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeidentifyConfig.Marshal(b, m, deterministic)
}
func (m *DeidentifyConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeidentifyConfig.Merge(m, src)
}
func (m *DeidentifyConfig) XXX_Size() int {
	return xxx_messageInfo_DeidentifyConfig.Size(m)
}
func (m *DeidentifyConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_DeidentifyConfig.DiscardUnknown(m)
}

var xxx_messageInfo_DeidentifyConfig proto.InternalMessageInfo

type isDeidentifyConfig_Transformation interface {
	isDeidentifyConfig_Transformation()
}

type DeidentifyConfig_InfoTypeTransformations struct {
	InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,1,opt,name=info_type_transformations,json=infoTypeTransformations,proto3,oneof"`
}

type DeidentifyConfig_RecordTransformations struct {
	RecordTransformations *RecordTransformations `protobuf:"bytes,2,opt,name=record_transformations,json=recordTransformations,proto3,oneof"`
}

func (*DeidentifyConfig_InfoTypeTransformations) isDeidentifyConfig_Transformation() {}

func (*DeidentifyConfig_RecordTransformations) isDeidentifyConfig_Transformation() {}

func (m *DeidentifyConfig) GetTransformation() isDeidentifyConfig_Transformation {
	if m != nil {
		return m.Transformation
	}
	return nil
}

func (m *DeidentifyConfig) GetInfoTypeTransformations() *InfoTypeTransformations {
	if x, ok := m.GetTransformation().(*DeidentifyConfig_InfoTypeTransformations); ok {
		return x.InfoTypeTransformations
	}
	return nil
}

func (m *DeidentifyConfig) GetRecordTransformations() *RecordTransformations {
	if x, ok := m.GetTransformation().(*DeidentifyConfig_RecordTransformations); ok {
		return x.RecordTransformations
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*DeidentifyConfig) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*DeidentifyConfig_InfoTypeTransformations)(nil),
		(*DeidentifyConfig_RecordTransformations)(nil),
	}
}

// A rule for transforming a value.
type PrimitiveTransformation struct {
	// Types that are valid to be assigned to Transformation:
	//	*PrimitiveTransformation_ReplaceConfig
	//	*PrimitiveTransformation_RedactConfig
	//	*PrimitiveTransformation_CharacterMaskConfig
	//	*PrimitiveTransformation_CryptoReplaceFfxFpeConfig
	//	*PrimitiveTransformation_FixedSizeBucketingConfig
	//	*PrimitiveTransformation_BucketingConfig
	//	*PrimitiveTransformation_ReplaceWithInfoTypeConfig
	//	*PrimitiveTransformation_TimePartConfig
	//	*PrimitiveTransformation_CryptoHashConfig
	//	*PrimitiveTransformation_DateShiftConfig
	//	*PrimitiveTransformation_CryptoDeterministicConfig
	Transformation       isPrimitiveTransformation_Transformation `protobuf_oneof:"transformation"`
	XXX_NoUnkeyedLiteral struct{}                                 `json:"-"`
	XXX_unrecognized     []byte                                   `json:"-"`
	XXX_sizecache        int32                                    `json:"-"`
}

func (m *PrimitiveTransformation) Reset()         { *m = PrimitiveTransformation{} }
func (m *PrimitiveTransformation) String() string { return proto.CompactTextString(m) }
func (*PrimitiveTransformation) ProtoMessage()    {}
func (*PrimitiveTransformation) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{43}
}

func (m *PrimitiveTransformation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PrimitiveTransformation.Unmarshal(m, b)
}
func (m *PrimitiveTransformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PrimitiveTransformation.Marshal(b, m, deterministic)
}
func (m *PrimitiveTransformation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PrimitiveTransformation.Merge(m, src)
}
func (m *PrimitiveTransformation) XXX_Size() int {
	return xxx_messageInfo_PrimitiveTransformation.Size(m)
}
func (m *PrimitiveTransformation) XXX_DiscardUnknown() {
	xxx_messageInfo_PrimitiveTransformation.DiscardUnknown(m)
}

var xxx_messageInfo_PrimitiveTransformation proto.InternalMessageInfo

type isPrimitiveTransformation_Transformation interface {
	isPrimitiveTransformation_Transformation()
}

type PrimitiveTransformation_ReplaceConfig struct {
	ReplaceConfig *ReplaceValueConfig `protobuf:"bytes,1,opt,name=replace_config,json=replaceConfig,proto3,oneof"`
}

type PrimitiveTransformation_RedactConfig struct {
	RedactConfig *RedactConfig `protobuf:"bytes,2,opt,name=redact_config,json=redactConfig,proto3,oneof"`
}

type PrimitiveTransformation_CharacterMaskConfig struct {
	CharacterMaskConfig *CharacterMaskConfig `protobuf:"bytes,3,opt,name=character_mask_config,json=characterMaskConfig,proto3,oneof"`
}

type PrimitiveTransformation_CryptoReplaceFfxFpeConfig struct {
	CryptoReplaceFfxFpeConfig *CryptoReplaceFfxFpeConfig `protobuf:"bytes,4,opt,name=crypto_replace_ffx_fpe_config,json=cryptoReplaceFfxFpeConfig,proto3,oneof"`
}

type PrimitiveTransformation_FixedSizeBucketingConfig struct {
	FixedSizeBucketingConfig *FixedSizeBucketingConfig `protobuf:"bytes,5,opt,name=fixed_size_bucketing_config,json=fixedSizeBucketingConfig,proto3,oneof"`
}

type PrimitiveTransformation_BucketingConfig struct {
	BucketingConfig *BucketingConfig `protobuf:"bytes,6,opt,name=bucketing_config,json=bucketingConfig,proto3,oneof"`
}

type PrimitiveTransformation_ReplaceWithInfoTypeConfig struct {
	ReplaceWithInfoTypeConfig *ReplaceWithInfoTypeConfig `protobuf:"bytes,7,opt,name=replace_with_info_type_config,json=replaceWithInfoTypeConfig,proto3,oneof"`
}

type PrimitiveTransformation_TimePartConfig struct {
	TimePartConfig *TimePartConfig `protobuf:"bytes,8,opt,name=time_part_config,json=timePartConfig,proto3,oneof"`
}

type PrimitiveTransformation_CryptoHashConfig struct {
	CryptoHashConfig *CryptoHashConfig `protobuf:"bytes,9,opt,name=crypto_hash_config,json=cryptoHashConfig,proto3,oneof"`
}

type PrimitiveTransformation_DateShiftConfig struct {
	DateShiftConfig *DateShiftConfig `protobuf:"bytes,11,opt,name=date_shift_config,json=dateShiftConfig,proto3,oneof"`
}

type PrimitiveTransformation_CryptoDeterministicConfig struct {
	CryptoDeterministicConfig *CryptoDeterministicConfig `protobuf:"bytes,12,opt,name=crypto_deterministic_config,json=cryptoDeterministicConfig,proto3,oneof"`
}

func (*PrimitiveTransformation_ReplaceConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_RedactConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_CharacterMaskConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_CryptoReplaceFfxFpeConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_FixedSizeBucketingConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_BucketingConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_ReplaceWithInfoTypeConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_TimePartConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_CryptoHashConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_DateShiftConfig) isPrimitiveTransformation_Transformation() {}

func (*PrimitiveTransformation_CryptoDeterministicConfig) isPrimitiveTransformation_Transformation() {}

func (m *PrimitiveTransformation) GetTransformation() isPrimitiveTransformation_Transformation {
	if m != nil {
		return m.Transformation
	}
	return nil
}

func (m *PrimitiveTransformation) GetReplaceConfig() *ReplaceValueConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_ReplaceConfig); ok {
		return x.ReplaceConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetRedactConfig() *RedactConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_RedactConfig); ok {
		return x.RedactConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetCharacterMaskConfig() *CharacterMaskConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_CharacterMaskConfig); ok {
		return x.CharacterMaskConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetCryptoReplaceFfxFpeConfig() *CryptoReplaceFfxFpeConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_CryptoReplaceFfxFpeConfig); ok {
		return x.CryptoReplaceFfxFpeConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetFixedSizeBucketingConfig() *FixedSizeBucketingConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_FixedSizeBucketingConfig); ok {
		return x.FixedSizeBucketingConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetBucketingConfig() *BucketingConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_BucketingConfig); ok {
		return x.BucketingConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetReplaceWithInfoTypeConfig() *ReplaceWithInfoTypeConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_ReplaceWithInfoTypeConfig); ok {
		return x.ReplaceWithInfoTypeConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetTimePartConfig() *TimePartConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_TimePartConfig); ok {
		return x.TimePartConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetCryptoHashConfig() *CryptoHashConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_CryptoHashConfig); ok {
		return x.CryptoHashConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetDateShiftConfig() *DateShiftConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_DateShiftConfig); ok {
		return x.DateShiftConfig
	}
	return nil
}

func (m *PrimitiveTransformation) GetCryptoDeterministicConfig() *CryptoDeterministicConfig {
	if x, ok := m.GetTransformation().(*PrimitiveTransformation_CryptoDeterministicConfig); ok {
		return x.CryptoDeterministicConfig
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*PrimitiveTransformation) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*PrimitiveTransformation_ReplaceConfig)(nil),
		(*PrimitiveTransformation_RedactConfig)(nil),
		(*PrimitiveTransformation_CharacterMaskConfig)(nil),
		(*PrimitiveTransformation_CryptoReplaceFfxFpeConfig)(nil),
		(*PrimitiveTransformation_FixedSizeBucketingConfig)(nil),
		(*PrimitiveTransformation_BucketingConfig)(nil),
		(*PrimitiveTransformation_ReplaceWithInfoTypeConfig)(nil),
		(*PrimitiveTransformation_TimePartConfig)(nil),
		(*PrimitiveTransformation_CryptoHashConfig)(nil),
		(*PrimitiveTransformation_DateShiftConfig)(nil),
		(*PrimitiveTransformation_CryptoDeterministicConfig)(nil),
	}
}

// For use with `Date`, `Timestamp`, and `TimeOfDay`, extract or preserve a
// portion of the value.
type TimePartConfig struct {
	PartToExtract        TimePartConfig_TimePart `protobuf:"varint,1,opt,name=part_to_extract,json=partToExtract,proto3,enum=google.privacy.dlp.v2.TimePartConfig_TimePart" json:"part_to_extract,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *TimePartConfig) Reset()         { *m = TimePartConfig{} }
func (m *TimePartConfig) String() string { return proto.CompactTextString(m) }
func (*TimePartConfig) ProtoMessage()    {}
func (*TimePartConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{44}
}

func (m *TimePartConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TimePartConfig.Unmarshal(m, b)
}
func (m *TimePartConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TimePartConfig.Marshal(b, m, deterministic)
}
func (m *TimePartConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TimePartConfig.Merge(m, src)
}
func (m *TimePartConfig) XXX_Size() int {
	return xxx_messageInfo_TimePartConfig.Size(m)
}
func (m *TimePartConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_TimePartConfig.DiscardUnknown(m)
}

var xxx_messageInfo_TimePartConfig proto.InternalMessageInfo

func (m *TimePartConfig) GetPartToExtract() TimePartConfig_TimePart {
	if m != nil {
		return m.PartToExtract
	}
	return TimePartConfig_TIME_PART_UNSPECIFIED
}

// Pseudonymization method that generates surrogates via cryptographic hashing.
// Uses SHA-256.
// The key size must be either 32 or 64 bytes.
// Outputs a base64 encoded representation of the hashed output
// (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).
// Currently, only string and integer values can be hashed.
// See https://cloud.google.com/dlp/docs/pseudonymization to learn more.
type CryptoHashConfig struct {
	// The key used by the hash function.
	CryptoKey            *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *CryptoHashConfig) Reset()         { *m = CryptoHashConfig{} }
func (m *CryptoHashConfig) String() string { return proto.CompactTextString(m) }
func (*CryptoHashConfig) ProtoMessage()    {}
func (*CryptoHashConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{45}
}

func (m *CryptoHashConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CryptoHashConfig.Unmarshal(m, b)
}
func (m *CryptoHashConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CryptoHashConfig.Marshal(b, m, deterministic)
}
func (m *CryptoHashConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CryptoHashConfig.Merge(m, src)
}
func (m *CryptoHashConfig) XXX_Size() int {
	return xxx_messageInfo_CryptoHashConfig.Size(m)
}
func (m *CryptoHashConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_CryptoHashConfig.DiscardUnknown(m)
}

var xxx_messageInfo_CryptoHashConfig proto.InternalMessageInfo

func (m *CryptoHashConfig) GetCryptoKey() *CryptoKey {
	if m != nil {
		return m.CryptoKey
	}
	return nil
}

// Pseudonymization method that generates deterministic encryption for the given
// input. Outputs a base64 encoded representation of the encrypted output.
// Uses AES-SIV based on the RFC https://tools.ietf.org/html/rfc5297.
type CryptoDeterministicConfig struct {
	// The key used by the encryption function.
	CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"`
	// The custom info type to annotate the surrogate with.
	// This annotation will be applied to the surrogate by prefixing it with
	// the name of the custom info type followed by the number of
	// characters comprising the surrogate. The following scheme defines the
	// format: <info type name>(<surrogate character count>):<surrogate>
	//
	// For example, if the name of custom info type is 'MY_TOKEN_INFO_TYPE' and
	// the surrogate is 'abc', the full replacement value
	// will be: 'MY_TOKEN_INFO_TYPE(3):abc'
	//
	// This annotation identifies the surrogate when inspecting content using the
	// custom info type 'Surrogate'. This facilitates reversal of the
	// surrogate when it occurs in free text.
	//
	// In order for inspection to work properly, the name of this info type must
	// not occur naturally anywhere in your data; otherwise, inspection may either
	//
	// - reverse a surrogate that does not correspond to an actual identifier
	// - be unable to parse the surrogate and result in an error
	//
	// Therefore, choose your custom info type name carefully after considering
	// what your data looks like. One way to select a name that has a high chance
	// of yielding reliable detection is to include one or more unicode characters
	// that are highly improbable to exist in your data.
	// For example, assuming your data is entered from a regular ASCII keyboard,
	// the symbol with the hex code point 29DD might be used like so:
	// ⧝MY_TOKEN_TYPE
	SurrogateInfoType *InfoType `protobuf:"bytes,2,opt,name=surrogate_info_type,json=surrogateInfoType,proto3" json:"surrogate_info_type,omitempty"`
	// Optional. A context may be used for higher security and maintaining
	// referential integrity such that the same identifier in two different
	// contexts will be given a distinct surrogate. The context is appended to
	// plaintext value being encrypted. On decryption the provided context is
	// validated against the value used during encryption. If a context was
	// provided during encryption, same context must be provided during decryption
	// as well.
	//
	// If the context is not set, plaintext would be used as is for encryption.
	// If the context is set but:
	//
	// 1. there is no record present when transforming a given value or
	// 2. the field is not present when transforming a given value,
	//
	// plaintext would be used as is for encryption.
	//
	// Note that case (1) is expected when an `InfoTypeTransformation` is
	// applied to both structured and non-structured `ContentItem`s.
	Context              *FieldId `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CryptoDeterministicConfig) Reset()         { *m = CryptoDeterministicConfig{} }
func (m *CryptoDeterministicConfig) String() string { return proto.CompactTextString(m) }
func (*CryptoDeterministicConfig) ProtoMessage()    {}
func (*CryptoDeterministicConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{46}
}

func (m *CryptoDeterministicConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CryptoDeterministicConfig.Unmarshal(m, b)
}
func (m *CryptoDeterministicConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CryptoDeterministicConfig.Marshal(b, m, deterministic)
}
func (m *CryptoDeterministicConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CryptoDeterministicConfig.Merge(m, src)
}
func (m *CryptoDeterministicConfig) XXX_Size() int {
	return xxx_messageInfo_CryptoDeterministicConfig.Size(m)
}
func (m *CryptoDeterministicConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_CryptoDeterministicConfig.DiscardUnknown(m)
}

var xxx_messageInfo_CryptoDeterministicConfig proto.InternalMessageInfo

func (m *CryptoDeterministicConfig) GetCryptoKey() *CryptoKey {
	if m != nil {
		return m.CryptoKey
	}
	return nil
}

func (m *CryptoDeterministicConfig) GetSurrogateInfoType() *InfoType {
	if m != nil {
		return m.SurrogateInfoType
	}
	return nil
}

func (m *CryptoDeterministicConfig) GetContext() *FieldId {
	if m != nil {
		return m.Context
	}
	return nil
}

// Replace each input value with a given `Value`.
type ReplaceValueConfig struct {
	// Value to replace it with.
	NewValue             *Value   `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReplaceValueConfig) Reset()         { *m = ReplaceValueConfig{} }
func (m *ReplaceValueConfig) String() string { return proto.CompactTextString(m) }
func (*ReplaceValueConfig) ProtoMessage()    {}
func (*ReplaceValueConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{47}
}

func (m *ReplaceValueConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReplaceValueConfig.Unmarshal(m, b)
}
func (m *ReplaceValueConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReplaceValueConfig.Marshal(b, m, deterministic)
}
func (m *ReplaceValueConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReplaceValueConfig.Merge(m, src)
}
func (m *ReplaceValueConfig) XXX_Size() int {
	return xxx_messageInfo_ReplaceValueConfig.Size(m)
}
func (m *ReplaceValueConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_ReplaceValueConfig.DiscardUnknown(m)
}

var xxx_messageInfo_ReplaceValueConfig proto.InternalMessageInfo

func (m *ReplaceValueConfig) GetNewValue() *Value {
	if m != nil {
		return m.NewValue
	}
	return nil
}

// Replace each matching finding with the name of the info_type.
type ReplaceWithInfoTypeConfig struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReplaceWithInfoTypeConfig) Reset()         { *m = ReplaceWithInfoTypeConfig{} }
func (m *ReplaceWithInfoTypeConfig) String() string { return proto.CompactTextString(m) }
func (*ReplaceWithInfoTypeConfig) ProtoMessage()    {}
func (*ReplaceWithInfoTypeConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{48}
}

func (m *ReplaceWithInfoTypeConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReplaceWithInfoTypeConfig.Unmarshal(m, b)
}
func (m *ReplaceWithInfoTypeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReplaceWithInfoTypeConfig.Marshal(b, m, deterministic)
}
func (m *ReplaceWithInfoTypeConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReplaceWithInfoTypeConfig.Merge(m, src)
}
func (m *ReplaceWithInfoTypeConfig) XXX_Size() int {
	return xxx_messageInfo_ReplaceWithInfoTypeConfig.Size(m)
}
func (m *ReplaceWithInfoTypeConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_ReplaceWithInfoTypeConfig.DiscardUnknown(m)
}

var xxx_messageInfo_ReplaceWithInfoTypeConfig proto.InternalMessageInfo

// Redact a given value. For example, if used with an `InfoTypeTransformation`
// transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the
// output would be 'My phone number is '.
type RedactConfig struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RedactConfig) Reset()         { *m = RedactConfig{} }
func (m *RedactConfig) String() string { return proto.CompactTextString(m) }
func (*RedactConfig) ProtoMessage()    {}
func (*RedactConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{49}
}

func (m *RedactConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedactConfig.Unmarshal(m, b)
}
func (m *RedactConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedactConfig.Marshal(b, m, deterministic)
}
func (m *RedactConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedactConfig.Merge(m, src)
}
func (m *RedactConfig) XXX_Size() int {
	return xxx_messageInfo_RedactConfig.Size(m)
}
func (m *RedactConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_RedactConfig.DiscardUnknown(m)
}

var xxx_messageInfo_RedactConfig proto.InternalMessageInfo

// Characters to skip when doing deidentification of a value. These will be left
// alone and skipped.
type CharsToIgnore struct {
	// Types that are valid to be assigned to Characters:
	//	*CharsToIgnore_CharactersToSkip
	//	*CharsToIgnore_CommonCharactersToIgnore
	Characters           isCharsToIgnore_Characters `protobuf_oneof:"characters"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

func (m *CharsToIgnore) Reset()         { *m = CharsToIgnore{} }
func (m *CharsToIgnore) String() string { return proto.CompactTextString(m) }
func (*CharsToIgnore) ProtoMessage()    {}
func (*CharsToIgnore) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{50}
}

func (m *CharsToIgnore) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CharsToIgnore.Unmarshal(m, b)
}
func (m *CharsToIgnore) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CharsToIgnore.Marshal(b, m, deterministic)
}
func (m *CharsToIgnore) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CharsToIgnore.Merge(m, src)
}
func (m *CharsToIgnore) XXX_Size() int {
	return xxx_messageInfo_CharsToIgnore.Size(m)
}
func (m *CharsToIgnore) XXX_DiscardUnknown() {
	xxx_messageInfo_CharsToIgnore.DiscardUnknown(m)
}

var xxx_messageInfo_CharsToIgnore proto.InternalMessageInfo

type isCharsToIgnore_Characters interface {
	isCharsToIgnore_Characters()
}

type CharsToIgnore_CharactersToSkip struct {
	CharactersToSkip string `protobuf:"bytes,1,opt,name=characters_to_skip,json=charactersToSkip,proto3,oneof"`
}

type CharsToIgnore_CommonCharactersToIgnore struct {
	CommonCharactersToIgnore CharsToIgnore_CommonCharsToIgnore `protobuf:"varint,2,opt,name=common_characters_to_ignore,json=commonCharactersToIgnore,proto3,enum=google.privacy.dlp.v2.CharsToIgnore_CommonCharsToIgnore,oneof"`
}

func (*CharsToIgnore_CharactersToSkip) isCharsToIgnore_Characters() {}

func (*CharsToIgnore_CommonCharactersToIgnore) isCharsToIgnore_Characters() {}

func (m *CharsToIgnore) GetCharacters() isCharsToIgnore_Characters {
	if m != nil {
		return m.Characters
	}
	return nil
}

func (m *CharsToIgnore) GetCharactersToSkip() string {
	if x, ok := m.GetCharacters().(*CharsToIgnore_CharactersToSkip); ok {
		return x.CharactersToSkip
	}
	return ""
}

func (m *CharsToIgnore) GetCommonCharactersToIgnore() CharsToIgnore_CommonCharsToIgnore {
	if x, ok := m.GetCharacters().(*CharsToIgnore_CommonCharactersToIgnore); ok {
		return x.CommonCharactersToIgnore
	}
	return CharsToIgnore_COMMON_CHARS_TO_IGNORE_UNSPECIFIED
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*CharsToIgnore) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*CharsToIgnore_CharactersToSkip)(nil),
		(*CharsToIgnore_CommonCharactersToIgnore)(nil),
	}
}

// Partially mask a string by replacing a given number of characters with a
// fixed character. Masking can start from the beginning or end of the string.
// This can be used on data of any type (numbers, longs, and so on) and when
// de-identifying structured data we'll attempt to preserve the original data's
// type. (This allows you to take a long like 123 and modify it to a string like
// **3.
type CharacterMaskConfig struct {
	// Character to mask the sensitive values&mdash;for example, "*" for an
	// alphabetic string such as name, or "0" for a numeric string such as ZIP
	// code or credit card number. String must have length 1. If not supplied, we
	// will default to "*" for strings, 0 for digits.
	MaskingCharacter string `protobuf:"bytes,1,opt,name=masking_character,json=maskingCharacter,proto3" json:"masking_character,omitempty"`
	// Number of characters to mask. If not set, all matching chars will be
	// masked. Skipped characters do not count towards this tally.
	NumberToMask int32 `protobuf:"varint,2,opt,name=number_to_mask,json=numberToMask,proto3" json:"number_to_mask,omitempty"`
	// Mask characters in reverse order. For example, if `masking_character` is
	// '0', number_to_mask is 14, and `reverse_order` is false, then
	// 1234-5678-9012-3456 -> 00000000000000-3456
	// If `masking_character` is '*', `number_to_mask` is 3, and `reverse_order`
	// is true, then 12345 -> 12***
	ReverseOrder bool `protobuf:"varint,3,opt,name=reverse_order,json=reverseOrder,proto3" json:"reverse_order,omitempty"`
	// When masking a string, items in this list will be skipped when replacing.
	// For example, if your string is 555-555-5555 and you ask us to skip `-` and
	// mask 5 chars with * we would produce ***-*55-5555.
	CharactersToIgnore   []*CharsToIgnore `protobuf:"bytes,4,rep,name=characters_to_ignore,json=charactersToIgnore,proto3" json:"characters_to_ignore,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *CharacterMaskConfig) Reset()         { *m = CharacterMaskConfig{} }
func (m *CharacterMaskConfig) String() string { return proto.CompactTextString(m) }
func (*CharacterMaskConfig) ProtoMessage()    {}
func (*CharacterMaskConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{51}
}

func (m *CharacterMaskConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CharacterMaskConfig.Unmarshal(m, b)
}
func (m *CharacterMaskConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CharacterMaskConfig.Marshal(b, m, deterministic)
}
func (m *CharacterMaskConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CharacterMaskConfig.Merge(m, src)
}
func (m *CharacterMaskConfig) XXX_Size() int {
	return xxx_messageInfo_CharacterMaskConfig.Size(m)
}
func (m *CharacterMaskConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_CharacterMaskConfig.DiscardUnknown(m)
}

var xxx_messageInfo_CharacterMaskConfig proto.InternalMessageInfo

func (m *CharacterMaskConfig) GetMaskingCharacter() string {
	if m != nil {
		return m.MaskingCharacter
	}
	return ""
}

func (m *CharacterMaskConfig) GetNumberToMask() int32 {
	if m != nil {
		return m.NumberToMask
	}
	return 0
}

func (m *CharacterMaskConfig) GetReverseOrder() bool {
	if m != nil {
		return m.ReverseOrder
	}
	return false
}

func (m *CharacterMaskConfig) GetCharactersToIgnore() []*CharsToIgnore {
	if m != nil {
		return m.CharactersToIgnore
	}
	return nil
}

// Buckets values based on fixed size ranges. The
// Bucketing transformation can provide all of this functionality,
// but requires more configuration. This message is provided as a convenience to
// the user for simple bucketing strategies.
//
// The transformed value will be a hyphenated string of
// <lower_bound>-<upper_bound>, i.e if lower_bound = 10 and upper_bound = 20
// all values that are within this bucket will be replaced with "10-20".
//
// This can be used on data of type: double, long.
//
// If the bound Value type differs from the type of data
// being transformed, we will first attempt converting the type of the data to
// be transformed to match the type of the bound before comparing.
//
// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
type FixedSizeBucketingConfig struct {
	// Lower bound value of buckets. All values less than `lower_bound` are
	// grouped together into a single bucket; for example if `lower_bound` = 10,
	// then all values less than 10 are replaced with the value “-10”. [Required].
	LowerBound *Value `protobuf:"bytes,1,opt,name=lower_bound,json=lowerBound,proto3" json:"lower_bound,omitempty"`
	// Upper bound value of buckets. All values greater than upper_bound are
	// grouped together into a single bucket; for example if `upper_bound` = 89,
	// then all values greater than 89 are replaced with the value “89+”.
	// [Required].
	UpperBound *Value `protobuf:"bytes,2,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"`
	// Size of each bucket (except for minimum and maximum buckets). So if
	// `lower_bound` = 10, `upper_bound` = 89, and `bucket_size` = 10, then the
	// following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60,
	// 60-70, 70-80, 80-89, 89+. Precision up to 2 decimals works. [Required].
	BucketSize           float64  `protobuf:"fixed64,3,opt,name=bucket_size,json=bucketSize,proto3" json:"bucket_size,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FixedSizeBucketingConfig) Reset()         { *m = FixedSizeBucketingConfig{} }
func (m *FixedSizeBucketingConfig) String() string { return proto.CompactTextString(m) }
func (*FixedSizeBucketingConfig) ProtoMessage()    {}
func (*FixedSizeBucketingConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{52}
}

func (m *FixedSizeBucketingConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FixedSizeBucketingConfig.Unmarshal(m, b)
}
func (m *FixedSizeBucketingConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FixedSizeBucketingConfig.Marshal(b, m, deterministic)
}
func (m *FixedSizeBucketingConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FixedSizeBucketingConfig.Merge(m, src)
}
func (m *FixedSizeBucketingConfig) XXX_Size() int {
	return xxx_messageInfo_FixedSizeBucketingConfig.Size(m)
}
func (m *FixedSizeBucketingConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_FixedSizeBucketingConfig.DiscardUnknown(m)
}

var xxx_messageInfo_FixedSizeBucketingConfig proto.InternalMessageInfo

func (m *FixedSizeBucketingConfig) GetLowerBound() *Value {
	if m != nil {
		return m.LowerBound
	}
	return nil
}

func (m *FixedSizeBucketingConfig) GetUpperBound() *Value {
	if m != nil {
		return m.UpperBound
	}
	return nil
}

func (m *FixedSizeBucketingConfig) GetBucketSize() float64 {
	if m != nil {
		return m.BucketSize
	}
	return 0
}

// Generalization function that buckets values based on ranges. The ranges and
// replacement values are dynamically provided by the user for custom behavior,
// such as 1-30 -> LOW 31-65 -> MEDIUM 66-100 -> HIGH
// This can be used on
// data of type: number, long, string, timestamp.
// If the bound `Value` type differs from the type of data being transformed, we
// will first attempt converting the type of the data to be transformed to match
// the type of the bound before comparing.
// See https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.
type BucketingConfig struct {
	// Set of buckets. Ranges must be non-overlapping.
	Buckets              []*BucketingConfig_Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *BucketingConfig) Reset()         { *m = BucketingConfig{} }
func (m *BucketingConfig) String() string { return proto.CompactTextString(m) }
func (*BucketingConfig) ProtoMessage()    {}
func (*BucketingConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{53}
}

func (m *BucketingConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BucketingConfig.Unmarshal(m, b)
}
func (m *BucketingConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BucketingConfig.Marshal(b, m, deterministic)
}
func (m *BucketingConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BucketingConfig.Merge(m, src)
}
func (m *BucketingConfig) XXX_Size() int {
	return xxx_messageInfo_BucketingConfig.Size(m)
}
func (m *BucketingConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_BucketingConfig.DiscardUnknown(m)
}

var xxx_messageInfo_BucketingConfig proto.InternalMessageInfo

func (m *BucketingConfig) GetBuckets() []*BucketingConfig_Bucket {
	if m != nil {
		return m.Buckets
	}
	return nil
}

// Bucket is represented as a range, along with replacement values.
type BucketingConfig_Bucket struct {
	// Lower bound of the range, inclusive. Type should be the same as max if
	// used.
	Min *Value `protobuf:"bytes,1,opt,name=min,proto3" json:"min,omitempty"`
	// Upper bound of the range, exclusive; type must match min.
	Max *Value `protobuf:"bytes,2,opt,name=max,proto3" json:"max,omitempty"`
	// Replacement value for this bucket. If not provided
	// the default behavior will be to hyphenate the min-max range.
	ReplacementValue     *Value   `protobuf:"bytes,3,opt,name=replacement_value,json=replacementValue,proto3" json:"replacement_value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BucketingConfig_Bucket) Reset()         { *m = BucketingConfig_Bucket{} }
func (m *BucketingConfig_Bucket) String() string { return proto.CompactTextString(m) }
func (*BucketingConfig_Bucket) ProtoMessage()    {}
func (*BucketingConfig_Bucket) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{53, 0}
}

func (m *BucketingConfig_Bucket) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BucketingConfig_Bucket.Unmarshal(m, b)
}
func (m *BucketingConfig_Bucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BucketingConfig_Bucket.Marshal(b, m, deterministic)
}
func (m *BucketingConfig_Bucket) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BucketingConfig_Bucket.Merge(m, src)
}
func (m *BucketingConfig_Bucket) XXX_Size() int {
	return xxx_messageInfo_BucketingConfig_Bucket.Size(m)
}
func (m *BucketingConfig_Bucket) XXX_DiscardUnknown() {
	xxx_messageInfo_BucketingConfig_Bucket.DiscardUnknown(m)
}

var xxx_messageInfo_BucketingConfig_Bucket proto.InternalMessageInfo

func (m *BucketingConfig_Bucket) GetMin() *Value {
	if m != nil {
		return m.Min
	}
	return nil
}

func (m *BucketingConfig_Bucket) GetMax() *Value {
	if m != nil {
		return m.Max
	}
	return nil
}

func (m *BucketingConfig_Bucket) GetReplacementValue() *Value {
	if m != nil {
		return m.ReplacementValue
	}
	return nil
}

// Replaces an identifier with a surrogate using Format Preserving Encryption
// (FPE) with the FFX mode of operation; however when used in the
// `ReidentifyContent` API method, it serves the opposite function by reversing
// the surrogate back into the original identifier. The identifier must be
// encoded as ASCII. For a given crypto key and context, the same identifier
// will be replaced with the same surrogate. Identifiers must be at least two
// characters long. In the case that the identifier is the empty string, it will
// be skipped. See https://cloud.google.com/dlp/docs/pseudonymization to learn
// more.
//
// Note: We recommend using  CryptoDeterministicConfig for all use cases which
// do not require preserving the input alphabet space and size, plus warrant
// referential integrity.
type CryptoReplaceFfxFpeConfig struct {
	// The key used by the encryption algorithm. [required]
	CryptoKey *CryptoKey `protobuf:"bytes,1,opt,name=crypto_key,json=cryptoKey,proto3" json:"crypto_key,omitempty"`
	// The 'tweak', a context may be used for higher security since the same
	// identifier in two different contexts won't be given the same surrogate. If
	// the context is not set, a default tweak will be used.
	//
	// If the context is set but:
	//
	// 1. there is no record present when transforming a given value or
	// 1. the field is not present when transforming a given value,
	//
	// a default tweak will be used.
	//
	// Note that case (1) is expected when an `InfoTypeTransformation` is
	// applied to both structured and non-structured `ContentItem`s.
	// Currently, the referenced field may be of value type integer or string.
	//
	// The tweak is constructed as a sequence of bytes in big endian byte order
	// such that:
	//
	// - a 64 bit integer is encoded followed by a single byte of value 1
	// - a string is encoded in UTF-8 format followed by a single byte of value 2
	Context *FieldId `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"`
	// Types that are valid to be assigned to Alphabet:
	//	*CryptoReplaceFfxFpeConfig_CommonAlphabet
	//	*CryptoReplaceFfxFpeConfig_CustomAlphabet
	//	*CryptoReplaceFfxFpeConfig_Radix
	Alphabet isCryptoReplaceFfxFpeConfig_Alphabet `protobuf_oneof:"alphabet"`
	// The custom infoType to annotate the surrogate with.
	// This annotation will be applied to the surrogate by prefixing it with
	// the name of the custom infoType followed by the number of
	// characters comprising the surrogate. The following scheme defines the
	// format: info_type_name(surrogate_character_count):surrogate
	//
	// For example, if the name of custom infoType is 'MY_TOKEN_INFO_TYPE' and
	// the surrogate is 'abc', the full replacement value
	// will be: 'MY_TOKEN_INFO_TYPE(3):abc'
	//
	// This annotation identifies the surrogate when inspecting content using the
	// custom infoType
	// [`SurrogateType`](/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype).
	// This facilitates reversal of the surrogate when it occurs in free text.
	//
	// In order for inspection to work properly, the name of this infoType must
	// not occur naturally anywhere in your data; otherwise, inspection may
	// find a surrogate that does not correspond to an actual identifier.
	// Therefore, choose your custom infoType name carefully after considering
	// what your data looks like. One way to select a name that has a high chance
	// of yielding reliable detection is to include one or more unicode characters
	// that are highly improbable to exist in your data.
	// For example, assuming your data is entered from a regular ASCII keyboard,
	// the symbol with the hex code point 29DD might be used like so:
	// ⧝MY_TOKEN_TYPE
	SurrogateInfoType    *InfoType `protobuf:"bytes,8,opt,name=surrogate_info_type,json=surrogateInfoType,proto3" json:"surrogate_info_type,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *CryptoReplaceFfxFpeConfig) Reset()         { *m = CryptoReplaceFfxFpeConfig{} }
func (m *CryptoReplaceFfxFpeConfig) String() string { return proto.CompactTextString(m) }
func (*CryptoReplaceFfxFpeConfig) ProtoMessage()    {}
func (*CryptoReplaceFfxFpeConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{54}
}

func (m *CryptoReplaceFfxFpeConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CryptoReplaceFfxFpeConfig.Unmarshal(m, b)
}
func (m *CryptoReplaceFfxFpeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CryptoReplaceFfxFpeConfig.Marshal(b, m, deterministic)
}
func (m *CryptoReplaceFfxFpeConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CryptoReplaceFfxFpeConfig.Merge(m, src)
}
func (m *CryptoReplaceFfxFpeConfig) XXX_Size() int {
	return xxx_messageInfo_CryptoReplaceFfxFpeConfig.Size(m)
}
func (m *CryptoReplaceFfxFpeConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_CryptoReplaceFfxFpeConfig.DiscardUnknown(m)
}

var xxx_messageInfo_CryptoReplaceFfxFpeConfig proto.InternalMessageInfo

func (m *CryptoReplaceFfxFpeConfig) GetCryptoKey() *CryptoKey {
	if m != nil {
		return m.CryptoKey
	}
	return nil
}

func (m *CryptoReplaceFfxFpeConfig) GetContext() *FieldId {
	if m != nil {
		return m.Context
	}
	return nil
}

type isCryptoReplaceFfxFpeConfig_Alphabet interface {
	isCryptoReplaceFfxFpeConfig_Alphabet()
}

type CryptoReplaceFfxFpeConfig_CommonAlphabet struct {
	CommonAlphabet CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet `protobuf:"varint,4,opt,name=common_alphabet,json=commonAlphabet,proto3,enum=google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet,oneof"`
}

type CryptoReplaceFfxFpeConfig_CustomAlphabet struct {
	CustomAlphabet string `protobuf:"bytes,5,opt,name=custom_alphabet,json=customAlphabet,proto3,oneof"`
}

type CryptoReplaceFfxFpeConfig_Radix struct {
	Radix int32 `protobuf:"varint,6,opt,name=radix,proto3,oneof"`
}

func (*CryptoReplaceFfxFpeConfig_CommonAlphabet) isCryptoReplaceFfxFpeConfig_Alphabet() {}

func (*CryptoReplaceFfxFpeConfig_CustomAlphabet) isCryptoReplaceFfxFpeConfig_Alphabet() {}

func (*CryptoReplaceFfxFpeConfig_Radix) isCryptoReplaceFfxFpeConfig_Alphabet() {}

func (m *CryptoReplaceFfxFpeConfig) GetAlphabet() isCryptoReplaceFfxFpeConfig_Alphabet {
	if m != nil {
		return m.Alphabet
	}
	return nil
}

func (m *CryptoReplaceFfxFpeConfig) GetCommonAlphabet() CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet {
	if x, ok := m.GetAlphabet().(*CryptoReplaceFfxFpeConfig_CommonAlphabet); ok {
		return x.CommonAlphabet
	}
	return CryptoReplaceFfxFpeConfig_FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED
}

func (m *CryptoReplaceFfxFpeConfig) GetCustomAlphabet() string {
	if x, ok := m.GetAlphabet().(*CryptoReplaceFfxFpeConfig_CustomAlphabet); ok {
		return x.CustomAlphabet
	}
	return ""
}

func (m *CryptoReplaceFfxFpeConfig) GetRadix() int32 {
	if x, ok := m.GetAlphabet().(*CryptoReplaceFfxFpeConfig_Radix); ok {
		return x.Radix
	}
	return 0
}

func (m *CryptoReplaceFfxFpeConfig) GetSurrogateInfoType() *InfoType {
	if m != nil {
		return m.SurrogateInfoType
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*CryptoReplaceFfxFpeConfig) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*CryptoReplaceFfxFpeConfig_CommonAlphabet)(nil),
		(*CryptoReplaceFfxFpeConfig_CustomAlphabet)(nil),
		(*CryptoReplaceFfxFpeConfig_Radix)(nil),
	}
}

// This is a data encryption key (DEK) (as opposed to
// a key encryption key (KEK) stored by KMS).
// When using KMS to wrap/unwrap DEKs, be sure to set an appropriate
// IAM policy on the KMS CryptoKey (KEK) to ensure an attacker cannot
// unwrap the data crypto key.
type CryptoKey struct {
	// Types that are valid to be assigned to Source:
	//	*CryptoKey_Transient
	//	*CryptoKey_Unwrapped
	//	*CryptoKey_KmsWrapped
	Source               isCryptoKey_Source `protobuf_oneof:"source"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *CryptoKey) Reset()         { *m = CryptoKey{} }
func (m *CryptoKey) String() string { return proto.CompactTextString(m) }
func (*CryptoKey) ProtoMessage()    {}
func (*CryptoKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{55}
}

func (m *CryptoKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CryptoKey.Unmarshal(m, b)
}
func (m *CryptoKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CryptoKey.Marshal(b, m, deterministic)
}
func (m *CryptoKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CryptoKey.Merge(m, src)
}
func (m *CryptoKey) XXX_Size() int {
	return xxx_messageInfo_CryptoKey.Size(m)
}
func (m *CryptoKey) XXX_DiscardUnknown() {
	xxx_messageInfo_CryptoKey.DiscardUnknown(m)
}

var xxx_messageInfo_CryptoKey proto.InternalMessageInfo

type isCryptoKey_Source interface {
	isCryptoKey_Source()
}

type CryptoKey_Transient struct {
	Transient *TransientCryptoKey `protobuf:"bytes,1,opt,name=transient,proto3,oneof"`
}

type CryptoKey_Unwrapped struct {
	Unwrapped *UnwrappedCryptoKey `protobuf:"bytes,2,opt,name=unwrapped,proto3,oneof"`
}

type CryptoKey_KmsWrapped struct {
	KmsWrapped *KmsWrappedCryptoKey `protobuf:"bytes,3,opt,name=kms_wrapped,json=kmsWrapped,proto3,oneof"`
}

func (*CryptoKey_Transient) isCryptoKey_Source() {}

func (*CryptoKey_Unwrapped) isCryptoKey_Source() {}

func (*CryptoKey_KmsWrapped) isCryptoKey_Source() {}

func (m *CryptoKey) GetSource() isCryptoKey_Source {
	if m != nil {
		return m.Source
	}
	return nil
}

func (m *CryptoKey) GetTransient() *TransientCryptoKey {
	if x, ok := m.GetSource().(*CryptoKey_Transient); ok {
		return x.Transient
	}
	return nil
}

func (m *CryptoKey) GetUnwrapped() *UnwrappedCryptoKey {
	if x, ok := m.GetSource().(*CryptoKey_Unwrapped); ok {
		return x.Unwrapped
	}
	return nil
}

func (m *CryptoKey) GetKmsWrapped() *KmsWrappedCryptoKey {
	if x, ok := m.GetSource().(*CryptoKey_KmsWrapped); ok {
		return x.KmsWrapped
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*CryptoKey) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*CryptoKey_Transient)(nil),
		(*CryptoKey_Unwrapped)(nil),
		(*CryptoKey_KmsWrapped)(nil),
	}
}

// Use this to have a random data crypto key generated.
// It will be discarded after the request finishes.
type TransientCryptoKey struct {
	// Name of the key. [required]
	// This is an arbitrary string used to differentiate different keys.
	// A unique key is generated per name: two separate `TransientCryptoKey`
	// protos share the same generated key if their names are the same.
	// When the data crypto key is generated, this name is not used in any way
	// (repeating the api call will result in a different key being generated).
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TransientCryptoKey) Reset()         { *m = TransientCryptoKey{} }
func (m *TransientCryptoKey) String() string { return proto.CompactTextString(m) }
func (*TransientCryptoKey) ProtoMessage()    {}
func (*TransientCryptoKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{56}
}

func (m *TransientCryptoKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransientCryptoKey.Unmarshal(m, b)
}
func (m *TransientCryptoKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransientCryptoKey.Marshal(b, m, deterministic)
}
func (m *TransientCryptoKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransientCryptoKey.Merge(m, src)
}
func (m *TransientCryptoKey) XXX_Size() int {
	return xxx_messageInfo_TransientCryptoKey.Size(m)
}
func (m *TransientCryptoKey) XXX_DiscardUnknown() {
	xxx_messageInfo_TransientCryptoKey.DiscardUnknown(m)
}

var xxx_messageInfo_TransientCryptoKey proto.InternalMessageInfo

func (m *TransientCryptoKey) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Using raw keys is prone to security risks due to accidentally
// leaking the key. Choose another type of key if possible.
type UnwrappedCryptoKey struct {
	// A 128/192/256 bit key. [required]
	Key                  []byte   `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UnwrappedCryptoKey) Reset()         { *m = UnwrappedCryptoKey{} }
func (m *UnwrappedCryptoKey) String() string { return proto.CompactTextString(m) }
func (*UnwrappedCryptoKey) ProtoMessage()    {}
func (*UnwrappedCryptoKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{57}
}

func (m *UnwrappedCryptoKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnwrappedCryptoKey.Unmarshal(m, b)
}
func (m *UnwrappedCryptoKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnwrappedCryptoKey.Marshal(b, m, deterministic)
}
func (m *UnwrappedCryptoKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnwrappedCryptoKey.Merge(m, src)
}
func (m *UnwrappedCryptoKey) XXX_Size() int {
	return xxx_messageInfo_UnwrappedCryptoKey.Size(m)
}
func (m *UnwrappedCryptoKey) XXX_DiscardUnknown() {
	xxx_messageInfo_UnwrappedCryptoKey.DiscardUnknown(m)
}

var xxx_messageInfo_UnwrappedCryptoKey proto.InternalMessageInfo

func (m *UnwrappedCryptoKey) GetKey() []byte {
	if m != nil {
		return m.Key
	}
	return nil
}

// Include to use an existing data crypto key wrapped by KMS.
// The wrapped key must be a 128/192/256 bit key.
// Authorization requires the following IAM permissions when sending a request
// to perform a crypto transformation using a kms-wrapped crypto key:
// dlp.kms.encrypt
type KmsWrappedCryptoKey struct {
	// The wrapped data crypto key. [required]
	WrappedKey []byte `protobuf:"bytes,1,opt,name=wrapped_key,json=wrappedKey,proto3" json:"wrapped_key,omitempty"`
	// The resource name of the KMS CryptoKey to use for unwrapping. [required]
	CryptoKeyName        string   `protobuf:"bytes,2,opt,name=crypto_key_name,json=cryptoKeyName,proto3" json:"crypto_key_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *KmsWrappedCryptoKey) Reset()         { *m = KmsWrappedCryptoKey{} }
func (m *KmsWrappedCryptoKey) String() string { return proto.CompactTextString(m) }
func (*KmsWrappedCryptoKey) ProtoMessage()    {}
func (*KmsWrappedCryptoKey) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{58}
}

func (m *KmsWrappedCryptoKey) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_KmsWrappedCryptoKey.Unmarshal(m, b)
}
func (m *KmsWrappedCryptoKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_KmsWrappedCryptoKey.Marshal(b, m, deterministic)
}
func (m *KmsWrappedCryptoKey) XXX_Merge(src proto.Message) {
	xxx_messageInfo_KmsWrappedCryptoKey.Merge(m, src)
}
func (m *KmsWrappedCryptoKey) XXX_Size() int {
	return xxx_messageInfo_KmsWrappedCryptoKey.Size(m)
}
func (m *KmsWrappedCryptoKey) XXX_DiscardUnknown() {
	xxx_messageInfo_KmsWrappedCryptoKey.DiscardUnknown(m)
}

var xxx_messageInfo_KmsWrappedCryptoKey proto.InternalMessageInfo

func (m *KmsWrappedCryptoKey) GetWrappedKey() []byte {
	if m != nil {
		return m.WrappedKey
	}
	return nil
}

func (m *KmsWrappedCryptoKey) GetCryptoKeyName() string {
	if m != nil {
		return m.CryptoKeyName
	}
	return ""
}

// Shifts dates by random number of days, with option to be consistent for the
// same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting
// to learn more.
type DateShiftConfig struct {
	// Range of shift in days. Actual shift will be selected at random within this
	// range (inclusive ends). Negative means shift to earlier in time. Must not
	// be more than 365250 days (1000 years) each direction.
	//
	// For example, 3 means shift date to at most 3 days into the future.
	// [Required]
	UpperBoundDays int32 `protobuf:"varint,1,opt,name=upper_bound_days,json=upperBoundDays,proto3" json:"upper_bound_days,omitempty"`
	// For example, -5 means shift date to at most 5 days back in the past.
	// [Required]
	LowerBoundDays int32 `protobuf:"varint,2,opt,name=lower_bound_days,json=lowerBoundDays,proto3" json:"lower_bound_days,omitempty"`
	// Points to the field that contains the context, for example, an entity id.
	// If set, must also set method. If set, shift will be consistent for the
	// given context.
	Context *FieldId `protobuf:"bytes,3,opt,name=context,proto3" json:"context,omitempty"`
	// Method for calculating shift that takes context into consideration. If
	// set, must also set context. Can only be applied to table items.
	//
	// Types that are valid to be assigned to Method:
	//	*DateShiftConfig_CryptoKey
	Method               isDateShiftConfig_Method `protobuf_oneof:"method"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *DateShiftConfig) Reset()         { *m = DateShiftConfig{} }
func (m *DateShiftConfig) String() string { return proto.CompactTextString(m) }
func (*DateShiftConfig) ProtoMessage()    {}
func (*DateShiftConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{59}
}

func (m *DateShiftConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DateShiftConfig.Unmarshal(m, b)
}
func (m *DateShiftConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DateShiftConfig.Marshal(b, m, deterministic)
}
func (m *DateShiftConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DateShiftConfig.Merge(m, src)
}
func (m *DateShiftConfig) XXX_Size() int {
	return xxx_messageInfo_DateShiftConfig.Size(m)
}
func (m *DateShiftConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_DateShiftConfig.DiscardUnknown(m)
}

var xxx_messageInfo_DateShiftConfig proto.InternalMessageInfo

func (m *DateShiftConfig) GetUpperBoundDays() int32 {
	if m != nil {
		return m.UpperBoundDays
	}
	return 0
}

func (m *DateShiftConfig) GetLowerBoundDays() int32 {
	if m != nil {
		return m.LowerBoundDays
	}
	return 0
}

func (m *DateShiftConfig) GetContext() *FieldId {
	if m != nil {
		return m.Context
	}
	return nil
}

type isDateShiftConfig_Method interface {
	isDateShiftConfig_Method()
}

type DateShiftConfig_CryptoKey struct {
	CryptoKey *CryptoKey `protobuf:"bytes,4,opt,name=crypto_key,json=cryptoKey,proto3,oneof"`
}

func (*DateShiftConfig_CryptoKey) isDateShiftConfig_Method() {}

func (m *DateShiftConfig) GetMethod() isDateShiftConfig_Method {
	if m != nil {
		return m.Method
	}
	return nil
}

func (m *DateShiftConfig) GetCryptoKey() *CryptoKey {
	if x, ok := m.GetMethod().(*DateShiftConfig_CryptoKey); ok {
		return x.CryptoKey
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*DateShiftConfig) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*DateShiftConfig_CryptoKey)(nil),
	}
}

// A type of transformation that will scan unstructured text and
// apply various `PrimitiveTransformation`s to each finding, where the
// transformation is applied to only values that were identified as a specific
// info_type.
type InfoTypeTransformations struct {
	// Transformation for each infoType. Cannot specify more than one
	// for a given infoType. [required]
	Transformations      []*InfoTypeTransformations_InfoTypeTransformation `protobuf:"bytes,1,rep,name=transformations,proto3" json:"transformations,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                          `json:"-"`
	XXX_unrecognized     []byte                                            `json:"-"`
	XXX_sizecache        int32                                             `json:"-"`
}

func (m *InfoTypeTransformations) Reset()         { *m = InfoTypeTransformations{} }
func (m *InfoTypeTransformations) String() string { return proto.CompactTextString(m) }
func (*InfoTypeTransformations) ProtoMessage()    {}
func (*InfoTypeTransformations) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{60}
}

func (m *InfoTypeTransformations) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InfoTypeTransformations.Unmarshal(m, b)
}
func (m *InfoTypeTransformations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InfoTypeTransformations.Marshal(b, m, deterministic)
}
func (m *InfoTypeTransformations) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InfoTypeTransformations.Merge(m, src)
}
func (m *InfoTypeTransformations) XXX_Size() int {
	return xxx_messageInfo_InfoTypeTransformations.Size(m)
}
func (m *InfoTypeTransformations) XXX_DiscardUnknown() {
	xxx_messageInfo_InfoTypeTransformations.DiscardUnknown(m)
}

var xxx_messageInfo_InfoTypeTransformations proto.InternalMessageInfo

func (m *InfoTypeTransformations) GetTransformations() []*InfoTypeTransformations_InfoTypeTransformation {
	if m != nil {
		return m.Transformations
	}
	return nil
}

// A transformation to apply to text that is identified as a specific
// info_type.
type InfoTypeTransformations_InfoTypeTransformation struct {
	// InfoTypes to apply the transformation to. An empty list will cause
	// this transformation to apply to all findings that correspond to
	// infoTypes that were requested in `InspectConfig`.
	InfoTypes []*InfoType `protobuf:"bytes,1,rep,name=info_types,json=infoTypes,proto3" json:"info_types,omitempty"`
	// Primitive transformation to apply to the infoType. [required]
	PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,2,opt,name=primitive_transformation,json=primitiveTransformation,proto3" json:"primitive_transformation,omitempty"`
	XXX_NoUnkeyedLiteral    struct{}                 `json:"-"`
	XXX_unrecognized        []byte                   `json:"-"`
	XXX_sizecache           int32                    `json:"-"`
}

func (m *InfoTypeTransformations_InfoTypeTransformation) Reset() {
	*m = InfoTypeTransformations_InfoTypeTransformation{}
}
func (m *InfoTypeTransformations_InfoTypeTransformation) String() string {
	return proto.CompactTextString(m)
}
func (*InfoTypeTransformations_InfoTypeTransformation) ProtoMessage() {}
func (*InfoTypeTransformations_InfoTypeTransformation) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{60, 0}
}

func (m *InfoTypeTransformations_InfoTypeTransformation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InfoTypeTransformations_InfoTypeTransformation.Unmarshal(m, b)
}
func (m *InfoTypeTransformations_InfoTypeTransformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InfoTypeTransformations_InfoTypeTransformation.Marshal(b, m, deterministic)
}
func (m *InfoTypeTransformations_InfoTypeTransformation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InfoTypeTransformations_InfoTypeTransformation.Merge(m, src)
}
func (m *InfoTypeTransformations_InfoTypeTransformation) XXX_Size() int {
	return xxx_messageInfo_InfoTypeTransformations_InfoTypeTransformation.Size(m)
}
func (m *InfoTypeTransformations_InfoTypeTransformation) XXX_DiscardUnknown() {
	xxx_messageInfo_InfoTypeTransformations_InfoTypeTransformation.DiscardUnknown(m)
}

var xxx_messageInfo_InfoTypeTransformations_InfoTypeTransformation proto.InternalMessageInfo

func (m *InfoTypeTransformations_InfoTypeTransformation) GetInfoTypes() []*InfoType {
	if m != nil {
		return m.InfoTypes
	}
	return nil
}

func (m *InfoTypeTransformations_InfoTypeTransformation) GetPrimitiveTransformation() *PrimitiveTransformation {
	if m != nil {
		return m.PrimitiveTransformation
	}
	return nil
}

// The transformation to apply to the field.
type FieldTransformation struct {
	// Input field(s) to apply the transformation to. [required]
	Fields []*FieldId `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"`
	// Only apply the transformation if the condition evaluates to true for the
	// given `RecordCondition`. The conditions are allowed to reference fields
	// that are not used in the actual transformation. [optional]
	//
	// Example Use Cases:
	//
	// - Apply a different bucket transformation to an age column if the zip code
	// column for the same record is within a specific range.
	// - Redact a field if the date of birth field is greater than 85.
	Condition *RecordCondition `protobuf:"bytes,3,opt,name=condition,proto3" json:"condition,omitempty"`
	// Transformation to apply. [required]
	//
	// Types that are valid to be assigned to Transformation:
	//	*FieldTransformation_PrimitiveTransformation
	//	*FieldTransformation_InfoTypeTransformations
	Transformation       isFieldTransformation_Transformation `protobuf_oneof:"transformation"`
	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
	XXX_unrecognized     []byte                               `json:"-"`
	XXX_sizecache        int32                                `json:"-"`
}

func (m *FieldTransformation) Reset()         { *m = FieldTransformation{} }
func (m *FieldTransformation) String() string { return proto.CompactTextString(m) }
func (*FieldTransformation) ProtoMessage()    {}
func (*FieldTransformation) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{61}
}

func (m *FieldTransformation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FieldTransformation.Unmarshal(m, b)
}
func (m *FieldTransformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FieldTransformation.Marshal(b, m, deterministic)
}
func (m *FieldTransformation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FieldTransformation.Merge(m, src)
}
func (m *FieldTransformation) XXX_Size() int {
	return xxx_messageInfo_FieldTransformation.Size(m)
}
func (m *FieldTransformation) XXX_DiscardUnknown() {
	xxx_messageInfo_FieldTransformation.DiscardUnknown(m)
}

var xxx_messageInfo_FieldTransformation proto.InternalMessageInfo

func (m *FieldTransformation) GetFields() []*FieldId {
	if m != nil {
		return m.Fields
	}
	return nil
}

func (m *FieldTransformation) GetCondition() *RecordCondition {
	if m != nil {
		return m.Condition
	}
	return nil
}

type isFieldTransformation_Transformation interface {
	isFieldTransformation_Transformation()
}

type FieldTransformation_PrimitiveTransformation struct {
	PrimitiveTransformation *PrimitiveTransformation `protobuf:"bytes,4,opt,name=primitive_transformation,json=primitiveTransformation,proto3,oneof"`
}

type FieldTransformation_InfoTypeTransformations struct {
	InfoTypeTransformations *InfoTypeTransformations `protobuf:"bytes,5,opt,name=info_type_transformations,json=infoTypeTransformations,proto3,oneof"`
}

func (*FieldTransformation_PrimitiveTransformation) isFieldTransformation_Transformation() {}

func (*FieldTransformation_InfoTypeTransformations) isFieldTransformation_Transformation() {}

func (m *FieldTransformation) GetTransformation() isFieldTransformation_Transformation {
	if m != nil {
		return m.Transformation
	}
	return nil
}

func (m *FieldTransformation) GetPrimitiveTransformation() *PrimitiveTransformation {
	if x, ok := m.GetTransformation().(*FieldTransformation_PrimitiveTransformation); ok {
		return x.PrimitiveTransformation
	}
	return nil
}

func (m *FieldTransformation) GetInfoTypeTransformations() *InfoTypeTransformations {
	if x, ok := m.GetTransformation().(*FieldTransformation_InfoTypeTransformations); ok {
		return x.InfoTypeTransformations
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*FieldTransformation) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*FieldTransformation_PrimitiveTransformation)(nil),
		(*FieldTransformation_InfoTypeTransformations)(nil),
	}
}

// A type of transformation that is applied over structured data such as a
// table.
type RecordTransformations struct {
	// Transform the record by applying various field transformations.
	FieldTransformations []*FieldTransformation `protobuf:"bytes,1,rep,name=field_transformations,json=fieldTransformations,proto3" json:"field_transformations,omitempty"`
	// Configuration defining which records get suppressed entirely. Records that
	// match any suppression rule are omitted from the output [optional].
	RecordSuppressions   []*RecordSuppression `protobuf:"bytes,2,rep,name=record_suppressions,json=recordSuppressions,proto3" json:"record_suppressions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *RecordTransformations) Reset()         { *m = RecordTransformations{} }
func (m *RecordTransformations) String() string { return proto.CompactTextString(m) }
func (*RecordTransformations) ProtoMessage()    {}
func (*RecordTransformations) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{62}
}

func (m *RecordTransformations) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RecordTransformations.Unmarshal(m, b)
}
func (m *RecordTransformations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RecordTransformations.Marshal(b, m, deterministic)
}
func (m *RecordTransformations) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RecordTransformations.Merge(m, src)
}
func (m *RecordTransformations) XXX_Size() int {
	return xxx_messageInfo_RecordTransformations.Size(m)
}
func (m *RecordTransformations) XXX_DiscardUnknown() {
	xxx_messageInfo_RecordTransformations.DiscardUnknown(m)
}

var xxx_messageInfo_RecordTransformations proto.InternalMessageInfo

func (m *RecordTransformations) GetFieldTransformations() []*FieldTransformation {
	if m != nil {
		return m.FieldTransformations
	}
	return nil
}

func (m *RecordTransformations) GetRecordSuppressions() []*RecordSuppression {
	if m != nil {
		return m.RecordSuppressions
	}
	return nil
}

// Configuration to suppress records whose suppression conditions evaluate to
// true.
type RecordSuppression struct {
	// A condition that when it evaluates to true will result in the record being
	// evaluated to be suppressed from the transformed content.
	Condition            *RecordCondition `protobuf:"bytes,1,opt,name=condition,proto3" json:"condition,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *RecordSuppression) Reset()         { *m = RecordSuppression{} }
func (m *RecordSuppression) String() string { return proto.CompactTextString(m) }
func (*RecordSuppression) ProtoMessage()    {}
func (*RecordSuppression) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{63}
}

func (m *RecordSuppression) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RecordSuppression.Unmarshal(m, b)
}
func (m *RecordSuppression) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RecordSuppression.Marshal(b, m, deterministic)
}
func (m *RecordSuppression) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RecordSuppression.Merge(m, src)
}
func (m *RecordSuppression) XXX_Size() int {
	return xxx_messageInfo_RecordSuppression.Size(m)
}
func (m *RecordSuppression) XXX_DiscardUnknown() {
	xxx_messageInfo_RecordSuppression.DiscardUnknown(m)
}

var xxx_messageInfo_RecordSuppression proto.InternalMessageInfo

func (m *RecordSuppression) GetCondition() *RecordCondition {
	if m != nil {
		return m.Condition
	}
	return nil
}

// A condition for determining whether a transformation should be applied to
// a field.
type RecordCondition struct {
	// An expression.
	Expressions          *RecordCondition_Expressions `protobuf:"bytes,3,opt,name=expressions,proto3" json:"expressions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
	XXX_unrecognized     []byte                       `json:"-"`
	XXX_sizecache        int32                        `json:"-"`
}

func (m *RecordCondition) Reset()         { *m = RecordCondition{} }
func (m *RecordCondition) String() string { return proto.CompactTextString(m) }
func (*RecordCondition) ProtoMessage()    {}
func (*RecordCondition) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{64}
}

func (m *RecordCondition) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RecordCondition.Unmarshal(m, b)
}
func (m *RecordCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RecordCondition.Marshal(b, m, deterministic)
}
func (m *RecordCondition) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RecordCondition.Merge(m, src)
}
func (m *RecordCondition) XXX_Size() int {
	return xxx_messageInfo_RecordCondition.Size(m)
}
func (m *RecordCondition) XXX_DiscardUnknown() {
	xxx_messageInfo_RecordCondition.DiscardUnknown(m)
}

var xxx_messageInfo_RecordCondition proto.InternalMessageInfo

func (m *RecordCondition) GetExpressions() *RecordCondition_Expressions {
	if m != nil {
		return m.Expressions
	}
	return nil
}

// The field type of `value` and `field` do not need to match to be
// considered equal, but not all comparisons are possible.
// EQUAL_TO and NOT_EQUAL_TO attempt to compare even with incompatible types,
// but all other comparisons are invalid with incompatible types.
// A `value` of type:
//
// - `string` can be compared against all other types
// - `boolean` can only be compared against other booleans
// - `integer` can be compared against doubles or a string if the string value
// can be parsed as an integer.
// - `double` can be compared against integers or a string if the string can
// be parsed as a double.
// - `Timestamp` can be compared against strings in RFC 3339 date string
// format.
// - `TimeOfDay` can be compared against timestamps and strings in the format
// of 'HH:mm:ss'.
//
// If we fail to compare do to type mismatch, a warning will be given and
// the condition will evaluate to false.
type RecordCondition_Condition struct {
	// Field within the record this condition is evaluated against. [required]
	Field *FieldId `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
	// Operator used to compare the field or infoType to the value. [required]
	Operator RelationalOperator `protobuf:"varint,3,opt,name=operator,proto3,enum=google.privacy.dlp.v2.RelationalOperator" json:"operator,omitempty"`
	// Value to compare against. [Required, except for `EXISTS` tests.]
	Value                *Value   `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RecordCondition_Condition) Reset()         { *m = RecordCondition_Condition{} }
func (m *RecordCondition_Condition) String() string { return proto.CompactTextString(m) }
func (*RecordCondition_Condition) ProtoMessage()    {}
func (*RecordCondition_Condition) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{64, 0}
}

func (m *RecordCondition_Condition) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RecordCondition_Condition.Unmarshal(m, b)
}
func (m *RecordCondition_Condition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RecordCondition_Condition.Marshal(b, m, deterministic)
}
func (m *RecordCondition_Condition) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RecordCondition_Condition.Merge(m, src)
}
func (m *RecordCondition_Condition) XXX_Size() int {
	return xxx_messageInfo_RecordCondition_Condition.Size(m)
}
func (m *RecordCondition_Condition) XXX_DiscardUnknown() {
	xxx_messageInfo_RecordCondition_Condition.DiscardUnknown(m)
}

var xxx_messageInfo_RecordCondition_Condition proto.InternalMessageInfo

func (m *RecordCondition_Condition) GetField() *FieldId {
	if m != nil {
		return m.Field
	}
	return nil
}

func (m *RecordCondition_Condition) GetOperator() RelationalOperator {
	if m != nil {
		return m.Operator
	}
	return RelationalOperator_RELATIONAL_OPERATOR_UNSPECIFIED
}

func (m *RecordCondition_Condition) GetValue() *Value {
	if m != nil {
		return m.Value
	}
	return nil
}

// A collection of conditions.
type RecordCondition_Conditions struct {
	Conditions           []*RecordCondition_Condition `protobuf:"bytes,1,rep,name=conditions,proto3" json:"conditions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
	XXX_unrecognized     []byte                       `json:"-"`
	XXX_sizecache        int32                        `json:"-"`
}

func (m *RecordCondition_Conditions) Reset()         { *m = RecordCondition_Conditions{} }
func (m *RecordCondition_Conditions) String() string { return proto.CompactTextString(m) }
func (*RecordCondition_Conditions) ProtoMessage()    {}
func (*RecordCondition_Conditions) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{64, 1}
}

func (m *RecordCondition_Conditions) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RecordCondition_Conditions.Unmarshal(m, b)
}
func (m *RecordCondition_Conditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RecordCondition_Conditions.Marshal(b, m, deterministic)
}
func (m *RecordCondition_Conditions) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RecordCondition_Conditions.Merge(m, src)
}
func (m *RecordCondition_Conditions) XXX_Size() int {
	return xxx_messageInfo_RecordCondition_Conditions.Size(m)
}
func (m *RecordCondition_Conditions) XXX_DiscardUnknown() {
	xxx_messageInfo_RecordCondition_Conditions.DiscardUnknown(m)
}

var xxx_messageInfo_RecordCondition_Conditions proto.InternalMessageInfo

func (m *RecordCondition_Conditions) GetConditions() []*RecordCondition_Condition {
	if m != nil {
		return m.Conditions
	}
	return nil
}

// An expression, consisting or an operator and conditions.
type RecordCondition_Expressions struct {
	// The operator to apply to the result of conditions. Default and currently
	// only supported value is `AND`.
	LogicalOperator RecordCondition_Expressions_LogicalOperator `protobuf:"varint,1,opt,name=logical_operator,json=logicalOperator,proto3,enum=google.privacy.dlp.v2.RecordCondition_Expressions_LogicalOperator" json:"logical_operator,omitempty"`
	// Types that are valid to be assigned to Type:
	//	*RecordCondition_Expressions_Conditions
	Type                 isRecordCondition_Expressions_Type `protobuf_oneof:"type"`
	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
	XXX_unrecognized     []byte                             `json:"-"`
	XXX_sizecache        int32                              `json:"-"`
}

func (m *RecordCondition_Expressions) Reset()         { *m = RecordCondition_Expressions{} }
func (m *RecordCondition_Expressions) String() string { return proto.CompactTextString(m) }
func (*RecordCondition_Expressions) ProtoMessage()    {}
func (*RecordCondition_Expressions) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{64, 2}
}

func (m *RecordCondition_Expressions) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RecordCondition_Expressions.Unmarshal(m, b)
}
func (m *RecordCondition_Expressions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RecordCondition_Expressions.Marshal(b, m, deterministic)
}
func (m *RecordCondition_Expressions) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RecordCondition_Expressions.Merge(m, src)
}
func (m *RecordCondition_Expressions) XXX_Size() int {
	return xxx_messageInfo_RecordCondition_Expressions.Size(m)
}
func (m *RecordCondition_Expressions) XXX_DiscardUnknown() {
	xxx_messageInfo_RecordCondition_Expressions.DiscardUnknown(m)
}

var xxx_messageInfo_RecordCondition_Expressions proto.InternalMessageInfo

func (m *RecordCondition_Expressions) GetLogicalOperator() RecordCondition_Expressions_LogicalOperator {
	if m != nil {
		return m.LogicalOperator
	}
	return RecordCondition_Expressions_LOGICAL_OPERATOR_UNSPECIFIED
}

type isRecordCondition_Expressions_Type interface {
	isRecordCondition_Expressions_Type()
}

type RecordCondition_Expressions_Conditions struct {
	Conditions *RecordCondition_Conditions `protobuf:"bytes,3,opt,name=conditions,proto3,oneof"`
}

func (*RecordCondition_Expressions_Conditions) isRecordCondition_Expressions_Type() {}

func (m *RecordCondition_Expressions) GetType() isRecordCondition_Expressions_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *RecordCondition_Expressions) GetConditions() *RecordCondition_Conditions {
	if x, ok := m.GetType().(*RecordCondition_Expressions_Conditions); ok {
		return x.Conditions
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*RecordCondition_Expressions) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*RecordCondition_Expressions_Conditions)(nil),
	}
}

// Overview of the modifications that occurred.
type TransformationOverview struct {
	// Total size in bytes that were transformed in some way.
	TransformedBytes int64 `protobuf:"varint,2,opt,name=transformed_bytes,json=transformedBytes,proto3" json:"transformed_bytes,omitempty"`
	// Transformations applied to the dataset.
	TransformationSummaries []*TransformationSummary `protobuf:"bytes,3,rep,name=transformation_summaries,json=transformationSummaries,proto3" json:"transformation_summaries,omitempty"`
	XXX_NoUnkeyedLiteral    struct{}                 `json:"-"`
	XXX_unrecognized        []byte                   `json:"-"`
	XXX_sizecache           int32                    `json:"-"`
}

func (m *TransformationOverview) Reset()         { *m = TransformationOverview{} }
func (m *TransformationOverview) String() string { return proto.CompactTextString(m) }
func (*TransformationOverview) ProtoMessage()    {}
func (*TransformationOverview) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{65}
}

func (m *TransformationOverview) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransformationOverview.Unmarshal(m, b)
}
func (m *TransformationOverview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransformationOverview.Marshal(b, m, deterministic)
}
func (m *TransformationOverview) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransformationOverview.Merge(m, src)
}
func (m *TransformationOverview) XXX_Size() int {
	return xxx_messageInfo_TransformationOverview.Size(m)
}
func (m *TransformationOverview) XXX_DiscardUnknown() {
	xxx_messageInfo_TransformationOverview.DiscardUnknown(m)
}

var xxx_messageInfo_TransformationOverview proto.InternalMessageInfo

func (m *TransformationOverview) GetTransformedBytes() int64 {
	if m != nil {
		return m.TransformedBytes
	}
	return 0
}

func (m *TransformationOverview) GetTransformationSummaries() []*TransformationSummary {
	if m != nil {
		return m.TransformationSummaries
	}
	return nil
}

// Summary of a single transformation.
// Only one of 'transformation', 'field_transformation', or 'record_suppress'
// will be set.
type TransformationSummary struct {
	// Set if the transformation was limited to a specific InfoType.
	InfoType *InfoType `protobuf:"bytes,1,opt,name=info_type,json=infoType,proto3" json:"info_type,omitempty"`
	// Set if the transformation was limited to a specific FieldId.
	Field *FieldId `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
	// The specific transformation these stats apply to.
	Transformation *PrimitiveTransformation `protobuf:"bytes,3,opt,name=transformation,proto3" json:"transformation,omitempty"`
	// The field transformation that was applied.
	// If multiple field transformations are requested for a single field,
	// this list will contain all of them; otherwise, only one is supplied.
	FieldTransformations []*FieldTransformation `protobuf:"bytes,5,rep,name=field_transformations,json=fieldTransformations,proto3" json:"field_transformations,omitempty"`
	// The specific suppression option these stats apply to.
	RecordSuppress *RecordSuppression                     `protobuf:"bytes,6,opt,name=record_suppress,json=recordSuppress,proto3" json:"record_suppress,omitempty"`
	Results        []*TransformationSummary_SummaryResult `protobuf:"bytes,4,rep,name=results,proto3" json:"results,omitempty"`
	// Total size in bytes that were transformed in some way.
	TransformedBytes     int64    `protobuf:"varint,7,opt,name=transformed_bytes,json=transformedBytes,proto3" json:"transformed_bytes,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TransformationSummary) Reset()         { *m = TransformationSummary{} }
func (m *TransformationSummary) String() string { return proto.CompactTextString(m) }
func (*TransformationSummary) ProtoMessage()    {}
func (*TransformationSummary) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{66}
}

func (m *TransformationSummary) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransformationSummary.Unmarshal(m, b)
}
func (m *TransformationSummary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransformationSummary.Marshal(b, m, deterministic)
}
func (m *TransformationSummary) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransformationSummary.Merge(m, src)
}
func (m *TransformationSummary) XXX_Size() int {
	return xxx_messageInfo_TransformationSummary.Size(m)
}
func (m *TransformationSummary) XXX_DiscardUnknown() {
	xxx_messageInfo_TransformationSummary.DiscardUnknown(m)
}

var xxx_messageInfo_TransformationSummary proto.InternalMessageInfo

func (m *TransformationSummary) GetInfoType() *InfoType {
	if m != nil {
		return m.InfoType
	}
	return nil
}

func (m *TransformationSummary) GetField() *FieldId {
	if m != nil {
		return m.Field
	}
	return nil
}

func (m *TransformationSummary) GetTransformation() *PrimitiveTransformation {
	if m != nil {
		return m.Transformation
	}
	return nil
}

func (m *TransformationSummary) GetFieldTransformations() []*FieldTransformation {
	if m != nil {
		return m.FieldTransformations
	}
	return nil
}

func (m *TransformationSummary) GetRecordSuppress() *RecordSuppression {
	if m != nil {
		return m.RecordSuppress
	}
	return nil
}

func (m *TransformationSummary) GetResults() []*TransformationSummary_SummaryResult {
	if m != nil {
		return m.Results
	}
	return nil
}

func (m *TransformationSummary) GetTransformedBytes() int64 {
	if m != nil {
		return m.TransformedBytes
	}
	return 0
}

// A collection that informs the user the number of times a particular
// `TransformationResultCode` and error details occurred.
type TransformationSummary_SummaryResult struct {
	Count int64                                          `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
	Code  TransformationSummary_TransformationResultCode `protobuf:"varint,2,opt,name=code,proto3,enum=google.privacy.dlp.v2.TransformationSummary_TransformationResultCode" json:"code,omitempty"`
	// A place for warnings or errors to show up if a transformation didn't
	// work as expected.
	Details              string   `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TransformationSummary_SummaryResult) Reset()         { *m = TransformationSummary_SummaryResult{} }
func (m *TransformationSummary_SummaryResult) String() string { return proto.CompactTextString(m) }
func (*TransformationSummary_SummaryResult) ProtoMessage()    {}
func (*TransformationSummary_SummaryResult) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{66, 0}
}

func (m *TransformationSummary_SummaryResult) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TransformationSummary_SummaryResult.Unmarshal(m, b)
}
func (m *TransformationSummary_SummaryResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TransformationSummary_SummaryResult.Marshal(b, m, deterministic)
}
func (m *TransformationSummary_SummaryResult) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TransformationSummary_SummaryResult.Merge(m, src)
}
func (m *TransformationSummary_SummaryResult) XXX_Size() int {
	return xxx_messageInfo_TransformationSummary_SummaryResult.Size(m)
}
func (m *TransformationSummary_SummaryResult) XXX_DiscardUnknown() {
	xxx_messageInfo_TransformationSummary_SummaryResult.DiscardUnknown(m)
}

var xxx_messageInfo_TransformationSummary_SummaryResult proto.InternalMessageInfo

func (m *TransformationSummary_SummaryResult) GetCount() int64 {
	if m != nil {
		return m.Count
	}
	return 0
}

func (m *TransformationSummary_SummaryResult) GetCode() TransformationSummary_TransformationResultCode {
	if m != nil {
		return m.Code
	}
	return TransformationSummary_TRANSFORMATION_RESULT_CODE_UNSPECIFIED
}

func (m *TransformationSummary_SummaryResult) GetDetails() string {
	if m != nil {
		return m.Details
	}
	return ""
}

// Schedule for triggeredJobs.
type Schedule struct {
	// Types that are valid to be assigned to Option:
	//	*Schedule_RecurrencePeriodDuration
	Option               isSchedule_Option `protobuf_oneof:"option"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *Schedule) Reset()         { *m = Schedule{} }
func (m *Schedule) String() string { return proto.CompactTextString(m) }
func (*Schedule) ProtoMessage()    {}
func (*Schedule) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{67}
}

func (m *Schedule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Schedule.Unmarshal(m, b)
}
func (m *Schedule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Schedule.Marshal(b, m, deterministic)
}
func (m *Schedule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Schedule.Merge(m, src)
}
func (m *Schedule) XXX_Size() int {
	return xxx_messageInfo_Schedule.Size(m)
}
func (m *Schedule) XXX_DiscardUnknown() {
	xxx_messageInfo_Schedule.DiscardUnknown(m)
}

var xxx_messageInfo_Schedule proto.InternalMessageInfo

type isSchedule_Option interface {
	isSchedule_Option()
}

type Schedule_RecurrencePeriodDuration struct {
	RecurrencePeriodDuration *duration.Duration `protobuf:"bytes,1,opt,name=recurrence_period_duration,json=recurrencePeriodDuration,proto3,oneof"`
}

func (*Schedule_RecurrencePeriodDuration) isSchedule_Option() {}

func (m *Schedule) GetOption() isSchedule_Option {
	if m != nil {
		return m.Option
	}
	return nil
}

func (m *Schedule) GetRecurrencePeriodDuration() *duration.Duration {
	if x, ok := m.GetOption().(*Schedule_RecurrencePeriodDuration); ok {
		return x.RecurrencePeriodDuration
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Schedule) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Schedule_RecurrencePeriodDuration)(nil),
	}
}

// The inspectTemplate contains a configuration (set of types of sensitive data
// to be detected) to be used anywhere you otherwise would normally specify
// InspectConfig. See https://cloud.google.com/dlp/docs/concepts-templates
// to learn more.
type InspectTemplate struct {
	// The template name. Output only.
	//
	// The template will have one of the following formats:
	// `projects/PROJECT_ID/inspectTemplates/TEMPLATE_ID` OR
	// `organizations/ORGANIZATION_ID/inspectTemplates/TEMPLATE_ID`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Display name (max 256 chars).
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Short description (max 256 chars).
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// The creation timestamp of a inspectTemplate, output only field.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The last update timestamp of a inspectTemplate, output only field.
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// The core content of the template. Configuration of the scanning process.
	InspectConfig        *InspectConfig `protobuf:"bytes,6,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *InspectTemplate) Reset()         { *m = InspectTemplate{} }
func (m *InspectTemplate) String() string { return proto.CompactTextString(m) }
func (*InspectTemplate) ProtoMessage()    {}
func (*InspectTemplate) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{68}
}

func (m *InspectTemplate) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectTemplate.Unmarshal(m, b)
}
func (m *InspectTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectTemplate.Marshal(b, m, deterministic)
}
func (m *InspectTemplate) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectTemplate.Merge(m, src)
}
func (m *InspectTemplate) XXX_Size() int {
	return xxx_messageInfo_InspectTemplate.Size(m)
}
func (m *InspectTemplate) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectTemplate.DiscardUnknown(m)
}

var xxx_messageInfo_InspectTemplate proto.InternalMessageInfo

func (m *InspectTemplate) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *InspectTemplate) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

func (m *InspectTemplate) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *InspectTemplate) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *InspectTemplate) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *InspectTemplate) GetInspectConfig() *InspectConfig {
	if m != nil {
		return m.InspectConfig
	}
	return nil
}

// The DeidentifyTemplates contains instructions on how to deidentify content.
// See https://cloud.google.com/dlp/docs/concepts-templates to learn more.
type DeidentifyTemplate struct {
	// The template name. Output only.
	//
	// The template will have one of the following formats:
	// `projects/PROJECT_ID/deidentifyTemplates/TEMPLATE_ID` OR
	// `organizations/ORGANIZATION_ID/deidentifyTemplates/TEMPLATE_ID`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Display name (max 256 chars).
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Short description (max 256 chars).
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// The creation timestamp of a inspectTemplate, output only field.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The last update timestamp of a inspectTemplate, output only field.
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// ///////////// // The core content of the template  // ///////////////
	DeidentifyConfig     *DeidentifyConfig `protobuf:"bytes,6,opt,name=deidentify_config,json=deidentifyConfig,proto3" json:"deidentify_config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *DeidentifyTemplate) Reset()         { *m = DeidentifyTemplate{} }
func (m *DeidentifyTemplate) String() string { return proto.CompactTextString(m) }
func (*DeidentifyTemplate) ProtoMessage()    {}
func (*DeidentifyTemplate) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{69}
}

func (m *DeidentifyTemplate) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeidentifyTemplate.Unmarshal(m, b)
}
func (m *DeidentifyTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeidentifyTemplate.Marshal(b, m, deterministic)
}
func (m *DeidentifyTemplate) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeidentifyTemplate.Merge(m, src)
}
func (m *DeidentifyTemplate) XXX_Size() int {
	return xxx_messageInfo_DeidentifyTemplate.Size(m)
}
func (m *DeidentifyTemplate) XXX_DiscardUnknown() {
	xxx_messageInfo_DeidentifyTemplate.DiscardUnknown(m)
}

var xxx_messageInfo_DeidentifyTemplate proto.InternalMessageInfo

func (m *DeidentifyTemplate) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *DeidentifyTemplate) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

func (m *DeidentifyTemplate) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *DeidentifyTemplate) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *DeidentifyTemplate) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *DeidentifyTemplate) GetDeidentifyConfig() *DeidentifyConfig {
	if m != nil {
		return m.DeidentifyConfig
	}
	return nil
}

// Details information about an error encountered during job execution or
// the results of an unsuccessful activation of the JobTrigger.
// Output only field.
type Error struct {
	Details *status.Status `protobuf:"bytes,1,opt,name=details,proto3" json:"details,omitempty"`
	// The times the error occurred.
	Timestamps           []*timestamp.Timestamp `protobuf:"bytes,2,rep,name=timestamps,proto3" json:"timestamps,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *Error) Reset()         { *m = Error{} }
func (m *Error) String() string { return proto.CompactTextString(m) }
func (*Error) ProtoMessage()    {}
func (*Error) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{70}
}

func (m *Error) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Error.Unmarshal(m, b)
}
func (m *Error) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Error.Marshal(b, m, deterministic)
}
func (m *Error) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Error.Merge(m, src)
}
func (m *Error) XXX_Size() int {
	return xxx_messageInfo_Error.Size(m)
}
func (m *Error) XXX_DiscardUnknown() {
	xxx_messageInfo_Error.DiscardUnknown(m)
}

var xxx_messageInfo_Error proto.InternalMessageInfo

func (m *Error) GetDetails() *status.Status {
	if m != nil {
		return m.Details
	}
	return nil
}

func (m *Error) GetTimestamps() []*timestamp.Timestamp {
	if m != nil {
		return m.Timestamps
	}
	return nil
}

// Contains a configuration to make dlp api calls on a repeating basis.
// See https://cloud.google.com/dlp/docs/concepts-job-triggers to learn more.
type JobTrigger struct {
	// Unique resource name for the triggeredJob, assigned by the service when the
	// triggeredJob is created, for example
	// `projects/dlp-test-project/triggeredJobs/53234423`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Display name (max 100 chars)
	DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// User provided description (max 256 chars)
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// The configuration details for the specific type of job to run.
	//
	// Types that are valid to be assigned to Job:
	//	*JobTrigger_InspectJob
	Job isJobTrigger_Job `protobuf_oneof:"job"`
	// A list of triggers which will be OR'ed together. Only one in the list
	// needs to trigger for a job to be started. The list may contain only
	// a single Schedule trigger and must have at least one object.
	Triggers []*JobTrigger_Trigger `protobuf:"bytes,5,rep,name=triggers,proto3" json:"triggers,omitempty"`
	// A stream of errors encountered when the trigger was activated. Repeated
	// errors may result in the JobTrigger automatically being paused.
	// Will return the last 100 errors. Whenever the JobTrigger is modified
	// this list will be cleared. Output only field.
	Errors []*Error `protobuf:"bytes,6,rep,name=errors,proto3" json:"errors,omitempty"`
	// The creation timestamp of a triggeredJob, output only field.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The last update timestamp of a triggeredJob, output only field.
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// The timestamp of the last time this trigger executed, output only field.
	LastRunTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=last_run_time,json=lastRunTime,proto3" json:"last_run_time,omitempty"`
	// A status for this trigger. [required]
	Status               JobTrigger_Status `protobuf:"varint,10,opt,name=status,proto3,enum=google.privacy.dlp.v2.JobTrigger_Status" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *JobTrigger) Reset()         { *m = JobTrigger{} }
func (m *JobTrigger) String() string { return proto.CompactTextString(m) }
func (*JobTrigger) ProtoMessage()    {}
func (*JobTrigger) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{71}
}

func (m *JobTrigger) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_JobTrigger.Unmarshal(m, b)
}
func (m *JobTrigger) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_JobTrigger.Marshal(b, m, deterministic)
}
func (m *JobTrigger) XXX_Merge(src proto.Message) {
	xxx_messageInfo_JobTrigger.Merge(m, src)
}
func (m *JobTrigger) XXX_Size() int {
	return xxx_messageInfo_JobTrigger.Size(m)
}
func (m *JobTrigger) XXX_DiscardUnknown() {
	xxx_messageInfo_JobTrigger.DiscardUnknown(m)
}

var xxx_messageInfo_JobTrigger proto.InternalMessageInfo

func (m *JobTrigger) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *JobTrigger) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

func (m *JobTrigger) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

type isJobTrigger_Job interface {
	isJobTrigger_Job()
}

type JobTrigger_InspectJob struct {
	InspectJob *InspectJobConfig `protobuf:"bytes,4,opt,name=inspect_job,json=inspectJob,proto3,oneof"`
}

func (*JobTrigger_InspectJob) isJobTrigger_Job() {}

func (m *JobTrigger) GetJob() isJobTrigger_Job {
	if m != nil {
		return m.Job
	}
	return nil
}

func (m *JobTrigger) GetInspectJob() *InspectJobConfig {
	if x, ok := m.GetJob().(*JobTrigger_InspectJob); ok {
		return x.InspectJob
	}
	return nil
}

func (m *JobTrigger) GetTriggers() []*JobTrigger_Trigger {
	if m != nil {
		return m.Triggers
	}
	return nil
}

func (m *JobTrigger) GetErrors() []*Error {
	if m != nil {
		return m.Errors
	}
	return nil
}

func (m *JobTrigger) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *JobTrigger) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *JobTrigger) GetLastRunTime() *timestamp.Timestamp {
	if m != nil {
		return m.LastRunTime
	}
	return nil
}

func (m *JobTrigger) GetStatus() JobTrigger_Status {
	if m != nil {
		return m.Status
	}
	return JobTrigger_STATUS_UNSPECIFIED
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*JobTrigger) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*JobTrigger_InspectJob)(nil),
	}
}

// What event needs to occur for a new job to be started.
type JobTrigger_Trigger struct {
	// Types that are valid to be assigned to Trigger:
	//	*JobTrigger_Trigger_Schedule
	Trigger              isJobTrigger_Trigger_Trigger `protobuf_oneof:"trigger"`
	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
	XXX_unrecognized     []byte                       `json:"-"`
	XXX_sizecache        int32                        `json:"-"`
}

func (m *JobTrigger_Trigger) Reset()         { *m = JobTrigger_Trigger{} }
func (m *JobTrigger_Trigger) String() string { return proto.CompactTextString(m) }
func (*JobTrigger_Trigger) ProtoMessage()    {}
func (*JobTrigger_Trigger) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{71, 0}
}

func (m *JobTrigger_Trigger) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_JobTrigger_Trigger.Unmarshal(m, b)
}
func (m *JobTrigger_Trigger) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_JobTrigger_Trigger.Marshal(b, m, deterministic)
}
func (m *JobTrigger_Trigger) XXX_Merge(src proto.Message) {
	xxx_messageInfo_JobTrigger_Trigger.Merge(m, src)
}
func (m *JobTrigger_Trigger) XXX_Size() int {
	return xxx_messageInfo_JobTrigger_Trigger.Size(m)
}
func (m *JobTrigger_Trigger) XXX_DiscardUnknown() {
	xxx_messageInfo_JobTrigger_Trigger.DiscardUnknown(m)
}

var xxx_messageInfo_JobTrigger_Trigger proto.InternalMessageInfo

type isJobTrigger_Trigger_Trigger interface {
	isJobTrigger_Trigger_Trigger()
}

type JobTrigger_Trigger_Schedule struct {
	Schedule *Schedule `protobuf:"bytes,1,opt,name=schedule,proto3,oneof"`
}

func (*JobTrigger_Trigger_Schedule) isJobTrigger_Trigger_Trigger() {}

func (m *JobTrigger_Trigger) GetTrigger() isJobTrigger_Trigger_Trigger {
	if m != nil {
		return m.Trigger
	}
	return nil
}

func (m *JobTrigger_Trigger) GetSchedule() *Schedule {
	if x, ok := m.GetTrigger().(*JobTrigger_Trigger_Schedule); ok {
		return x.Schedule
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*JobTrigger_Trigger) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*JobTrigger_Trigger_Schedule)(nil),
	}
}

// A task to execute on the completion of a job.
// See https://cloud.google.com/dlp/docs/concepts-actions to learn more.
type Action struct {
	// Types that are valid to be assigned to Action:
	//	*Action_SaveFindings_
	//	*Action_PubSub
	//	*Action_PublishSummaryToCscc_
	//	*Action_JobNotificationEmails_
	Action               isAction_Action `protobuf_oneof:"action"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *Action) Reset()         { *m = Action{} }
func (m *Action) String() string { return proto.CompactTextString(m) }
func (*Action) ProtoMessage()    {}
func (*Action) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{72}
}

func (m *Action) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Action.Unmarshal(m, b)
}
func (m *Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Action.Marshal(b, m, deterministic)
}
func (m *Action) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Action.Merge(m, src)
}
func (m *Action) XXX_Size() int {
	return xxx_messageInfo_Action.Size(m)
}
func (m *Action) XXX_DiscardUnknown() {
	xxx_messageInfo_Action.DiscardUnknown(m)
}

var xxx_messageInfo_Action proto.InternalMessageInfo

type isAction_Action interface {
	isAction_Action()
}

type Action_SaveFindings_ struct {
	SaveFindings *Action_SaveFindings `protobuf:"bytes,1,opt,name=save_findings,json=saveFindings,proto3,oneof"`
}

type Action_PubSub struct {
	PubSub *Action_PublishToPubSub `protobuf:"bytes,2,opt,name=pub_sub,json=pubSub,proto3,oneof"`
}

type Action_PublishSummaryToCscc_ struct {
	PublishSummaryToCscc *Action_PublishSummaryToCscc `protobuf:"bytes,3,opt,name=publish_summary_to_cscc,json=publishSummaryToCscc,proto3,oneof"`
}

type Action_JobNotificationEmails_ struct {
	JobNotificationEmails *Action_JobNotificationEmails `protobuf:"bytes,8,opt,name=job_notification_emails,json=jobNotificationEmails,proto3,oneof"`
}

func (*Action_SaveFindings_) isAction_Action() {}

func (*Action_PubSub) isAction_Action() {}

func (*Action_PublishSummaryToCscc_) isAction_Action() {}

func (*Action_JobNotificationEmails_) isAction_Action() {}

func (m *Action) GetAction() isAction_Action {
	if m != nil {
		return m.Action
	}
	return nil
}

func (m *Action) GetSaveFindings() *Action_SaveFindings {
	if x, ok := m.GetAction().(*Action_SaveFindings_); ok {
		return x.SaveFindings
	}
	return nil
}

func (m *Action) GetPubSub() *Action_PublishToPubSub {
	if x, ok := m.GetAction().(*Action_PubSub); ok {
		return x.PubSub
	}
	return nil
}

func (m *Action) GetPublishSummaryToCscc() *Action_PublishSummaryToCscc {
	if x, ok := m.GetAction().(*Action_PublishSummaryToCscc_); ok {
		return x.PublishSummaryToCscc
	}
	return nil
}

func (m *Action) GetJobNotificationEmails() *Action_JobNotificationEmails {
	if x, ok := m.GetAction().(*Action_JobNotificationEmails_); ok {
		return x.JobNotificationEmails
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Action) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Action_SaveFindings_)(nil),
		(*Action_PubSub)(nil),
		(*Action_PublishSummaryToCscc_)(nil),
		(*Action_JobNotificationEmails_)(nil),
	}
}

// If set, the detailed findings will be persisted to the specified
// OutputStorageConfig. Only a single instance of this action can be
// specified.
// Compatible with: Inspect, Risk
type Action_SaveFindings struct {
	OutputConfig         *OutputStorageConfig `protobuf:"bytes,1,opt,name=output_config,json=outputConfig,proto3" json:"output_config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *Action_SaveFindings) Reset()         { *m = Action_SaveFindings{} }
func (m *Action_SaveFindings) String() string { return proto.CompactTextString(m) }
func (*Action_SaveFindings) ProtoMessage()    {}
func (*Action_SaveFindings) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{72, 0}
}

func (m *Action_SaveFindings) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Action_SaveFindings.Unmarshal(m, b)
}
func (m *Action_SaveFindings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Action_SaveFindings.Marshal(b, m, deterministic)
}
func (m *Action_SaveFindings) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Action_SaveFindings.Merge(m, src)
}
func (m *Action_SaveFindings) XXX_Size() int {
	return xxx_messageInfo_Action_SaveFindings.Size(m)
}
func (m *Action_SaveFindings) XXX_DiscardUnknown() {
	xxx_messageInfo_Action_SaveFindings.DiscardUnknown(m)
}

var xxx_messageInfo_Action_SaveFindings proto.InternalMessageInfo

func (m *Action_SaveFindings) GetOutputConfig() *OutputStorageConfig {
	if m != nil {
		return m.OutputConfig
	}
	return nil
}

// Publish a message into given Pub/Sub topic when DlpJob has completed. The
// message contains a single field, `DlpJobName`, which is equal to the
// finished job's
// [`DlpJob.name`](/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob).
// Compatible with: Inspect, Risk
type Action_PublishToPubSub struct {
	// Cloud Pub/Sub topic to send notifications to. The topic must have given
	// publishing access rights to the DLP API service account executing
	// the long running DlpJob sending the notifications.
	// Format is projects/{project}/topics/{topic}.
	Topic                string   `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Action_PublishToPubSub) Reset()         { *m = Action_PublishToPubSub{} }
func (m *Action_PublishToPubSub) String() string { return proto.CompactTextString(m) }
func (*Action_PublishToPubSub) ProtoMessage()    {}
func (*Action_PublishToPubSub) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{72, 1}
}

func (m *Action_PublishToPubSub) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Action_PublishToPubSub.Unmarshal(m, b)
}
func (m *Action_PublishToPubSub) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Action_PublishToPubSub.Marshal(b, m, deterministic)
}
func (m *Action_PublishToPubSub) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Action_PublishToPubSub.Merge(m, src)
}
func (m *Action_PublishToPubSub) XXX_Size() int {
	return xxx_messageInfo_Action_PublishToPubSub.Size(m)
}
func (m *Action_PublishToPubSub) XXX_DiscardUnknown() {
	xxx_messageInfo_Action_PublishToPubSub.DiscardUnknown(m)
}

var xxx_messageInfo_Action_PublishToPubSub proto.InternalMessageInfo

func (m *Action_PublishToPubSub) GetTopic() string {
	if m != nil {
		return m.Topic
	}
	return ""
}

// Publish the result summary of a DlpJob to the Cloud Security
// Command Center (CSCC Alpha).
// This action is only available for projects which are parts of
// an organization and whitelisted for the alpha Cloud Security Command
// Center.
// The action will publish count of finding instances and their info types.
// The summary of findings will be persisted in CSCC and are governed by CSCC
// service-specific policy, see https://cloud.google.com/terms/service-terms
// Only a single instance of this action can be specified.
// Compatible with: Inspect
type Action_PublishSummaryToCscc struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Action_PublishSummaryToCscc) Reset()         { *m = Action_PublishSummaryToCscc{} }
func (m *Action_PublishSummaryToCscc) String() string { return proto.CompactTextString(m) }
func (*Action_PublishSummaryToCscc) ProtoMessage()    {}
func (*Action_PublishSummaryToCscc) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{72, 2}
}

func (m *Action_PublishSummaryToCscc) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Action_PublishSummaryToCscc.Unmarshal(m, b)
}
func (m *Action_PublishSummaryToCscc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Action_PublishSummaryToCscc.Marshal(b, m, deterministic)
}
func (m *Action_PublishSummaryToCscc) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Action_PublishSummaryToCscc.Merge(m, src)
}
func (m *Action_PublishSummaryToCscc) XXX_Size() int {
	return xxx_messageInfo_Action_PublishSummaryToCscc.Size(m)
}
func (m *Action_PublishSummaryToCscc) XXX_DiscardUnknown() {
	xxx_messageInfo_Action_PublishSummaryToCscc.DiscardUnknown(m)
}

var xxx_messageInfo_Action_PublishSummaryToCscc proto.InternalMessageInfo

// Enable email notification to project owners and editors on jobs's
// completion/failure.
type Action_JobNotificationEmails struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Action_JobNotificationEmails) Reset()         { *m = Action_JobNotificationEmails{} }
func (m *Action_JobNotificationEmails) String() string { return proto.CompactTextString(m) }
func (*Action_JobNotificationEmails) ProtoMessage()    {}
func (*Action_JobNotificationEmails) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{72, 3}
}

func (m *Action_JobNotificationEmails) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Action_JobNotificationEmails.Unmarshal(m, b)
}
func (m *Action_JobNotificationEmails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Action_JobNotificationEmails.Marshal(b, m, deterministic)
}
func (m *Action_JobNotificationEmails) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Action_JobNotificationEmails.Merge(m, src)
}
func (m *Action_JobNotificationEmails) XXX_Size() int {
	return xxx_messageInfo_Action_JobNotificationEmails.Size(m)
}
func (m *Action_JobNotificationEmails) XXX_DiscardUnknown() {
	xxx_messageInfo_Action_JobNotificationEmails.DiscardUnknown(m)
}

var xxx_messageInfo_Action_JobNotificationEmails proto.InternalMessageInfo

// Request message for CreateInspectTemplate.
type CreateInspectTemplateRequest struct {
	// The parent resource name, for example projects/my-project-id or
	// organizations/my-org-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// The InspectTemplate to create.
	InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate,proto3" json:"inspect_template,omitempty"`
	// The template id can contain uppercase and lowercase letters,
	// numbers, and hyphens; that is, it must match the regular
	// expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
	// characters. Can be empty to allow the system to generate one.
	TemplateId           string   `protobuf:"bytes,3,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateInspectTemplateRequest) Reset()         { *m = CreateInspectTemplateRequest{} }
func (m *CreateInspectTemplateRequest) String() string { return proto.CompactTextString(m) }
func (*CreateInspectTemplateRequest) ProtoMessage()    {}
func (*CreateInspectTemplateRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{73}
}

func (m *CreateInspectTemplateRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateInspectTemplateRequest.Unmarshal(m, b)
}
func (m *CreateInspectTemplateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateInspectTemplateRequest.Marshal(b, m, deterministic)
}
func (m *CreateInspectTemplateRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateInspectTemplateRequest.Merge(m, src)
}
func (m *CreateInspectTemplateRequest) XXX_Size() int {
	return xxx_messageInfo_CreateInspectTemplateRequest.Size(m)
}
func (m *CreateInspectTemplateRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateInspectTemplateRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateInspectTemplateRequest proto.InternalMessageInfo

func (m *CreateInspectTemplateRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *CreateInspectTemplateRequest) GetInspectTemplate() *InspectTemplate {
	if m != nil {
		return m.InspectTemplate
	}
	return nil
}

func (m *CreateInspectTemplateRequest) GetTemplateId() string {
	if m != nil {
		return m.TemplateId
	}
	return ""
}

// Request message for UpdateInspectTemplate.
type UpdateInspectTemplateRequest struct {
	// Resource name of organization and inspectTemplate to be updated, for
	// example `organizations/433245324/inspectTemplates/432452342` or
	// projects/project-id/inspectTemplates/432452342.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// New InspectTemplate value.
	InspectTemplate *InspectTemplate `protobuf:"bytes,2,opt,name=inspect_template,json=inspectTemplate,proto3" json:"inspect_template,omitempty"`
	// Mask to control which fields get updated.
	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *UpdateInspectTemplateRequest) Reset()         { *m = UpdateInspectTemplateRequest{} }
func (m *UpdateInspectTemplateRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateInspectTemplateRequest) ProtoMessage()    {}
func (*UpdateInspectTemplateRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{74}
}

func (m *UpdateInspectTemplateRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateInspectTemplateRequest.Unmarshal(m, b)
}
func (m *UpdateInspectTemplateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateInspectTemplateRequest.Marshal(b, m, deterministic)
}
func (m *UpdateInspectTemplateRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateInspectTemplateRequest.Merge(m, src)
}
func (m *UpdateInspectTemplateRequest) XXX_Size() int {
	return xxx_messageInfo_UpdateInspectTemplateRequest.Size(m)
}
func (m *UpdateInspectTemplateRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateInspectTemplateRequest.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateInspectTemplateRequest proto.InternalMessageInfo

func (m *UpdateInspectTemplateRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *UpdateInspectTemplateRequest) GetInspectTemplate() *InspectTemplate {
	if m != nil {
		return m.InspectTemplate
	}
	return nil
}

func (m *UpdateInspectTemplateRequest) GetUpdateMask() *field_mask.FieldMask {
	if m != nil {
		return m.UpdateMask
	}
	return nil
}

// Request message for GetInspectTemplate.
type GetInspectTemplateRequest struct {
	// Resource name of the organization and inspectTemplate to be read, for
	// example `organizations/433245324/inspectTemplates/432452342` or
	// projects/project-id/inspectTemplates/432452342.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetInspectTemplateRequest) Reset()         { *m = GetInspectTemplateRequest{} }
func (m *GetInspectTemplateRequest) String() string { return proto.CompactTextString(m) }
func (*GetInspectTemplateRequest) ProtoMessage()    {}
func (*GetInspectTemplateRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{75}
}

func (m *GetInspectTemplateRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetInspectTemplateRequest.Unmarshal(m, b)
}
func (m *GetInspectTemplateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetInspectTemplateRequest.Marshal(b, m, deterministic)
}
func (m *GetInspectTemplateRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetInspectTemplateRequest.Merge(m, src)
}
func (m *GetInspectTemplateRequest) XXX_Size() int {
	return xxx_messageInfo_GetInspectTemplateRequest.Size(m)
}
func (m *GetInspectTemplateRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetInspectTemplateRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetInspectTemplateRequest proto.InternalMessageInfo

func (m *GetInspectTemplateRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Request message for ListInspectTemplates.
type ListInspectTemplatesRequest struct {
	// The parent resource name, for example projects/my-project-id or
	// organizations/my-org-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional page token to continue retrieval. Comes from previous call
	// to `ListInspectTemplates`.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Optional size of the page, can be limited by server. If zero server returns
	// a page of max size 100.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional comma separated list of fields to order by,
	// followed by `asc` or `desc` postfix. This list is case-insensitive,
	// default sorting order is ascending, redundant space characters are
	// insignificant.
	//
	// Example: `name asc,update_time, create_time desc`
	//
	// Supported fields are:
	//
	// - `create_time`: corresponds to time the template was created.
	// - `update_time`: corresponds to time the template was last updated.
	// - `name`: corresponds to template's name.
	// - `display_name`: corresponds to template's display name.
	OrderBy              string   `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListInspectTemplatesRequest) Reset()         { *m = ListInspectTemplatesRequest{} }
func (m *ListInspectTemplatesRequest) String() string { return proto.CompactTextString(m) }
func (*ListInspectTemplatesRequest) ProtoMessage()    {}
func (*ListInspectTemplatesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{76}
}

func (m *ListInspectTemplatesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListInspectTemplatesRequest.Unmarshal(m, b)
}
func (m *ListInspectTemplatesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListInspectTemplatesRequest.Marshal(b, m, deterministic)
}
func (m *ListInspectTemplatesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListInspectTemplatesRequest.Merge(m, src)
}
func (m *ListInspectTemplatesRequest) XXX_Size() int {
	return xxx_messageInfo_ListInspectTemplatesRequest.Size(m)
}
func (m *ListInspectTemplatesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListInspectTemplatesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListInspectTemplatesRequest proto.InternalMessageInfo

func (m *ListInspectTemplatesRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *ListInspectTemplatesRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *ListInspectTemplatesRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListInspectTemplatesRequest) GetOrderBy() string {
	if m != nil {
		return m.OrderBy
	}
	return ""
}

// Response message for ListInspectTemplates.
type ListInspectTemplatesResponse struct {
	// List of inspectTemplates, up to page_size in ListInspectTemplatesRequest.
	InspectTemplates []*InspectTemplate `protobuf:"bytes,1,rep,name=inspect_templates,json=inspectTemplates,proto3" json:"inspect_templates,omitempty"`
	// If the next page is available then the next page token to be used
	// in following ListInspectTemplates request.
	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListInspectTemplatesResponse) Reset()         { *m = ListInspectTemplatesResponse{} }
func (m *ListInspectTemplatesResponse) String() string { return proto.CompactTextString(m) }
func (*ListInspectTemplatesResponse) ProtoMessage()    {}
func (*ListInspectTemplatesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{77}
}

func (m *ListInspectTemplatesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListInspectTemplatesResponse.Unmarshal(m, b)
}
func (m *ListInspectTemplatesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListInspectTemplatesResponse.Marshal(b, m, deterministic)
}
func (m *ListInspectTemplatesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListInspectTemplatesResponse.Merge(m, src)
}
func (m *ListInspectTemplatesResponse) XXX_Size() int {
	return xxx_messageInfo_ListInspectTemplatesResponse.Size(m)
}
func (m *ListInspectTemplatesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListInspectTemplatesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListInspectTemplatesResponse proto.InternalMessageInfo

func (m *ListInspectTemplatesResponse) GetInspectTemplates() []*InspectTemplate {
	if m != nil {
		return m.InspectTemplates
	}
	return nil
}

func (m *ListInspectTemplatesResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

// Request message for DeleteInspectTemplate.
type DeleteInspectTemplateRequest struct {
	// Resource name of the organization and inspectTemplate to be deleted, for
	// example `organizations/433245324/inspectTemplates/432452342` or
	// projects/project-id/inspectTemplates/432452342.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteInspectTemplateRequest) Reset()         { *m = DeleteInspectTemplateRequest{} }
func (m *DeleteInspectTemplateRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteInspectTemplateRequest) ProtoMessage()    {}
func (*DeleteInspectTemplateRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{78}
}

func (m *DeleteInspectTemplateRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteInspectTemplateRequest.Unmarshal(m, b)
}
func (m *DeleteInspectTemplateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteInspectTemplateRequest.Marshal(b, m, deterministic)
}
func (m *DeleteInspectTemplateRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteInspectTemplateRequest.Merge(m, src)
}
func (m *DeleteInspectTemplateRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteInspectTemplateRequest.Size(m)
}
func (m *DeleteInspectTemplateRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteInspectTemplateRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteInspectTemplateRequest proto.InternalMessageInfo

func (m *DeleteInspectTemplateRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Request message for CreateJobTrigger.
type CreateJobTriggerRequest struct {
	// The parent resource name, for example projects/my-project-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// The JobTrigger to create.
	JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger,proto3" json:"job_trigger,omitempty"`
	// The trigger id can contain uppercase and lowercase letters,
	// numbers, and hyphens; that is, it must match the regular
	// expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
	// characters. Can be empty to allow the system to generate one.
	TriggerId            string   `protobuf:"bytes,3,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateJobTriggerRequest) Reset()         { *m = CreateJobTriggerRequest{} }
func (m *CreateJobTriggerRequest) String() string { return proto.CompactTextString(m) }
func (*CreateJobTriggerRequest) ProtoMessage()    {}
func (*CreateJobTriggerRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{79}
}

func (m *CreateJobTriggerRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateJobTriggerRequest.Unmarshal(m, b)
}
func (m *CreateJobTriggerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateJobTriggerRequest.Marshal(b, m, deterministic)
}
func (m *CreateJobTriggerRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateJobTriggerRequest.Merge(m, src)
}
func (m *CreateJobTriggerRequest) XXX_Size() int {
	return xxx_messageInfo_CreateJobTriggerRequest.Size(m)
}
func (m *CreateJobTriggerRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateJobTriggerRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateJobTriggerRequest proto.InternalMessageInfo

func (m *CreateJobTriggerRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *CreateJobTriggerRequest) GetJobTrigger() *JobTrigger {
	if m != nil {
		return m.JobTrigger
	}
	return nil
}

func (m *CreateJobTriggerRequest) GetTriggerId() string {
	if m != nil {
		return m.TriggerId
	}
	return ""
}

// Request message for ActivateJobTrigger.
type ActivateJobTriggerRequest struct {
	// Resource name of the trigger to activate, for example
	// `projects/dlp-test-project/jobTriggers/53234423`.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ActivateJobTriggerRequest) Reset()         { *m = ActivateJobTriggerRequest{} }
func (m *ActivateJobTriggerRequest) String() string { return proto.CompactTextString(m) }
func (*ActivateJobTriggerRequest) ProtoMessage()    {}
func (*ActivateJobTriggerRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{80}
}

func (m *ActivateJobTriggerRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ActivateJobTriggerRequest.Unmarshal(m, b)
}
func (m *ActivateJobTriggerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ActivateJobTriggerRequest.Marshal(b, m, deterministic)
}
func (m *ActivateJobTriggerRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ActivateJobTriggerRequest.Merge(m, src)
}
func (m *ActivateJobTriggerRequest) XXX_Size() int {
	return xxx_messageInfo_ActivateJobTriggerRequest.Size(m)
}
func (m *ActivateJobTriggerRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ActivateJobTriggerRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ActivateJobTriggerRequest proto.InternalMessageInfo

func (m *ActivateJobTriggerRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Request message for UpdateJobTrigger.
type UpdateJobTriggerRequest struct {
	// Resource name of the project and the triggeredJob, for example
	// `projects/dlp-test-project/jobTriggers/53234423`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// New JobTrigger value.
	JobTrigger *JobTrigger `protobuf:"bytes,2,opt,name=job_trigger,json=jobTrigger,proto3" json:"job_trigger,omitempty"`
	// Mask to control which fields get updated.
	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *UpdateJobTriggerRequest) Reset()         { *m = UpdateJobTriggerRequest{} }
func (m *UpdateJobTriggerRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateJobTriggerRequest) ProtoMessage()    {}
func (*UpdateJobTriggerRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{81}
}

func (m *UpdateJobTriggerRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateJobTriggerRequest.Unmarshal(m, b)
}
func (m *UpdateJobTriggerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateJobTriggerRequest.Marshal(b, m, deterministic)
}
func (m *UpdateJobTriggerRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateJobTriggerRequest.Merge(m, src)
}
func (m *UpdateJobTriggerRequest) XXX_Size() int {
	return xxx_messageInfo_UpdateJobTriggerRequest.Size(m)
}
func (m *UpdateJobTriggerRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateJobTriggerRequest.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateJobTriggerRequest proto.InternalMessageInfo

func (m *UpdateJobTriggerRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *UpdateJobTriggerRequest) GetJobTrigger() *JobTrigger {
	if m != nil {
		return m.JobTrigger
	}
	return nil
}

func (m *UpdateJobTriggerRequest) GetUpdateMask() *field_mask.FieldMask {
	if m != nil {
		return m.UpdateMask
	}
	return nil
}

// Request message for GetJobTrigger.
type GetJobTriggerRequest struct {
	// Resource name of the project and the triggeredJob, for example
	// `projects/dlp-test-project/jobTriggers/53234423`.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetJobTriggerRequest) Reset()         { *m = GetJobTriggerRequest{} }
func (m *GetJobTriggerRequest) String() string { return proto.CompactTextString(m) }
func (*GetJobTriggerRequest) ProtoMessage()    {}
func (*GetJobTriggerRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{82}
}

func (m *GetJobTriggerRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetJobTriggerRequest.Unmarshal(m, b)
}
func (m *GetJobTriggerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetJobTriggerRequest.Marshal(b, m, deterministic)
}
func (m *GetJobTriggerRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetJobTriggerRequest.Merge(m, src)
}
func (m *GetJobTriggerRequest) XXX_Size() int {
	return xxx_messageInfo_GetJobTriggerRequest.Size(m)
}
func (m *GetJobTriggerRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetJobTriggerRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetJobTriggerRequest proto.InternalMessageInfo

func (m *GetJobTriggerRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Request message for CreateDlpJobRequest. Used to initiate long running
// jobs such as calculating risk metrics or inspecting Google Cloud
// Storage.
type CreateDlpJobRequest struct {
	// The parent resource name, for example projects/my-project-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// The configuration details for the specific type of job to run.
	//
	// Types that are valid to be assigned to Job:
	//	*CreateDlpJobRequest_InspectJob
	//	*CreateDlpJobRequest_RiskJob
	Job isCreateDlpJobRequest_Job `protobuf_oneof:"job"`
	// The job id can contain uppercase and lowercase letters,
	// numbers, and hyphens; that is, it must match the regular
	// expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
	// characters. Can be empty to allow the system to generate one.
	JobId                string   `protobuf:"bytes,4,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateDlpJobRequest) Reset()         { *m = CreateDlpJobRequest{} }
func (m *CreateDlpJobRequest) String() string { return proto.CompactTextString(m) }
func (*CreateDlpJobRequest) ProtoMessage()    {}
func (*CreateDlpJobRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{83}
}

func (m *CreateDlpJobRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateDlpJobRequest.Unmarshal(m, b)
}
func (m *CreateDlpJobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateDlpJobRequest.Marshal(b, m, deterministic)
}
func (m *CreateDlpJobRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateDlpJobRequest.Merge(m, src)
}
func (m *CreateDlpJobRequest) XXX_Size() int {
	return xxx_messageInfo_CreateDlpJobRequest.Size(m)
}
func (m *CreateDlpJobRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateDlpJobRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateDlpJobRequest proto.InternalMessageInfo

func (m *CreateDlpJobRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

type isCreateDlpJobRequest_Job interface {
	isCreateDlpJobRequest_Job()
}

type CreateDlpJobRequest_InspectJob struct {
	InspectJob *InspectJobConfig `protobuf:"bytes,2,opt,name=inspect_job,json=inspectJob,proto3,oneof"`
}

type CreateDlpJobRequest_RiskJob struct {
	RiskJob *RiskAnalysisJobConfig `protobuf:"bytes,3,opt,name=risk_job,json=riskJob,proto3,oneof"`
}

func (*CreateDlpJobRequest_InspectJob) isCreateDlpJobRequest_Job() {}

func (*CreateDlpJobRequest_RiskJob) isCreateDlpJobRequest_Job() {}

func (m *CreateDlpJobRequest) GetJob() isCreateDlpJobRequest_Job {
	if m != nil {
		return m.Job
	}
	return nil
}

func (m *CreateDlpJobRequest) GetInspectJob() *InspectJobConfig {
	if x, ok := m.GetJob().(*CreateDlpJobRequest_InspectJob); ok {
		return x.InspectJob
	}
	return nil
}

func (m *CreateDlpJobRequest) GetRiskJob() *RiskAnalysisJobConfig {
	if x, ok := m.GetJob().(*CreateDlpJobRequest_RiskJob); ok {
		return x.RiskJob
	}
	return nil
}

func (m *CreateDlpJobRequest) GetJobId() string {
	if m != nil {
		return m.JobId
	}
	return ""
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*CreateDlpJobRequest) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*CreateDlpJobRequest_InspectJob)(nil),
		(*CreateDlpJobRequest_RiskJob)(nil),
	}
}

// Request message for ListJobTriggers.
type ListJobTriggersRequest struct {
	// The parent resource name, for example `projects/my-project-id`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional page token to continue retrieval. Comes from previous call
	// to ListJobTriggers. `order_by` field must not
	// change for subsequent calls.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Optional size of the page, can be limited by a server.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional comma separated list of triggeredJob fields to order by,
	// followed by `asc` or `desc` postfix. This list is case-insensitive,
	// default sorting order is ascending, redundant space characters are
	// insignificant.
	//
	// Example: `name asc,update_time, create_time desc`
	//
	// Supported fields are:
	//
	// - `create_time`: corresponds to time the JobTrigger was created.
	// - `update_time`: corresponds to time the JobTrigger was last updated.
	// - `last_run_time`: corresponds to the last time the JobTrigger ran.
	// - `name`: corresponds to JobTrigger's name.
	// - `display_name`: corresponds to JobTrigger's display name.
	// - `status`: corresponds to JobTrigger's status.
	OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	// Optional. Allows filtering.
	//
	// Supported syntax:
	//
	// * Filter expressions are made up of one or more restrictions.
	// * Restrictions can be combined by `AND` or `OR` logical operators. A
	// sequence of restrictions implicitly uses `AND`.
	// * A restriction has the form of `<field> <operator> <value>`.
	// * Supported fields/values for inspect jobs:
	//     - `status` - HEALTHY|PAUSED|CANCELLED
	//     - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY
	//     - 'last_run_time` - RFC 3339 formatted timestamp, surrounded by
	//     quotation marks. Nanoseconds are ignored.
	//     - 'error_count' - Number of errors that have occurred while running.
	// * The operator must be `=` or `!=` for status and inspected_storage.
	//
	// Examples:
	//
	// * inspected_storage = cloud_storage AND status = HEALTHY
	// * inspected_storage = cloud_storage OR inspected_storage = bigquery
	// * inspected_storage = cloud_storage AND (state = PAUSED OR state = HEALTHY)
	// * last_run_time > \"2017-12-12T00:00:00+00:00\"
	//
	// The length of this field should be no more than 500 characters.
	Filter               string   `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListJobTriggersRequest) Reset()         { *m = ListJobTriggersRequest{} }
func (m *ListJobTriggersRequest) String() string { return proto.CompactTextString(m) }
func (*ListJobTriggersRequest) ProtoMessage()    {}
func (*ListJobTriggersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{84}
}

func (m *ListJobTriggersRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListJobTriggersRequest.Unmarshal(m, b)
}
func (m *ListJobTriggersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListJobTriggersRequest.Marshal(b, m, deterministic)
}
func (m *ListJobTriggersRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListJobTriggersRequest.Merge(m, src)
}
func (m *ListJobTriggersRequest) XXX_Size() int {
	return xxx_messageInfo_ListJobTriggersRequest.Size(m)
}
func (m *ListJobTriggersRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListJobTriggersRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListJobTriggersRequest proto.InternalMessageInfo

func (m *ListJobTriggersRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *ListJobTriggersRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *ListJobTriggersRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListJobTriggersRequest) GetOrderBy() string {
	if m != nil {
		return m.OrderBy
	}
	return ""
}

func (m *ListJobTriggersRequest) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

// Response message for ListJobTriggers.
type ListJobTriggersResponse struct {
	// List of triggeredJobs, up to page_size in ListJobTriggersRequest.
	JobTriggers []*JobTrigger `protobuf:"bytes,1,rep,name=job_triggers,json=jobTriggers,proto3" json:"job_triggers,omitempty"`
	// If the next page is available then the next page token to be used
	// in following ListJobTriggers request.
	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListJobTriggersResponse) Reset()         { *m = ListJobTriggersResponse{} }
func (m *ListJobTriggersResponse) String() string { return proto.CompactTextString(m) }
func (*ListJobTriggersResponse) ProtoMessage()    {}
func (*ListJobTriggersResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{85}
}

func (m *ListJobTriggersResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListJobTriggersResponse.Unmarshal(m, b)
}
func (m *ListJobTriggersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListJobTriggersResponse.Marshal(b, m, deterministic)
}
func (m *ListJobTriggersResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListJobTriggersResponse.Merge(m, src)
}
func (m *ListJobTriggersResponse) XXX_Size() int {
	return xxx_messageInfo_ListJobTriggersResponse.Size(m)
}
func (m *ListJobTriggersResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListJobTriggersResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListJobTriggersResponse proto.InternalMessageInfo

func (m *ListJobTriggersResponse) GetJobTriggers() []*JobTrigger {
	if m != nil {
		return m.JobTriggers
	}
	return nil
}

func (m *ListJobTriggersResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

// Request message for DeleteJobTrigger.
type DeleteJobTriggerRequest struct {
	// Resource name of the project and the triggeredJob, for example
	// `projects/dlp-test-project/jobTriggers/53234423`.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteJobTriggerRequest) Reset()         { *m = DeleteJobTriggerRequest{} }
func (m *DeleteJobTriggerRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteJobTriggerRequest) ProtoMessage()    {}
func (*DeleteJobTriggerRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{86}
}

func (m *DeleteJobTriggerRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteJobTriggerRequest.Unmarshal(m, b)
}
func (m *DeleteJobTriggerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteJobTriggerRequest.Marshal(b, m, deterministic)
}
func (m *DeleteJobTriggerRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteJobTriggerRequest.Merge(m, src)
}
func (m *DeleteJobTriggerRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteJobTriggerRequest.Size(m)
}
func (m *DeleteJobTriggerRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteJobTriggerRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteJobTriggerRequest proto.InternalMessageInfo

func (m *DeleteJobTriggerRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

type InspectJobConfig struct {
	// The data to scan.
	StorageConfig *StorageConfig `protobuf:"bytes,1,opt,name=storage_config,json=storageConfig,proto3" json:"storage_config,omitempty"`
	// How and what to scan for.
	InspectConfig *InspectConfig `protobuf:"bytes,2,opt,name=inspect_config,json=inspectConfig,proto3" json:"inspect_config,omitempty"`
	// If provided, will be used as the default for all values in InspectConfig.
	// `inspect_config` will be merged into the values persisted as part of the
	// template.
	InspectTemplateName string `protobuf:"bytes,3,opt,name=inspect_template_name,json=inspectTemplateName,proto3" json:"inspect_template_name,omitempty"`
	// Actions to execute at the completion of the job.
	Actions              []*Action `protobuf:"bytes,4,rep,name=actions,proto3" json:"actions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *InspectJobConfig) Reset()         { *m = InspectJobConfig{} }
func (m *InspectJobConfig) String() string { return proto.CompactTextString(m) }
func (*InspectJobConfig) ProtoMessage()    {}
func (*InspectJobConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{87}
}

func (m *InspectJobConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InspectJobConfig.Unmarshal(m, b)
}
func (m *InspectJobConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InspectJobConfig.Marshal(b, m, deterministic)
}
func (m *InspectJobConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InspectJobConfig.Merge(m, src)
}
func (m *InspectJobConfig) XXX_Size() int {
	return xxx_messageInfo_InspectJobConfig.Size(m)
}
func (m *InspectJobConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_InspectJobConfig.DiscardUnknown(m)
}

var xxx_messageInfo_InspectJobConfig proto.InternalMessageInfo

func (m *InspectJobConfig) GetStorageConfig() *StorageConfig {
	if m != nil {
		return m.StorageConfig
	}
	return nil
}

func (m *InspectJobConfig) GetInspectConfig() *InspectConfig {
	if m != nil {
		return m.InspectConfig
	}
	return nil
}

func (m *InspectJobConfig) GetInspectTemplateName() string {
	if m != nil {
		return m.InspectTemplateName
	}
	return ""
}

func (m *InspectJobConfig) GetActions() []*Action {
	if m != nil {
		return m.Actions
	}
	return nil
}

// Combines all of the information about a DLP job.
type DlpJob struct {
	// The server-assigned name.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The type of job.
	Type DlpJobType `protobuf:"varint,2,opt,name=type,proto3,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"`
	// State of a job.
	State DlpJob_JobState `protobuf:"varint,3,opt,name=state,proto3,enum=google.privacy.dlp.v2.DlpJob_JobState" json:"state,omitempty"`
	// Types that are valid to be assigned to Details:
	//	*DlpJob_RiskDetails
	//	*DlpJob_InspectDetails
	Details isDlpJob_Details `protobuf_oneof:"details"`
	// Time when the job was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Time when the job started.
	StartTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// Time when the job finished.
	EndTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// If created by a job trigger, the resource name of the trigger that
	// instantiated the job.
	JobTriggerName string `protobuf:"bytes,10,opt,name=job_trigger_name,json=jobTriggerName,proto3" json:"job_trigger_name,omitempty"`
	// A stream of errors encountered running the job.
	Errors               []*Error `protobuf:"bytes,11,rep,name=errors,proto3" json:"errors,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DlpJob) Reset()         { *m = DlpJob{} }
func (m *DlpJob) String() string { return proto.CompactTextString(m) }
func (*DlpJob) ProtoMessage()    {}
func (*DlpJob) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{88}
}

func (m *DlpJob) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DlpJob.Unmarshal(m, b)
}
func (m *DlpJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DlpJob.Marshal(b, m, deterministic)
}
func (m *DlpJob) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DlpJob.Merge(m, src)
}
func (m *DlpJob) XXX_Size() int {
	return xxx_messageInfo_DlpJob.Size(m)
}
func (m *DlpJob) XXX_DiscardUnknown() {
	xxx_messageInfo_DlpJob.DiscardUnknown(m)
}

var xxx_messageInfo_DlpJob proto.InternalMessageInfo

func (m *DlpJob) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *DlpJob) GetType() DlpJobType {
	if m != nil {
		return m.Type
	}
	return DlpJobType_DLP_JOB_TYPE_UNSPECIFIED
}

func (m *DlpJob) GetState() DlpJob_JobState {
	if m != nil {
		return m.State
	}
	return DlpJob_JOB_STATE_UNSPECIFIED
}

type isDlpJob_Details interface {
	isDlpJob_Details()
}

type DlpJob_RiskDetails struct {
	RiskDetails *AnalyzeDataSourceRiskDetails `protobuf:"bytes,4,opt,name=risk_details,json=riskDetails,proto3,oneof"`
}

type DlpJob_InspectDetails struct {
	InspectDetails *InspectDataSourceDetails `protobuf:"bytes,5,opt,name=inspect_details,json=inspectDetails,proto3,oneof"`
}

func (*DlpJob_RiskDetails) isDlpJob_Details() {}

func (*DlpJob_InspectDetails) isDlpJob_Details() {}

func (m *DlpJob) GetDetails() isDlpJob_Details {
	if m != nil {
		return m.Details
	}
	return nil
}

func (m *DlpJob) GetRiskDetails() *AnalyzeDataSourceRiskDetails {
	if x, ok := m.GetDetails().(*DlpJob_RiskDetails); ok {
		return x.RiskDetails
	}
	return nil
}

func (m *DlpJob) GetInspectDetails() *InspectDataSourceDetails {
	if x, ok := m.GetDetails().(*DlpJob_InspectDetails); ok {
		return x.InspectDetails
	}
	return nil
}

func (m *DlpJob) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *DlpJob) GetStartTime() *timestamp.Timestamp {
	if m != nil {
		return m.StartTime
	}
	return nil
}

func (m *DlpJob) GetEndTime() *timestamp.Timestamp {
	if m != nil {
		return m.EndTime
	}
	return nil
}

func (m *DlpJob) GetJobTriggerName() string {
	if m != nil {
		return m.JobTriggerName
	}
	return ""
}

func (m *DlpJob) GetErrors() []*Error {
	if m != nil {
		return m.Errors
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*DlpJob) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*DlpJob_RiskDetails)(nil),
		(*DlpJob_InspectDetails)(nil),
	}
}

// The request message for [DlpJobs.GetDlpJob][].
type GetDlpJobRequest struct {
	// The name of the DlpJob resource.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetDlpJobRequest) Reset()         { *m = GetDlpJobRequest{} }
func (m *GetDlpJobRequest) String() string { return proto.CompactTextString(m) }
func (*GetDlpJobRequest) ProtoMessage()    {}
func (*GetDlpJobRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{89}
}

func (m *GetDlpJobRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetDlpJobRequest.Unmarshal(m, b)
}
func (m *GetDlpJobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetDlpJobRequest.Marshal(b, m, deterministic)
}
func (m *GetDlpJobRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetDlpJobRequest.Merge(m, src)
}
func (m *GetDlpJobRequest) XXX_Size() int {
	return xxx_messageInfo_GetDlpJobRequest.Size(m)
}
func (m *GetDlpJobRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetDlpJobRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetDlpJobRequest proto.InternalMessageInfo

func (m *GetDlpJobRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// The request message for listing DLP jobs.
type ListDlpJobsRequest struct {
	// The parent resource name, for example projects/my-project-id.
	Parent string `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional. Allows filtering.
	//
	// Supported syntax:
	//
	// * Filter expressions are made up of one or more restrictions.
	// * Restrictions can be combined by `AND` or `OR` logical operators. A
	// sequence of restrictions implicitly uses `AND`.
	// * A restriction has the form of `<field> <operator> <value>`.
	// * Supported fields/values for inspect jobs:
	//     - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED
	//     - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY
	//     - `trigger_name` - The resource name of the trigger that created job.
	//     - 'end_time` - Corresponds to time the job finished.
	//     - 'start_time` - Corresponds to time the job finished.
	// * Supported fields for risk analysis jobs:
	//     - `state` - RUNNING|CANCELED|FINISHED|FAILED
	//     - 'end_time` - Corresponds to time the job finished.
	//     - 'start_time` - Corresponds to time the job finished.
	// * The operator must be `=` or `!=`.
	//
	// Examples:
	//
	// * inspected_storage = cloud_storage AND state = done
	// * inspected_storage = cloud_storage OR inspected_storage = bigquery
	// * inspected_storage = cloud_storage AND (state = done OR state = canceled)
	// * end_time > \"2017-12-12T00:00:00+00:00\"
	//
	// The length of this field should be no more than 500 characters.
	Filter string `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// The standard list page size.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// The standard list page token.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// The type of job. Defaults to `DlpJobType.INSPECT`
	Type DlpJobType `protobuf:"varint,5,opt,name=type,proto3,enum=google.privacy.dlp.v2.DlpJobType" json:"type,omitempty"`
	// Optional comma separated list of fields to order by,
	// followed by `asc` or `desc` postfix. This list is case-insensitive,
	// default sorting order is ascending, redundant space characters are
	// insignificant.
	//
	// Example: `name asc, end_time asc, create_time desc`
	//
	// Supported fields are:
	//
	// - `create_time`: corresponds to time the job was created.
	// - `end_time`: corresponds to time the job ended.
	// - `name`: corresponds to job's name.
	// - `state`: corresponds to `state`
	OrderBy              string   `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListDlpJobsRequest) Reset()         { *m = ListDlpJobsRequest{} }
func (m *ListDlpJobsRequest) String() string { return proto.CompactTextString(m) }
func (*ListDlpJobsRequest) ProtoMessage()    {}
func (*ListDlpJobsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{90}
}

func (m *ListDlpJobsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListDlpJobsRequest.Unmarshal(m, b)
}
func (m *ListDlpJobsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListDlpJobsRequest.Marshal(b, m, deterministic)
}
func (m *ListDlpJobsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListDlpJobsRequest.Merge(m, src)
}
func (m *ListDlpJobsRequest) XXX_Size() int {
	return xxx_messageInfo_ListDlpJobsRequest.Size(m)
}
func (m *ListDlpJobsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListDlpJobsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListDlpJobsRequest proto.InternalMessageInfo

func (m *ListDlpJobsRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *ListDlpJobsRequest) GetFilter() string {
	if m != nil {
		return m.Filter
	}
	return ""
}

func (m *ListDlpJobsRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListDlpJobsRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *ListDlpJobsRequest) GetType() DlpJobType {
	if m != nil {
		return m.Type
	}
	return DlpJobType_DLP_JOB_TYPE_UNSPECIFIED
}

func (m *ListDlpJobsRequest) GetOrderBy() string {
	if m != nil {
		return m.OrderBy
	}
	return ""
}

// The response message for listing DLP jobs.
type ListDlpJobsResponse struct {
	// A list of DlpJobs that matches the specified filter in the request.
	Jobs []*DlpJob `protobuf:"bytes,1,rep,name=jobs,proto3" json:"jobs,omitempty"`
	// The standard List next-page token.
	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListDlpJobsResponse) Reset()         { *m = ListDlpJobsResponse{} }
func (m *ListDlpJobsResponse) String() string { return proto.CompactTextString(m) }
func (*ListDlpJobsResponse) ProtoMessage()    {}
func (*ListDlpJobsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{91}
}

func (m *ListDlpJobsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListDlpJobsResponse.Unmarshal(m, b)
}
func (m *ListDlpJobsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListDlpJobsResponse.Marshal(b, m, deterministic)
}
func (m *ListDlpJobsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListDlpJobsResponse.Merge(m, src)
}
func (m *ListDlpJobsResponse) XXX_Size() int {
	return xxx_messageInfo_ListDlpJobsResponse.Size(m)
}
func (m *ListDlpJobsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListDlpJobsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListDlpJobsResponse proto.InternalMessageInfo

func (m *ListDlpJobsResponse) GetJobs() []*DlpJob {
	if m != nil {
		return m.Jobs
	}
	return nil
}

func (m *ListDlpJobsResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

// The request message for canceling a DLP job.
type CancelDlpJobRequest struct {
	// The name of the DlpJob resource to be cancelled.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CancelDlpJobRequest) Reset()         { *m = CancelDlpJobRequest{} }
func (m *CancelDlpJobRequest) String() string { return proto.CompactTextString(m) }
func (*CancelDlpJobRequest) ProtoMessage()    {}
func (*CancelDlpJobRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{92}
}

func (m *CancelDlpJobRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CancelDlpJobRequest.Unmarshal(m, b)
}
func (m *CancelDlpJobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CancelDlpJobRequest.Marshal(b, m, deterministic)
}
func (m *CancelDlpJobRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CancelDlpJobRequest.Merge(m, src)
}
func (m *CancelDlpJobRequest) XXX_Size() int {
	return xxx_messageInfo_CancelDlpJobRequest.Size(m)
}
func (m *CancelDlpJobRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CancelDlpJobRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CancelDlpJobRequest proto.InternalMessageInfo

func (m *CancelDlpJobRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// The request message for deleting a DLP job.
type DeleteDlpJobRequest struct {
	// The name of the DlpJob resource to be deleted.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteDlpJobRequest) Reset()         { *m = DeleteDlpJobRequest{} }
func (m *DeleteDlpJobRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteDlpJobRequest) ProtoMessage()    {}
func (*DeleteDlpJobRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{93}
}

func (m *DeleteDlpJobRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteDlpJobRequest.Unmarshal(m, b)
}
func (m *DeleteDlpJobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteDlpJobRequest.Marshal(b, m, deterministic)
}
func (m *DeleteDlpJobRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteDlpJobRequest.Merge(m, src)
}
func (m *DeleteDlpJobRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteDlpJobRequest.Size(m)
}
func (m *DeleteDlpJobRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteDlpJobRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteDlpJobRequest proto.InternalMessageInfo

func (m *DeleteDlpJobRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Request message for CreateDeidentifyTemplate.
type CreateDeidentifyTemplateRequest struct {
	// The parent resource name, for example projects/my-project-id or
	// organizations/my-org-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// The DeidentifyTemplate to create.
	DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate,proto3" json:"deidentify_template,omitempty"`
	// The template id can contain uppercase and lowercase letters,
	// numbers, and hyphens; that is, it must match the regular
	// expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
	// characters. Can be empty to allow the system to generate one.
	TemplateId           string   `protobuf:"bytes,3,opt,name=template_id,json=templateId,proto3" json:"template_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateDeidentifyTemplateRequest) Reset()         { *m = CreateDeidentifyTemplateRequest{} }
func (m *CreateDeidentifyTemplateRequest) String() string { return proto.CompactTextString(m) }
func (*CreateDeidentifyTemplateRequest) ProtoMessage()    {}
func (*CreateDeidentifyTemplateRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{94}
}

func (m *CreateDeidentifyTemplateRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateDeidentifyTemplateRequest.Unmarshal(m, b)
}
func (m *CreateDeidentifyTemplateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateDeidentifyTemplateRequest.Marshal(b, m, deterministic)
}
func (m *CreateDeidentifyTemplateRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateDeidentifyTemplateRequest.Merge(m, src)
}
func (m *CreateDeidentifyTemplateRequest) XXX_Size() int {
	return xxx_messageInfo_CreateDeidentifyTemplateRequest.Size(m)
}
func (m *CreateDeidentifyTemplateRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateDeidentifyTemplateRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateDeidentifyTemplateRequest proto.InternalMessageInfo

func (m *CreateDeidentifyTemplateRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *CreateDeidentifyTemplateRequest) GetDeidentifyTemplate() *DeidentifyTemplate {
	if m != nil {
		return m.DeidentifyTemplate
	}
	return nil
}

func (m *CreateDeidentifyTemplateRequest) GetTemplateId() string {
	if m != nil {
		return m.TemplateId
	}
	return ""
}

// Request message for UpdateDeidentifyTemplate.
type UpdateDeidentifyTemplateRequest struct {
	// Resource name of organization and deidentify template to be updated, for
	// example `organizations/433245324/deidentifyTemplates/432452342` or
	// projects/project-id/deidentifyTemplates/432452342.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// New DeidentifyTemplate value.
	DeidentifyTemplate *DeidentifyTemplate `protobuf:"bytes,2,opt,name=deidentify_template,json=deidentifyTemplate,proto3" json:"deidentify_template,omitempty"`
	// Mask to control which fields get updated.
	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *UpdateDeidentifyTemplateRequest) Reset()         { *m = UpdateDeidentifyTemplateRequest{} }
func (m *UpdateDeidentifyTemplateRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateDeidentifyTemplateRequest) ProtoMessage()    {}
func (*UpdateDeidentifyTemplateRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{95}
}

func (m *UpdateDeidentifyTemplateRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateDeidentifyTemplateRequest.Unmarshal(m, b)
}
func (m *UpdateDeidentifyTemplateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateDeidentifyTemplateRequest.Marshal(b, m, deterministic)
}
func (m *UpdateDeidentifyTemplateRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateDeidentifyTemplateRequest.Merge(m, src)
}
func (m *UpdateDeidentifyTemplateRequest) XXX_Size() int {
	return xxx_messageInfo_UpdateDeidentifyTemplateRequest.Size(m)
}
func (m *UpdateDeidentifyTemplateRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateDeidentifyTemplateRequest.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateDeidentifyTemplateRequest proto.InternalMessageInfo

func (m *UpdateDeidentifyTemplateRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *UpdateDeidentifyTemplateRequest) GetDeidentifyTemplate() *DeidentifyTemplate {
	if m != nil {
		return m.DeidentifyTemplate
	}
	return nil
}

func (m *UpdateDeidentifyTemplateRequest) GetUpdateMask() *field_mask.FieldMask {
	if m != nil {
		return m.UpdateMask
	}
	return nil
}

// Request message for GetDeidentifyTemplate.
type GetDeidentifyTemplateRequest struct {
	// Resource name of the organization and deidentify template to be read, for
	// example `organizations/433245324/deidentifyTemplates/432452342` or
	// projects/project-id/deidentifyTemplates/432452342.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetDeidentifyTemplateRequest) Reset()         { *m = GetDeidentifyTemplateRequest{} }
func (m *GetDeidentifyTemplateRequest) String() string { return proto.CompactTextString(m) }
func (*GetDeidentifyTemplateRequest) ProtoMessage()    {}
func (*GetDeidentifyTemplateRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{96}
}

func (m *GetDeidentifyTemplateRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetDeidentifyTemplateRequest.Unmarshal(m, b)
}
func (m *GetDeidentifyTemplateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetDeidentifyTemplateRequest.Marshal(b, m, deterministic)
}
func (m *GetDeidentifyTemplateRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetDeidentifyTemplateRequest.Merge(m, src)
}
func (m *GetDeidentifyTemplateRequest) XXX_Size() int {
	return xxx_messageInfo_GetDeidentifyTemplateRequest.Size(m)
}
func (m *GetDeidentifyTemplateRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetDeidentifyTemplateRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetDeidentifyTemplateRequest proto.InternalMessageInfo

func (m *GetDeidentifyTemplateRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Request message for ListDeidentifyTemplates.
type ListDeidentifyTemplatesRequest struct {
	// The parent resource name, for example projects/my-project-id or
	// organizations/my-org-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional page token to continue retrieval. Comes from previous call
	// to `ListDeidentifyTemplates`.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Optional size of the page, can be limited by server. If zero server returns
	// a page of max size 100.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional comma separated list of fields to order by,
	// followed by `asc` or `desc` postfix. This list is case-insensitive,
	// default sorting order is ascending, redundant space characters are
	// insignificant.
	//
	// Example: `name asc,update_time, create_time desc`
	//
	// Supported fields are:
	//
	// - `create_time`: corresponds to time the template was created.
	// - `update_time`: corresponds to time the template was last updated.
	// - `name`: corresponds to template's name.
	// - `display_name`: corresponds to template's display name.
	OrderBy              string   `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListDeidentifyTemplatesRequest) Reset()         { *m = ListDeidentifyTemplatesRequest{} }
func (m *ListDeidentifyTemplatesRequest) String() string { return proto.CompactTextString(m) }
func (*ListDeidentifyTemplatesRequest) ProtoMessage()    {}
func (*ListDeidentifyTemplatesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{97}
}

func (m *ListDeidentifyTemplatesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListDeidentifyTemplatesRequest.Unmarshal(m, b)
}
func (m *ListDeidentifyTemplatesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListDeidentifyTemplatesRequest.Marshal(b, m, deterministic)
}
func (m *ListDeidentifyTemplatesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListDeidentifyTemplatesRequest.Merge(m, src)
}
func (m *ListDeidentifyTemplatesRequest) XXX_Size() int {
	return xxx_messageInfo_ListDeidentifyTemplatesRequest.Size(m)
}
func (m *ListDeidentifyTemplatesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListDeidentifyTemplatesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListDeidentifyTemplatesRequest proto.InternalMessageInfo

func (m *ListDeidentifyTemplatesRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *ListDeidentifyTemplatesRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *ListDeidentifyTemplatesRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListDeidentifyTemplatesRequest) GetOrderBy() string {
	if m != nil {
		return m.OrderBy
	}
	return ""
}

// Response message for ListDeidentifyTemplates.
type ListDeidentifyTemplatesResponse struct {
	// List of deidentify templates, up to page_size in
	// ListDeidentifyTemplatesRequest.
	DeidentifyTemplates []*DeidentifyTemplate `protobuf:"bytes,1,rep,name=deidentify_templates,json=deidentifyTemplates,proto3" json:"deidentify_templates,omitempty"`
	// If the next page is available then the next page token to be used
	// in following ListDeidentifyTemplates request.
	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListDeidentifyTemplatesResponse) Reset()         { *m = ListDeidentifyTemplatesResponse{} }
func (m *ListDeidentifyTemplatesResponse) String() string { return proto.CompactTextString(m) }
func (*ListDeidentifyTemplatesResponse) ProtoMessage()    {}
func (*ListDeidentifyTemplatesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{98}
}

func (m *ListDeidentifyTemplatesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListDeidentifyTemplatesResponse.Unmarshal(m, b)
}
func (m *ListDeidentifyTemplatesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListDeidentifyTemplatesResponse.Marshal(b, m, deterministic)
}
func (m *ListDeidentifyTemplatesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListDeidentifyTemplatesResponse.Merge(m, src)
}
func (m *ListDeidentifyTemplatesResponse) XXX_Size() int {
	return xxx_messageInfo_ListDeidentifyTemplatesResponse.Size(m)
}
func (m *ListDeidentifyTemplatesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListDeidentifyTemplatesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListDeidentifyTemplatesResponse proto.InternalMessageInfo

func (m *ListDeidentifyTemplatesResponse) GetDeidentifyTemplates() []*DeidentifyTemplate {
	if m != nil {
		return m.DeidentifyTemplates
	}
	return nil
}

func (m *ListDeidentifyTemplatesResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

// Request message for DeleteDeidentifyTemplate.
type DeleteDeidentifyTemplateRequest struct {
	// Resource name of the organization and deidentify template to be deleted,
	// for example `organizations/433245324/deidentifyTemplates/432452342` or
	// projects/project-id/deidentifyTemplates/432452342.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteDeidentifyTemplateRequest) Reset()         { *m = DeleteDeidentifyTemplateRequest{} }
func (m *DeleteDeidentifyTemplateRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteDeidentifyTemplateRequest) ProtoMessage()    {}
func (*DeleteDeidentifyTemplateRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{99}
}

func (m *DeleteDeidentifyTemplateRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteDeidentifyTemplateRequest.Unmarshal(m, b)
}
func (m *DeleteDeidentifyTemplateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteDeidentifyTemplateRequest.Marshal(b, m, deterministic)
}
func (m *DeleteDeidentifyTemplateRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteDeidentifyTemplateRequest.Merge(m, src)
}
func (m *DeleteDeidentifyTemplateRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteDeidentifyTemplateRequest.Size(m)
}
func (m *DeleteDeidentifyTemplateRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteDeidentifyTemplateRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteDeidentifyTemplateRequest proto.InternalMessageInfo

func (m *DeleteDeidentifyTemplateRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Configuration for a custom dictionary created from a data source of any size
// up to the maximum size defined in the
// [limits](https://cloud.google.com/dlp/limits) page. The artifacts of
// dictionary creation are stored in the specified Google Cloud Storage
// location. Consider using `CustomInfoType.Dictionary` for smaller dictionaries
// that satisfy the size requirements.
type LargeCustomDictionaryConfig struct {
	// Location to store dictionary artifacts in Google Cloud Storage. These files
	// will only be accessible by project owners and the DLP API. If any of these
	// artifacts are modified, the dictionary is considered invalid and can no
	// longer be used.
	OutputPath *CloudStoragePath `protobuf:"bytes,1,opt,name=output_path,json=outputPath,proto3" json:"output_path,omitempty"`
	// Types that are valid to be assigned to Source:
	//	*LargeCustomDictionaryConfig_CloudStorageFileSet
	//	*LargeCustomDictionaryConfig_BigQueryField
	Source               isLargeCustomDictionaryConfig_Source `protobuf_oneof:"source"`
	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
	XXX_unrecognized     []byte                               `json:"-"`
	XXX_sizecache        int32                                `json:"-"`
}

func (m *LargeCustomDictionaryConfig) Reset()         { *m = LargeCustomDictionaryConfig{} }
func (m *LargeCustomDictionaryConfig) String() string { return proto.CompactTextString(m) }
func (*LargeCustomDictionaryConfig) ProtoMessage()    {}
func (*LargeCustomDictionaryConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{100}
}

func (m *LargeCustomDictionaryConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LargeCustomDictionaryConfig.Unmarshal(m, b)
}
func (m *LargeCustomDictionaryConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LargeCustomDictionaryConfig.Marshal(b, m, deterministic)
}
func (m *LargeCustomDictionaryConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LargeCustomDictionaryConfig.Merge(m, src)
}
func (m *LargeCustomDictionaryConfig) XXX_Size() int {
	return xxx_messageInfo_LargeCustomDictionaryConfig.Size(m)
}
func (m *LargeCustomDictionaryConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_LargeCustomDictionaryConfig.DiscardUnknown(m)
}

var xxx_messageInfo_LargeCustomDictionaryConfig proto.InternalMessageInfo

func (m *LargeCustomDictionaryConfig) GetOutputPath() *CloudStoragePath {
	if m != nil {
		return m.OutputPath
	}
	return nil
}

type isLargeCustomDictionaryConfig_Source interface {
	isLargeCustomDictionaryConfig_Source()
}

type LargeCustomDictionaryConfig_CloudStorageFileSet struct {
	CloudStorageFileSet *CloudStorageFileSet `protobuf:"bytes,2,opt,name=cloud_storage_file_set,json=cloudStorageFileSet,proto3,oneof"`
}

type LargeCustomDictionaryConfig_BigQueryField struct {
	BigQueryField *BigQueryField `protobuf:"bytes,3,opt,name=big_query_field,json=bigQueryField,proto3,oneof"`
}

func (*LargeCustomDictionaryConfig_CloudStorageFileSet) isLargeCustomDictionaryConfig_Source() {}

func (*LargeCustomDictionaryConfig_BigQueryField) isLargeCustomDictionaryConfig_Source() {}

func (m *LargeCustomDictionaryConfig) GetSource() isLargeCustomDictionaryConfig_Source {
	if m != nil {
		return m.Source
	}
	return nil
}

func (m *LargeCustomDictionaryConfig) GetCloudStorageFileSet() *CloudStorageFileSet {
	if x, ok := m.GetSource().(*LargeCustomDictionaryConfig_CloudStorageFileSet); ok {
		return x.CloudStorageFileSet
	}
	return nil
}

func (m *LargeCustomDictionaryConfig) GetBigQueryField() *BigQueryField {
	if x, ok := m.GetSource().(*LargeCustomDictionaryConfig_BigQueryField); ok {
		return x.BigQueryField
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*LargeCustomDictionaryConfig) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*LargeCustomDictionaryConfig_CloudStorageFileSet)(nil),
		(*LargeCustomDictionaryConfig_BigQueryField)(nil),
	}
}

// Summary statistics of a custom dictionary.
type LargeCustomDictionaryStats struct {
	// Approximate number of distinct phrases in the dictionary.
	ApproxNumPhrases     int64    `protobuf:"varint,1,opt,name=approx_num_phrases,json=approxNumPhrases,proto3" json:"approx_num_phrases,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LargeCustomDictionaryStats) Reset()         { *m = LargeCustomDictionaryStats{} }
func (m *LargeCustomDictionaryStats) String() string { return proto.CompactTextString(m) }
func (*LargeCustomDictionaryStats) ProtoMessage()    {}
func (*LargeCustomDictionaryStats) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{101}
}

func (m *LargeCustomDictionaryStats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LargeCustomDictionaryStats.Unmarshal(m, b)
}
func (m *LargeCustomDictionaryStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LargeCustomDictionaryStats.Marshal(b, m, deterministic)
}
func (m *LargeCustomDictionaryStats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LargeCustomDictionaryStats.Merge(m, src)
}
func (m *LargeCustomDictionaryStats) XXX_Size() int {
	return xxx_messageInfo_LargeCustomDictionaryStats.Size(m)
}
func (m *LargeCustomDictionaryStats) XXX_DiscardUnknown() {
	xxx_messageInfo_LargeCustomDictionaryStats.DiscardUnknown(m)
}

var xxx_messageInfo_LargeCustomDictionaryStats proto.InternalMessageInfo

func (m *LargeCustomDictionaryStats) GetApproxNumPhrases() int64 {
	if m != nil {
		return m.ApproxNumPhrases
	}
	return 0
}

// Configuration for a StoredInfoType.
type StoredInfoTypeConfig struct {
	// Display name of the StoredInfoType (max 256 characters).
	DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Description of the StoredInfoType (max 256 characters).
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// Types that are valid to be assigned to Type:
	//	*StoredInfoTypeConfig_LargeCustomDictionary
	Type                 isStoredInfoTypeConfig_Type `protobuf_oneof:"type"`
	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
	XXX_unrecognized     []byte                      `json:"-"`
	XXX_sizecache        int32                       `json:"-"`
}

func (m *StoredInfoTypeConfig) Reset()         { *m = StoredInfoTypeConfig{} }
func (m *StoredInfoTypeConfig) String() string { return proto.CompactTextString(m) }
func (*StoredInfoTypeConfig) ProtoMessage()    {}
func (*StoredInfoTypeConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{102}
}

func (m *StoredInfoTypeConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StoredInfoTypeConfig.Unmarshal(m, b)
}
func (m *StoredInfoTypeConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StoredInfoTypeConfig.Marshal(b, m, deterministic)
}
func (m *StoredInfoTypeConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StoredInfoTypeConfig.Merge(m, src)
}
func (m *StoredInfoTypeConfig) XXX_Size() int {
	return xxx_messageInfo_StoredInfoTypeConfig.Size(m)
}
func (m *StoredInfoTypeConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_StoredInfoTypeConfig.DiscardUnknown(m)
}

var xxx_messageInfo_StoredInfoTypeConfig proto.InternalMessageInfo

func (m *StoredInfoTypeConfig) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

func (m *StoredInfoTypeConfig) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

type isStoredInfoTypeConfig_Type interface {
	isStoredInfoTypeConfig_Type()
}

type StoredInfoTypeConfig_LargeCustomDictionary struct {
	LargeCustomDictionary *LargeCustomDictionaryConfig `protobuf:"bytes,3,opt,name=large_custom_dictionary,json=largeCustomDictionary,proto3,oneof"`
}

func (*StoredInfoTypeConfig_LargeCustomDictionary) isStoredInfoTypeConfig_Type() {}

func (m *StoredInfoTypeConfig) GetType() isStoredInfoTypeConfig_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *StoredInfoTypeConfig) GetLargeCustomDictionary() *LargeCustomDictionaryConfig {
	if x, ok := m.GetType().(*StoredInfoTypeConfig_LargeCustomDictionary); ok {
		return x.LargeCustomDictionary
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*StoredInfoTypeConfig) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*StoredInfoTypeConfig_LargeCustomDictionary)(nil),
	}
}

// Statistics for a StoredInfoType.
type StoredInfoTypeStats struct {
	// Types that are valid to be assigned to Type:
	//	*StoredInfoTypeStats_LargeCustomDictionary
	Type                 isStoredInfoTypeStats_Type `protobuf_oneof:"type"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

func (m *StoredInfoTypeStats) Reset()         { *m = StoredInfoTypeStats{} }
func (m *StoredInfoTypeStats) String() string { return proto.CompactTextString(m) }
func (*StoredInfoTypeStats) ProtoMessage()    {}
func (*StoredInfoTypeStats) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{103}
}

func (m *StoredInfoTypeStats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StoredInfoTypeStats.Unmarshal(m, b)
}
func (m *StoredInfoTypeStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StoredInfoTypeStats.Marshal(b, m, deterministic)
}
func (m *StoredInfoTypeStats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StoredInfoTypeStats.Merge(m, src)
}
func (m *StoredInfoTypeStats) XXX_Size() int {
	return xxx_messageInfo_StoredInfoTypeStats.Size(m)
}
func (m *StoredInfoTypeStats) XXX_DiscardUnknown() {
	xxx_messageInfo_StoredInfoTypeStats.DiscardUnknown(m)
}

var xxx_messageInfo_StoredInfoTypeStats proto.InternalMessageInfo

type isStoredInfoTypeStats_Type interface {
	isStoredInfoTypeStats_Type()
}

type StoredInfoTypeStats_LargeCustomDictionary struct {
	LargeCustomDictionary *LargeCustomDictionaryStats `protobuf:"bytes,1,opt,name=large_custom_dictionary,json=largeCustomDictionary,proto3,oneof"`
}

func (*StoredInfoTypeStats_LargeCustomDictionary) isStoredInfoTypeStats_Type() {}

func (m *StoredInfoTypeStats) GetType() isStoredInfoTypeStats_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (m *StoredInfoTypeStats) GetLargeCustomDictionary() *LargeCustomDictionaryStats {
	if x, ok := m.GetType().(*StoredInfoTypeStats_LargeCustomDictionary); ok {
		return x.LargeCustomDictionary
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*StoredInfoTypeStats) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*StoredInfoTypeStats_LargeCustomDictionary)(nil),
	}
}

// Version of a StoredInfoType, including the configuration used to build it,
// create timestamp, and current state.
type StoredInfoTypeVersion struct {
	// StoredInfoType configuration.
	Config *StoredInfoTypeConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	// Create timestamp of the version. Read-only, determined by the system
	// when the version is created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Stored info type version state. Read-only, updated by the system
	// during dictionary creation.
	State StoredInfoTypeState `protobuf:"varint,3,opt,name=state,proto3,enum=google.privacy.dlp.v2.StoredInfoTypeState" json:"state,omitempty"`
	// Errors that occurred when creating this storedInfoType version, or
	// anomalies detected in the storedInfoType data that render it unusable. Only
	// the five most recent errors will be displayed, with the most recent error
	// appearing first.
	// <p>For example, some of the data for stored custom dictionaries is put in
	// the user's Google Cloud Storage bucket, and if this data is modified or
	// deleted by the user or another system, the dictionary becomes invalid.
	// <p>If any errors occur, fix the problem indicated by the error message and
	// use the UpdateStoredInfoType API method to create another version of the
	// storedInfoType to continue using it, reusing the same `config` if it was
	// not the source of the error.
	Errors []*Error `protobuf:"bytes,4,rep,name=errors,proto3" json:"errors,omitempty"`
	// Statistics about this storedInfoType version.
	Stats                *StoredInfoTypeStats `protobuf:"bytes,5,opt,name=stats,proto3" json:"stats,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *StoredInfoTypeVersion) Reset()         { *m = StoredInfoTypeVersion{} }
func (m *StoredInfoTypeVersion) String() string { return proto.CompactTextString(m) }
func (*StoredInfoTypeVersion) ProtoMessage()    {}
func (*StoredInfoTypeVersion) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{104}
}

func (m *StoredInfoTypeVersion) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StoredInfoTypeVersion.Unmarshal(m, b)
}
func (m *StoredInfoTypeVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StoredInfoTypeVersion.Marshal(b, m, deterministic)
}
func (m *StoredInfoTypeVersion) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StoredInfoTypeVersion.Merge(m, src)
}
func (m *StoredInfoTypeVersion) XXX_Size() int {
	return xxx_messageInfo_StoredInfoTypeVersion.Size(m)
}
func (m *StoredInfoTypeVersion) XXX_DiscardUnknown() {
	xxx_messageInfo_StoredInfoTypeVersion.DiscardUnknown(m)
}

var xxx_messageInfo_StoredInfoTypeVersion proto.InternalMessageInfo

func (m *StoredInfoTypeVersion) GetConfig() *StoredInfoTypeConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *StoredInfoTypeVersion) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *StoredInfoTypeVersion) GetState() StoredInfoTypeState {
	if m != nil {
		return m.State
	}
	return StoredInfoTypeState_STORED_INFO_TYPE_STATE_UNSPECIFIED
}

func (m *StoredInfoTypeVersion) GetErrors() []*Error {
	if m != nil {
		return m.Errors
	}
	return nil
}

func (m *StoredInfoTypeVersion) GetStats() *StoredInfoTypeStats {
	if m != nil {
		return m.Stats
	}
	return nil
}

// StoredInfoType resource message that contains information about the current
// version and any pending updates.
type StoredInfoType struct {
	// Resource name.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Current version of the stored info type.
	CurrentVersion *StoredInfoTypeVersion `protobuf:"bytes,2,opt,name=current_version,json=currentVersion,proto3" json:"current_version,omitempty"`
	// Pending versions of the stored info type. Empty if no versions are
	// pending.
	PendingVersions      []*StoredInfoTypeVersion `protobuf:"bytes,3,rep,name=pending_versions,json=pendingVersions,proto3" json:"pending_versions,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *StoredInfoType) Reset()         { *m = StoredInfoType{} }
func (m *StoredInfoType) String() string { return proto.CompactTextString(m) }
func (*StoredInfoType) ProtoMessage()    {}
func (*StoredInfoType) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{105}
}

func (m *StoredInfoType) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StoredInfoType.Unmarshal(m, b)
}
func (m *StoredInfoType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StoredInfoType.Marshal(b, m, deterministic)
}
func (m *StoredInfoType) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StoredInfoType.Merge(m, src)
}
func (m *StoredInfoType) XXX_Size() int {
	return xxx_messageInfo_StoredInfoType.Size(m)
}
func (m *StoredInfoType) XXX_DiscardUnknown() {
	xxx_messageInfo_StoredInfoType.DiscardUnknown(m)
}

var xxx_messageInfo_StoredInfoType proto.InternalMessageInfo

func (m *StoredInfoType) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *StoredInfoType) GetCurrentVersion() *StoredInfoTypeVersion {
	if m != nil {
		return m.CurrentVersion
	}
	return nil
}

func (m *StoredInfoType) GetPendingVersions() []*StoredInfoTypeVersion {
	if m != nil {
		return m.PendingVersions
	}
	return nil
}

// Request message for CreateStoredInfoType.
type CreateStoredInfoTypeRequest struct {
	// The parent resource name, for example projects/my-project-id or
	// organizations/my-org-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Configuration of the storedInfoType to create.
	Config *StoredInfoTypeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
	// The storedInfoType ID can contain uppercase and lowercase letters,
	// numbers, and hyphens; that is, it must match the regular
	// expression: `[a-zA-Z\\d-_]+`. The maximum length is 100
	// characters. Can be empty to allow the system to generate one.
	StoredInfoTypeId     string   `protobuf:"bytes,3,opt,name=stored_info_type_id,json=storedInfoTypeId,proto3" json:"stored_info_type_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateStoredInfoTypeRequest) Reset()         { *m = CreateStoredInfoTypeRequest{} }
func (m *CreateStoredInfoTypeRequest) String() string { return proto.CompactTextString(m) }
func (*CreateStoredInfoTypeRequest) ProtoMessage()    {}
func (*CreateStoredInfoTypeRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{106}
}

func (m *CreateStoredInfoTypeRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateStoredInfoTypeRequest.Unmarshal(m, b)
}
func (m *CreateStoredInfoTypeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateStoredInfoTypeRequest.Marshal(b, m, deterministic)
}
func (m *CreateStoredInfoTypeRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateStoredInfoTypeRequest.Merge(m, src)
}
func (m *CreateStoredInfoTypeRequest) XXX_Size() int {
	return xxx_messageInfo_CreateStoredInfoTypeRequest.Size(m)
}
func (m *CreateStoredInfoTypeRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateStoredInfoTypeRequest.DiscardUnknown(m)
}

var xxx_messageInfo_CreateStoredInfoTypeRequest proto.InternalMessageInfo

func (m *CreateStoredInfoTypeRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *CreateStoredInfoTypeRequest) GetConfig() *StoredInfoTypeConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *CreateStoredInfoTypeRequest) GetStoredInfoTypeId() string {
	if m != nil {
		return m.StoredInfoTypeId
	}
	return ""
}

// Request message for UpdateStoredInfoType.
type UpdateStoredInfoTypeRequest struct {
	// Resource name of organization and storedInfoType to be updated, for
	// example `organizations/433245324/storedInfoTypes/432452342` or
	// projects/project-id/storedInfoTypes/432452342.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Updated configuration for the storedInfoType. If not provided, a new
	// version of the storedInfoType will be created with the existing
	// configuration.
	Config *StoredInfoTypeConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
	// Mask to control which fields get updated.
	UpdateMask           *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *UpdateStoredInfoTypeRequest) Reset()         { *m = UpdateStoredInfoTypeRequest{} }
func (m *UpdateStoredInfoTypeRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateStoredInfoTypeRequest) ProtoMessage()    {}
func (*UpdateStoredInfoTypeRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{107}
}

func (m *UpdateStoredInfoTypeRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateStoredInfoTypeRequest.Unmarshal(m, b)
}
func (m *UpdateStoredInfoTypeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateStoredInfoTypeRequest.Marshal(b, m, deterministic)
}
func (m *UpdateStoredInfoTypeRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateStoredInfoTypeRequest.Merge(m, src)
}
func (m *UpdateStoredInfoTypeRequest) XXX_Size() int {
	return xxx_messageInfo_UpdateStoredInfoTypeRequest.Size(m)
}
func (m *UpdateStoredInfoTypeRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateStoredInfoTypeRequest.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateStoredInfoTypeRequest proto.InternalMessageInfo

func (m *UpdateStoredInfoTypeRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *UpdateStoredInfoTypeRequest) GetConfig() *StoredInfoTypeConfig {
	if m != nil {
		return m.Config
	}
	return nil
}

func (m *UpdateStoredInfoTypeRequest) GetUpdateMask() *field_mask.FieldMask {
	if m != nil {
		return m.UpdateMask
	}
	return nil
}

// Request message for GetStoredInfoType.
type GetStoredInfoTypeRequest struct {
	// Resource name of the organization and storedInfoType to be read, for
	// example `organizations/433245324/storedInfoTypes/432452342` or
	// projects/project-id/storedInfoTypes/432452342.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetStoredInfoTypeRequest) Reset()         { *m = GetStoredInfoTypeRequest{} }
func (m *GetStoredInfoTypeRequest) String() string { return proto.CompactTextString(m) }
func (*GetStoredInfoTypeRequest) ProtoMessage()    {}
func (*GetStoredInfoTypeRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{108}
}

func (m *GetStoredInfoTypeRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetStoredInfoTypeRequest.Unmarshal(m, b)
}
func (m *GetStoredInfoTypeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetStoredInfoTypeRequest.Marshal(b, m, deterministic)
}
func (m *GetStoredInfoTypeRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetStoredInfoTypeRequest.Merge(m, src)
}
func (m *GetStoredInfoTypeRequest) XXX_Size() int {
	return xxx_messageInfo_GetStoredInfoTypeRequest.Size(m)
}
func (m *GetStoredInfoTypeRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetStoredInfoTypeRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetStoredInfoTypeRequest proto.InternalMessageInfo

func (m *GetStoredInfoTypeRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

// Request message for ListStoredInfoTypes.
type ListStoredInfoTypesRequest struct {
	// The parent resource name, for example projects/my-project-id or
	// organizations/my-org-id.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional page token to continue retrieval. Comes from previous call
	// to `ListStoredInfoTypes`.
	PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Optional size of the page, can be limited by server. If zero server returns
	// a page of max size 100.
	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional comma separated list of fields to order by,
	// followed by `asc` or `desc` postfix. This list is case-insensitive,
	// default sorting order is ascending, redundant space characters are
	// insignificant.
	//
	// Example: `name asc, display_name, create_time desc`
	//
	// Supported fields are:
	//
	// - `create_time`: corresponds to time the most recent version of the
	// resource was created.
	// - `state`: corresponds to the state of the resource.
	// - `name`: corresponds to resource name.
	// - `display_name`: corresponds to info type's display name.
	OrderBy              string   `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListStoredInfoTypesRequest) Reset()         { *m = ListStoredInfoTypesRequest{} }
func (m *ListStoredInfoTypesRequest) String() string { return proto.CompactTextString(m) }
func (*ListStoredInfoTypesRequest) ProtoMessage()    {}
func (*ListStoredInfoTypesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{109}
}

func (m *ListStoredInfoTypesRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListStoredInfoTypesRequest.Unmarshal(m, b)
}
func (m *ListStoredInfoTypesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListStoredInfoTypesRequest.Marshal(b, m, deterministic)
}
func (m *ListStoredInfoTypesRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListStoredInfoTypesRequest.Merge(m, src)
}
func (m *ListStoredInfoTypesRequest) XXX_Size() int {
	return xxx_messageInfo_ListStoredInfoTypesRequest.Size(m)
}
func (m *ListStoredInfoTypesRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_ListStoredInfoTypesRequest.DiscardUnknown(m)
}

var xxx_messageInfo_ListStoredInfoTypesRequest proto.InternalMessageInfo

func (m *ListStoredInfoTypesRequest) GetParent() string {
	if m != nil {
		return m.Parent
	}
	return ""
}

func (m *ListStoredInfoTypesRequest) GetPageToken() string {
	if m != nil {
		return m.PageToken
	}
	return ""
}

func (m *ListStoredInfoTypesRequest) GetPageSize() int32 {
	if m != nil {
		return m.PageSize
	}
	return 0
}

func (m *ListStoredInfoTypesRequest) GetOrderBy() string {
	if m != nil {
		return m.OrderBy
	}
	return ""
}

// Response message for ListStoredInfoTypes.
type ListStoredInfoTypesResponse struct {
	// List of storedInfoTypes, up to page_size in ListStoredInfoTypesRequest.
	StoredInfoTypes []*StoredInfoType `protobuf:"bytes,1,rep,name=stored_info_types,json=storedInfoTypes,proto3" json:"stored_info_types,omitempty"`
	// If the next page is available then the next page token to be used
	// in following ListStoredInfoTypes request.
	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListStoredInfoTypesResponse) Reset()         { *m = ListStoredInfoTypesResponse{} }
func (m *ListStoredInfoTypesResponse) String() string { return proto.CompactTextString(m) }
func (*ListStoredInfoTypesResponse) ProtoMessage()    {}
func (*ListStoredInfoTypesResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{110}
}

func (m *ListStoredInfoTypesResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ListStoredInfoTypesResponse.Unmarshal(m, b)
}
func (m *ListStoredInfoTypesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ListStoredInfoTypesResponse.Marshal(b, m, deterministic)
}
func (m *ListStoredInfoTypesResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ListStoredInfoTypesResponse.Merge(m, src)
}
func (m *ListStoredInfoTypesResponse) XXX_Size() int {
	return xxx_messageInfo_ListStoredInfoTypesResponse.Size(m)
}
func (m *ListStoredInfoTypesResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_ListStoredInfoTypesResponse.DiscardUnknown(m)
}

var xxx_messageInfo_ListStoredInfoTypesResponse proto.InternalMessageInfo

func (m *ListStoredInfoTypesResponse) GetStoredInfoTypes() []*StoredInfoType {
	if m != nil {
		return m.StoredInfoTypes
	}
	return nil
}

func (m *ListStoredInfoTypesResponse) GetNextPageToken() string {
	if m != nil {
		return m.NextPageToken
	}
	return ""
}

// Request message for DeleteStoredInfoType.
type DeleteStoredInfoTypeRequest struct {
	// Resource name of the organization and storedInfoType to be deleted, for
	// example `organizations/433245324/storedInfoTypes/432452342` or
	// projects/project-id/storedInfoTypes/432452342.
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteStoredInfoTypeRequest) Reset()         { *m = DeleteStoredInfoTypeRequest{} }
func (m *DeleteStoredInfoTypeRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteStoredInfoTypeRequest) ProtoMessage()    {}
func (*DeleteStoredInfoTypeRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_6872a91dcb80f8dc, []int{111}
}

func (m *DeleteStoredInfoTypeRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteStoredInfoTypeRequest.Unmarshal(m, b)
}
func (m *DeleteStoredInfoTypeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteStoredInfoTypeRequest.Marshal(b, m, deterministic)
}
func (m *DeleteStoredInfoTypeRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteStoredInfoTypeRequest.Merge(m, src)
}
func (m *DeleteStoredInfoTypeRequest) XXX_Size() int {
	return xxx_messageInfo_DeleteStoredInfoTypeRequest.Size(m)
}
func (m *DeleteStoredInfoTypeRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteStoredInfoTypeRequest.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteStoredInfoTypeRequest proto.InternalMessageInfo

func (m *DeleteStoredInfoTypeRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func init() {
	proto.RegisterEnum("google.privacy.dlp.v2.ContentOption", ContentOption_name, ContentOption_value)
	proto.RegisterEnum("google.privacy.dlp.v2.MatchingType", MatchingType_name, MatchingType_value)
	proto.RegisterEnum("google.privacy.dlp.v2.InfoTypeSupportedBy", InfoTypeSupportedBy_name, InfoTypeSupportedBy_value)
	proto.RegisterEnum("google.privacy.dlp.v2.RelationalOperator", RelationalOperator_name, RelationalOperator_value)
	proto.RegisterEnum("google.privacy.dlp.v2.DlpJobType", DlpJobType_name, DlpJobType_value)
	proto.RegisterEnum("google.privacy.dlp.v2.StoredInfoTypeState", StoredInfoTypeState_name, StoredInfoTypeState_value)
	proto.RegisterEnum("google.privacy.dlp.v2.ByteContentItem_BytesType", ByteContentItem_BytesType_name, ByteContentItem_BytesType_value)
	proto.RegisterEnum("google.privacy.dlp.v2.OutputStorageConfig_OutputSchema", OutputStorageConfig_OutputSchema_name, OutputStorageConfig_OutputSchema_value)
	proto.RegisterEnum("google.privacy.dlp.v2.TimePartConfig_TimePart", TimePartConfig_TimePart_name, TimePartConfig_TimePart_value)
	proto.RegisterEnum("google.privacy.dlp.v2.CharsToIgnore_CommonCharsToIgnore", CharsToIgnore_CommonCharsToIgnore_name, CharsToIgnore_CommonCharsToIgnore_value)
	proto.RegisterEnum("google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet", CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet_name, CryptoReplaceFfxFpeConfig_FfxCommonNativeAlphabet_value)
	proto.RegisterEnum("google.privacy.dlp.v2.RecordCondition_Expressions_LogicalOperator", RecordCondition_Expressions_LogicalOperator_name, RecordCondition_Expressions_LogicalOperator_value)
	proto.RegisterEnum("google.privacy.dlp.v2.TransformationSummary_TransformationResultCode", TransformationSummary_TransformationResultCode_name, TransformationSummary_TransformationResultCode_value)
	proto.RegisterEnum("google.privacy.dlp.v2.JobTrigger_Status", JobTrigger_Status_name, JobTrigger_Status_value)
	proto.RegisterEnum("google.privacy.dlp.v2.DlpJob_JobState", DlpJob_JobState_name, DlpJob_JobState_value)
	proto.RegisterType((*ExcludeInfoTypes)(nil), "google.privacy.dlp.v2.ExcludeInfoTypes")
	proto.RegisterType((*ExclusionRule)(nil), "google.privacy.dlp.v2.ExclusionRule")
	proto.RegisterType((*InspectionRule)(nil), "google.privacy.dlp.v2.InspectionRule")
	proto.RegisterType((*InspectionRuleSet)(nil), "google.privacy.dlp.v2.InspectionRuleSet")
	proto.RegisterType((*InspectConfig)(nil), "google.privacy.dlp.v2.InspectConfig")
	proto.RegisterType((*InspectConfig_FindingLimits)(nil), "google.privacy.dlp.v2.InspectConfig.FindingLimits")
	proto.RegisterType((*InspectConfig_FindingLimits_InfoTypeLimit)(nil), "google.privacy.dlp.v2.InspectConfig.FindingLimits.InfoTypeLimit")
	proto.RegisterType((*ByteContentItem)(nil), "google.privacy.dlp.v2.ByteContentItem")
	proto.RegisterType((*ContentItem)(nil), "google.privacy.dlp.v2.ContentItem")
	proto.RegisterType((*Table)(nil), "google.privacy.dlp.v2.Table")
	proto.RegisterType((*Table_Row)(nil), "google.privacy.dlp.v2.Table.Row")
	proto.RegisterType((*InspectResult)(nil), "google.privacy.dlp.v2.InspectResult")
	proto.RegisterType((*Finding)(nil), "google.privacy.dlp.v2.Finding")
	proto.RegisterType((*Location)(nil), "google.privacy.dlp.v2.Location")
	proto.RegisterType((*ContentLocation)(nil), "google.privacy.dlp.v2.ContentLocation")
	proto.RegisterType((*DocumentLocation)(nil), "google.privacy.dlp.v2.DocumentLocation")
	proto.RegisterType((*RecordLocation)(nil), "google.privacy.dlp.v2.RecordLocation")
	proto.RegisterType((*TableLocation)(nil), "google.privacy.dlp.v2.TableLocation")
	proto.RegisterType((*Range)(nil), "google.privacy.dlp.v2.Range")
	proto.RegisterType((*ImageLocation)(nil), "google.privacy.dlp.v2.ImageLocation")
	proto.RegisterType((*BoundingBox)(nil), "google.privacy.dlp.v2.BoundingBox")
	proto.RegisterType((*RedactImageRequest)(nil), "google.privacy.dlp.v2.RedactImageRequest")
	proto.RegisterType((*RedactImageRequest_ImageRedactionConfig)(nil), "google.privacy.dlp.v2.RedactImageRequest.ImageRedactionConfig")
	proto.RegisterType((*Color)(nil), "google.privacy.dlp.v2.Color")
	proto.RegisterType((*RedactImageResponse)(nil), "google.privacy.dlp.v2.RedactImageResponse")
	proto.RegisterType((*DeidentifyContentRequest)(nil), "google.privacy.dlp.v2.DeidentifyContentRequest")
	proto.RegisterType((*DeidentifyContentResponse)(nil), "google.privacy.dlp.v2.DeidentifyContentResponse")
	proto.RegisterType((*ReidentifyContentRequest)(nil), "google.privacy.dlp.v2.ReidentifyContentRequest")
	proto.RegisterType((*ReidentifyContentResponse)(nil), "google.privacy.dlp.v2.ReidentifyContentResponse")
	proto.RegisterType((*InspectContentRequest)(nil), "google.privacy.dlp.v2.InspectContentRequest")
	proto.RegisterType((*InspectContentResponse)(nil), "google.privacy.dlp.v2.InspectContentResponse")
	proto.RegisterType((*OutputStorageConfig)(nil), "google.privacy.dlp.v2.OutputStorageConfig")
	proto.RegisterType((*InfoTypeStats)(nil), "google.privacy.dlp.v2.InfoTypeStats")
	proto.RegisterType((*InspectDataSourceDetails)(nil), "google.privacy.dlp.v2.InspectDataSourceDetails")
	proto.RegisterType((*InspectDataSourceDetails_RequestedOptions)(nil), "google.privacy.dlp.v2.InspectDataSourceDetails.RequestedOptions")
	proto.RegisterType((*InspectDataSourceDetails_Result)(nil), "google.privacy.dlp.v2.InspectDataSourceDetails.Result")
	proto.RegisterType((*InfoTypeDescription)(nil), "google.privacy.dlp.v2.InfoTypeDescription")
	proto.RegisterType((*ListInfoTypesRequest)(nil), "google.privacy.dlp.v2.ListInfoTypesRequest")
	proto.RegisterType((*ListInfoTypesResponse)(nil), "google.privacy.dlp.v2.ListInfoTypesResponse")
	proto.RegisterType((*RiskAnalysisJobConfig)(nil), "google.privacy.dlp.v2.RiskAnalysisJobConfig")
	proto.RegisterType((*QuasiId)(nil), "google.privacy.dlp.v2.QuasiId")
	proto.RegisterType((*StatisticalTable)(nil), "google.privacy.dlp.v2.StatisticalTable")
	proto.RegisterType((*StatisticalTable_QuasiIdentifierField)(nil), "google.privacy.dlp.v2.StatisticalTable.QuasiIdentifierField")
	proto.RegisterType((*PrivacyMetric)(nil), "google.privacy.dlp.v2.PrivacyMetric")
	proto.RegisterType((*PrivacyMetric_NumericalStatsConfig)(nil), "google.privacy.dlp.v2.PrivacyMetric.NumericalStatsConfig")
	proto.RegisterType((*PrivacyMetric_CategoricalStatsConfig)(nil), "google.privacy.dlp.v2.PrivacyMetric.CategoricalStatsConfig")
	proto.RegisterType((*PrivacyMetric_KAnonymityConfig)(nil), "google.privacy.dlp.v2.PrivacyMetric.KAnonymityConfig")
	proto.RegisterType((*PrivacyMetric_LDiversityConfig)(nil), "google.privacy.dlp.v2.PrivacyMetric.LDiversityConfig")
	proto.RegisterType((*PrivacyMetric_KMapEstimationConfig)(nil), "google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig")
	proto.RegisterType((*PrivacyMetric_KMapEstimationConfig_TaggedField)(nil), "google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.TaggedField")
	proto.RegisterType((*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable)(nil), "google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable")
	proto.RegisterType((*PrivacyMetric_KMapEstimationConfig_AuxiliaryTable_QuasiIdField)(nil), "google.privacy.dlp.v2.PrivacyMetric.KMapEstimationConfig.AuxiliaryTable.QuasiIdField")
	proto.RegisterType((*PrivacyMetric_DeltaPresenceEstimationConfig)(nil), "google.privacy.dlp.v2.PrivacyMetric.DeltaPresenceEstimationConfig")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_NumericalStatsResult)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.NumericalStatsResult")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_CategoricalStatsResult)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_CategoricalStatsResult_CategoricalStatsHistogramBucket)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.CategoricalStatsResult.CategoricalStatsHistogramBucket")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_KAnonymityResult)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityEquivalenceClass)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityEquivalenceClass")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_KAnonymityResult_KAnonymityHistogramBucket)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KAnonymityResult.KAnonymityHistogramBucket")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_LDiversityResult)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityEquivalenceClass)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityEquivalenceClass")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_LDiversityResult_LDiversityHistogramBucket)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.LDiversityResult.LDiversityHistogramBucket")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_KMapEstimationResult)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationQuasiIdValues)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationQuasiIdValues")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_KMapEstimationResult_KMapEstimationHistogramBucket)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.KMapEstimationResult.KMapEstimationHistogramBucket")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationQuasiIdValues)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationQuasiIdValues")
	proto.RegisterType((*AnalyzeDataSourceRiskDetails_DeltaPresenceEstimationResult_DeltaPresenceEstimationHistogramBucket)(nil), "google.privacy.dlp.v2.AnalyzeDataSourceRiskDetails.DeltaPresenceEstimationResult.DeltaPresenceEstimationHistogramBucket")
	proto.RegisterType((*ValueFrequency)(nil), "google.privacy.dlp.v2.ValueFrequency")
	proto.RegisterType((*Value)(nil), "google.privacy.dlp.v2.Value")
	proto.RegisterType((*QuoteInfo)(nil), "google.privacy.dlp.v2.QuoteInfo")
	proto.RegisterType((*DateTime)(nil), "google.privacy.dlp.v2.DateTime")
	proto.RegisterType((*DateTime_TimeZone)(nil), "google.privacy.dlp.v2.DateTime.TimeZone")
	proto.RegisterType((*DeidentifyConfig)(nil), "google.privacy.dlp.v2.DeidentifyConfig")
	proto.RegisterType((*PrimitiveTransformation)(nil), "google.privacy.dlp.v2.PrimitiveTransformation")
	proto.RegisterType((*TimePartConfig)(nil), "google.privacy.dlp.v2.TimePartConfig")
	proto.RegisterType((*CryptoHashConfig)(nil), "google.privacy.dlp.v2.CryptoHashConfig")
	proto.RegisterType((*CryptoDeterministicConfig)(nil), "google.privacy.dlp.v2.CryptoDeterministicConfig")
	proto.RegisterType((*ReplaceValueConfig)(nil), "google.privacy.dlp.v2.ReplaceValueConfig")
	proto.RegisterType((*ReplaceWithInfoTypeConfig)(nil), "google.privacy.dlp.v2.ReplaceWithInfoTypeConfig")
	proto.RegisterType((*RedactConfig)(nil), "google.privacy.dlp.v2.RedactConfig")
	proto.RegisterType((*CharsToIgnore)(nil), "google.privacy.dlp.v2.CharsToIgnore")
	proto.RegisterType((*CharacterMaskConfig)(nil), "google.privacy.dlp.v2.CharacterMaskConfig")
	proto.RegisterType((*FixedSizeBucketingConfig)(nil), "google.privacy.dlp.v2.FixedSizeBucketingConfig")
	proto.RegisterType((*BucketingConfig)(nil), "google.privacy.dlp.v2.BucketingConfig")
	proto.RegisterType((*BucketingConfig_Bucket)(nil), "google.privacy.dlp.v2.BucketingConfig.Bucket")
	proto.RegisterType((*CryptoReplaceFfxFpeConfig)(nil), "google.privacy.dlp.v2.CryptoReplaceFfxFpeConfig")
	proto.RegisterType((*CryptoKey)(nil), "google.privacy.dlp.v2.CryptoKey")
	proto.RegisterType((*TransientCryptoKey)(nil), "google.privacy.dlp.v2.TransientCryptoKey")
	proto.RegisterType((*UnwrappedCryptoKey)(nil), "google.privacy.dlp.v2.UnwrappedCryptoKey")
	proto.RegisterType((*KmsWrappedCryptoKey)(nil), "google.privacy.dlp.v2.KmsWrappedCryptoKey")
	proto.RegisterType((*DateShiftConfig)(nil), "google.privacy.dlp.v2.DateShiftConfig")
	proto.RegisterType((*InfoTypeTransformations)(nil), "google.privacy.dlp.v2.InfoTypeTransformations")
	proto.RegisterType((*InfoTypeTransformations_InfoTypeTransformation)(nil), "google.privacy.dlp.v2.InfoTypeTransformations.InfoTypeTransformation")
	proto.RegisterType((*FieldTransformation)(nil), "google.privacy.dlp.v2.FieldTransformation")
	proto.RegisterType((*RecordTransformations)(nil), "google.privacy.dlp.v2.RecordTransformations")
	proto.RegisterType((*RecordSuppression)(nil), "google.privacy.dlp.v2.RecordSuppression")
	proto.RegisterType((*RecordCondition)(nil), "google.privacy.dlp.v2.RecordCondition")
	proto.RegisterType((*RecordCondition_Condition)(nil), "google.privacy.dlp.v2.RecordCondition.Condition")
	proto.RegisterType((*RecordCondition_Conditions)(nil), "google.privacy.dlp.v2.RecordCondition.Conditions")
	proto.RegisterType((*RecordCondition_Expressions)(nil), "google.privacy.dlp.v2.RecordCondition.Expressions")
	proto.RegisterType((*TransformationOverview)(nil), "google.privacy.dlp.v2.TransformationOverview")
	proto.RegisterType((*TransformationSummary)(nil), "google.privacy.dlp.v2.TransformationSummary")
	proto.RegisterType((*TransformationSummary_SummaryResult)(nil), "google.privacy.dlp.v2.TransformationSummary.SummaryResult")
	proto.RegisterType((*Schedule)(nil), "google.privacy.dlp.v2.Schedule")
	proto.RegisterType((*InspectTemplate)(nil), "google.privacy.dlp.v2.InspectTemplate")
	proto.RegisterType((*DeidentifyTemplate)(nil), "google.privacy.dlp.v2.DeidentifyTemplate")
	proto.RegisterType((*Error)(nil), "google.privacy.dlp.v2.Error")
	proto.RegisterType((*JobTrigger)(nil), "google.privacy.dlp.v2.JobTrigger")
	proto.RegisterType((*JobTrigger_Trigger)(nil), "google.privacy.dlp.v2.JobTrigger.Trigger")
	proto.RegisterType((*Action)(nil), "google.privacy.dlp.v2.Action")
	proto.RegisterType((*Action_SaveFindings)(nil), "google.privacy.dlp.v2.Action.SaveFindings")
	proto.RegisterType((*Action_PublishToPubSub)(nil), "google.privacy.dlp.v2.Action.PublishToPubSub")
	proto.RegisterType((*Action_PublishSummaryToCscc)(nil), "google.privacy.dlp.v2.Action.PublishSummaryToCscc")
	proto.RegisterType((*Action_JobNotificationEmails)(nil), "google.privacy.dlp.v2.Action.JobNotificationEmails")
	proto.RegisterType((*CreateInspectTemplateRequest)(nil), "google.privacy.dlp.v2.CreateInspectTemplateRequest")
	proto.RegisterType((*UpdateInspectTemplateRequest)(nil), "google.privacy.dlp.v2.UpdateInspectTemplateRequest")
	proto.RegisterType((*GetInspectTemplateRequest)(nil), "google.privacy.dlp.v2.GetInspectTemplateRequest")
	proto.RegisterType((*ListInspectTemplatesRequest)(nil), "google.privacy.dlp.v2.ListInspectTemplatesRequest")
	proto.RegisterType((*ListInspectTemplatesResponse)(nil), "google.privacy.dlp.v2.ListInspectTemplatesResponse")
	proto.RegisterType((*DeleteInspectTemplateRequest)(nil), "google.privacy.dlp.v2.DeleteInspectTemplateRequest")
	proto.RegisterType((*CreateJobTriggerRequest)(nil), "google.privacy.dlp.v2.CreateJobTriggerRequest")
	proto.RegisterType((*ActivateJobTriggerRequest)(nil), "google.privacy.dlp.v2.ActivateJobTriggerRequest")
	proto.RegisterType((*UpdateJobTriggerRequest)(nil), "google.privacy.dlp.v2.UpdateJobTriggerRequest")
	proto.RegisterType((*GetJobTriggerRequest)(nil), "google.privacy.dlp.v2.GetJobTriggerRequest")
	proto.RegisterType((*CreateDlpJobRequest)(nil), "google.privacy.dlp.v2.CreateDlpJobRequest")
	proto.RegisterType((*ListJobTriggersRequest)(nil), "google.privacy.dlp.v2.ListJobTriggersRequest")
	proto.RegisterType((*ListJobTriggersResponse)(nil), "google.privacy.dlp.v2.ListJobTriggersResponse")
	proto.RegisterType((*DeleteJobTriggerRequest)(nil), "google.privacy.dlp.v2.DeleteJobTriggerRequest")
	proto.RegisterType((*InspectJobConfig)(nil), "google.privacy.dlp.v2.InspectJobConfig")
	proto.RegisterType((*DlpJob)(nil), "google.privacy.dlp.v2.DlpJob")
	proto.RegisterType((*GetDlpJobRequest)(nil), "google.privacy.dlp.v2.GetDlpJobRequest")
	proto.RegisterType((*ListDlpJobsRequest)(nil), "google.privacy.dlp.v2.ListDlpJobsRequest")
	proto.RegisterType((*ListDlpJobsResponse)(nil), "google.privacy.dlp.v2.ListDlpJobsResponse")
	proto.RegisterType((*CancelDlpJobRequest)(nil), "google.privacy.dlp.v2.CancelDlpJobRequest")
	proto.RegisterType((*DeleteDlpJobRequest)(nil), "google.privacy.dlp.v2.DeleteDlpJobRequest")
	proto.RegisterType((*CreateDeidentifyTemplateRequest)(nil), "google.privacy.dlp.v2.CreateDeidentifyTemplateRequest")
	proto.RegisterType((*UpdateDeidentifyTemplateRequest)(nil), "google.privacy.dlp.v2.UpdateDeidentifyTemplateRequest")
	proto.RegisterType((*GetDeidentifyTemplateRequest)(nil), "google.privacy.dlp.v2.GetDeidentifyTemplateRequest")
	proto.RegisterType((*ListDeidentifyTemplatesRequest)(nil), "google.privacy.dlp.v2.ListDeidentifyTemplatesRequest")
	proto.RegisterType((*ListDeidentifyTemplatesResponse)(nil), "google.privacy.dlp.v2.ListDeidentifyTemplatesResponse")
	proto.RegisterType((*DeleteDeidentifyTemplateRequest)(nil), "google.privacy.dlp.v2.DeleteDeidentifyTemplateRequest")
	proto.RegisterType((*LargeCustomDictionaryConfig)(nil), "google.privacy.dlp.v2.LargeCustomDictionaryConfig")
	proto.RegisterType((*LargeCustomDictionaryStats)(nil), "google.privacy.dlp.v2.LargeCustomDictionaryStats")
	proto.RegisterType((*StoredInfoTypeConfig)(nil), "google.privacy.dlp.v2.StoredInfoTypeConfig")
	proto.RegisterType((*StoredInfoTypeStats)(nil), "google.privacy.dlp.v2.StoredInfoTypeStats")
	proto.RegisterType((*StoredInfoTypeVersion)(nil), "google.privacy.dlp.v2.StoredInfoTypeVersion")
	proto.RegisterType((*StoredInfoType)(nil), "google.privacy.dlp.v2.StoredInfoType")
	proto.RegisterType((*CreateStoredInfoTypeRequest)(nil), "google.privacy.dlp.v2.CreateStoredInfoTypeRequest")
	proto.RegisterType((*UpdateStoredInfoTypeRequest)(nil), "google.privacy.dlp.v2.UpdateStoredInfoTypeRequest")
	proto.RegisterType((*GetStoredInfoTypeRequest)(nil), "google.privacy.dlp.v2.GetStoredInfoTypeRequest")
	proto.RegisterType((*ListStoredInfoTypesRequest)(nil), "google.privacy.dlp.v2.ListStoredInfoTypesRequest")
	proto.RegisterType((*ListStoredInfoTypesResponse)(nil), "google.privacy.dlp.v2.ListStoredInfoTypesResponse")
	proto.RegisterType((*DeleteStoredInfoTypeRequest)(nil), "google.privacy.dlp.v2.DeleteStoredInfoTypeRequest")
}

func init() { proto.RegisterFile("google/privacy/dlp/v2/dlp.proto", fileDescriptor_6872a91dcb80f8dc) }

var fileDescriptor_6872a91dcb80f8dc = []byte{
	// 9397 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x7d, 0x5b, 0x8c, 0x1b, 0x59,
	0x76, 0x58, 0x17, 0xd9, 0xec, 0x66, 0x1f, 0x36, 0xd9, 0xec, 0xdb, 0x4f, 0x51, 0xd2, 0x4a, 0x53,
	0x9a, 0x91, 0x34, 0x2d, 0xa9, 0x7b, 0xa6, 0xe7, 0xb1, 0xf3, 0xda, 0xd9, 0x65, 0x93, 0x94, 0x48,
	0x4d, 0xbf, 0x54, 0x64, 0x4b, 0x23, 0x79, 0x30, 0x95, 0x6a, 0xf2, 0x36, 0xbb, 0xd4, 0x24, 0x8b,
	0xaa, 0x2a, 0x4a, 0xdd, 0x63, 0x3b, 0x58, 0x07, 0x49, 0x0c, 0x27, 0x1e, 0x78, 0x01, 0x67, 0xb3,
	0x89, 0xed, 0x6c, 0x9c, 0x38, 0x40, 0x10, 0x03, 0x76, 0x12, 0x38, 0x76, 0x90, 0xc4, 0xce, 0x87,
	0x1d, 0xd8, 0x80, 0xe1, 0x04, 0xbb, 0x99, 0x20, 0x48, 0x10, 0x2c, 0x10, 0x6f, 0xe2, 0xd8, 0xc0,
	0xf8, 0x27, 0x40, 0x7e, 0x9c, 0xfc, 0x04, 0xf7, 0x51, 0x4f, 0x56, 0x91, 0xc5, 0x6e, 0x8d, 0xd7,
	0xd8, 0x2f, 0xf2, 0xde, 0x7b, 0xce, 0xb9, 0xe7, 0x9e, 0x73, 0xee, 0xb9, 0xe7, 0x3e, 0x0b, 0x2e,
	0x35, 0x35, 0xad, 0xd9, 0xc2, 0x6b, 0x5d, 0x5d, 0x7d, 0xaa, 0xd4, 0x4f, 0xd6, 0x1a, 0xad, 0xee,
	0xda, 0xd3, 0x75, 0xf2, 0xb3, 0xda, 0xd5, 0x35, 0x53, 0x43, 0x0b, 0x0c, 0x60, 0x95, 0x03, 0xac,
	0x92, 0x92, 0xa7, 0xeb, 0xb9, 0x0b, 0x1c, 0x4f, 0xe9, 0xaa, 0x6b, 0x4a, 0xa7, 0xa3, 0x99, 0x8a,
	0xa9, 0x6a, 0x1d, 0x83, 0x21, 0xe5, 0x96, 0x5c, 0xa5, 0xf5, 0x96, 0x8a, 0x3b, 0x26, 0x2f, 0xb8,
	0x12, 0x5c, 0x9d, 0x61, 0x6a, 0xba, 0xd2, 0xc4, 0x1c, 0xe8, 0x4b, 0x36, 0x90, 0x66, 0x6a, 0xfb,
	0xbd, 0x83, 0xb5, 0x46, 0x4f, 0xa7, 0xe4, 0x79, 0xf9, 0x79, 0x7f, 0x39, 0x6e, 0x77, 0xcd, 0x13,
	0x5e, 0x78, 0xd9, 0x5f, 0x78, 0xa0, 0xe2, 0x56, 0x43, 0x6e, 0x2b, 0xc6, 0x11, 0x87, 0xb8, 0xe4,
	0x87, 0x30, 0xd5, 0x36, 0x36, 0x4c, 0xa5, 0xdd, 0xf5, 0x71, 0xaf, 0x77, 0xeb, 0x6b, 0x86, 0xa9,
	0x98, 0x3d, 0xab, 0x59, 0x8b, 0xbc, 0xc0, 0x3c, 0xe9, 0xe2, 0xb5, 0x86, 0x62, 0x62, 0x1f, 0x43,
	0x3c, 0xff, 0x44, 0x3b, 0x78, 0x86, 0xf1, 0x51, 0x50, 0x21, 0xa9, 0x4a, 0x3b, 0x68, 0x28, 0x9c,
	0x5b, 0x51, 0x82, 0x6c, 0xe9, 0xb8, 0xde, 0xea, 0x35, 0x70, 0xa5, 0x73, 0xa0, 0xd5, 0x4e, 0xba,
	0xd8, 0x40, 0xef, 0x03, 0xa8, 0x9d, 0x03, 0x4d, 0x26, 0x08, 0xc6, 0xb2, 0x70, 0x39, 0x7e, 0x3d,
	0xb5, 0x7e, 0x69, 0x35, 0x50, 0x0d, 0xab, 0x16, 0x96, 0x34, 0xa5, 0x5a, 0xf8, 0xe2, 0x67, 0x31,
	0x48, 0x53, 0xa2, 0x86, 0xaa, 0x75, 0xa4, 0x5e, 0x0b, 0x23, 0x09, 0xa0, 0xa1, 0xd6, 0x89, 0x04,
	0x15, 0xfd, 0x64, 0x59, 0xb8, 0x2c, 0x5c, 0x4f, 0xad, 0xbf, 0x12, 0x42, 0xb1, 0xd0, 0x33, 0x4c,
	0xad, 0x6d, 0xd1, 0x5d, 0x2d, 0xda, 0x78, 0xe5, 0x31, 0xc9, 0x45, 0x05, 0x15, 0x20, 0xa1, 0xe3,
	0x26, 0x3e, 0x5e, 0x8e, 0x51, 0x72, 0x37, 0xa2, 0x91, 0x93, 0x08, 0x4a, 0x79, 0x4c, 0x62, 0xb8,
	0xe8, 0x01, 0x20, 0xcc, 0x9a, 0x2f, 0xbb, 0x9a, 0x1c, 0xa7, 0x14, 0xaf, 0x85, 0x50, 0xf4, 0xcb,
	0xab, 0x3c, 0x26, 0x65, 0xb1, 0x5f, 0x86, 0x65, 0x48, 0xb7, 0x15, 0xb3, 0x7e, 0xa8, 0x76, 0x9a,
	0x94, 0xe8, 0xf2, 0xf8, 0x65, 0xe1, 0x7a, 0x66, 0xfd, 0x4a, 0x08, 0xcd, 0x2d, 0x0e, 0x4b, 0x45,
	0x39, 0xdd, 0x76, 0xa5, 0x36, 0x26, 0x60, 0x9c, 0x10, 0x10, 0xff, 0xbd, 0x00, 0x99, 0x4a, 0xc7,
	0xe8, 0x62, 0x2a, 0x01, 0x2a, 0xd6, 0x06, 0x4c, 0x1f, 0x6a, 0xe6, 0x33, 0x4d, 0x6f, 0xc8, 0x7a,
	0xaf, 0x85, 0xb9, 0x60, 0xbf, 0x1a, 0x51, 0xb0, 0xd8, 0x74, 0x48, 0xad, 0x96, 0x19, 0x1d, 0xf2,
	0xbf, 0x3c, 0x26, 0xa5, 0x0e, 0x9d, 0x24, 0xda, 0x82, 0x0c, 0xb6, 0xb4, 0xc9, 0xea, 0x61, 0x12,
	0x7f, 0x71, 0x90, 0x7c, 0x2c, 0xd5, 0x97, 0xc7, 0xa4, 0x34, 0x76, 0x67, 0xd8, 0xed, 0xf9, 0x86,
	0x00, 0xb3, 0xde, 0xf6, 0x54, 0xb1, 0x79, 0x56, 0xdb, 0x43, 0xef, 0x42, 0x82, 0xb0, 0x68, 0x2c,
	0xc7, 0x28, 0xea, 0x4b, 0xa1, 0xa8, 0xee, 0x8a, 0x25, 0x86, 0x23, 0x7e, 0x3a, 0x09, 0x69, 0x5e,
	0x52, 0xd0, 0x3a, 0x07, 0x6a, 0xf3, 0xcc, 0xec, 0x94, 0x21, 0xd3, 0x56, 0x3b, 0x72, 0x4b, 0x3d,
	0xc2, 0x2d, 0xf5, 0x50, 0xd3, 0x1a, 0x54, 0x76, 0x99, 0xf5, 0x17, 0x42, 0x68, 0x6c, 0xda, 0x80,
	0x52, 0xba, 0xad, 0x76, 0x9c, 0x24, 0xba, 0x0b, 0x13, 0x2d, 0xb5, 0xad, 0x9a, 0x96, 0x75, 0xae,
	0x0f, 0x6e, 0x19, 0xe3, 0x7f, 0xf5, 0xb6, 0xda, 0x69, 0xa8, 0x9d, 0xe6, 0x26, 0xc5, 0x94, 0x38,
	0x05, 0x74, 0x05, 0xd2, 0x6a, 0x87, 0x59, 0xfd, 0x93, 0x9e, 0x66, 0x32, 0xe3, 0x4c, 0x4a, 0xd3,
	0x3c, 0xf3, 0x1e, 0xc9, 0x43, 0x37, 0x03, 0xbb, 0x46, 0x82, 0x42, 0xf6, 0xdb, 0xfb, 0x3d, 0x98,
	0xad, 0x53, 0xfb, 0x72, 0x03, 0x4f, 0x0c, 0xd4, 0x81, 0xd7, 0x1e, 0xa5, 0x99, 0xba, 0x27, 0x6d,
	0xa0, 0x2d, 0x98, 0xa9, 0x6b, 0x1d, 0x13, 0x77, 0x4c, 0x59, 0xeb, 0x52, 0xe7, 0xbe, 0x9c, 0xbc,
	0x1c, 0xbf, 0x9e, 0x09, 0x35, 0xbc, 0x02, 0x83, 0xde, 0xa1, 0xc0, 0x52, 0xa6, 0xee, 0x4e, 0x1a,
	0xa8, 0x00, 0x49, 0xa2, 0x65, 0xd9, 0xc0, 0xe6, 0x32, 0x50, 0xc6, 0xae, 0x47, 0x32, 0x8e, 0x2a,
	0x36, 0xa5, 0x49, 0x9d, 0xfd, 0xc9, 0x7d, 0x1e, 0x83, 0xb4, 0x47, 0xa6, 0xe8, 0x55, 0x58, 0x68,
	0x2b, 0xc7, 0xf2, 0x01, 0xcb, 0x34, 0xe4, 0x2e, 0xd6, 0x65, 0xd5, 0xc4, 0x6d, 0xda, 0x19, 0x13,
	0x12, 0x6a, 0x2b, 0xc7, 0x1c, 0xc1, 0xd8, 0xc5, 0x7a, 0xc5, 0xc4, 0x6d, 0xf4, 0x65, 0x58, 0xee,
	0x43, 0xd1, 0xf1, 0x93, 0x1e, 0x36, 0x4c, 0x6a, 0x1e, 0x09, 0x69, 0xc1, 0x8b, 0x25, 0xb1, 0x42,
	0xf4, 0x63, 0x90, 0xeb, 0xaf, 0xcb, 0x12, 0xf7, 0x72, 0x9c, 0x36, 0xea, 0x6b, 0xa3, 0xdb, 0x85,
	0x6d, 0xb9, 0x34, 0x29, 0x2d, 0xfa, 0x58, 0xe6, 0x85, 0xb9, 0x2e, 0xe9, 0x1c, 0x2e, 0x40, 0xf4,
	0x1e, 0x4c, 0x39, 0xb5, 0x33, 0xdf, 0x33, 0xb4, 0x6f, 0x24, 0xad, 0xbe, 0x81, 0x5e, 0x80, 0x69,
	0x77, 0x63, 0x78, 0xcb, 0x53, 0xae, 0xca, 0xc5, 0xcf, 0x05, 0x98, 0xd9, 0x38, 0x31, 0x31, 0x57,
	0x2c, 0x15, 0x5e, 0x91, 0xb9, 0x0f, 0x5a, 0x5f, 0x26, 0x74, 0x10, 0xf1, 0x61, 0xd1, 0xb4, 0x41,
	0x19, 0xa0, 0xd8, 0x08, 0xc1, 0x78, 0x43, 0x31, 0x15, 0x5a, 0xe9, 0xb4, 0x44, 0xff, 0x8b, 0x7f,
	0x19, 0xa6, 0x6c, 0x30, 0x94, 0x83, 0xc5, 0x8d, 0x87, 0xb5, 0x52, 0x55, 0xae, 0x3d, 0xdc, 0x2d,
	0xc9, 0x7b, 0xdb, 0xd5, 0xdd, 0x52, 0xa1, 0x72, 0xbb, 0x52, 0x2a, 0x66, 0xc7, 0xd0, 0x14, 0x24,
	0x2a, 0x5b, 0xf9, 0x3b, 0xa5, 0xec, 0x04, 0xca, 0x00, 0xd0, 0xbf, 0xf2, 0xdd, 0xdd, 0xd2, 0x9d,
	0xac, 0x80, 0xd2, 0x30, 0xc5, 0xd2, 0x1b, 0x5b, 0xbb, 0xd9, 0x98, 0x93, 0xdc, 0xdd, 0xbe, 0x93,
	0x8d, 0x3b, 0xc9, 0xea, 0xfd, 0x3b, 0xd9, 0x71, 0x92, 0xac, 0x95, 0x3e, 0xac, 0xc9, 0x7b, 0xb5,
	0xdb, 0x6f, 0x65, 0x13, 0xe2, 0x3f, 0x15, 0x20, 0xe5, 0x6e, 0xe9, 0x22, 0x24, 0x9e, 0x2a, 0xad,
	0x1e, 0xa6, 0x1d, 0x7e, 0x8a, 0x8c, 0x59, 0x34, 0x89, 0x5e, 0x87, 0x84, 0xa9, 0xec, 0xb7, 0x58,
	0xaf, 0x4d, 0xad, 0x5f, 0x08, 0x11, 0x41, 0x8d, 0xc0, 0x10, 0x2c, 0x0a, 0x8c, 0x4a, 0x30, 0xb5,
	0x7f, 0x62, 0x62, 0x66, 0x9b, 0x09, 0x8a, 0x79, 0x35, 0x9a, 0xf0, 0xca, 0x63, 0x52, 0x92, 0xa0,
	0x92, 0xff, 0x1b, 0x29, 0x98, 0x22, 0xc2, 0xa2, 0x64, 0xc4, 0x7f, 0x21, 0x40, 0x82, 0x56, 0x83,
	0xde, 0x82, 0xc9, 0x43, 0xac, 0x34, 0xb0, 0x6e, 0x39, 0xc9, 0x2f, 0x85, 0xd0, 0xbe, 0x4d, 0x82,
	0xa1, 0x4a, 0x43, 0xb2, 0xc0, 0xd1, 0xeb, 0x30, 0xae, 0x6b, 0xcf, 0x2c, 0x7f, 0x7d, 0x79, 0x50,
	0x63, 0x56, 0x25, 0xed, 0x99, 0x44, 0xa1, 0x73, 0xef, 0x42, 0x5c, 0xd2, 0x9e, 0xa1, 0xd7, 0x61,
	0x82, 0xca, 0xc4, 0xaa, 0x35, 0x4c, 0x16, 0xf7, 0x09, 0x90, 0xc4, 0x61, 0xc5, 0x4f, 0x6c, 0x2f,
	0x2f, 0x61, 0xa3, 0xd7, 0x32, 0xd1, 0x3b, 0x90, 0xb4, 0xcd, 0x70, 0x18, 0xfb, 0x14, 0x4c, 0xb2,
	0xe1, 0xd1, 0x2d, 0x40, 0x76, 0x7f, 0x34, 0xf5, 0x5e, 0xa7, 0xae, 0x98, 0x98, 0x79, 0xf9, 0xa4,
	0x34, 0x6b, 0x95, 0xd4, 0xac, 0x02, 0xf1, 0xbf, 0xc5, 0x60, 0x92, 0x13, 0x41, 0xf3, 0x90, 0x60,
	0xee, 0x97, 0xd8, 0xf2, 0x94, 0xc4, 0x12, 0xde, 0x5e, 0x15, 0x1b, 0xb5, 0x57, 0xe5, 0x01, 0x5c,
	0x83, 0x4d, 0x3c, 0xea, 0x60, 0xe3, 0x42, 0x42, 0xef, 0x42, 0xb2, 0xa5, 0xd5, 0x69, 0xbc, 0xcb,
	0x4d, 0x2c, 0xac, 0xfe, 0x4d, 0x0e, 0x26, 0xd9, 0x08, 0xe8, 0x5d, 0x48, 0xd5, 0x75, 0xac, 0x98,
	0x58, 0x26, 0x91, 0xe6, 0xf2, 0x04, 0xc5, 0xcf, 0x39, 0xf8, 0x2c, 0xe2, 0x5d, 0xad, 0x59, 0x11,
	0xaf, 0x04, 0x0c, 0x9c, 0x64, 0xa0, 0xaf, 0x02, 0x50, 0x19, 0x50, 0xa7, 0xb6, 0x3c, 0x49, 0x71,
	0xc3, 0x2c, 0x82, 0x0e, 0x52, 0x44, 0x00, 0xd2, 0xd4, 0x13, 0xeb, 0xaf, 0xf8, 0x3f, 0x04, 0x48,
	0x6e, 0x3a, 0xac, 0x00, 0xb5, 0x78, 0x5d, 0xe9, 0x34, 0x2d, 0xff, 0x14, 0x66, 0x20, 0x12, 0x81,
	0x91, 0x68, 0x0f, 0xa1, 0x7f, 0x51, 0x89, 0x0c, 0x3e, 0x0d, 0xdc, 0xd5, 0xd4, 0x8e, 0xc9, 0x29,
	0xc4, 0x22, 0x50, 0xc8, 0xd8, 0x48, 0x8c, 0x4c, 0x15, 0x66, 0xad, 0x31, 0xcc, 0x12, 0x91, 0xb1,
	0x3c, 0x49, 0x4d, 0xec, 0xea, 0xe0, 0x51, 0xcc, 0x96, 0x6d, 0xb6, 0xee, 0xcd, 0x30, 0xc4, 0x7f,
	0x19, 0x87, 0x19, 0x1f, 0x14, 0x7a, 0x09, 0xe8, 0x78, 0xa7, 0xa8, 0x1d, 0xac, 0xcb, 0x1d, 0xa5,
	0x6d, 0x19, 0x55, 0xda, 0xce, 0xdd, 0x56, 0xda, 0x18, 0xed, 0xc2, 0x8c, 0x8e, 0xeb, 0x24, 0x60,
	0xb4, 0x55, 0xcc, 0x9a, 0x15, 0x36, 0x48, 0x4b, 0x14, 0xda, 0xaa, 0xa6, 0x3c, 0x26, 0x65, 0x74,
	0x4f, 0x0e, 0x89, 0x0e, 0xd5, 0xb6, 0xd2, 0xc4, 0x0e, 0xc1, 0xf8, 0xc0, 0xe8, 0xb0, 0x42, 0x80,
	0x5d, 0xf4, 0xd2, 0xaa, 0x3b, 0x03, 0xdd, 0x87, 0xd9, 0x86, 0x56, 0xef, 0xb5, 0xdd, 0x12, 0xe3,
	0xee, 0x2a, 0x2c, 0x1e, 0x2f, 0x72, 0x78, 0x17, 0xd1, 0x6c, 0xc3, 0x97, 0x87, 0x3e, 0x80, 0x39,
	0x47, 0x3e, 0xf6, 0x7c, 0x2b, 0x82, 0x7d, 0x22, 0x1b, 0xcd, 0xce, 0x43, 0x37, 0x98, 0x56, 0x19,
	0xb1, 0xa7, 0x58, 0x27, 0xb1, 0x2d, 0x35, 0xd7, 0x29, 0xa6, 0x2d, 0x5a, 0x70, 0x9f, 0xe5, 0x6f,
	0x80, 0xd3, 0x9d, 0xc4, 0xd7, 0x20, 0xeb, 0xe7, 0x16, 0x5d, 0x82, 0xd4, 0x81, 0xda, 0xc2, 0xb2,
	0x76, 0x70, 0x40, 0x42, 0x13, 0xa2, 0xb6, 0xb8, 0x04, 0x24, 0x6b, 0x87, 0xe6, 0x88, 0xff, 0x55,
	0x80, 0x8c, 0x57, 0x0d, 0xa4, 0xa3, 0x70, 0x35, 0x1e, 0x61, 0x6b, 0x3e, 0x75, 0x79, 0xa0, 0x06,
	0x3f, 0xc0, 0x27, 0xd2, 0x94, 0x6e, 0xfd, 0x45, 0x6f, 0x13, 0x8f, 0x47, 0xa6, 0xa5, 0x6a, 0x83,
	0x1b, 0xc0, 0x50, 0x87, 0x7d, 0xc0, 0xfe, 0xa0, 0x0f, 0x20, 0x43, 0x47, 0x94, 0xa8, 0x0a, 0xa7,
	0xae, 0xdb, 0xb6, 0xe6, 0xb4, 0xe9, 0x4e, 0x8a, 0x37, 0x21, 0xed, 0x29, 0x47, 0xe7, 0x61, 0x4a,
	0xd7, 0x9e, 0xc9, 0x6a, 0xa7, 0x81, 0x8f, 0xb9, 0x2c, 0x92, 0xba, 0xf6, 0xac, 0x42, 0xd2, 0xe2,
	0x1a, 0x24, 0x58, 0xb7, 0x9a, 0x87, 0x84, 0x61, 0x2a, 0xba, 0x25, 0x2d, 0x96, 0x40, 0x59, 0x88,
	0xe3, 0x0e, 0x6b, 0x4f, 0x5c, 0x22, 0x7f, 0xc5, 0x47, 0x90, 0xf6, 0xd8, 0x1b, 0xaa, 0x40, 0x66,
	0x5f, 0xeb, 0x51, 0xf7, 0x2b, 0xef, 0x6b, 0xc7, 0xf6, 0xc0, 0x21, 0x86, 0x0d, 0x85, 0x1c, 0x78,
	0x43, 0x3b, 0x96, 0xd2, 0xfb, 0x4e, 0x02, 0x1b, 0xa2, 0x02, 0x29, 0x57, 0x29, 0xa9, 0xdc, 0xd4,
	0xba, 0x3c, 0xea, 0x23, 0x7f, 0x49, 0x8c, 0xd1, 0xc2, 0x07, 0x56, 0x48, 0x47, 0xff, 0x13, 0xc6,
	0x9f, 0xa9, 0x0d, 0xf3, 0x90, 0xca, 0x2c, 0x21, 0xb1, 0x04, 0x5a, 0x84, 0x89, 0x43, 0xac, 0x36,
	0x0f, 0x4d, 0xea, 0x6f, 0x13, 0x12, 0x4f, 0x89, 0xbf, 0x3e, 0x0e, 0x48, 0xc2, 0x0d, 0xa5, 0x6e,
	0xd2, 0x56, 0x58, 0x61, 0xe0, 0x22, 0x4c, 0x74, 0x15, 0x1d, 0x77, 0x4c, 0xde, 0xc7, 0x79, 0x8a,
	0x68, 0x46, 0x65, 0xe3, 0x9a, 0x5c, 0xa7, 0x61, 0xde, 0x90, 0x89, 0x9a, 0x27, 0x24, 0x94, 0xd2,
	0xaa, 0x67, 0xe6, 0xf3, 0x14, 0x96, 0x58, 0xbf, 0xd6, 0x29, 0x03, 0x64, 0xee, 0xc7, 0x88, 0x92,
	0x39, 0x00, 0x11, 0xd9, 0xfb, 0xa1, 0xf6, 0xe6, 0x67, 0x78, 0x95, 0x27, 0x38, 0x1d, 0x5e, 0xdf,
	0x82, 0x1a, 0x90, 0x6b, 0xa0, 0x97, 0x21, 0x6b, 0xcd, 0x4d, 0xec, 0x31, 0x79, 0x82, 0x8e, 0xa6,
	0x33, 0x3c, 0xdf, 0x0a, 0x0f, 0x51, 0xc1, 0x1d, 0xd2, 0x4c, 0x8e, 0x12, 0xd2, 0x38, 0x01, 0x4d,
	0xee, 0xbb, 0x02, 0xcc, 0x07, 0xf1, 0x87, 0xde, 0x1f, 0x3d, 0xba, 0x25, 0x91, 0x92, 0x3d, 0x12,
	0x5f, 0x27, 0xae, 0x96, 0x90, 0x94, 0x95, 0x56, 0x4b, 0x36, 0xf1, 0x31, 0xb3, 0x84, 0x24, 0xf1,
	0x79, 0xac, 0x20, 0xdf, 0x6a, 0xd5, 0xf0, 0xb1, 0x49, 0xc6, 0x1a, 0xb7, 0x90, 0x5b, 0x9a, 0xce,
	0xbb, 0xd4, 0x85, 0xd0, 0x21, 0xa2, 0xa5, 0xe9, 0xc4, 0x13, 0xdb, 0x1c, 0xb7, 0x34, 0x7d, 0x23,
	0x09, 0x13, 0xa6, 0xa2, 0x37, 0xb1, 0x29, 0x16, 0x20, 0x41, 0xb3, 0x88, 0x51, 0xea, 0xb8, 0x41,
	0xb9, 0x8f, 0x49, 0xe4, 0x2f, 0x31, 0xc0, 0xa6, 0x8e, 0x31, 0x73, 0xfb, 0x31, 0x89, 0x25, 0x88,
	0xa9, 0xee, 0x5b, 0x91, 0x66, 0x4c, 0xa2, 0xff, 0xc5, 0x7f, 0x26, 0xc0, 0x9c, 0x47, 0x97, 0x46,
	0x57, 0xeb, 0x18, 0x98, 0x8c, 0x34, 0xac, 0x62, 0xdc, 0x90, 0xa9, 0x0a, 0x29, 0xf9, 0x69, 0xab,
	0x51, 0xb8, 0x41, 0xc1, 0x09, 0x18, 0x3e, 0x36, 0x75, 0x06, 0x67, 0xb7, 0x7e, 0x4a, 0x4a, 0xdb,
	0xb9, 0xb4, 0xed, 0x2e, 0x9b, 0xd5, 0x69, 0x30, 0x36, 0x6c, 0xf8, 0x70, 0x07, 0x6e, 0xb6, 0xcd,
	0xb2, 0xa4, 0xf8, 0xff, 0x62, 0xb0, 0x5c, 0xc4, 0x6a, 0x03, 0x77, 0x4c, 0xf5, 0xe0, 0x84, 0xeb,
	0x7b, 0x58, 0xaf, 0xa9, 0xc1, 0x6c, 0xc3, 0xc6, 0xf1, 0x76, 0x9c, 0xd0, 0x11, 0xc7, 0x5d, 0x07,
	0xb1, 0xe5, 0x6c, 0xc3, 0x97, 0x13, 0xd0, 0x17, 0xe3, 0xa7, 0xef, 0x8b, 0x6f, 0xc2, 0x38, 0xb5,
	0x71, 0x16, 0x8d, 0x89, 0x83, 0x03, 0x07, 0x6a, 0xdf, 0x14, 0x1e, 0xad, 0xc3, 0x82, 0xc5, 0x84,
	0x89, 0xdb, 0xdd, 0x16, 0x09, 0xcb, 0x68, 0x6c, 0x90, 0xa0, 0x12, 0x98, 0xe3, 0x85, 0x35, 0x5e,
	0x46, 0x23, 0x84, 0xb7, 0x60, 0xd9, 0x25, 0x0e, 0x2f, 0xda, 0x04, 0x45, 0x5b, 0x74, 0xca, 0xdd,
	0x98, 0xe2, 0xb7, 0x05, 0x38, 0x17, 0x20, 0x7d, 0x6e, 0x36, 0x56, 0x1b, 0x84, 0x11, 0xdb, 0x50,
	0x81, 0xa4, 0xf6, 0x14, 0xeb, 0x4f, 0x55, 0xfc, 0x8c, 0x6b, 0xe5, 0x56, 0xd8, 0x40, 0xa3, 0x2b,
	0x1d, 0xe3, 0x40, 0xd3, 0xdb, 0xd4, 0xd5, 0xef, 0x70, 0x24, 0xc9, 0x46, 0xa7, 0xe6, 0x21, 0x9d,
	0xc2, 0x3c, 0xf4, 0x33, 0x9b, 0x87, 0xfe, 0xc3, 0x64, 0x1e, 0xfa, 0x10, 0xf3, 0xd0, 0xc3, 0xcd,
	0x43, 0xfa, 0x8b, 0x6c, 0x1e, 0x7f, 0x22, 0xc0, 0x82, 0x23, 0xe7, 0x28, 0xb6, 0xf1, 0x5c, 0x07,
	0x5c, 0x4b, 0x02, 0xf1, 0xe7, 0xa5, 0xc5, 0xf1, 0x50, 0x2d, 0x8a, 0xf7, 0x61, 0xd1, 0xdf, 0x52,
	0xae, 0x87, 0xf7, 0x60, 0x82, 0xfb, 0x61, 0x61, 0x04, 0x3f, 0xcc, 0x71, 0xc4, 0x3f, 0x88, 0xc1,
	0xdc, 0x4e, 0xcf, 0xec, 0xf6, 0xcc, 0x2a, 0xdb, 0x50, 0xe1, 0x6d, 0x7b, 0xcf, 0x5a, 0xb2, 0x18,
	0x4c, 0x74, 0x43, 0x6d, 0xde, 0xeb, 0x61, 0xfd, 0xc4, 0xb7, 0x74, 0xf1, 0x11, 0xa4, 0x35, 0x4a,
	0x54, 0x36, 0xea, 0x87, 0xb8, 0xad, 0xf0, 0x69, 0xed, 0x97, 0x43, 0xa8, 0x04, 0x30, 0x60, 0xe5,
	0x51, 0x74, 0x69, 0x5a, 0x73, 0xa5, 0xc4, 0x6f, 0x08, 0x30, 0xed, 0x2e, 0x46, 0x17, 0xe1, 0xdc,
	0xce, 0x5e, 0x6d, 0x77, 0xaf, 0x26, 0x57, 0x0b, 0xe5, 0xd2, 0x56, 0xde, 0xb7, 0xfa, 0x33, 0x0b,
	0xe9, 0x8d, 0x7c, 0xb5, 0x52, 0x90, 0x0b, 0x3b, 0x9b, 0x7b, 0x5b, 0xdb, 0xd5, 0xac, 0x80, 0x66,
	0x20, 0x75, 0xa7, 0x50, 0xb5, 0x33, 0x62, 0x68, 0x01, 0x66, 0x8b, 0xf9, 0x5a, 0xbe, 0x5a, 0xdb,
	0x91, 0x4a, 0x76, 0x76, 0x9c, 0x64, 0x6f, 0x54, 0xee, 0xc8, 0xf7, 0xf6, 0x4a, 0xd2, 0x43, 0x3b,
	0x7b, 0x9c, 0xa0, 0xe7, 0x37, 0x37, 0xed, 0x8c, 0x84, 0xbd, 0x44, 0x5e, 0x77, 0x56, 0xdc, 0xaa,
	0xa6, 0x62, 0x1a, 0x67, 0x5c, 0x71, 0x9b, 0x87, 0x44, 0x5d, 0xeb, 0x75, 0x4c, 0x1e, 0x21, 0xb3,
	0x84, 0xf8, 0x9d, 0x71, 0x58, 0xe6, 0xda, 0x2c, 0x2a, 0xa6, 0x52, 0xd5, 0x7a, 0x7a, 0x1d, 0x17,
	0xb1, 0xa9, 0xa8, 0x2d, 0x03, 0xb5, 0x89, 0xf7, 0xa3, 0x9d, 0x00, 0x37, 0xec, 0x55, 0x58, 0x66,
	0xe4, 0x43, 0x16, 0x1a, 0xfb, 0x68, 0xad, 0x4a, 0x16, 0x21, 0xbe, 0x22, 0x4b, 0xdc, 0xa2, 0x37,
	0x07, 0x6d, 0xdb, 0xd6, 0xc7, 0x7a, 0xc1, 0x9b, 0xa3, 0xd7, 0xe1, 0xb6, 0xc7, 0xdc, 0xbf, 0x15,
	0x20, 0xeb, 0xaf, 0x16, 0xed, 0xc3, 0x39, 0xa3, 0xa3, 0x74, 0x8d, 0x43, 0xcd, 0x94, 0xfd, 0x3d,
	0x87, 0x0b, 0xf5, 0xea, 0xe0, 0x7a, 0xad, 0xbe, 0x24, 0x2d, 0x59, 0x84, 0x7c, 0x05, 0xe8, 0x36,
	0xc0, 0x63, 0x6d, 0xdf, 0xeb, 0xdb, 0xaf, 0x0d, 0x26, 0x7a, 0x57, 0xdb, 0xe7, 0x8e, 0x61, 0xea,
	0xb1, 0xf5, 0x37, 0xf7, 0x6b, 0x02, 0x4c, 0xf0, 0x45, 0xaa, 0x6b, 0x30, 0xd3, 0xd5, 0xb5, 0x3a,
	0x36, 0x0c, 0xdc, 0x90, 0x49, 0xf8, 0x6a, 0xf0, 0xd9, 0x4f, 0xc6, 0xce, 0xa6, 0xcb, 0x97, 0xc4,
	0x21, 0x98, 0x9a, 0xa9, 0xb4, 0x64, 0x6c, 0x98, 0x6a, 0x5b, 0x31, 0x6d, 0x70, 0xa6, 0xf6, 0x39,
	0x5a, 0x58, 0xb2, 0xca, 0x18, 0xce, 0x26, 0xcc, 0xd8, 0x86, 0x25, 0x1b, 0xc4, 0xd6, 0xf8, 0x72,
	0xf2, 0x8b, 0x43, 0xcc, 0x8b, 0xda, 0x25, 0x71, 0x65, 0xae, 0xa4, 0xf8, 0x5b, 0x02, 0xcc, 0x59,
	0x00, 0x45, 0x6c, 0xd4, 0x75, 0x95, 0x8a, 0x9e, 0x84, 0x99, 0xae, 0xa5, 0x09, 0xfa, 0x1f, 0xbd,
	0x00, 0xd3, 0x0d, 0xd5, 0xe8, 0xb6, 0x94, 0x13, 0xe6, 0xb5, 0x58, 0x94, 0x98, 0xe2, 0x79, 0x74,
	0xcc, 0xd9, 0x82, 0x69, 0xa3, 0xd7, 0xed, 0x6a, 0x3a, 0x6b, 0x0a, 0xe5, 0x2c, 0xb3, 0xbe, 0x32,
	0x8c, 0x33, 0x0b, 0x65, 0xe3, 0x44, 0x4a, 0x19, 0x4e, 0x02, 0x5d, 0x86, 0x54, 0xc3, 0x61, 0x8a,
	0xbb, 0x49, 0x77, 0x96, 0x58, 0x85, 0xf9, 0x4d, 0xd5, 0x30, 0xed, 0xad, 0x08, 0x6b, 0x1c, 0xb8,
	0x02, 0xe9, 0x96, 0xd2, 0x69, 0xf6, 0xc8, 0xb4, 0xa8, 0xae, 0x35, 0xac, 0x86, 0x4c, 0x5b, 0x99,
	0x05, 0xad, 0x81, 0xc9, 0x60, 0x71, 0xa0, 0xb6, 0x4c, 0xac, 0xf3, 0xa6, 0xf0, 0x94, 0xb8, 0x0f,
	0x0b, 0x3e, 0xa2, 0xdc, 0xe5, 0x56, 0x02, 0xf6, 0x98, 0x86, 0x35, 0xce, 0x25, 0x55, 0xf7, 0xce,
	0xeb, 0xff, 0x12, 0x60, 0x41, 0x52, 0x8d, 0xa3, 0x7c, 0x47, 0x69, 0x9d, 0x18, 0xaa, 0x61, 0xdb,
	0x14, 0x19, 0xaa, 0x38, 0x29, 0xb9, 0x8d, 0x4d, 0x5d, 0xad, 0x0f, 0x71, 0xc5, 0xbb, 0x2c, 0xb9,
	0x45, 0x61, 0xa5, 0x74, 0xd7, 0x9d, 0x44, 0x77, 0x60, 0xda, 0xa0, 0xdd, 0x4e, 0x66, 0x5e, 0x3d,
	0x16, 0xdd, 0xab, 0x4b, 0x29, 0x86, 0xc9, 0x96, 0x8d, 0xbf, 0x0c, 0x93, 0x6c, 0x06, 0x63, 0x99,
	0xdb, 0xc5, 0x10, 0x1a, 0x79, 0xb6, 0x1d, 0x63, 0x41, 0x8b, 0xdf, 0x13, 0x60, 0xf2, 0x5e, 0x4f,
	0x31, 0xd4, 0x4a, 0x03, 0xbd, 0x0e, 0x09, 0xba, 0x36, 0xc1, 0x5b, 0x34, 0x6c, 0x21, 0x83, 0x01,
	0x7b, 0xa7, 0x77, 0xb1, 0xd1, 0xa7, 0x77, 0x97, 0x00, 0xf8, 0x86, 0x97, 0xa9, 0x34, 0xed, 0x25,
	0xfa, 0x29, 0x96, 0x57, 0x53, 0x9a, 0xe8, 0x75, 0x20, 0xc0, 0x58, 0x27, 0x13, 0x30, 0x16, 0x99,
	0x2d, 0xf6, 0x2d, 0x33, 0x95, 0xda, 0x5d, 0xf3, 0x84, 0x93, 0xa5, 0x90, 0x1b, 0x09, 0x88, 0x9b,
	0x4a, 0x53, 0xfc, 0xa3, 0x18, 0x64, 0x49, 0x5f, 0x52, 0x0d, 0x53, 0xad, 0x2b, 0x2d, 0x26, 0xad,
	0x77, 0xac, 0x51, 0x34, 0x3e, 0x82, 0xbc, 0xf9, 0x18, 0xfa, 0x10, 0xa6, 0x9e, 0x10, 0x79, 0xc9,
	0x6a, 0xc3, 0xb2, 0xb1, 0xf7, 0x42, 0xf0, 0xfd, 0xf5, 0xae, 0x72, 0x41, 0xd3, 0xc0, 0x4d, 0xc5,
	0x3a, 0x15, 0xa4, 0x94, 0x7c, 0xc2, 0x72, 0x0d, 0xb4, 0x05, 0x48, 0xc7, 0x2d, 0xc5, 0x54, 0x9f,
	0x62, 0xf9, 0x80, 0xba, 0xf4, 0x4e, 0xfd, 0x24, 0xe2, 0xaa, 0xd2, 0xac, 0x85, 0x79, 0xdb, 0x42,
	0xcc, 0x1d, 0xc1, 0x7c, 0x50, 0x85, 0xa7, 0x54, 0xf3, 0x45, 0x8f, 0x9a, 0x58, 0x8f, 0x74, 0x94,
	0x24, 0xfe, 0xc9, 0x2c, 0xa4, 0x3d, 0xa6, 0x8e, 0x9e, 0xc0, 0x62, 0xa7, 0xd7, 0xc6, 0x3a, 0x69,
	0x3e, 0xf3, 0x84, 0x96, 0x17, 0x67, 0xf5, 0xbe, 0x1d, 0xa5, 0xc3, 0xac, 0x6e, 0x5b, 0x24, 0xa8,
	0x43, 0x64, 0x7d, 0xb0, 0x3c, 0x26, 0xcd, 0x77, 0x02, 0xf2, 0xd1, 0x33, 0x58, 0xae, 0x2b, 0x26,
	0x6e, 0x6a, 0x01, 0x95, 0x32, 0x31, 0xbe, 0x1b, 0xa9, 0xd2, 0x82, 0x43, 0xc4, 0x5b, 0xed, 0x62,
	0x3d, 0xb0, 0x04, 0x61, 0x40, 0x47, 0xb2, 0xd2, 0xd1, 0x3a, 0x27, 0x6d, 0xd5, 0x3c, 0xf1, 0x8e,
	0x56, 0x6f, 0x44, 0xaa, 0xf2, 0x83, 0xbc, 0x85, 0x6d, 0x57, 0x96, 0x3d, 0xf2, 0xe5, 0x91, 0x6a,
	0x5a, 0x72, 0x43, 0xa5, 0x0b, 0xa5, 0x4e, 0x35, 0xe3, 0x23, 0x54, 0xb3, 0x59, 0xb4, 0xb0, 0x9d,
	0x6a, 0x5a, 0xbe, 0x3c, 0xa4, 0xc3, 0xd2, 0x91, 0xdc, 0x56, 0xba, 0xd6, 0xb8, 0xe7, 0x2c, 0x59,
	0xf1, 0x05, 0xe4, 0x68, 0xaa, 0xfb, 0x60, 0x4b, 0xe9, 0x96, 0x6c, 0x0a, 0x8e, 0xea, 0x8e, 0x02,
	0xf2, 0xd1, 0xa7, 0x02, 0x5c, 0x6e, 0xe0, 0x96, 0xa9, 0xc8, 0x5d, 0x1d, 0x1b, 0xb8, 0x53, 0xc7,
	0x01, 0xb5, 0xb3, 0x45, 0xe6, 0x8d, 0x48, 0xb5, 0x17, 0x09, 0xb1, 0x5d, 0x4e, 0x2b, 0x80, 0x8d,
	0x8b, 0x8d, 0x41, 0x00, 0xb9, 0x4d, 0x98, 0x0f, 0x32, 0xbd, 0xd3, 0x75, 0x9e, 0xdc, 0x36, 0x2c,
	0x06, 0xdb, 0xd4, 0x29, 0xe9, 0x7d, 0x2a, 0x40, 0xd6, 0x6f, 0x31, 0xe8, 0xdd, 0x7e, 0xcf, 0x34,
	0x8c, 0x9c, 0xe3, 0x7b, 0xde, 0x83, 0x29, 0xe2, 0x25, 0xcc, 0x13, 0x67, 0x21, 0x3b, 0xcc, 0x8b,
	0x97, 0x28, 0x1c, 0xc1, 0xc6, 0xfc, 0x5f, 0xee, 0x17, 0x05, 0xc8, 0xfa, 0x4d, 0xeb, 0x6c, 0xfc,
	0xec, 0xc0, 0x9c, 0x81, 0x3b, 0x86, 0x4a, 0x9d, 0xa1, 0x62, 0x9a, 0xba, 0xba, 0xdf, 0x33, 0x71,
	0x44, 0x67, 0x88, 0x6c, 0xd4, 0xbc, 0x85, 0x99, 0xfb, 0x7c, 0x02, 0xe6, 0x83, 0x2c, 0x12, 0xed,
	0xf7, 0xb3, 0x59, 0x3a, 0xb5, 0x7d, 0xaf, 0xd6, 0x94, 0x66, 0x13, 0x37, 0xfc, 0x9e, 0xfd, 0x12,
	0xa4, 0x74, 0xdc, 0x64, 0x96, 0xdc, 0xb0, 0x42, 0x33, 0x60, 0x59, 0x34, 0xd6, 0x31, 0x20, 0xab,
	0xf4, 0x8e, 0xd5, 0x96, 0xaa, 0xe8, 0x27, 0x2c, 0x16, 0xb0, 0x06, 0xf2, 0xf2, 0xe9, 0x79, 0xc9,
	0x5b, 0x14, 0xd9, 0x00, 0x36, 0xa3, 0x78, 0xd2, 0x46, 0xee, 0x0f, 0x05, 0x48, 0xb9, 0xf8, 0xfd,
	0x61, 0x1c, 0xff, 0x73, 0xff, 0x27, 0x06, 0x19, 0xaf, 0x1c, 0xce, 0x34, 0xfa, 0xeb, 0xfd, 0xc6,
	0xb2, 0xf7, 0xbc, 0x14, 0x64, 0x85, 0x07, 0x5f, 0x70, 0x58, 0x50, 0x87, 0x69, 0x77, 0x45, 0x5f,
	0x48, 0x38, 0x90, 0xfb, 0xae, 0x00, 0x17, 0x07, 0x7a, 0xe0, 0x51, 0xbc, 0x03, 0x67, 0x77, 0x94,
	0xfe, 0x24, 0x85, 0xf6, 0xa7, 0x6b, 0x11, 0x83, 0xb5, 0xbe, 0xee, 0x62, 0x2f, 0x26, 0xfc, 0xec,
	0x55, 0xb8, 0x40, 0xe7, 0x05, 0x9f, 0x60, 0x67, 0xde, 0x4c, 0x26, 0x0b, 0xd6, 0x5c, 0xff, 0x63,
	0x58, 0x76, 0xe6, 0xfa, 0x67, 0x98, 0x2c, 0x2c, 0xda, 0x54, 0xbc, 0x91, 0xd5, 0x23, 0x70, 0x4a,
	0xe4, 0x53, 0xcf, 0x1f, 0xe6, 0x6d, 0x1a, 0x55, 0xd7, 0x44, 0xe2, 0xeb, 0x42, 0x7f, 0xd8, 0xe6,
	0x59, 0x49, 0x08, 0xf3, 0x47, 0x83, 0x24, 0xe2, 0x8b, 0xe2, 0xd8, 0x3c, 0xbc, 0x3f, 0x8a, 0xe3,
	0xf3, 0xf3, 0xbf, 0x2e, 0x04, 0x85, 0x71, 0x9c, 0x09, 0xe6, 0x00, 0xee, 0x9e, 0x86, 0x09, 0xff,
	0x08, 0x6c, 0xb3, 0xd1, 0x17, 0xd5, 0x71, 0x46, 0x4c, 0x6f, 0x54, 0xc7, 0x39, 0x60, 0x21, 0x50,
	0xf1, 0x34, 0x1c, 0x38, 0x43, 0xb6, 0x5d, 0xb7, 0x2b, 0xc8, 0x73, 0x6a, 0x75, 0x07, 0x79, 0xbc,
	0xd6, 0x89, 0xd3, 0xd7, 0xea, 0x0c, 0xcc, 0x4e, 0xad, 0x2d, 0x5f, 0x1e, 0xfa, 0x09, 0x21, 0x20,
	0xe8, 0xe3, 0x75, 0x4f, 0x9e, 0x5e, 0xf1, 0x5e, 0xb7, 0xe7, 0x28, 0xfe, 0x28, 0x20, 0x1f, 0xfd,
	0xc2, 0xc0, 0x18, 0x90, 0x33, 0x33, 0x45, 0x99, 0xb9, 0x77, 0x1a, 0x66, 0x42, 0x1c, 0x92, 0xcd,
	0x55, 0x58, 0x48, 0xc8, 0x00, 0x72, 0x9f, 0x09, 0xfe, 0x98, 0x90, 0xf3, 0xfd, 0x36, 0x4c, 0xb5,
	0xd5, 0x8e, 0xcc, 0xce, 0x98, 0x0d, 0x3e, 0x1e, 0xc3, 0xce, 0x4f, 0x25, 0xdb, 0x6a, 0x87, 0xfe,
	0xa3, 0xa8, 0xca, 0x31, 0x47, 0x8d, 0x45, 0x42, 0x55, 0x8e, 0x19, 0x6a, 0x09, 0x66, 0x9e, 0xf4,
	0x94, 0x8e, 0xa9, 0xb6, 0xb0, 0xcc, 0xcf, 0x6e, 0x8d, 0x47, 0x38, 0xbb, 0x95, 0xb1, 0x90, 0x68,
	0xd2, 0xc8, 0x7d, 0x3a, 0xde, 0x1f, 0x9b, 0xf2, 0x76, 0xfd, 0xba, 0x00, 0x2f, 0x50, 0xca, 0xce,
	0xb0, 0x23, 0x1f, 0xaa, 0x86, 0xa9, 0x35, 0x75, 0xa5, 0x2d, 0xef, 0xf7, 0xea, 0x47, 0xd8, 0xb4,
	0x36, 0xb1, 0x1f, 0x3f, 0xbf, 0x1e, 0xd9, 0x97, 0x5d, 0xb6, 0xea, 0xdc, 0xa0, 0x55, 0x4a, 0x5f,
	0xa2, 0x4c, 0xd9, 0x23, 0x9a, 0xaf, 0xd8, 0xc8, 0xfd, 0xeb, 0x18, 0x5c, 0x1a, 0x42, 0x03, 0x7d,
	0x05, 0xce, 0xfb, 0x9b, 0xd6, 0xd2, 0x9e, 0x61, 0x5d, 0xa6, 0x67, 0x13, 0xf8, 0x82, 0xe0, 0xb2,
	0xb7, 0xa2, 0x4d, 0x02, 0x40, 0x8f, 0x2a, 0x04, 0xa1, 0xf7, 0xba, 0x5d, 0x1b, 0x3d, 0x16, 0x84,
	0xbe, 0x47, 0x00, 0x18, 0xfa, 0x25, 0x48, 0x31, 0xf1, 0xc9, 0x86, 0xfa, 0x09, 0x0b, 0x44, 0xe2,
	0x12, 0xb0, 0xac, 0xaa, 0xfa, 0x09, 0x46, 0x77, 0x21, 0xcd, 0x01, 0x3c, 0xaa, 0x7d, 0x69, 0x90,
	0x6a, 0xed, 0x8a, 0xa4, 0x69, 0x86, 0xcb, 0x34, 0x8c, 0x6e, 0x02, 0x72, 0xd3, 0x92, 0xd9, 0xd2,
	0x75, 0x82, 0xd6, 0x99, 0x75, 0x41, 0x16, 0x48, 0x7e, 0xee, 0xf3, 0x84, 0x7b, 0x6a, 0xc1, 0x2d,
	0xe1, 0x57, 0x04, 0xb8, 0x82, 0x9f, 0xf4, 0xd4, 0xa7, 0x4a, 0x8b, 0x76, 0xcb, 0x7a, 0x4b, 0x31,
	0x8c, 0x50, 0x5b, 0xf8, 0xf8, 0x79, 0xf8, 0x46, 0x57, 0x86, 0x5f, 0xff, 0x97, 0x5d, 0xac, 0x14,
	0x08, 0x27, 0x7d, 0x16, 0xf0, 0x73, 0x02, 0xe4, 0x1c, 0xfc, 0x92, 0x0f, 0x1c, 0xdd, 0x86, 0xac,
	0x1d, 0x7b, 0xc8, 0x23, 0x9c, 0x7b, 0xcc, 0x58, 0x01, 0x08, 0x97, 0xec, 0xeb, 0xb0, 0xd8, 0x2f,
	0x15, 0xaa, 0x51, 0x66, 0x00, 0xf3, 0x7e, 0x46, 0x89, 0x6e, 0x73, 0x3f, 0x15, 0x87, 0x73, 0xa1,
	0x8d, 0x43, 0x77, 0x41, 0x0c, 0xa6, 0x19, 0x60, 0x9f, 0x5f, 0x0a, 0xa2, 0xef, 0xb2, 0xd2, 0x70,
	0x5a, 0xfd, 0xc6, 0x1a, 0x48, 0x6b, 0x14, 0x93, 0xfd, 0xab, 0x42, 0xb0, 0xcd, 0xca, 0xcf, 0xd9,
	0x1a, 0xfc, 0xda, 0x3c, 0x93, 0xb5, 0xff, 0xc3, 0x49, 0xf7, 0xc4, 0x95, 0x5b, 0xfb, 0x6f, 0x0a,
	0x70, 0xc3, 0x99, 0x7c, 0x46, 0xf5, 0x80, 0x1f, 0x3f, 0x8f, 0xb1, 0xd9, 0x95, 0xe1, 0xb7, 0xfa,
	0x6b, 0x36, 0x4b, 0xf7, 0x07, 0xbb, 0xbf, 0xdf, 0x88, 0x41, 0xce, 0x21, 0xf3, 0x17, 0xcb, 0xf8,
	0x51, 0x1e, 0x2e, 0x76, 0x7a, 0x6d, 0xb9, 0x41, 0x42, 0xed, 0x4e, 0xdd, 0x94, 0x7d, 0x72, 0x36,
	0xb8, 0x61, 0xe5, 0x3a, 0xbd, 0x76, 0x91, 0xc3, 0x54, 0x3d, 0xed, 0x36, 0xd0, 0x03, 0x98, 0x37,
	0xb5, 0x6e, 0x3f, 0xe6, 0x48, 0x2e, 0x12, 0x99, 0x5a, 0xd7, 0x47, 0x38, 0xf7, 0xcd, 0x38, 0x9c,
	0x0b, 0x95, 0x3f, 0xda, 0x85, 0x97, 0xc2, 0x8d, 0xa2, 0xbf, 0x6f, 0xbe, 0x10, 0xa2, 0x2e, 0x57,
	0xf7, 0x1c, 0x48, 0xb1, 0xbf, 0x87, 0x86, 0x51, 0xfc, 0x81, 0x75, 0xd2, 0x01, 0xc6, 0xfb, 0x5c,
	0x3b, 0xe9, 0x2f, 0x24, 0xfc, 0x4b, 0x37, 0xbc, 0xa3, 0xfe, 0x92, 0x00, 0xb9, 0xbe, 0xa0, 0xd5,
	0xee, 0x9f, 0xdc, 0xaa, 0x0f, 0x9e, 0x57, 0xdc, 0xea, 0xcb, 0xf4, 0xf7, 0xcf, 0xa5, 0xa3, 0xe0,
	0xe2, 0xdc, 0xdf, 0x16, 0xe0, 0xbc, 0x17, 0x95, 0x4f, 0x68, 0xb9, 0x30, 0x9e, 0x57, 0x87, 0x5c,
	0x83, 0x39, 0x67, 0xa3, 0xd2, 0x9e, 0xb6, 0x70, 0xe3, 0x41, 0x76, 0x91, 0xed, 0x48, 0x73, 0xff,
	0x2e, 0x06, 0x17, 0x07, 0xb6, 0x09, 0x5d, 0x81, 0x34, 0x89, 0x6c, 0x1d, 0x62, 0xcc, 0xb6, 0xa7,
	0xdb, 0x6a, 0xc7, 0x26, 0x43, 0x81, 0x94, 0xe3, 0xbe, 0x1a, 0xa7, 0xdb, 0xca, 0xb1, 0x03, 0xe4,
	0xb3, 0xcc, 0x44, 0x9f, 0x65, 0xfe, 0x54, 0x9f, 0x65, 0xb2, 0x4b, 0x4f, 0x8d, 0x2f, 0x48, 0x7d,
	0x1e, 0x1d, 0x44, 0x32, 0xcf, 0xc9, 0x10, 0xf3, 0xfc, 0xb3, 0x44, 0xe8, 0x5a, 0x07, 0xb7, 0xd3,
	0xdf, 0x13, 0xe0, 0x4a, 0xf8, 0xc4, 0xc6, 0x6f, 0xb0, 0xc7, 0xcf, 0x7d, 0x6e, 0x13, 0x56, 0xda,
	0x17, 0x58, 0x35, 0x86, 0xc0, 0xe5, 0x7e, 0x49, 0x80, 0x17, 0x43, 0x88, 0x7d, 0x31, 0x46, 0xfd,
	0x1a, 0x2c, 0x38, 0x46, 0xdd, 0xd5, 0xb5, 0x7d, 0x65, 0x5f, 0x6d, 0x59, 0x46, 0x26, 0x48, 0xf3,
	0x76, 0xe1, 0xae, 0x53, 0x96, 0xfb, 0xe3, 0x18, 0x5c, 0x8d, 0xd6, 0x64, 0x74, 0x0d, 0x66, 0x88,
	0x85, 0xbb, 0x29, 0x0b, 0x94, 0x72, 0xa6, 0xad, 0x76, 0x5c, 0x34, 0x29, 0xa0, 0x72, 0x1c, 0xc0,
	0x42, 0xa6, 0xad, 0x1c, 0xbb, 0x01, 0x87, 0x5a, 0xfa, 0xcf, 0x87, 0x58, 0xfa, 0xd3, 0x3f, 0x37,
	0xbd, 0x3f, 0x37, 0xdb, 0xdf, 0x48, 0x5a, 0xe7, 0x4c, 0xc4, 0x47, 0x90, 0xf1, 0x0e, 0x4b, 0x68,
	0xdd, 0xba, 0x76, 0x15, 0x65, 0x4a, 0xcc, 0xaf, 0x64, 0x05, 0x9f, 0xac, 0xf9, 0x76, 0x1c, 0x12,
	0x6c, 0xd2, 0xfb, 0x12, 0xa4, 0xd5, 0x8e, 0x89, 0x9b, 0x58, 0x77, 0x4d, 0xb7, 0xe3, 0xe5, 0x31,
	0x69, 0x9a, 0x67, 0x33, 0xb0, 0x17, 0x20, 0x75, 0xd0, 0xd2, 0x14, 0xd3, 0x35, 0xb1, 0x16, 0xca,
	0x63, 0x12, 0xd0, 0x4c, 0x06, 0x72, 0x05, 0xa6, 0x0d, 0x53, 0x57, 0x3b, 0x4d, 0xd9, 0x7b, 0x37,
	0x2c, 0xc5, 0x72, 0xed, 0xea, 0xf6, 0x35, 0xad, 0x85, 0x15, 0x6b, 0x76, 0x3f, 0xce, 0x0f, 0x1e,
	0x4f, 0xf3, 0x6c, 0x7b, 0x2a, 0x6e, 0xdf, 0x84, 0xe0, 0x80, 0x89, 0x61, 0xf7, 0x21, 0xca, 0x63,
	0x52, 0xc6, 0x46, 0x62, 0x64, 0xbe, 0x0c, 0x40, 0x72, 0x38, 0x85, 0x09, 0xef, 0x52, 0xb7, 0x79,
	0xd2, 0xc5, 0x14, 0x7b, 0xe7, 0xa0, 0xa8, 0x9c, 0x94, 0xc7, 0xa4, 0x29, 0x02, 0xcb, 0x10, 0xd7,
	0x01, 0x1a, 0x8a, 0x69, 0x21, 0xb2, 0xe5, 0x9a, 0x59, 0x0f, 0x62, 0x51, 0x31, 0x31, 0xc1, 0x21,
	0x60, 0x0c, 0xa7, 0x00, 0xb3, 0x0d, 0xe5, 0x44, 0xd6, 0x0e, 0xe4, 0x67, 0x18, 0x1f, 0x71, 0xd4,
	0x24, 0x3d, 0x0f, 0xb6, 0xe8, 0x43, 0x3d, 0xd9, 0x39, 0x78, 0x80, 0xf1, 0x11, 0xe1, 0xb8, 0x61,
	0x25, 0x28, 0x11, 0x7b, 0x49, 0xf4, 0x47, 0x60, 0xca, 0xbe, 0x46, 0x84, 0xde, 0xa7, 0x37, 0xdb,
	0xf8, 0xbd, 0xa5, 0xc1, 0x1b, 0x02, 0x45, 0x7e, 0x61, 0xa9, 0x3c, 0x26, 0x25, 0x1b, 0xfc, 0xff,
	0x46, 0x06, 0xa6, 0xbb, 0x8a, 0x6e, 0xe0, 0x06, 0xbb, 0x53, 0x2b, 0xfe, 0x4c, 0x0c, 0x92, 0x16,
	0x20, 0x7a, 0x89, 0xde, 0x37, 0xb4, 0x6c, 0xaa, 0xbf, 0x91, 0xf4, 0x0a, 0x22, 0x46, 0x6f, 0x42,
	0xca, 0xd5, 0x3a, 0x7e, 0x57, 0x38, 0xa4, 0x5d, 0x44, 0x2a, 0xfc, 0x2f, 0x5a, 0x81, 0x71, 0xca,
	0x76, 0x7c, 0x90, 0xf0, 0x25, 0x0a, 0x83, 0x4a, 0x40, 0x55, 0x20, 0x7f, 0xa2, 0x75, 0xac, 0x2b,
	0x84, 0xd7, 0x87, 0xb4, 0x93, 0xd2, 0x78, 0xa4, 0x75, 0xb0, 0x94, 0x34, 0xf9, 0xbf, 0xdc, 0xab,
	0x90, 0xb4, 0x72, 0xd1, 0x4b, 0x90, 0x61, 0xb7, 0x57, 0xe4, 0xb6, 0xda, 0xe9, 0x59, 0x27, 0x93,
	0x12, 0x52, 0x9a, 0xe5, 0x6e, 0xb1, 0x4c, 0xf1, 0xcf, 0x04, 0xc8, 0xfa, 0xcf, 0xc6, 0xa2, 0x16,
	0x9c, 0x73, 0x4e, 0x1e, 0x99, 0x9e, 0x33, 0x9a, 0x06, 0x17, 0xd7, 0xea, 0x90, 0x7d, 0x19, 0xef,
	0xc9, 0x4e, 0xa3, 0x3c, 0x26, 0x2d, 0xa9, 0xc1, 0x45, 0x08, 0xc3, 0x22, 0xbf, 0x38, 0xe3, 0xaf,
	0x8a, 0x69, 0xfc, 0xe6, 0xc0, 0x4b, 0x34, 0xfd, 0x15, 0x2d, 0xe8, 0x41, 0x05, 0x1b, 0x59, 0xc8,
	0x78, 0xe9, 0x8b, 0xff, 0x39, 0x09, 0x4b, 0xbb, 0xba, 0xda, 0xa6, 0x81, 0xb0, 0x17, 0x1c, 0x49,
	0x90, 0xd1, 0x71, 0xb7, 0xa5, 0x90, 0xe9, 0x88, 0xfb, 0xa8, 0xc1, 0xcb, 0xa1, 0xcc, 0x50, 0x60,
	0xee, 0xcf, 0xf8, 0xc6, 0x70, 0x9a, 0x93, 0xe0, 0x62, 0xbd, 0x0b, 0xfc, 0x3c, 0xbe, 0xf7, 0x20,
	0xc1, 0x95, 0x81, 0x97, 0x36, 0x6c, 0x62, 0xd3, 0xba, 0x2b, 0x8d, 0xfe, 0x12, 0x2c, 0xd4, 0x0f,
	0x15, 0x7a, 0x68, 0x5f, 0xa7, 0xef, 0x58, 0x78, 0x4f, 0x0a, 0x84, 0x9d, 0x55, 0x2a, 0x58, 0x38,
	0x5b, 0x8a, 0x71, 0x64, 0x93, 0x9e, 0xab, 0xf7, 0x67, 0x23, 0x13, 0x2e, 0xd6, 0xf5, 0x93, 0xae,
	0xa9, 0xc9, 0x96, 0x20, 0x0e, 0x0e, 0x8e, 0xe5, 0x83, 0x2e, 0xf6, 0x1e, 0x16, 0x08, 0x7d, 0x32,
	0x82, 0xe2, 0x72, 0xb1, 0xdc, 0x3e, 0x38, 0xbe, 0xdd, 0x75, 0xe4, 0x72, 0xae, 0x1e, 0x56, 0x88,
	0xba, 0x70, 0xfe, 0x40, 0x3d, 0xc6, 0x0d, 0xb6, 0xb6, 0xc0, 0x06, 0x09, 0xe2, 0x59, 0x3d, 0x87,
	0x06, 0xd6, 0x42, 0x37, 0x96, 0x8e, 0x71, 0x83, 0x0c, 0x8c, 0x1b, 0x16, 0x9e, 0x5d, 0xe5, 0xf2,
	0x41, 0x48, 0x19, 0xaa, 0x42, 0xb6, 0xaf, 0x9a, 0x89, 0xc1, 0x17, 0x57, 0xfa, 0xa8, 0xcf, 0xec,
	0xfb, 0x88, 0x9a, 0x70, 0xd1, 0x92, 0xda, 0x33, 0xd5, 0x3c, 0x74, 0x6e, 0x84, 0x5b, 0x35, 0x4c,
	0x0e, 0x14, 0x1e, 0x97, 0xcc, 0x03, 0xd5, 0x3c, 0xb4, 0x3a, 0x94, 0x23, 0x3c, 0x3d, 0xac, 0x10,
	0xdd, 0x83, 0x2c, 0x75, 0x23, 0x5d, 0x45, 0xb7, 0x6d, 0x2c, 0x39, 0xf0, 0x2a, 0x21, 0x71, 0x17,
	0xbb, 0x8a, 0xee, 0x58, 0x19, 0x1d, 0x48, 0x9c, 0x1c, 0xf4, 0x00, 0x10, 0xb7, 0x82, 0x43, 0xc5,
	0x38, 0xb4, 0x88, 0x4e, 0x0d, 0x3c, 0x3c, 0xc9, 0x54, 0x5f, 0x56, 0x8c, 0x43, 0xe7, 0x64, 0x48,
	0xdd, 0x97, 0x47, 0xaf, 0x78, 0x10, 0xd7, 0x6e, 0x1c, 0xaa, 0x07, 0x36, 0xb3, 0xa9, 0x81, 0x72,
	0x27, 0xae, 0xaf, 0x4a, 0xc0, 0x1d, 0xb9, 0x37, 0xbc, 0x59, 0x48, 0x87, 0xf3, 0x9c, 0xdd, 0x06,
	0x36, 0xb1, 0xde, 0x56, 0x3b, 0x74, 0x23, 0xce, 0xa2, 0x3f, 0x1d, 0xc1, 0x64, 0x8b, 0x6e, 0x44,
	0xbf, 0xc9, 0x06, 0x14, 0x06, 0x38, 0x96, 0xcf, 0x05, 0xc8, 0x78, 0x25, 0x8b, 0xee, 0xc3, 0x0c,
	0xd5, 0x8a, 0xa9, 0xc9, 0xfc, 0xb2, 0x0d, 0xbf, 0x2d, 0xbf, 0x1a, 0x49, 0x33, 0x76, 0x52, 0x4a,
	0x13, 0x32, 0x35, 0xad, 0xc4, 0x88, 0x88, 0x5f, 0x17, 0x98, 0xcf, 0x27, 0x65, 0xe8, 0x1c, 0x2c,
	0xd4, 0x2a, 0x5b, 0x25, 0x79, 0x37, 0x2f, 0xd5, 0x7c, 0x27, 0xa4, 0x93, 0x30, 0xfe, 0xb0, 0x94,
	0x97, 0xb2, 0x02, 0x9a, 0x82, 0xc4, 0xd6, 0xce, 0x76, 0xad, 0x9c, 0x8d, 0xa1, 0x2c, 0x4c, 0x17,
	0xf3, 0x0f, 0xe5, 0x9d, 0xdb, 0x32, 0xcb, 0x89, 0xa3, 0x19, 0x48, 0xf1, 0x9c, 0x07, 0xa5, 0xd2,
	0x07, 0xd9, 0x71, 0x02, 0x42, 0xfe, 0x91, 0x1c, 0x8a, 0x9f, 0x20, 0x20, 0xe5, 0x9d, 0x3d, 0x89,
	0xe4, 0x14, 0xf3, 0x0f, 0xb3, 0x13, 0x62, 0x15, 0xb2, 0x7e, 0x8d, 0xa3, 0xaf, 0x02, 0x70, 0x3d,
	0x0c, 0xbf, 0x0c, 0xc9, 0x90, 0xe9, 0x65, 0xc8, 0xba, 0xf5, 0x57, 0xfc, 0x63, 0x01, 0xce, 0x85,
	0xea, 0xe3, 0xcc, 0xe4, 0xe9, 0x99, 0x90, 0x9e, 0xae, 0x6b, 0x4d, 0xc5, 0x74, 0x3d, 0xa5, 0x11,
	0xf5, 0x6a, 0xf7, 0xac, 0x8d, 0x6b, 0x65, 0xa1, 0xb7, 0x60, 0x92, 0xde, 0x09, 0x3e, 0xb6, 0x36,
	0x37, 0x87, 0xde, 0xdd, 0xe4, 0xe0, 0xe2, 0x0e, 0xa0, 0xfe, 0xc1, 0x03, 0xbd, 0x0d, 0x53, 0x1d,
	0xfc, 0x6c, 0x94, 0x8d, 0xa0, 0x0e, 0x7e, 0x46, 0xff, 0x89, 0xe7, 0xe1, 0x5c, 0xa8, 0xff, 0x10,
	0x33, 0x30, 0xed, 0x1e, 0x57, 0xc4, 0xef, 0xc7, 0x20, 0x4d, 0x06, 0x05, 0xa3, 0xa6, 0x55, 0x9a,
	0x1d, 0x4d, 0xc7, 0x68, 0x15, 0x90, 0x3d, 0x1c, 0x18, 0xc4, 0x5e, 0x8d, 0x23, 0x95, 0xdd, 0xa1,
	0x9c, 0xa2, 0x1d, 0xd9, 0x2e, 0xab, 0x69, 0xd5, 0x23, 0xb5, 0x8b, 0x4e, 0xe0, 0x7c, 0x5d, 0x6b,
	0xb7, 0xb5, 0x8e, 0xec, 0x45, 0x53, 0x29, 0x39, 0x1e, 0x2f, 0xbd, 0x35, 0x60, 0x3c, 0xb2, 0xab,
	0x5e, 0x2d, 0x50, 0x3a, 0x9e, 0x3c, 0xe2, 0xba, 0xeb, 0x76, 0xb6, 0x55, 0x31, 0x2b, 0x13, 0xbf,
	0x25, 0xc0, 0x5c, 0x00, 0x0e, 0xba, 0x0a, 0x62, 0x61, 0x67, 0x6b, 0x6b, 0x67, 0x5b, 0x2e, 0x94,
	0xf3, 0x52, 0x55, 0xae, 0xed, 0xc8, 0x95, 0x3b, 0xdb, 0x3b, 0x92, 0xff, 0xd1, 0x88, 0x14, 0x4c,
	0x6e, 0xef, 0x6d, 0x95, 0xa4, 0x4a, 0x21, 0x2b, 0xa0, 0x79, 0xc8, 0xe6, 0x37, 0x77, 0xcb, 0x79,
	0x79, 0x6f, 0x77, 0xb7, 0x24, 0xc9, 0x85, 0x7c, 0xb5, 0x94, 0x8d, 0x39, 0xb9, 0x9b, 0x3b, 0x0f,
	0xac, 0x5c, 0xda, 0x4d, 0x76, 0xf7, 0xb6, 0x0b, 0xb5, 0xbd, 0x7c, 0xad, 0xb2, 0xb3, 0x9d, 0x1d,
	0x47, 0x19, 0x80, 0x07, 0xe5, 0x4a, 0xad, 0x54, 0xdd, 0xcd, 0x17, 0x4a, 0xd9, 0xc4, 0xc6, 0x34,
	0x80, 0x23, 0x0d, 0xf1, 0x8f, 0x08, 0x9f, 0x01, 0x43, 0xec, 0x0d, 0x98, 0x25, 0x43, 0x37, 0x1d,
	0x78, 0xac, 0x62, 0x7e, 0x7e, 0x39, 0xcb, 0x0b, 0x6c, 0x34, 0xf4, 0x22, 0x64, 0x3a, 0xbd, 0xf6,
	0x3e, 0xd6, 0x89, 0x70, 0x49, 0x29, 0xbf, 0xc4, 0x3a, 0xcd, 0x72, 0x6b, 0x1a, 0x21, 0x8c, 0xae,
	0x90, 0x18, 0xe3, 0x29, 0xd6, 0x0d, 0x2c, 0x6b, 0x7a, 0x03, 0xb3, 0x5b, 0x8b, 0x49, 0x12, 0x3c,
	0xd0, 0xcc, 0x1d, 0x92, 0x87, 0xee, 0xc3, 0x7c, 0xa0, 0xae, 0xc6, 0x07, 0x1e, 0x2f, 0xf7, 0xc8,
	0x58, 0x42, 0xf5, 0x7e, 0x7d, 0xfc, 0x2b, 0x01, 0x96, 0xc3, 0xc6, 0x60, 0xf4, 0x15, 0x48, 0xf9,
	0x97, 0x36, 0x87, 0xd9, 0x34, 0xb4, 0xdc, 0xdb, 0x64, 0x29, 0xff, 0x3a, 0xe6, 0x50, 0xf4, 0xde,
	0xc0, 0xe5, 0x4c, 0xc1, 0x3d, 0x95, 0x16, 0xbf, 0x11, 0x83, 0x19, 0x3f, 0xcb, 0x77, 0x60, 0xd2,
	0x5a, 0x98, 0x67, 0x0b, 0x0e, 0xb7, 0xa2, 0x45, 0x04, 0x3c, 0x2d, 0x59, 0xd8, 0xf4, 0xca, 0x00,
	0x5f, 0x25, 0x58, 0x85, 0x78, 0x5b, 0xed, 0x44, 0x6a, 0x3e, 0x01, 0xa4, 0xf0, 0xca, 0x71, 0xa4,
	0xf6, 0x12, 0x40, 0x54, 0x81, 0x59, 0x1e, 0x20, 0xd0, 0xfb, 0xfa, 0xce, 0x8c, 0x74, 0x18, 0x76,
	0xd6, 0x85, 0xc6, 0x1c, 0xc9, 0x6f, 0x8f, 0x5b, 0x3e, 0x38, 0x28, 0x52, 0x3b, 0xb3, 0x0f, 0x76,
	0xb9, 0xcc, 0xd8, 0x48, 0x2e, 0x13, 0x19, 0x30, 0xc3, 0x5d, 0x8e, 0xd2, 0xea, 0x1e, 0x2a, 0xfb,
	0xd8, 0xe4, 0x4f, 0x79, 0x95, 0x47, 0x0d, 0x46, 0x57, 0x6f, 0x1f, 0x1c, 0x33, 0x0f, 0xb2, 0x4d,
	0xcf, 0x36, 0xe5, 0x39, 0x3d, 0x12, 0x09, 0xb1, 0x2a, 0xac, 0x1c, 0xf4, 0x32, 0xf0, 0xd7, 0x90,
	0x9c, 0x4a, 0x13, 0xdc, 0x29, 0x66, 0x58, 0x81, 0x0d, 0xba, 0x08, 0x09, 0x5d, 0x69, 0xa8, 0xc7,
	0x34, 0x8e, 0x4c, 0xd0, 0x97, 0xcd, 0x48, 0x32, 0x6c, 0xd4, 0x49, 0x9e, 0x76, 0xd4, 0x11, 0xff,
	0x96, 0x00, 0x4b, 0x21, 0x2d, 0x40, 0x2b, 0x70, 0xf5, 0xf6, 0xed, 0x0f, 0x65, 0xee, 0x08, 0xb7,
	0xf3, 0xb5, 0xca, 0xfd, 0x92, 0x4c, 0x7d, 0xd9, 0x46, 0xa9, 0x36, 0xc8, 0x11, 0x92, 0x01, 0xbe,
	0xf4, 0x61, 0xbe, 0x58, 0x2a, 0x54, 0xb6, 0xf2, 0x9b, 0xd9, 0x18, 0xba, 0x00, 0xcb, 0x8e, 0x4f,
	0x64, 0x24, 0x64, 0x0b, 0x3c, 0x8e, 0x66, 0x21, 0xed, 0xcd, 0x1a, 0xdf, 0x00, 0x48, 0x5a, 0x32,
	0x12, 0xff, 0xaf, 0x00, 0x53, 0xb6, 0xfa, 0x51, 0x05, 0xa6, 0x68, 0xac, 0xa4, 0x5a, 0x17, 0xf7,
	0xc2, 0x67, 0x54, 0x35, 0x0b, 0xce, 0xc6, 0xa6, 0x2b, 0x15, 0x56, 0x2e, 0x21, 0xd5, 0xeb, 0x3c,
	0xd3, 0x95, 0x6e, 0x17, 0x5b, 0xee, 0x20, 0x8c, 0xd4, 0x9e, 0x05, 0xe7, 0x21, 0x65, 0x63, 0xa3,
	0x2d, 0x48, 0x1d, 0xb5, 0x0d, 0xd9, 0x22, 0x36, 0x78, 0x0a, 0xf5, 0x41, 0xdb, 0x78, 0xd0, 0x4f,
	0x0d, 0x8e, 0xec, 0xec, 0x8d, 0x24, 0x4c, 0xb0, 0xa3, 0x54, 0xe2, 0x75, 0x40, 0xfd, 0xcd, 0x08,
	0xba, 0x72, 0x23, 0x5e, 0x05, 0xd4, 0xcf, 0x25, 0xca, 0x42, 0xdc, 0xea, 0x5c, 0xd3, 0x12, 0xf9,
	0x2b, 0x7e, 0x0c, 0x73, 0x01, 0x0c, 0x10, 0xf7, 0xc6, 0x91, 0x65, 0x07, 0x01, 0x78, 0x16, 0x01,
	0xb8, 0x0a, 0x33, 0x4e, 0x6f, 0x75, 0xdf, 0xea, 0x49, 0xdb, 0x1d, 0x92, 0xde, 0x42, 0xfc, 0x53,
	0x01, 0x66, 0x7c, 0x71, 0x36, 0xba, 0x0e, 0x59, 0x97, 0xeb, 0x95, 0x1b, 0xca, 0x89, 0xb5, 0x98,
	0x90, 0x71, 0x3c, 0x6c, 0x51, 0x39, 0x31, 0x08, 0xa4, 0xcb, 0xc7, 0x33, 0x48, 0x36, 0x4a, 0x65,
	0x1c, 0x57, 0x4e, 0x21, 0x4f, 0x1d, 0x2f, 0xa1, 0xbc, 0xc7, 0xef, 0x8c, 0x47, 0xf3, 0x3b, 0xf4,
	0x18, 0xa8, 0x95, 0x20, 0x0a, 0x6a, 0x63, 0xf3, 0x50, 0x6b, 0x88, 0xdf, 0x89, 0xc1, 0x52, 0xc8,
	0x92, 0x05, 0xd2, 0x60, 0xa6, 0x7f, 0xed, 0x63, 0xd0, 0x99, 0xde, 0x10, 0x42, 0x21, 0xf9, 0x92,
	0x9f, 0x7a, 0xee, 0x77, 0x04, 0x58, 0x0c, 0x86, 0x3d, 0xf3, 0x9b, 0x77, 0x2a, 0x2c, 0x77, 0xad,
	0x95, 0x0e, 0xdf, 0x32, 0x0b, 0xef, 0x3b, 0xab, 0xe1, 0xe7, 0x08, 0x83, 0x16, 0x48, 0xa4, 0xa5,
	0x6e, 0x70, 0x81, 0xf8, 0xf5, 0x38, 0xcc, 0x51, 0xa5, 0xf9, 0x9a, 0xf0, 0x26, 0x4c, 0xd0, 0xf3,
	0x9e, 0x51, 0x0f, 0x70, 0x73, 0x68, 0x54, 0x84, 0xa9, 0xba, 0xd6, 0x69, 0xa8, 0xae, 0x67, 0x4d,
	0xae, 0x0e, 0x5c, 0x11, 0x2a, 0x58, 0xd0, 0x92, 0x83, 0x88, 0x8e, 0x06, 0x08, 0x60, 0xfc, 0x34,
	0x02, 0x28, 0x8f, 0x85, 0x8a, 0x60, 0xf0, 0xfa, 0x59, 0xe2, 0x39, 0xaf, 0x9f, 0x05, 0xcc, 0x3f,
	0x3f, 0x13, 0x60, 0x21, 0x70, 0x75, 0x0c, 0xc9, 0xb0, 0xc0, 0xde, 0x98, 0x09, 0xb6, 0xec, 0x95,
	0x41, 0x3a, 0xf1, 0x19, 0xc0, 0xfc, 0x41, 0x7f, 0xa6, 0x81, 0x1e, 0xc2, 0x1c, 0x5f, 0xcc, 0x33,
	0x7a, 0xdd, 0xae, 0x8e, 0x0d, 0x83, 0xaf, 0xe4, 0x0d, 0x7a, 0xdc, 0x8f, 0xf1, 0x5a, 0x75, 0x10,
	0x24, 0xa4, 0xfb, 0xb3, 0x0c, 0xf1, 0x21, 0xcc, 0xf6, 0x01, 0x7a, 0xad, 0x43, 0x38, 0xa5, 0x75,
	0x88, 0xbf, 0x98, 0x80, 0x19, 0x5f, 0x31, 0xaa, 0x41, 0x0a, 0x1f, 0x3b, 0x2d, 0x18, 0xfc, 0xc2,
	0xa3, 0x0f, 0x79, 0xb5, 0xe4, 0x60, 0x4a, 0x6e, 0x32, 0xb9, 0xdf, 0x24, 0xc3, 0xa1, 0x5d, 0xc7,
	0xe9, 0x0e, 0x4c, 0x97, 0x20, 0xa9, 0x75, 0xb1, 0xae, 0x98, 0xfc, 0x51, 0x92, 0xcc, 0x80, 0x55,
	0xc9, 0x16, 0xd5, 0x8b, 0xd2, 0xda, 0xe1, 0x08, 0x92, 0x8d, 0xea, 0x6c, 0xaa, 0x8c, 0x47, 0xde,
	0x54, 0xc9, 0x7d, 0x0c, 0x60, 0x73, 0x6f, 0xa0, 0x5d, 0x00, 0x5b, 0x86, 0x96, 0x09, 0xbd, 0x12,
	0x51, 0x42, 0x8e, 0x1e, 0x5c, 0x34, 0x72, 0xdf, 0x8a, 0x41, 0xca, 0x25, 0x3b, 0xd4, 0x26, 0x03,
	0x4a, 0x93, 0x9e, 0xdd, 0xb5, 0x9b, 0xcc, 0xd6, 0x4d, 0x36, 0x46, 0xd7, 0xc4, 0xea, 0x26, 0x23,
	0x65, 0xcb, 0x62, 0xa6, 0xe5, 0xcd, 0x40, 0x55, 0x4f, 0x83, 0x98, 0xca, 0x5f, 0x1d, 0xb5, 0x41,
	0xa4, 0xb3, 0xba, 0xc8, 0x88, 0xef, 0xc1, 0x8c, 0xaf, 0x62, 0x74, 0x19, 0x2e, 0x6c, 0xee, 0xdc,
	0xa9, 0x14, 0xf2, 0x9b, 0xf2, 0xce, 0x6e, 0x49, 0xca, 0xd7, 0x76, 0x24, 0x5f, 0x44, 0x36, 0x09,
	0xf1, 0xfc, 0x76, 0x31, 0x2b, 0xd8, 0xfb, 0x22, 0xbf, 0x2a, 0xc0, 0x62, 0xf0, 0x73, 0x09, 0x64,
	0x1a, 0x69, 0x77, 0x67, 0xdf, 0xc5, 0xe2, 0xac, 0xab, 0x80, 0xdd, 0x2a, 0x6e, 0xc2, 0xb2, 0xb7,
	0xef, 0xcb, 0x46, 0xaf, 0xdd, 0x56, 0x74, 0xd5, 0x3e, 0xd6, 0x7e, 0x33, 0xd2, 0x63, 0x0d, 0x55,
	0x8a, 0x75, 0x22, 0x2d, 0x99, 0x01, 0xd9, 0x2a, 0x36, 0xc4, 0x6f, 0x4d, 0xc0, 0x42, 0x20, 0xca,
	0x19, 0x6f, 0xcc, 0xdb, 0x7d, 0x26, 0x36, 0x4a, 0x9f, 0xb9, 0xef, 0x77, 0x92, 0x5c, 0xbb, 0xa3,
	0x0e, 0x7b, 0x3e, 0x2a, 0xe1, 0x0e, 0x35, 0xf1, 0x9c, 0x1c, 0xea, 0x3d, 0xfb, 0x75, 0x38, 0xcb,
	0xa1, 0xf2, 0xd5, 0xe9, 0xe8, 0xce, 0x34, 0xe3, 0x75, 0xa6, 0xa8, 0x06, 0x93, 0x6c, 0xa7, 0xd5,
	0x3a, 0xb2, 0xf3, 0xce, 0x28, 0x1a, 0x5f, 0xb5, 0x34, 0xcf, 0xae, 0xf5, 0x5b, 0xa4, 0x82, 0xad,
	0x70, 0x32, 0xd8, 0x0a, 0x73, 0x3f, 0x27, 0x40, 0xda, 0x43, 0xc7, 0xd9, 0xae, 0x15, 0x5c, 0xdb,
	0xb5, 0xe8, 0x21, 0x8c, 0xdb, 0xd7, 0x32, 0x32, 0xa1, 0x81, 0x57, 0x30, 0x9f, 0x3e, 0xf1, 0xd2,
	0x6a, 0x0a, 0x5a, 0x03, 0x4b, 0x94, 0x24, 0x5a, 0x86, 0xc9, 0x06, 0xdb, 0xf9, 0x66, 0x1b, 0xb6,
	0x92, 0x95, 0x14, 0x3f, 0x86, 0xe5, 0x30, 0x5c, 0x32, 0xab, 0xaa, 0x49, 0xf9, 0xed, 0xea, 0xed,
	0x1d, 0x69, 0x8b, 0x2e, 0xfe, 0xc8, 0x52, 0xa9, 0xba, 0xb7, 0x59, 0x93, 0x0b, 0x3b, 0xc5, 0x80,
	0xe5, 0xa5, 0xea, 0x5e, 0xa1, 0x50, 0xaa, 0x56, 0xd9, 0xb2, 0x6b, 0x49, 0x92, 0x76, 0xa4, 0x6c,
	0x4c, 0xd4, 0x20, 0x59, 0xad, 0x1f, 0xe2, 0x46, 0x8f, 0xde, 0x01, 0xce, 0xe9, 0xb8, 0xde, 0xd3,
	0x75, 0x7a, 0x94, 0xa3, 0x8b, 0x75, 0x55, 0x6b, 0xc8, 0xd6, 0xd3, 0xe6, 0xbc, 0x73, 0x9c, 0xeb,
	0xdb, 0xfa, 0x2d, 0x72, 0x80, 0xf2, 0x98, 0xb4, 0xec, 0xa0, 0xef, 0x52, 0x6c, 0xab, 0x8c, 0x44,
	0xb9, 0xec, 0x75, 0x08, 0xf1, 0x9f, 0xc7, 0x60, 0xc6, 0xff, 0x1a, 0xc2, 0x29, 0xef, 0xfd, 0xfb,
	0x2e, 0xea, 0xc7, 0xfb, 0x2e, 0xea, 0xfb, 0x5f, 0x9b, 0x1c, 0x1f, 0xe9, 0xb5, 0xc9, 0x77, 0x21,
	0xd5, 0xeb, 0x3a, 0x5b, 0xbe, 0x89, 0xe1, 0xc8, 0x0c, 0x9c, 0x22, 0xf7, 0x3f, 0xfd, 0x32, 0x71,
	0xea, 0xa7, 0x5f, 0xc4, 0xdf, 0x8a, 0x01, 0x2a, 0xf6, 0xbd, 0x9a, 0xf3, 0xc3, 0x28, 0xb6, 0xc0,
	0xc7, 0xb6, 0x26, 0xce, 0xf8, 0xd8, 0x96, 0xf8, 0x04, 0x12, 0x25, 0x5d, 0xd7, 0x74, 0x74, 0xd3,
	0xe9, 0x67, 0xcc, 0x9c, 0x91, 0x45, 0x54, 0xef, 0xd6, 0xe9, 0x5d, 0xa9, 0x9e, 0x61, 0xf7, 0x3d,
	0xf4, 0x0e, 0x3b, 0xb8, 0x40, 0xb9, 0xb4, 0xc2, 0xc6, 0x81, 0x0d, 0x71, 0xa0, 0xc5, 0xef, 0x24,
	0x00, 0xee, 0x6a, 0xfb, 0x35, 0x5d, 0x6d, 0x36, 0xb1, 0xfe, 0xc5, 0xa9, 0xea, 0x2e, 0xa4, 0x2c,
	0x3b, 0x7b, 0xac, 0xed, 0x73, 0x55, 0x45, 0x7d, 0x49, 0x84, 0x04, 0x07, 0xaa, 0x9d, 0x47, 0x62,
	0x39, 0x93, 0xf1, 0x6b, 0x0d, 0x19, 0x61, 0xb1, 0x9c, 0xd3, 0xb2, 0x55, 0xfe, 0x2b, 0xd9, 0xa8,
	0xe8, 0x75, 0x98, 0xc0, 0x44, 0xda, 0xd6, 0x01, 0xa0, 0xb0, 0x60, 0x8e, 0xaa, 0x44, 0xe2, 0xb0,
	0x7e, 0x9b, 0x9b, 0x3c, 0x8b, 0xcd, 0x25, 0x47, 0xb2, 0xb9, 0xf7, 0x21, 0xdd, 0x52, 0x0c, 0x53,
	0xd6, 0x7b, 0x1d, 0x86, 0x3e, 0x35, 0x14, 0x3d, 0x45, 0x10, 0xa4, 0x5e, 0x87, 0xe2, 0x7f, 0x0d,
	0x26, 0xd8, 0x47, 0x18, 0x96, 0x81, 0x8e, 0x0c, 0xd7, 0x87, 0x0b, 0x8d, 0x5b, 0x1a, 0xc7, 0xcb,
	0x55, 0x61, 0xd2, 0x32, 0x94, 0xaf, 0x40, 0xd2, 0xe0, 0xfe, 0x78, 0x48, 0x38, 0x62, 0xb9, 0xed,
	0xf2, 0x98, 0x64, 0xa3, 0x6c, 0x4c, 0xc1, 0x24, 0xd7, 0x83, 0x58, 0x86, 0x09, 0x56, 0x0d, 0x5a,
	0x04, 0x54, 0xad, 0xe5, 0x6b, 0x7b, 0xd5, 0xfe, 0x31, 0xa1, 0x5c, 0xca, 0x6f, 0xd6, 0xca, 0x0f,
	0xb3, 0x02, 0x02, 0x98, 0xd8, 0xcd, 0xef, 0x55, 0x4b, 0x45, 0xf6, 0x2c, 0x75, 0x21, 0xbf, 0x5d,
	0x28, 0x6d, 0x6e, 0x96, 0x8a, 0xd9, 0xf8, 0x46, 0x02, 0xe2, 0x8f, 0xb5, 0x7d, 0xf1, 0x77, 0xc7,
	0x61, 0x82, 0xbd, 0xb3, 0x81, 0xee, 0x41, 0xda, 0x50, 0x9e, 0xba, 0x5e, 0x60, 0x14, 0x06, 0x2e,
	0x53, 0x31, 0xac, 0xd5, 0xaa, 0xf2, 0xd4, 0x7e, 0x9c, 0xb1, 0x3c, 0x26, 0x4d, 0x1b, 0xae, 0x34,
	0x2a, 0xc3, 0x64, 0xb7, 0xb7, 0x2f, 0x1b, 0xbd, 0xfd, 0x21, 0xef, 0x74, 0x71, 0x62, 0xbb, 0xbd,
	0xfd, 0x96, 0x6a, 0x1c, 0xd6, 0xb4, 0xdd, 0xde, 0x7e, 0xb5, 0xb7, 0x5f, 0x1e, 0x93, 0x26, 0xba,
	0xf4, 0x1f, 0x3a, 0x82, 0xa5, 0x2e, 0x2b, 0xe4, 0xe1, 0xe4, 0x89, 0x6c, 0x6a, 0x72, 0xdd, 0xa8,
	0xd7, 0x87, 0x4c, 0x9c, 0xbc, 0x94, 0xf9, 0xd0, 0x5d, 0xd3, 0x0a, 0x46, 0xbd, 0x5e, 0x1e, 0x93,
	0xe6, 0xbb, 0x01, 0xf9, 0xa8, 0x0d, 0x4b, 0x8f, 0xb5, 0x7d, 0xb9, 0xa3, 0x99, 0xea, 0x81, 0xca,
	0x1e, 0x11, 0x95, 0x71, 0x9b, 0x7a, 0x18, 0x66, 0x85, 0xaf, 0x0d, 0xae, 0xec, 0xae, 0xb6, 0xbf,
	0xed, 0xc2, 0x2d, 0x51, 0xd4, 0xf2, 0x98, 0xb4, 0xf0, 0x38, 0xa8, 0x20, 0x27, 0xc3, 0xb4, 0x5b,
	0x8a, 0x68, 0xc7, 0x7e, 0xfa, 0xca, 0x73, 0x32, 0x64, 0x25, 0xfa, 0xd3, 0x57, 0xd6, 0x6b, 0x57,
	0xfc, 0x81, 0x80, 0x6b, 0x30, 0xe3, 0x93, 0x2c, 0x89, 0x86, 0x4c, 0xad, 0xcb, 0x2f, 0x79, 0x4e,
	0x49, 0x2c, 0x91, 0x5b, 0x84, 0xf9, 0x20, 0x41, 0xe5, 0x96, 0x60, 0x21, 0xb0, 0x4d, 0x24, 0x04,
	0x60, 0xaf, 0xb3, 0x88, 0xbf, 0x2c, 0xc0, 0x85, 0x02, 0xed, 0xbc, 0xfe, 0xf7, 0x92, 0x86, 0xbc,
	0xa7, 0x76, 0x0f, 0xb2, 0x7d, 0x0f, 0x32, 0xc5, 0x46, 0x7a, 0x90, 0x69, 0xc6, 0xf7, 0xda, 0x19,
	0xba, 0x04, 0x29, 0xfb, 0x55, 0x34, 0xb5, 0xc1, 0x3d, 0x2c, 0x58, 0x59, 0x95, 0x86, 0xf8, 0xdb,
	0x02, 0x5c, 0xd8, 0xa3, 0xce, 0x22, 0x84, 0xd9, 0x20, 0xd7, 0xfe, 0x05, 0x30, 0xea, 0xb8, 0x38,
	0xba, 0xdf, 0x16, 0x0f, 0xf1, 0x51, 0x34, 0x98, 0xdf, 0x52, 0x8c, 0x23, 0xcb, 0xc5, 0x91, 0xff,
	0xe2, 0x1a, 0x9c, 0xbb, 0x83, 0xcd, 0xe8, 0x0d, 0x10, 0x7f, 0x5a, 0x80, 0xf3, 0xec, 0x35, 0x22,
	0x0f, 0x8a, 0x31, 0x4c, 0x43, 0x17, 0x01, 0xba, 0x4a, 0x13, 0xcb, 0xa6, 0x76, 0xc4, 0xdf, 0x10,
	0x9d, 0x92, 0xa6, 0x48, 0x4e, 0x8d, 0x64, 0xa0, 0xf3, 0x40, 0x13, 0xce, 0xbe, 0x57, 0x42, 0x4a,
	0x92, 0x0c, 0x7a, 0x80, 0xf4, 0x1c, 0x24, 0xe9, 0x36, 0xa1, 0xbc, 0x7f, 0xc2, 0x1f, 0x5d, 0x9a,
	0xa4, 0xe9, 0x8d, 0x13, 0xf1, 0xe7, 0x05, 0xb8, 0x10, 0xcc, 0x0e, 0x7f, 0x23, 0xa9, 0x0a, 0xb3,
	0x7e, 0x81, 0x5b, 0x8b, 0x00, 0x51, 0x25, 0x9e, 0xf5, 0x49, 0xdc, 0x40, 0x57, 0x61, 0xa6, 0x83,
	0x8f, 0x4d, 0xb9, 0xaf, 0x45, 0x69, 0x92, 0xbd, 0x6b, 0xb5, 0x4a, 0x5c, 0x87, 0x0b, 0x45, 0xdc,
	0xc2, 0xa3, 0x58, 0x08, 0xdd, 0x2d, 0x61, 0x7d, 0xc0, 0x19, 0x16, 0x86, 0x09, 0x77, 0x03, 0x52,
	0xc4, 0xd7, 0x70, 0x07, 0xcf, 0x0d, 0xea, 0x85, 0xa1, 0xa3, 0x8d, 0x04, 0x8f, 0x9d, 0x40, 0xe4,
	0x22, 0x00, 0xc7, 0x77, 0xcc, 0x7d, 0x8a, 0xe7, 0x54, 0x1a, 0xc4, 0x50, 0x88, 0x63, 0x7a, 0x1a,
	0xc8, 0x57, 0x50, 0x3b, 0x7e, 0x55, 0x80, 0x25, 0xd6, 0x3d, 0x22, 0xc1, 0x3f, 0x97, 0x36, 0x9c,
	0xa9, 0x2b, 0xac, 0xc0, 0xfc, 0x1d, 0x6c, 0x46, 0x6b, 0xdc, 0xf7, 0x05, 0x98, 0x63, 0x4a, 0x2a,
	0xb6, 0xba, 0x77, 0xb5, 0xfd, 0x61, 0x0a, 0xf2, 0x05, 0x63, 0xb1, 0xb3, 0x04, 0x63, 0x15, 0x48,
	0xea, 0xaa, 0x71, 0x44, 0x09, 0xc5, 0x07, 0x9f, 0x3d, 0x0c, 0x7a, 0xd0, 0xab, 0x3c, 0x26, 0x4d,
	0x12, 0x7c, 0x42, 0x6a, 0x01, 0x26, 0x88, 0xcc, 0xd5, 0x06, 0xef, 0x56, 0x89, 0xc7, 0xda, 0x7e,
	0xa5, 0x61, 0x0d, 0xeb, 0x7f, 0x5f, 0x80, 0x45, 0xd2, 0xb7, 0x1c, 0x91, 0xfc, 0x80, 0x7a, 0xb9,
	0xeb, 0x65, 0xb4, 0x84, 0xe7, 0x65, 0xb4, 0x9f, 0x14, 0x60, 0xa9, 0x8f, 0x43, 0xde, 0xf1, 0x8b,
	0x30, 0xed, 0xb2, 0x27, 0xab, 0xcf, 0x47, 0x30, 0xa8, 0x94, 0x63, 0x50, 0xd1, 0x7b, 0xfa, 0x2d,
	0x58, 0x62, 0x3d, 0x3d, 0x9a, 0xfd, 0xfc, 0xdd, 0x18, 0x64, 0xfd, 0x6a, 0x26, 0x33, 0x43, 0xfe,
	0x35, 0x31, 0xef, 0x98, 0xfd, 0x62, 0xe8, 0x0b, 0x0e, 0xee, 0xd1, 0x3a, 0x6d, 0x78, 0x1e, 0xce,
	0x7c, 0xae, 0x2f, 0x8c, 0x86, 0xbe, 0x14, 0x1a, 0x0f, 0x7f, 0xef, 0xd5, 0xf5, 0x42, 0xdb, 0xf8,
	0x48, 0x2f, 0xb4, 0xfd, 0x6e, 0x02, 0x26, 0x58, 0xaf, 0x0a, 0xf4, 0x13, 0x6f, 0xf0, 0xcf, 0xb8,
	0x0c, 0xfe, 0x1c, 0x12, 0x23, 0xe0, 0xfa, 0x6e, 0xcb, 0x7b, 0xf4, 0xe1, 0x77, 0x13, 0xf3, 0xb5,
	0xe8, 0xab, 0x03, 0xf1, 0x88, 0x39, 0x90, 0x10, 0x19, 0x4b, 0x0c, 0x09, 0x7d, 0x08, 0xd3, 0xb4,
	0xcf, 0x59, 0x73, 0xc4, 0xf1, 0xc1, 0x11, 0xdc, 0x80, 0x0b, 0x0c, 0xe5, 0x31, 0x29, 0xa5, 0xbb,
	0xde, 0xce, 0x78, 0x04, 0xd6, 0x80, 0x6e, 0x13, 0x1f, 0x7c, 0x7c, 0x34, 0xec, 0x05, 0xcb, 0xf2,
	0x98, 0x64, 0x69, 0xdc, 0xa2, 0x7d, 0xa6, 0x4f, 0x6a, 0xbc, 0x0d, 0x40, 0x1f, 0xc7, 0x8f, 0x3a,
	0xeb, 0x9a, 0xa2, 0xd0, 0x14, 0xf5, 0x0d, 0x48, 0xe2, 0x4e, 0x23, 0xea, 0x8c, 0x6b, 0x12, 0x77,
	0x1a, 0x14, 0xed, 0x3a, 0x64, 0x5d, 0x3d, 0x96, 0x19, 0x18, 0x50, 0xcd, 0x67, 0x9c, 0x2e, 0x49,
	0x6d, 0xcb, 0x99, 0x48, 0xa6, 0xa2, 0x4f, 0x24, 0xc5, 0x3a, 0x24, 0x2d, 0xbd, 0xa2, 0x73, 0xb0,
	0x70, 0x77, 0x67, 0x43, 0x26, 0xb3, 0x9f, 0x80, 0x05, 0xb1, 0xdd, 0xd2, 0x76, 0xb1, 0xb2, 0x7d,
	0x27, 0x2b, 0x90, 0x84, 0xb4, 0xb7, 0xbd, 0x4d, 0x12, 0x31, 0x94, 0x84, 0xf1, 0xe2, 0xce, 0x76,
	0x29, 0x1b, 0x47, 0xd3, 0x90, 0x64, 0xf3, 0xa0, 0x52, 0x31, 0x3b, 0x4e, 0x66, 0x48, 0xb7, 0xf3,
	0x15, 0xf2, 0x3f, 0x41, 0xe6, 0x59, 0xd6, 0x0a, 0xdd, 0x55, 0xc8, 0xde, 0xc1, 0xa6, 0x77, 0x80,
	0x08, 0x72, 0x06, 0xff, 0x51, 0x00, 0x44, 0xbc, 0x18, 0x83, 0x0c, 0xf0, 0xb1, 0xe3, 0x1e, 0x1f,
	0xeb, 0x38, 0x43, 0xc1, 0xed, 0x0c, 0xbd, 0xce, 0x35, 0xe6, 0x73, 0xae, 0x5e, 0xc7, 0x1c, 0xf7,
	0x3b, 0x66, 0xab, 0x53, 0x25, 0x46, 0xeb, 0x54, 0x6e, 0x97, 0x3d, 0xe1, 0x0d, 0xcc, 0xba, 0x30,
	0xe7, 0x69, 0x13, 0xf7, 0xca, 0xaf, 0xc2, 0xf8, 0x63, 0x6d, 0xdf, 0xf2, 0xc6, 0x17, 0x07, 0x56,
	0x24, 0x51, 0xd0, 0xc8, 0x2e, 0xf8, 0x65, 0x98, 0x2b, 0x28, 0x9d, 0x3a, 0x6e, 0x0d, 0x97, 0xf8,
	0xcb, 0x30, 0xc7, 0xbc, 0xf5, 0x70, 0xd0, 0xdf, 0x10, 0xe0, 0x12, 0x1f, 0xe9, 0xfb, 0xd6, 0xd9,
	0x86, 0x8d, 0x86, 0x8f, 0x60, 0x2e, 0xe0, 0x45, 0xf4, 0x21, 0xc7, 0x40, 0x02, 0xaa, 0x41, 0xfd,
	0xef, 0xa6, 0x0f, 0x9f, 0x9e, 0xfc, 0x07, 0x01, 0x2e, 0xb1, 0xf8, 0x2b, 0x9c, 0xf1, 0x20, 0xff,
	0xfa, 0x45, 0x32, 0x7d, 0xa6, 0xf8, 0x6c, 0x1d, 0x2e, 0x90, 0xee, 0x34, 0x4a, 0x63, 0xc4, 0x9f,
	0x11, 0xe0, 0x4b, 0xd4, 0x0c, 0xfb, 0xb0, 0x7e, 0x50, 0x13, 0x96, 0x7f, 0x2c, 0xc0, 0xa5, 0x50,
	0x8e, 0x78, 0x27, 0xf9, 0x08, 0xe6, 0x03, 0x54, 0x60, 0x75, 0x9a, 0x11, 0x74, 0x30, 0xd7, 0xaf,
	0x83, 0xe8, 0xfd, 0xe9, 0x0d, 0xb8, 0xc4, 0x3b, 0xc9, 0x48, 0x22, 0xff, 0x47, 0x31, 0x38, 0xbf,
	0xa9, 0xe8, 0x4d, 0xcc, 0xbe, 0xd2, 0xe7, 0x7c, 0x85, 0x93, 0xc7, 0x12, 0x65, 0x48, 0xf1, 0x85,
	0x89, 0xae, 0x62, 0x1e, 0xf2, 0x10, 0x27, 0xf4, 0x90, 0x7e, 0x4b, 0xeb, 0x35, 0x78, 0x9c, 0xb3,
	0xab, 0x98, 0x87, 0x12, 0x30, 0x5c, 0xf2, 0x1f, 0x29, 0xb0, 0x58, 0x27, 0xe5, 0xb2, 0x15, 0x35,
	0xd1, 0xaf, 0xe1, 0x18, 0xd8, 0x3a, 0xa9, 0xb7, 0x12, 0x81, 0xe8, 0x6d, 0x95, 0x7e, 0x9e, 0x8f,
	0x5e, 0x2f, 0xe9, 0xcf, 0x46, 0xdb, 0x30, 0xb3, 0xaf, 0x36, 0xe5, 0x27, 0x3d, 0xac, 0x9f, 0xc8,
	0x6c, 0x43, 0x2f, 0xda, 0x23, 0x6a, 0xd4, 0x84, 0xcb, 0x63, 0x52, 0x7a, 0xdf, 0x9d, 0xe1, 0x3a,
	0x74, 0x75, 0x17, 0x72, 0x81, 0x52, 0x62, 0xcf, 0x75, 0xdf, 0x04, 0xa4, 0x74, 0xbb, 0xba, 0x76,
	0x2c, 0x77, 0x7a, 0x6d, 0xb9, 0x7b, 0xa8, 0x2b, 0x86, 0xfd, 0x6a, 0x73, 0x96, 0x95, 0x6c, 0xf7,
	0xda, 0xbb, 0x2c, 0x5f, 0xfc, 0xae, 0x00, 0xf3, 0x84, 0x71, 0xdc, 0xf0, 0x5d, 0xb5, 0xf0, 0x2f,
	0x24, 0x0b, 0x43, 0x17, 0x92, 0x63, 0xfd, 0x0b, 0xc9, 0x2d, 0x58, 0x6a, 0x11, 0x4e, 0x65, 0x7e,
	0xb0, 0xd0, 0xf5, 0x3d, 0xd6, 0xc1, 0xab, 0x66, 0x03, 0xac, 0xa0, 0x3c, 0x26, 0x2d, 0xb4, 0x82,
	0x8a, 0xed, 0x9d, 0xe4, 0xbf, 0x21, 0xc0, 0x9c, 0xb7, 0x4d, 0x4c, 0x32, 0x47, 0xe1, 0xdc, 0x08,
	0x03, 0x77, 0xc2, 0xc3, 0xa5, 0x3d, 0x9c, 0x99, 0xcf, 0x62, 0xb0, 0xe0, 0x65, 0x86, 0x7f, 0xa3,
	0x09, 0x15, 0x60, 0xc2, 0x13, 0xab, 0xdf, 0x18, 0x10, 0xab, 0xfb, 0xd5, 0x23, 0x71, 0x54, 0x7f,
	0x9c, 0x16, 0x1b, 0x29, 0x4e, 0xfb, 0x9a, 0x37, 0xb0, 0x5d, 0x89, 0xc4, 0x80, 0x27, 0xb8, 0x75,
	0xa2, 0xa9, 0xf1, 0x11, 0x96, 0xe5, 0x79, 0xbd, 0x56, 0xb8, 0x1a, 0xbd, 0x5e, 0x83, 0xd5, 0x6b,
	0x88, 0xff, 0x49, 0x80, 0x8c, 0xb7, 0x38, 0x70, 0x40, 0xda, 0x83, 0x19, 0xb6, 0x77, 0x68, 0xda,
	0x5f, 0xcc, 0x1a, 0x7c, 0xe5, 0x2e, 0x50, 0x53, 0x52, 0x86, 0x13, 0xb1, 0x34, 0xf7, 0x00, 0xb2,
	0x5d, 0xcc, 0xbe, 0xe7, 0xc4, 0xc9, 0x0e, 0x3b, 0x5a, 0x10, 0x4c, 0x77, 0x86, 0x53, 0xe1, 0x69,
	0x43, 0xfc, 0x27, 0x02, 0x9c, 0x67, 0x11, 0x83, 0x17, 0x61, 0xd8, 0x80, 0xe3, 0x98, 0x52, 0xec,
	0xf4, 0xa6, 0x74, 0x0b, 0xe6, 0x0c, 0x5a, 0xee, 0xba, 0xcc, 0x65, 0x87, 0x07, 0x59, 0xc3, 0x83,
	0x5a, 0x69, 0x88, 0xbf, 0x26, 0xc0, 0x79, 0x16, 0x24, 0x04, 0xf3, 0x1a, 0xa4, 0x8f, 0xe7, 0xc2,
	0xe7, 0x99, 0x22, 0x81, 0x55, 0x58, 0xbe, 0x83, 0xcd, 0xc8, 0x1c, 0x8b, 0x7f, 0x53, 0x80, 0x1c,
	0x19, 0x73, 0xbd, 0x18, 0x3f, 0xa8, 0x08, 0xe0, 0xef, 0xf0, 0x15, 0xd4, 0x3e, 0x6e, 0xf8, 0xe8,
	0x7f, 0x0f, 0x66, 0xfd, 0x2a, 0xb4, 0x86, 0xfe, 0x97, 0x22, 0x89, 0x5a, 0x9a, 0xf1, 0xea, 0x39,
	0xfa, 0x90, 0xff, 0x2a, 0x9c, 0x67, 0x43, 0x7e, 0x64, 0xd9, 0xae, 0x6c, 0x41, 0xda, 0xf3, 0xf5,
	0x5c, 0xb4, 0x04, 0x73, 0x85, 0x9d, 0xed, 0x5a, 0x69, 0xdb, 0x7f, 0x7c, 0x3b, 0x0b, 0xd3, 0x56,
	0x41, 0xad, 0xf4, 0x61, 0x2d, 0x2b, 0xa0, 0x59, 0x48, 0x5b, 0x39, 0xec, 0xb3, 0xa8, 0xb1, 0x95,
	0x4f, 0x05, 0x98, 0x76, 0x7f, 0xd2, 0x1a, 0x5d, 0x84, 0x73, 0x5b, 0xf9, 0x5a, 0xa1, 0x5c, 0xd9,
	0xbe, 0x13, 0xf4, 0x45, 0xd5, 0x0b, 0xb0, 0xec, 0x2d, 0xbe, 0xbd, 0xb7, 0xb9, 0x29, 0xd3, 0xac,
	0xac, 0x80, 0x2e, 0xc1, 0x79, 0x6f, 0xe9, 0x6e, 0x5e, 0xaa, 0x55, 0xf2, 0x16, 0x40, 0xac, 0x1f,
	0xa0, 0xb2, 0x7d, 0xbf, 0x24, 0x55, 0x4b, 0x1c, 0x20, 0xbe, 0xb2, 0xeb, 0x7c, 0x8f, 0xc0, 0xf5,
	0x59, 0x00, 0x32, 0x7d, 0x2c, 0x6d, 0xef, 0x6d, 0x05, 0x71, 0x94, 0x82, 0xc9, 0x0a, 0xcd, 0xe0,
	0x2d, 0x94, 0x2a, 0xd5, 0x0f, 0xe4, 0xfc, 0x76, 0x7e, 0xf3, 0x61, 0xb5, 0x52, 0xcd, 0xc6, 0x56,
	0xfe, 0x8d, 0x00, 0xa8, 0xff, 0xc4, 0x1b, 0xba, 0x02, 0x97, 0xa4, 0xd2, 0x26, 0x3d, 0xac, 0x11,
	0x7e, 0xde, 0x6a, 0x1a, 0x92, 0xa5, 0x7b, 0x7b, 0xf9, 0x4d, 0xb9, 0xb6, 0x93, 0x15, 0x88, 0x40,
	0xb7, 0x77, 0x6a, 0xb2, 0x9d, 0x43, 0xaf, 0xca, 0xdd, 0x91, 0x4a, 0xf9, 0x5a, 0x49, 0x92, 0x6b,
	0xe5, 0xfc, 0x36, 0xfb, 0x70, 0xec, 0x66, 0xa9, 0x5a, 0x65, 0xc9, 0x71, 0x94, 0x83, 0x45, 0x37,
	0x80, 0xbc, 0x23, 0x31, 0xf4, 0x6a, 0x36, 0x41, 0x14, 0x67, 0x83, 0xba, 0x0a, 0x26, 0xc8, 0xf4,
	0xb6, 0xf4, 0x61, 0xa5, 0x5a, 0xab, 0x66, 0x27, 0x57, 0x24, 0x00, 0x67, 0x16, 0x48, 0xa4, 0x5f,
	0xdc, 0xdc, 0x95, 0xc9, 0x4c, 0x3a, 0x40, 0x12, 0x33, 0x90, 0xe2, 0x92, 0x20, 0x10, 0x59, 0x01,
	0x2d, 0xc0, 0xac, 0x47, 0x1a, 0x34, 0x3b, 0xb6, 0xd2, 0x09, 0x1a, 0xe9, 0xe9, 0xfd, 0x28, 0xfa,
	0x19, 0x94, 0xa2, 0x5c, 0xd9, 0xbe, 0xbd, 0xc3, 0x2a, 0x18, 0x3a, 0x5f, 0x9f, 0x82, 0x84, 0x54,
	0xca, 0x17, 0x1f, 0x66, 0x63, 0xae, 0x59, 0x79, 0x9c, 0x29, 0xe5, 0x7e, 0x7e, 0xb3, 0x52, 0xcc,
	0x8e, 0xaf, 0xff, 0xe1, 0x4d, 0xda, 0x88, 0x2a, 0xd6, 0x9f, 0xaa, 0x75, 0x8c, 0xfe, 0x81, 0xf3,
	0x79, 0x74, 0x6e, 0xc9, 0xe8, 0xe6, 0xd0, 0x45, 0x32, 0xd7, 0x47, 0x7e, 0x72, 0xb7, 0x22, 0x42,
	0xb3, 0xfe, 0x2d, 0xae, 0xff, 0x95, 0xcf, 0xfe, 0xe7, 0xcf, 0xc6, 0x6e, 0x8a, 0xd7, 0xd6, 0x9e,
	0xae, 0xaf, 0xfd, 0x28, 0xf3, 0x35, 0x5f, 0xe9, 0xea, 0xda, 0x63, 0x5c, 0x37, 0x8d, 0xb5, 0x95,
	0x1f, 0x5f, 0xe3, 0x9f, 0xed, 0x7c, 0x87, 0xaf, 0xe6, 0xbc, 0x23, 0xac, 0xa0, 0x6f, 0x0a, 0x90,
	0x72, 0x7d, 0x52, 0x0d, 0xbd, 0x1c, 0xf9, 0x13, 0x7a, 0xb9, 0x95, 0x28, 0xa0, 0x9c, 0xb5, 0x35,
	0xca, 0xda, 0xcb, 0xe2, 0x8b, 0x61, 0xac, 0xd1, 0xcf, 0xb6, 0xbd, 0xc3, 0xee, 0x78, 0x13, 0xbe,
	0x7e, 0x45, 0x80, 0xd9, 0xbe, 0x2f, 0x77, 0xa1, 0xb5, 0x28, 0x07, 0x32, 0xdc, 0x12, 0x7c, 0x25,
	0x3a, 0x02, 0xe7, 0xf4, 0x0d, 0xca, 0xe9, 0x9a, 0xb8, 0x32, 0x4c, 0x88, 0xce, 0x0c, 0xc8, 0xe2,
	0x57, 0x8a, 0xcc, 0xaf, 0x34, 0x2a, 0xbf, 0xd2, 0xd9, 0xf9, 0xd5, 0x3d, 0xfc, 0xfe, 0x84, 0x00,
	0x69, 0xcf, 0xb7, 0x3f, 0xd0, 0x8d, 0xd0, 0x4f, 0xf2, 0xf6, 0x7f, 0x76, 0x24, 0x77, 0x33, 0x1a,
	0x30, 0xe7, 0x71, 0x81, 0xf2, 0x38, 0x83, 0xd2, 0x84, 0x47, 0xe7, 0x54, 0xfe, 0xf7, 0x04, 0x58,
	0x08, 0xdc, 0x94, 0x45, 0xaf, 0x85, 0x5e, 0x68, 0x08, 0xdf, 0xc2, 0xcd, 0x45, 0xdc, 0x75, 0x13,
	0x9b, 0x94, 0x1b, 0x45, 0xbc, 0xe5, 0x96, 0x98, 0xa6, 0x37, 0x95, 0x8e, 0xfa, 0x09, 0x3b, 0x75,
	0x48, 0x0d, 0xd2, 0xb7, 0x35, 0xf7, 0x8e, 0xb0, 0xf2, 0xe8, 0x96, 0x78, 0x3d, 0xd4, 0x7e, 0xfb,
	0xc1, 0x69, 0xfb, 0x02, 0xf7, 0x71, 0x43, 0xdb, 0x37, 0x68, 0xd7, 0x77, 0xd4, 0xf6, 0xad, 0xb3,
	0xf6, 0x91, 0xb1, 0xd4, 0xdf, 0xba, 0x3e, 0x6e, 0xd7, 0x56, 0x7e, 0x9c, 0xb6, 0x6f, 0xfd, 0xba,
	0x83, 0xe3, 0xb4, 0x2e, 0x04, 0x1c, 0x7d, 0x57, 0x00, 0xd4, 0xbf, 0xc7, 0x8b, 0xc2, 0x6c, 0x38,
	0x74, 0x3b, 0x38, 0x72, 0xcb, 0x14, 0xda, 0xb2, 0x1f, 0x41, 0xa3, 0xb5, 0xec, 0xd1, 0x0a, 0x8a,
	0xdc, 0x2c, 0xf4, 0x7d, 0xc1, 0xfa, 0xd0, 0x8e, 0x6f, 0x67, 0x76, 0x7d, 0xa0, 0xc5, 0x07, 0x6e,
	0x59, 0xe7, 0x5e, 0x1b, 0x09, 0x87, 0x77, 0x16, 0x6f, 0x23, 0xa3, 0x9a, 0xa7, 0xdd, 0xc8, 0x08,
	0xb6, 0x89, 0x7e, 0x4f, 0x80, 0x85, 0xc0, 0xed, 0xe3, 0x50, 0xc3, 0x1c, 0xb4, 0xd9, 0x9c, 0x0b,
	0x79, 0x44, 0xde, 0x6a, 0xc9, 0xca, 0xa8, 0xea, 0x5a, 0x89, 0xae, 0xae, 0x3f, 0x15, 0x60, 0x39,
	0x6c, 0x11, 0x15, 0xbd, 0x39, 0xd0, 0x8b, 0x84, 0x2e, 0x3e, 0xe5, 0xa2, 0xaf, 0x83, 0x89, 0x6d,
	0xda, 0xc4, 0xa6, 0xf8, 0xca, 0x40, 0x65, 0x05, 0x2c, 0x96, 0x91, 0xee, 0xf6, 0x8a, 0x78, 0x23,
	0x4c, 0x65, 0xc1, 0x18, 0xb4, 0xb9, 0x61, 0x4b, 0xaf, 0xa1, 0xcd, 0x1d, 0xb2, 0x56, 0x7b, 0x8a,
	0xe6, 0xae, 0xbf, 0x12, 0xae, 0xd1, 0x00, 0xce, 0xb9, 0x77, 0x79, 0x65, 0xfd, 0x46, 0xa0, 0x5e,
	0x43, 0x31, 0xd0, 0x7f, 0x17, 0x60, 0x21, 0x70, 0x65, 0x36, 0xd4, 0x4e, 0x07, 0xad, 0xe3, 0x8e,
	0xd2, 0x50, 0xee, 0x43, 0xd1, 0xc8, 0x0d, 0x7d, 0x74, 0x0b, 0x8d, 0xd2, 0x4a, 0xf4, 0xbf, 0xf9,
	0x46, 0x73, 0xc0, 0xaa, 0x2d, 0x7a, 0x63, 0x80, 0xfb, 0x08, 0x5f, 0x77, 0xce, 0xbd, 0x39, 0x2a,
	0x1a, 0x77, 0x3c, 0xde, 0x36, 0x8f, 0x60, 0xcb, 0x76, 0x9b, 0xa3, 0x19, 0x32, 0xfa, 0x4c, 0x80,
	0xe5, 0xb0, 0x05, 0xe0, 0x50, 0x2b, 0x1e, 0xb2, 0x62, 0x1c, 0xea, 0x84, 0x78, 0xab, 0x56, 0x4e,
	0xa1, 0xc9, 0x95, 0x91, 0x34, 0xf9, 0x4d, 0x01, 0xb2, 0xfe, 0xe3, 0x35, 0x68, 0x75, 0xa0, 0x0b,
	0xea, 0xdb, 0xd2, 0xcf, 0x0d, 0x3f, 0x45, 0x20, 0xae, 0xd2, 0x06, 0x5d, 0x17, 0xaf, 0x84, 0x89,
	0xdc, 0x75, 0xca, 0x80, 0x47, 0xf8, 0x59, 0xff, 0x71, 0x99, 0x50, 0xbe, 0x42, 0xce, 0xd5, 0x8c,
	0xc0, 0xd7, 0xfa, 0x95, 0x40, 0xa1, 0xb9, 0x98, 0xe2, 0x9d, 0xfb, 0xa7, 0x05, 0x48, 0x7b, 0x8e,
	0xc5, 0x84, 0x46, 0xa0, 0x41, 0x87, 0x67, 0xa2, 0x70, 0x74, 0x83, 0x72, 0xf4, 0x12, 0x8a, 0xc2,
	0x11, 0xfa, 0x7b, 0x02, 0xcc, 0xf8, 0x4e, 0x7c, 0xa0, 0x5b, 0x03, 0x7a, 0x52, 0xff, 0xd9, 0x95,
	0xdc, 0x6a, 0x54, 0x70, 0xde, 0xe1, 0xbc, 0xfc, 0x0d, 0xd6, 0x24, 0xfa, 0x49, 0xfa, 0x52, 0x99,
	0xf7, 0x20, 0x48, 0xa8, 0x1a, 0x43, 0x4e, 0x8c, 0x84, 0x76, 0x12, 0xce, 0xc9, 0x4a, 0x24, 0x49,
	0x7d, 0x5b, 0x00, 0xd4, 0x7f, 0x62, 0x2b, 0x34, 0xec, 0x0b, 0x3d, 0xdc, 0x95, 0x1b, 0xbc, 0x49,
	0x2b, 0x7e, 0x99, 0x32, 0xf5, 0xaa, 0x78, 0x33, 0x8a, 0x41, 0x29, 0xbc, 0x16, 0x62, 0x59, 0x7f,
	0x4d, 0x80, 0x69, 0xf7, 0x19, 0x2a, 0xb4, 0x32, 0x38, 0x10, 0x70, 0x6f, 0xd5, 0x0e, 0x63, 0x6a,
	0x85, 0x32, 0xf5, 0xa2, 0x78, 0x29, 0xd4, 0xe1, 0xb1, 0x7d, 0x69, 0xc2, 0xc7, 0xa7, 0x02, 0xa4,
	0x5c, 0x5b, 0xd5, 0xa1, 0x73, 0xeb, 0xfe, 0x2d, 0xfa, 0xd0, 0xb9, 0x75, 0xc0, 0xce, 0xb7, 0x78,
	0x8d, 0xb2, 0xf4, 0x02, 0x1a, 0xc6, 0x12, 0xfa, 0x31, 0x98, 0xb2, 0x8f, 0x0d, 0xa0, 0x6b, 0x03,
	0x46, 0xd0, 0x51, 0x04, 0xe2, 0xad, 0xbd, 0xcf, 0x57, 0xb2, 0xaa, 0x89, 0xd9, 0xfc, 0x28, 0x4c,
	0xbb, 0xb7, 0xc6, 0x43, 0x95, 0x12, 0xb0, 0x7f, 0x1e, 0x6a, 0xb7, 0xbc, 0xf2, 0x95, 0xa1, 0x95,
	0x53, 0x93, 0x70, 0xed, 0xe1, 0x87, 0x9b, 0x44, 0xff, 0x46, 0x7f, 0x68, 0xed, 0xaf, 0xd2, 0xda,
	0x6f, 0x88, 0x57, 0x87, 0xd4, 0xfe, 0x4e, 0x9d, 0x12, 0x25, 0x26, 0xf1, 0x5f, 0x04, 0x98, 0x0f,
	0x5a, 0xc2, 0x0f, 0x9d, 0x5e, 0x0c, 0x58, 0xef, 0xcf, 0x45, 0x5b, 0xb4, 0x15, 0x31, 0x65, 0x53,
	0xe6, 0xfd, 0x28, 0x6c, 0x5c, 0xf7, 0xad, 0xec, 0x92, 0x80, 0x6d, 0xc0, 0x4a, 0x52, 0x3f, 0x34,
	0x6d, 0x5a, 0xd0, 0x8a, 0x7f, 0x68, 0xd3, 0x06, 0x6c, 0x0f, 0x8c, 0xd8, 0xb4, 0xf5, 0x9b, 0xe1,
	0x83, 0xbb, 0x8f, 0x53, 0x1e, 0x8b, 0xde, 0x5c, 0xbf, 0x16, 0xa8, 0xb4, 0x40, 0x68, 0xf4, 0x07,
	0x02, 0xcc, 0xf6, 0xed, 0x0b, 0x84, 0x2e, 0xee, 0x84, 0xed, 0x20, 0x44, 0x6d, 0x94, 0x4c, 0x1b,
	0xf5, 0x10, 0x8d, 0xd4, 0xa8, 0x47, 0x2f, 0xa3, 0xa8, 0x2d, 0x42, 0xdf, 0x13, 0xd8, 0x11, 0x1a,
	0xdf, 0x3e, 0x01, 0x7a, 0x75, 0x80, 0xd3, 0x09, 0xde, 0xe1, 0xc8, 0xad, 0x8f, 0x82, 0xc2, 0xfd,
	0x95, 0xb7, 0x7d, 0x11, 0xed, 0xd1, 0x6e, 0xdf, 0x70, 0x63, 0x44, 0xbf, 0x23, 0xc0, 0x7c, 0xd0,
	0x6e, 0x43, 0xa8, 0x25, 0x0e, 0xd8, 0x9a, 0x08, 0xed, 0xfc, 0xbc, 0x15, 0x2b, 0x23, 0x6a, 0x69,
	0x25, 0xaa, 0x96, 0x72, 0x0b, 0xbf, 0x9f, 0x47, 0x84, 0x3f, 0x56, 0xbd, 0xd2, 0x55, 0x8d, 0xd5,
	0xba, 0xd6, 0xde, 0xf8, 0x54, 0x80, 0x73, 0x75, 0xad, 0x1d, 0xdc, 0x92, 0x8d, 0x64, 0xb1, 0xd5,
	0xdd, 0x25, 0x8c, 0xee, 0x0a, 0x8f, 0xde, 0xe2, 0x20, 0x4d, 0xad, 0xa5, 0x74, 0x9a, 0xab, 0x9a,
	0xde, 0x5c, 0x6b, 0xe2, 0x0e, 0x6d, 0xc6, 0x9a, 0x43, 0x74, 0x8d, 0x53, 0x20, 0xfe, 0x6a, 0xed,
	0xe9, 0xfa, 0xbb, 0x8d, 0x56, 0xf7, 0x97, 0x63, 0x73, 0x77, 0x18, 0x2a, 0x3d, 0xd0, 0x40, 0x3c,
	0xfd, 0xea, 0xfd, 0xf5, 0xdf, 0xb7, 0x72, 0x3f, 0xa2, 0xb9, 0x1f, 0x15, 0x5b, 0xdd, 0x8f, 0xee,
	0xaf, 0xef, 0x4f, 0x50, 0x82, 0xaf, 0xfd, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc8, 0x8d,
	0x3d, 0x35, 0x97, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// DlpServiceClient is the client API for DlpService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type DlpServiceClient interface {
	// Finds potentially sensitive info in content.
	// This method has limits on input size, processing time, and output size.
	//
	// When no InfoTypes or CustomInfoTypes are specified in this request, the
	// system will automatically choose what detectors to run. By default this may
	// be all types, but may change over time as detectors are updated.
	//
	// For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images
	// and https://cloud.google.com/dlp/docs/inspecting-text,
	InspectContent(ctx context.Context, in *InspectContentRequest, opts ...grpc.CallOption) (*InspectContentResponse, error)
	// Redacts potentially sensitive info from an image.
	// This method has limits on input size, processing time, and output size.
	// See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to
	// learn more.
	//
	// When no InfoTypes or CustomInfoTypes are specified in this request, the
	// system will automatically choose what detectors to run. By default this may
	// be all types, but may change over time as detectors are updated.
	RedactImage(ctx context.Context, in *RedactImageRequest, opts ...grpc.CallOption) (*RedactImageResponse, error)
	// De-identifies potentially sensitive info from a ContentItem.
	// This method has limits on input size and output size.
	// See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to
	// learn more.
	//
	// When no InfoTypes or CustomInfoTypes are specified in this request, the
	// system will automatically choose what detectors to run. By default this may
	// be all types, but may change over time as detectors are updated.
	DeidentifyContent(ctx context.Context, in *DeidentifyContentRequest, opts ...grpc.CallOption) (*DeidentifyContentResponse, error)
	// Re-identifies content that has been de-identified.
	// See
	// https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example
	// to learn more.
	ReidentifyContent(ctx context.Context, in *ReidentifyContentRequest, opts ...grpc.CallOption) (*ReidentifyContentResponse, error)
	// Returns a list of the sensitive information types that the DLP API
	// supports. See https://cloud.google.com/dlp/docs/infotypes-reference to
	// learn more.
	ListInfoTypes(ctx context.Context, in *ListInfoTypesRequest, opts ...grpc.CallOption) (*ListInfoTypesResponse, error)
	// Creates an InspectTemplate for re-using frequently used configuration
	// for inspecting content, images, and storage.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	CreateInspectTemplate(ctx context.Context, in *CreateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error)
	// Updates the InspectTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	UpdateInspectTemplate(ctx context.Context, in *UpdateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error)
	// Gets an InspectTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	GetInspectTemplate(ctx context.Context, in *GetInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error)
	// Lists InspectTemplates.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	ListInspectTemplates(ctx context.Context, in *ListInspectTemplatesRequest, opts ...grpc.CallOption) (*ListInspectTemplatesResponse, error)
	// Deletes an InspectTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	DeleteInspectTemplate(ctx context.Context, in *DeleteInspectTemplateRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	// Creates a DeidentifyTemplate for re-using frequently used configuration
	// for de-identifying content, images, and storage.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	CreateDeidentifyTemplate(ctx context.Context, in *CreateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error)
	// Updates the DeidentifyTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	UpdateDeidentifyTemplate(ctx context.Context, in *UpdateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error)
	// Gets a DeidentifyTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	GetDeidentifyTemplate(ctx context.Context, in *GetDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error)
	// Lists DeidentifyTemplates.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	ListDeidentifyTemplates(ctx context.Context, in *ListDeidentifyTemplatesRequest, opts ...grpc.CallOption) (*ListDeidentifyTemplatesResponse, error)
	// Deletes a DeidentifyTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	DeleteDeidentifyTemplate(ctx context.Context, in *DeleteDeidentifyTemplateRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	// Creates a job trigger to run DLP actions such as scanning storage for
	// sensitive information on a set schedule.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	CreateJobTrigger(ctx context.Context, in *CreateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error)
	// Updates a job trigger.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	UpdateJobTrigger(ctx context.Context, in *UpdateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error)
	// Gets a job trigger.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	GetJobTrigger(ctx context.Context, in *GetJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error)
	// Lists job triggers.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	ListJobTriggers(ctx context.Context, in *ListJobTriggersRequest, opts ...grpc.CallOption) (*ListJobTriggersResponse, error)
	// Deletes a job trigger.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	DeleteJobTrigger(ctx context.Context, in *DeleteJobTriggerRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	// Activate a job trigger. Causes the immediate execute of a trigger
	// instead of waiting on the trigger event to occur.
	ActivateJobTrigger(ctx context.Context, in *ActivateJobTriggerRequest, opts ...grpc.CallOption) (*DlpJob, error)
	// Creates a new job to inspect storage or calculate risk metrics.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	//
	// When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the
	// system will automatically choose what detectors to run. By default this may
	// be all types, but may change over time as detectors are updated.
	CreateDlpJob(ctx context.Context, in *CreateDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error)
	// Lists DlpJobs that match the specified filter in the request.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	ListDlpJobs(ctx context.Context, in *ListDlpJobsRequest, opts ...grpc.CallOption) (*ListDlpJobsResponse, error)
	// Gets the latest state of a long-running DlpJob.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	GetDlpJob(ctx context.Context, in *GetDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error)
	// Deletes a long-running DlpJob. This method indicates that the client is
	// no longer interested in the DlpJob result. The job will be cancelled if
	// possible.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	DeleteDlpJob(ctx context.Context, in *DeleteDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	// Starts asynchronous cancellation on a long-running DlpJob. The server
	// makes a best effort to cancel the DlpJob, but success is not
	// guaranteed.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	CancelDlpJob(ctx context.Context, in *CancelDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error)
	// Creates a pre-built stored infoType to be used for inspection.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	CreateStoredInfoType(ctx context.Context, in *CreateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error)
	// Updates the stored infoType by creating a new version. The existing version
	// will continue to be used until the new version is ready.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	UpdateStoredInfoType(ctx context.Context, in *UpdateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error)
	// Gets a stored infoType.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	GetStoredInfoType(ctx context.Context, in *GetStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error)
	// Lists stored infoTypes.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	ListStoredInfoTypes(ctx context.Context, in *ListStoredInfoTypesRequest, opts ...grpc.CallOption) (*ListStoredInfoTypesResponse, error)
	// Deletes a stored infoType.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	DeleteStoredInfoType(ctx context.Context, in *DeleteStoredInfoTypeRequest, opts ...grpc.CallOption) (*empty.Empty, error)
}

type dlpServiceClient struct {
	cc *grpc.ClientConn
}

func NewDlpServiceClient(cc *grpc.ClientConn) DlpServiceClient {
	return &dlpServiceClient{cc}
}

func (c *dlpServiceClient) InspectContent(ctx context.Context, in *InspectContentRequest, opts ...grpc.CallOption) (*InspectContentResponse, error) {
	out := new(InspectContentResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/InspectContent", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) RedactImage(ctx context.Context, in *RedactImageRequest, opts ...grpc.CallOption) (*RedactImageResponse, error) {
	out := new(RedactImageResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/RedactImage", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) DeidentifyContent(ctx context.Context, in *DeidentifyContentRequest, opts ...grpc.CallOption) (*DeidentifyContentResponse, error) {
	out := new(DeidentifyContentResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeidentifyContent", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ReidentifyContent(ctx context.Context, in *ReidentifyContentRequest, opts ...grpc.CallOption) (*ReidentifyContentResponse, error) {
	out := new(ReidentifyContentResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ReidentifyContent", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ListInfoTypes(ctx context.Context, in *ListInfoTypesRequest, opts ...grpc.CallOption) (*ListInfoTypesResponse, error) {
	out := new(ListInfoTypesResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListInfoTypes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) CreateInspectTemplate(ctx context.Context, in *CreateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) {
	out := new(InspectTemplate)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateInspectTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) UpdateInspectTemplate(ctx context.Context, in *UpdateInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) {
	out := new(InspectTemplate)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateInspectTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) GetInspectTemplate(ctx context.Context, in *GetInspectTemplateRequest, opts ...grpc.CallOption) (*InspectTemplate, error) {
	out := new(InspectTemplate)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetInspectTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ListInspectTemplates(ctx context.Context, in *ListInspectTemplatesRequest, opts ...grpc.CallOption) (*ListInspectTemplatesResponse, error) {
	out := new(ListInspectTemplatesResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListInspectTemplates", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) DeleteInspectTemplate(ctx context.Context, in *DeleteInspectTemplateRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteInspectTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) CreateDeidentifyTemplate(ctx context.Context, in *CreateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) {
	out := new(DeidentifyTemplate)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateDeidentifyTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) UpdateDeidentifyTemplate(ctx context.Context, in *UpdateDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) {
	out := new(DeidentifyTemplate)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateDeidentifyTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) GetDeidentifyTemplate(ctx context.Context, in *GetDeidentifyTemplateRequest, opts ...grpc.CallOption) (*DeidentifyTemplate, error) {
	out := new(DeidentifyTemplate)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetDeidentifyTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ListDeidentifyTemplates(ctx context.Context, in *ListDeidentifyTemplatesRequest, opts ...grpc.CallOption) (*ListDeidentifyTemplatesResponse, error) {
	out := new(ListDeidentifyTemplatesResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListDeidentifyTemplates", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) DeleteDeidentifyTemplate(ctx context.Context, in *DeleteDeidentifyTemplateRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteDeidentifyTemplate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) CreateJobTrigger(ctx context.Context, in *CreateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) {
	out := new(JobTrigger)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateJobTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) UpdateJobTrigger(ctx context.Context, in *UpdateJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) {
	out := new(JobTrigger)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateJobTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) GetJobTrigger(ctx context.Context, in *GetJobTriggerRequest, opts ...grpc.CallOption) (*JobTrigger, error) {
	out := new(JobTrigger)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetJobTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ListJobTriggers(ctx context.Context, in *ListJobTriggersRequest, opts ...grpc.CallOption) (*ListJobTriggersResponse, error) {
	out := new(ListJobTriggersResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListJobTriggers", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) DeleteJobTrigger(ctx context.Context, in *DeleteJobTriggerRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteJobTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ActivateJobTrigger(ctx context.Context, in *ActivateJobTriggerRequest, opts ...grpc.CallOption) (*DlpJob, error) {
	out := new(DlpJob)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ActivateJobTrigger", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) CreateDlpJob(ctx context.Context, in *CreateDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) {
	out := new(DlpJob)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateDlpJob", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ListDlpJobs(ctx context.Context, in *ListDlpJobsRequest, opts ...grpc.CallOption) (*ListDlpJobsResponse, error) {
	out := new(ListDlpJobsResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListDlpJobs", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) GetDlpJob(ctx context.Context, in *GetDlpJobRequest, opts ...grpc.CallOption) (*DlpJob, error) {
	out := new(DlpJob)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetDlpJob", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) DeleteDlpJob(ctx context.Context, in *DeleteDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteDlpJob", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) CancelDlpJob(ctx context.Context, in *CancelDlpJobRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CancelDlpJob", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) CreateStoredInfoType(ctx context.Context, in *CreateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) {
	out := new(StoredInfoType)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/CreateStoredInfoType", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) UpdateStoredInfoType(ctx context.Context, in *UpdateStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) {
	out := new(StoredInfoType)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/UpdateStoredInfoType", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) GetStoredInfoType(ctx context.Context, in *GetStoredInfoTypeRequest, opts ...grpc.CallOption) (*StoredInfoType, error) {
	out := new(StoredInfoType)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/GetStoredInfoType", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) ListStoredInfoTypes(ctx context.Context, in *ListStoredInfoTypesRequest, opts ...grpc.CallOption) (*ListStoredInfoTypesResponse, error) {
	out := new(ListStoredInfoTypesResponse)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/ListStoredInfoTypes", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *dlpServiceClient) DeleteStoredInfoType(ctx context.Context, in *DeleteStoredInfoTypeRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
	out := new(empty.Empty)
	err := c.cc.Invoke(ctx, "/google.privacy.dlp.v2.DlpService/DeleteStoredInfoType", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// DlpServiceServer is the server API for DlpService service.
type DlpServiceServer interface {
	// Finds potentially sensitive info in content.
	// This method has limits on input size, processing time, and output size.
	//
	// When no InfoTypes or CustomInfoTypes are specified in this request, the
	// system will automatically choose what detectors to run. By default this may
	// be all types, but may change over time as detectors are updated.
	//
	// For how to guides, see https://cloud.google.com/dlp/docs/inspecting-images
	// and https://cloud.google.com/dlp/docs/inspecting-text,
	InspectContent(context.Context, *InspectContentRequest) (*InspectContentResponse, error)
	// Redacts potentially sensitive info from an image.
	// This method has limits on input size, processing time, and output size.
	// See https://cloud.google.com/dlp/docs/redacting-sensitive-data-images to
	// learn more.
	//
	// When no InfoTypes or CustomInfoTypes are specified in this request, the
	// system will automatically choose what detectors to run. By default this may
	// be all types, but may change over time as detectors are updated.
	RedactImage(context.Context, *RedactImageRequest) (*RedactImageResponse, error)
	// De-identifies potentially sensitive info from a ContentItem.
	// This method has limits on input size and output size.
	// See https://cloud.google.com/dlp/docs/deidentify-sensitive-data to
	// learn more.
	//
	// When no InfoTypes or CustomInfoTypes are specified in this request, the
	// system will automatically choose what detectors to run. By default this may
	// be all types, but may change over time as detectors are updated.
	DeidentifyContent(context.Context, *DeidentifyContentRequest) (*DeidentifyContentResponse, error)
	// Re-identifies content that has been de-identified.
	// See
	// https://cloud.google.com/dlp/docs/pseudonymization#re-identification_in_free_text_code_example
	// to learn more.
	ReidentifyContent(context.Context, *ReidentifyContentRequest) (*ReidentifyContentResponse, error)
	// Returns a list of the sensitive information types that the DLP API
	// supports. See https://cloud.google.com/dlp/docs/infotypes-reference to
	// learn more.
	ListInfoTypes(context.Context, *ListInfoTypesRequest) (*ListInfoTypesResponse, error)
	// Creates an InspectTemplate for re-using frequently used configuration
	// for inspecting content, images, and storage.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	CreateInspectTemplate(context.Context, *CreateInspectTemplateRequest) (*InspectTemplate, error)
	// Updates the InspectTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	UpdateInspectTemplate(context.Context, *UpdateInspectTemplateRequest) (*InspectTemplate, error)
	// Gets an InspectTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	GetInspectTemplate(context.Context, *GetInspectTemplateRequest) (*InspectTemplate, error)
	// Lists InspectTemplates.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	ListInspectTemplates(context.Context, *ListInspectTemplatesRequest) (*ListInspectTemplatesResponse, error)
	// Deletes an InspectTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates to learn more.
	DeleteInspectTemplate(context.Context, *DeleteInspectTemplateRequest) (*empty.Empty, error)
	// Creates a DeidentifyTemplate for re-using frequently used configuration
	// for de-identifying content, images, and storage.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	CreateDeidentifyTemplate(context.Context, *CreateDeidentifyTemplateRequest) (*DeidentifyTemplate, error)
	// Updates the DeidentifyTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	UpdateDeidentifyTemplate(context.Context, *UpdateDeidentifyTemplateRequest) (*DeidentifyTemplate, error)
	// Gets a DeidentifyTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	GetDeidentifyTemplate(context.Context, *GetDeidentifyTemplateRequest) (*DeidentifyTemplate, error)
	// Lists DeidentifyTemplates.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	ListDeidentifyTemplates(context.Context, *ListDeidentifyTemplatesRequest) (*ListDeidentifyTemplatesResponse, error)
	// Deletes a DeidentifyTemplate.
	// See https://cloud.google.com/dlp/docs/creating-templates-deid to learn
	// more.
	DeleteDeidentifyTemplate(context.Context, *DeleteDeidentifyTemplateRequest) (*empty.Empty, error)
	// Creates a job trigger to run DLP actions such as scanning storage for
	// sensitive information on a set schedule.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	CreateJobTrigger(context.Context, *CreateJobTriggerRequest) (*JobTrigger, error)
	// Updates a job trigger.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	UpdateJobTrigger(context.Context, *UpdateJobTriggerRequest) (*JobTrigger, error)
	// Gets a job trigger.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	GetJobTrigger(context.Context, *GetJobTriggerRequest) (*JobTrigger, error)
	// Lists job triggers.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	ListJobTriggers(context.Context, *ListJobTriggersRequest) (*ListJobTriggersResponse, error)
	// Deletes a job trigger.
	// See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more.
	DeleteJobTrigger(context.Context, *DeleteJobTriggerRequest) (*empty.Empty, error)
	// Activate a job trigger. Causes the immediate execute of a trigger
	// instead of waiting on the trigger event to occur.
	ActivateJobTrigger(context.Context, *ActivateJobTriggerRequest) (*DlpJob, error)
	// Creates a new job to inspect storage or calculate risk metrics.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	//
	// When no InfoTypes or CustomInfoTypes are specified in inspect jobs, the
	// system will automatically choose what detectors to run. By default this may
	// be all types, but may change over time as detectors are updated.
	CreateDlpJob(context.Context, *CreateDlpJobRequest) (*DlpJob, error)
	// Lists DlpJobs that match the specified filter in the request.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	ListDlpJobs(context.Context, *ListDlpJobsRequest) (*ListDlpJobsResponse, error)
	// Gets the latest state of a long-running DlpJob.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	GetDlpJob(context.Context, *GetDlpJobRequest) (*DlpJob, error)
	// Deletes a long-running DlpJob. This method indicates that the client is
	// no longer interested in the DlpJob result. The job will be cancelled if
	// possible.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	DeleteDlpJob(context.Context, *DeleteDlpJobRequest) (*empty.Empty, error)
	// Starts asynchronous cancellation on a long-running DlpJob. The server
	// makes a best effort to cancel the DlpJob, but success is not
	// guaranteed.
	// See https://cloud.google.com/dlp/docs/inspecting-storage and
	// https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.
	CancelDlpJob(context.Context, *CancelDlpJobRequest) (*empty.Empty, error)
	// Creates a pre-built stored infoType to be used for inspection.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	CreateStoredInfoType(context.Context, *CreateStoredInfoTypeRequest) (*StoredInfoType, error)
	// Updates the stored infoType by creating a new version. The existing version
	// will continue to be used until the new version is ready.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	UpdateStoredInfoType(context.Context, *UpdateStoredInfoTypeRequest) (*StoredInfoType, error)
	// Gets a stored infoType.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	GetStoredInfoType(context.Context, *GetStoredInfoTypeRequest) (*StoredInfoType, error)
	// Lists stored infoTypes.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	ListStoredInfoTypes(context.Context, *ListStoredInfoTypesRequest) (*ListStoredInfoTypesResponse, error)
	// Deletes a stored infoType.
	// See https://cloud.google.com/dlp/docs/creating-stored-infotypes to
	// learn more.
	DeleteStoredInfoType(context.Context, *DeleteStoredInfoTypeRequest) (*empty.Empty, error)
}

func RegisterDlpServiceServer(s *grpc.Server, srv DlpServiceServer) {
	s.RegisterService(&_DlpService_serviceDesc, srv)
}

func _DlpService_InspectContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(InspectContentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).InspectContent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/InspectContent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).InspectContent(ctx, req.(*InspectContentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_RedactImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RedactImageRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).RedactImage(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/RedactImage",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).RedactImage(ctx, req.(*RedactImageRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_DeidentifyContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeidentifyContentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).DeidentifyContent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/DeidentifyContent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).DeidentifyContent(ctx, req.(*DeidentifyContentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ReidentifyContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReidentifyContentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ReidentifyContent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/ReidentifyContent",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ReidentifyContent(ctx, req.(*ReidentifyContentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ListInfoTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListInfoTypesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ListInfoTypes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/ListInfoTypes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ListInfoTypes(ctx, req.(*ListInfoTypesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_CreateInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateInspectTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).CreateInspectTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/CreateInspectTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).CreateInspectTemplate(ctx, req.(*CreateInspectTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_UpdateInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateInspectTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).UpdateInspectTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateInspectTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).UpdateInspectTemplate(ctx, req.(*UpdateInspectTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_GetInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetInspectTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).GetInspectTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/GetInspectTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).GetInspectTemplate(ctx, req.(*GetInspectTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ListInspectTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListInspectTemplatesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ListInspectTemplates(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/ListInspectTemplates",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ListInspectTemplates(ctx, req.(*ListInspectTemplatesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_DeleteInspectTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteInspectTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).DeleteInspectTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteInspectTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).DeleteInspectTemplate(ctx, req.(*DeleteInspectTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_CreateDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateDeidentifyTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).CreateDeidentifyTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/CreateDeidentifyTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).CreateDeidentifyTemplate(ctx, req.(*CreateDeidentifyTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_UpdateDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateDeidentifyTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).UpdateDeidentifyTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateDeidentifyTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).UpdateDeidentifyTemplate(ctx, req.(*UpdateDeidentifyTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_GetDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDeidentifyTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).GetDeidentifyTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/GetDeidentifyTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).GetDeidentifyTemplate(ctx, req.(*GetDeidentifyTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ListDeidentifyTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListDeidentifyTemplatesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ListDeidentifyTemplates(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/ListDeidentifyTemplates",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ListDeidentifyTemplates(ctx, req.(*ListDeidentifyTemplatesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_DeleteDeidentifyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteDeidentifyTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).DeleteDeidentifyTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteDeidentifyTemplate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).DeleteDeidentifyTemplate(ctx, req.(*DeleteDeidentifyTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_CreateJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateJobTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).CreateJobTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/CreateJobTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).CreateJobTrigger(ctx, req.(*CreateJobTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_UpdateJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateJobTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).UpdateJobTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateJobTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).UpdateJobTrigger(ctx, req.(*UpdateJobTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_GetJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetJobTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).GetJobTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/GetJobTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).GetJobTrigger(ctx, req.(*GetJobTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ListJobTriggers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListJobTriggersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ListJobTriggers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/ListJobTriggers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ListJobTriggers(ctx, req.(*ListJobTriggersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_DeleteJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteJobTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).DeleteJobTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteJobTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).DeleteJobTrigger(ctx, req.(*DeleteJobTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ActivateJobTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ActivateJobTriggerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ActivateJobTrigger(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/ActivateJobTrigger",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ActivateJobTrigger(ctx, req.(*ActivateJobTriggerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_CreateDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateDlpJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).CreateDlpJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/CreateDlpJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).CreateDlpJob(ctx, req.(*CreateDlpJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ListDlpJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListDlpJobsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ListDlpJobs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/ListDlpJobs",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ListDlpJobs(ctx, req.(*ListDlpJobsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_GetDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetDlpJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).GetDlpJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/GetDlpJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).GetDlpJob(ctx, req.(*GetDlpJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_DeleteDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteDlpJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).DeleteDlpJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteDlpJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).DeleteDlpJob(ctx, req.(*DeleteDlpJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_CancelDlpJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelDlpJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).CancelDlpJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/CancelDlpJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).CancelDlpJob(ctx, req.(*CancelDlpJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_CreateStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateStoredInfoTypeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).CreateStoredInfoType(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/CreateStoredInfoType",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).CreateStoredInfoType(ctx, req.(*CreateStoredInfoTypeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_UpdateStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateStoredInfoTypeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).UpdateStoredInfoType(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/UpdateStoredInfoType",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).UpdateStoredInfoType(ctx, req.(*UpdateStoredInfoTypeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_GetStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetStoredInfoTypeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).GetStoredInfoType(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/GetStoredInfoType",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).GetStoredInfoType(ctx, req.(*GetStoredInfoTypeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_ListStoredInfoTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListStoredInfoTypesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).ListStoredInfoTypes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/ListStoredInfoTypes",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).ListStoredInfoTypes(ctx, req.(*ListStoredInfoTypesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _DlpService_DeleteStoredInfoType_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteStoredInfoTypeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(DlpServiceServer).DeleteStoredInfoType(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.privacy.dlp.v2.DlpService/DeleteStoredInfoType",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(DlpServiceServer).DeleteStoredInfoType(ctx, req.(*DeleteStoredInfoTypeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _DlpService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.privacy.dlp.v2.DlpService",
	HandlerType: (*DlpServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "InspectContent",
			Handler:    _DlpService_InspectContent_Handler,
		},
		{
			MethodName: "RedactImage",
			Handler:    _DlpService_RedactImage_Handler,
		},
		{
			MethodName: "DeidentifyContent",
			Handler:    _DlpService_DeidentifyContent_Handler,
		},
		{
			MethodName: "ReidentifyContent",
			Handler:    _DlpService_ReidentifyContent_Handler,
		},
		{
			MethodName: "ListInfoTypes",
			Handler:    _DlpService_ListInfoTypes_Handler,
		},
		{
			MethodName: "CreateInspectTemplate",
			Handler:    _DlpService_CreateInspectTemplate_Handler,
		},
		{
			MethodName: "UpdateInspectTemplate",
			Handler:    _DlpService_UpdateInspectTemplate_Handler,
		},
		{
			MethodName: "GetInspectTemplate",
			Handler:    _DlpService_GetInspectTemplate_Handler,
		},
		{
			MethodName: "ListInspectTemplates",
			Handler:    _DlpService_ListInspectTemplates_Handler,
		},
		{
			MethodName: "DeleteInspectTemplate",
			Handler:    _DlpService_DeleteInspectTemplate_Handler,
		},
		{
			MethodName: "CreateDeidentifyTemplate",
			Handler:    _DlpService_CreateDeidentifyTemplate_Handler,
		},
		{
			MethodName: "UpdateDeidentifyTemplate",
			Handler:    _DlpService_UpdateDeidentifyTemplate_Handler,
		},
		{
			MethodName: "GetDeidentifyTemplate",
			Handler:    _DlpService_GetDeidentifyTemplate_Handler,
		},
		{
			MethodName: "ListDeidentifyTemplates",
			Handler:    _DlpService_ListDeidentifyTemplates_Handler,
		},
		{
			MethodName: "DeleteDeidentifyTemplate",
			Handler:    _DlpService_DeleteDeidentifyTemplate_Handler,
		},
		{
			MethodName: "CreateJobTrigger",
			Handler:    _DlpService_CreateJobTrigger_Handler,
		},
		{
			MethodName: "UpdateJobTrigger",
			Handler:    _DlpService_UpdateJobTrigger_Handler,
		},
		{
			MethodName: "GetJobTrigger",
			Handler:    _DlpService_GetJobTrigger_Handler,
		},
		{
			MethodName: "ListJobTriggers",
			Handler:    _DlpService_ListJobTriggers_Handler,
		},
		{
			MethodName: "DeleteJobTrigger",
			Handler:    _DlpService_DeleteJobTrigger_Handler,
		},
		{
			MethodName: "ActivateJobTrigger",
			Handler:    _DlpService_ActivateJobTrigger_Handler,
		},
		{
			MethodName: "CreateDlpJob",
			Handler:    _DlpService_CreateDlpJob_Handler,
		},
		{
			MethodName: "ListDlpJobs",
			Handler:    _DlpService_ListDlpJobs_Handler,
		},
		{
			MethodName: "GetDlpJob",
			Handler:    _DlpService_GetDlpJob_Handler,
		},
		{
			MethodName: "DeleteDlpJob",
			Handler:    _DlpService_DeleteDlpJob_Handler,
		},
		{
			MethodName: "CancelDlpJob",
			Handler:    _DlpService_CancelDlpJob_Handler,
		},
		{
			MethodName: "CreateStoredInfoType",
			Handler:    _DlpService_CreateStoredInfoType_Handler,
		},
		{
			MethodName: "UpdateStoredInfoType",
			Handler:    _DlpService_UpdateStoredInfoType_Handler,
		},
		{
			MethodName: "GetStoredInfoType",
			Handler:    _DlpService_GetStoredInfoType_Handler,
		},
		{
			MethodName: "ListStoredInfoTypes",
			Handler:    _DlpService_ListStoredInfoTypes_Handler,
		},
		{
			MethodName: "DeleteStoredInfoType",
			Handler:    _DlpService_DeleteStoredInfoType_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/privacy/dlp/v2/dlp.proto",
}
