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

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.2
// source: google/cloud/bigquery/datapolicies/v2/datapolicy.proto

package datapoliciespb

import (
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"

	iampb "cloud.google.com/go/iam/apiv1/iampb"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// A list of supported data policy types.
type DataPolicy_DataPolicyType int32

const (
	// Default value for the data policy type. This should not be used.
	DataPolicy_DATA_POLICY_TYPE_UNSPECIFIED DataPolicy_DataPolicyType = 0
	// Used to create a data policy for data masking.
	DataPolicy_DATA_MASKING_POLICY DataPolicy_DataPolicyType = 1
	// Used to create a data policy for raw data access.
	DataPolicy_RAW_DATA_ACCESS_POLICY DataPolicy_DataPolicyType = 2
	// Used to create a data policy for column-level security, without data
	// masking. This is deprecated in V2 api and only present to support GET and
	// LIST operations for V1 data policies in V2 api.
	DataPolicy_COLUMN_LEVEL_SECURITY_POLICY DataPolicy_DataPolicyType = 3
)

// Enum value maps for DataPolicy_DataPolicyType.
var (
	DataPolicy_DataPolicyType_name = map[int32]string{
		0: "DATA_POLICY_TYPE_UNSPECIFIED",
		1: "DATA_MASKING_POLICY",
		2: "RAW_DATA_ACCESS_POLICY",
		3: "COLUMN_LEVEL_SECURITY_POLICY",
	}
	DataPolicy_DataPolicyType_value = map[string]int32{
		"DATA_POLICY_TYPE_UNSPECIFIED": 0,
		"DATA_MASKING_POLICY":          1,
		"RAW_DATA_ACCESS_POLICY":       2,
		"COLUMN_LEVEL_SECURITY_POLICY": 3,
	}
)

func (x DataPolicy_DataPolicyType) Enum() *DataPolicy_DataPolicyType {
	p := new(DataPolicy_DataPolicyType)
	*p = x
	return p
}

func (x DataPolicy_DataPolicyType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DataPolicy_DataPolicyType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_enumTypes[0].Descriptor()
}

func (DataPolicy_DataPolicyType) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_enumTypes[0]
}

func (x DataPolicy_DataPolicyType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use DataPolicy_DataPolicyType.Descriptor instead.
func (DataPolicy_DataPolicyType) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{8, 0}
}

// The supported versions for the Data Policy resource.
type DataPolicy_Version int32

const (
	// Default value for the data policy version. This should not be used.
	DataPolicy_VERSION_UNSPECIFIED DataPolicy_Version = 0
	// V1 data policy version. V1 Data Policies will be present in V2 List api
	// response, but can not be created/updated/deleted from V2 api.
	DataPolicy_V1 DataPolicy_Version = 1
	// V2 data policy version.
	DataPolicy_V2 DataPolicy_Version = 2
)

// Enum value maps for DataPolicy_Version.
var (
	DataPolicy_Version_name = map[int32]string{
		0: "VERSION_UNSPECIFIED",
		1: "V1",
		2: "V2",
	}
	DataPolicy_Version_value = map[string]int32{
		"VERSION_UNSPECIFIED": 0,
		"V1":                  1,
		"V2":                  2,
	}
)

func (x DataPolicy_Version) Enum() *DataPolicy_Version {
	p := new(DataPolicy_Version)
	*p = x
	return p
}

func (x DataPolicy_Version) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DataPolicy_Version) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_enumTypes[1].Descriptor()
}

func (DataPolicy_Version) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_enumTypes[1]
}

func (x DataPolicy_Version) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use DataPolicy_Version.Descriptor instead.
func (DataPolicy_Version) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{8, 1}
}

// The available masking rules. Learn more here:
// https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options.
type DataMaskingPolicy_PredefinedExpression int32

const (
	// Default, unspecified predefined expression. No masking will take place
	// since no expression is specified.
	DataMaskingPolicy_PREDEFINED_EXPRESSION_UNSPECIFIED DataMaskingPolicy_PredefinedExpression = 0
	// Masking expression to replace data with SHA-256 hash.
	DataMaskingPolicy_SHA256 DataMaskingPolicy_PredefinedExpression = 1
	// Masking expression to replace data with NULLs.
	DataMaskingPolicy_ALWAYS_NULL DataMaskingPolicy_PredefinedExpression = 2
	// Masking expression to replace data with their default masking values.
	// The default masking values for each type listed as below:
	//
	// * STRING: ""
	// * BYTES: b”
	// * INTEGER: 0
	// * FLOAT: 0.0
	// * NUMERIC: 0
	// * BOOLEAN: FALSE
	// * TIMESTAMP: 1970-01-01 00:00:00 UTC
	// * DATE: 1970-01-01
	// * TIME: 00:00:00
	// * DATETIME: 1970-01-01T00:00:00
	// * GEOGRAPHY: POINT(0 0)
	// * BIGNUMERIC: 0
	// * ARRAY: []
	// * STRUCT: NOT_APPLICABLE
	// * JSON: NULL
	DataMaskingPolicy_DEFAULT_MASKING_VALUE DataMaskingPolicy_PredefinedExpression = 3
	// Masking expression shows the last four characters of text.
	// The masking behavior is as follows:
	//
	// * If text length > 4 characters: Replace text with XXXXX, append last
	// four characters of original text.
	// * If text length <= 4 characters: Apply SHA-256 hash.
	DataMaskingPolicy_LAST_FOUR_CHARACTERS DataMaskingPolicy_PredefinedExpression = 4
	// Masking expression shows the first four characters of text.
	// The masking behavior is as follows:
	//
	// * If text length > 4 characters: Replace text with XXXXX, prepend first
	// four characters of original text.
	// * If text length <= 4 characters: Apply SHA-256 hash.
	DataMaskingPolicy_FIRST_FOUR_CHARACTERS DataMaskingPolicy_PredefinedExpression = 5
	// Masking expression for email addresses.
	// The masking behavior is as follows:
	//
	// * Syntax-valid email address: Replace username with XXXXX. For example,
	// cloudysanfrancisco@gmail.com becomes XXXXX@gmail.com.
	// * Syntax-invalid email address: Apply SHA-256 hash.
	//
	// For more information, see [Email
	// mask](https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options).
	DataMaskingPolicy_EMAIL_MASK DataMaskingPolicy_PredefinedExpression = 6
	// Masking expression to only show the <i>year</i> of `Date`,
	// `DateTime` and `TimeStamp`. For example, with the
	// year 2076:
	//
	// * DATE         :  2076-01-01
	// * DATETIME     :  2076-01-01T00:00:00
	// * TIMESTAMP    :  2076-01-01 00:00:00 UTC
	//
	// Truncation occurs according to the UTC time zone. To change this, adjust
	// the default time zone using the `time_zone` system variable.
	// For more information, see [System variables
	// reference](https://cloud.google.com/bigquery/docs/reference/system-variables).
	DataMaskingPolicy_DATE_YEAR_MASK DataMaskingPolicy_PredefinedExpression = 7
	// Masking expression that uses hashing to mask column data.
	// It differs from SHA256 in that a unique random value is generated for
	// each query and is added to the hash input, resulting in the hash / masked
	// result to be different for each query. Hence the name "random hash".
	DataMaskingPolicy_RANDOM_HASH DataMaskingPolicy_PredefinedExpression = 8
)

// Enum value maps for DataMaskingPolicy_PredefinedExpression.
var (
	DataMaskingPolicy_PredefinedExpression_name = map[int32]string{
		0: "PREDEFINED_EXPRESSION_UNSPECIFIED",
		1: "SHA256",
		2: "ALWAYS_NULL",
		3: "DEFAULT_MASKING_VALUE",
		4: "LAST_FOUR_CHARACTERS",
		5: "FIRST_FOUR_CHARACTERS",
		6: "EMAIL_MASK",
		7: "DATE_YEAR_MASK",
		8: "RANDOM_HASH",
	}
	DataMaskingPolicy_PredefinedExpression_value = map[string]int32{
		"PREDEFINED_EXPRESSION_UNSPECIFIED": 0,
		"SHA256":                            1,
		"ALWAYS_NULL":                       2,
		"DEFAULT_MASKING_VALUE":             3,
		"LAST_FOUR_CHARACTERS":              4,
		"FIRST_FOUR_CHARACTERS":             5,
		"EMAIL_MASK":                        6,
		"DATE_YEAR_MASK":                    7,
		"RANDOM_HASH":                       8,
	}
)

func (x DataMaskingPolicy_PredefinedExpression) Enum() *DataMaskingPolicy_PredefinedExpression {
	p := new(DataMaskingPolicy_PredefinedExpression)
	*p = x
	return p
}

func (x DataMaskingPolicy_PredefinedExpression) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DataMaskingPolicy_PredefinedExpression) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_enumTypes[2].Descriptor()
}

func (DataMaskingPolicy_PredefinedExpression) Type() protoreflect.EnumType {
	return &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_enumTypes[2]
}

func (x DataMaskingPolicy_PredefinedExpression) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use DataMaskingPolicy_PredefinedExpression.Descriptor instead.
func (DataMaskingPolicy_PredefinedExpression) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{9, 0}
}

// Request message for the CreateDataPolicy method.
type CreateDataPolicyRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Resource name of the project that the data policy will belong to.
	// The format is `projects/{project_number}/locations/{location_id}`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Required. User-assigned (human readable) ID of the data policy that needs
	// to be unique within a project. Used as {data_policy_id} in part of the
	// resource name.
	DataPolicyId string `protobuf:"bytes,2,opt,name=data_policy_id,json=dataPolicyId,proto3" json:"data_policy_id,omitempty"`
	// Required. The data policy to create. The `name` field does not need to be
	// provided for the data policy creation.
	DataPolicy    *DataPolicy `protobuf:"bytes,3,opt,name=data_policy,json=dataPolicy,proto3" json:"data_policy,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CreateDataPolicyRequest) Reset() {
	*x = CreateDataPolicyRequest{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateDataPolicyRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateDataPolicyRequest) ProtoMessage() {}

func (x *CreateDataPolicyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateDataPolicyRequest.ProtoReflect.Descriptor instead.
func (*CreateDataPolicyRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{0}
}

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

func (x *CreateDataPolicyRequest) GetDataPolicyId() string {
	if x != nil {
		return x.DataPolicyId
	}
	return ""
}

func (x *CreateDataPolicyRequest) GetDataPolicy() *DataPolicy {
	if x != nil {
		return x.DataPolicy
	}
	return nil
}

// Request message for the UpdateDataPolicy method.
type UpdateDataPolicyRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Update the data policy's metadata.
	//
	// The target data policy is determined by the `name` field.
	// Other fields are updated to the specified values based on the field masks.
	DataPolicy *DataPolicy `protobuf:"bytes,1,opt,name=data_policy,json=dataPolicy,proto3" json:"data_policy,omitempty"`
	// Optional. The update mask applies to the resource. For the `FieldMask`
	// definition, see
	// https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask
	// If not set, defaults to all of the fields that are allowed to update.
	//
	// Updates to the `name` and `dataPolicyId` fields are not allowed.
	UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
	// Optional. If set to true, and the data policy is not found, a new data
	// policy will be created. In this situation, update_mask is ignored.
	AllowMissing  bool `protobuf:"varint,3,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UpdateDataPolicyRequest) Reset() {
	*x = UpdateDataPolicyRequest{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UpdateDataPolicyRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateDataPolicyRequest) ProtoMessage() {}

func (x *UpdateDataPolicyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UpdateDataPolicyRequest.ProtoReflect.Descriptor instead.
func (*UpdateDataPolicyRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{1}
}

func (x *UpdateDataPolicyRequest) GetDataPolicy() *DataPolicy {
	if x != nil {
		return x.DataPolicy
	}
	return nil
}

func (x *UpdateDataPolicyRequest) GetUpdateMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.UpdateMask
	}
	return nil
}

func (x *UpdateDataPolicyRequest) GetAllowMissing() bool {
	if x != nil {
		return x.AllowMissing
	}
	return false
}

// Request message for the AddGrantees method.
type AddGranteesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Resource name of this data policy, in the format of
	// `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.
	DataPolicy string `protobuf:"bytes,1,opt,name=data_policy,json=dataPolicy,proto3" json:"data_policy,omitempty"`
	// Required. IAM principal that should be granted Fine Grained Access to the
	// underlying data goverened by the data policy. The target data policy is
	// determined by the `data_policy` field.
	//
	// Uses the [IAM V2 principal
	// syntax](https://cloud.google.com/iam/docs/principal-identifiers#v2).
	// Supported principal types:
	//
	// * User
	// * Group
	// * Service account
	Grantees      []string `protobuf:"bytes,2,rep,name=grantees,proto3" json:"grantees,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AddGranteesRequest) Reset() {
	*x = AddGranteesRequest{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AddGranteesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AddGranteesRequest) ProtoMessage() {}

func (x *AddGranteesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AddGranteesRequest.ProtoReflect.Descriptor instead.
func (*AddGranteesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{2}
}

func (x *AddGranteesRequest) GetDataPolicy() string {
	if x != nil {
		return x.DataPolicy
	}
	return ""
}

func (x *AddGranteesRequest) GetGrantees() []string {
	if x != nil {
		return x.Grantees
	}
	return nil
}

// Request message for the RemoveGrantees method.
type RemoveGranteesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Resource name of this data policy, in the format of
	// `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.
	DataPolicy string `protobuf:"bytes,1,opt,name=data_policy,json=dataPolicy,proto3" json:"data_policy,omitempty"`
	// Required. IAM principal that should be revoked from Fine Grained Access to
	// the underlying data goverened by the data policy. The target data policy is
	// determined by the `data_policy` field.
	//
	// Uses the [IAM V2 principal
	// syntax](https://cloud.google.com/iam/docs/principal-identifiers#v2).
	// Supported principal types:
	//
	// * User
	// * Group
	// * Service account
	Grantees      []string `protobuf:"bytes,2,rep,name=grantees,proto3" json:"grantees,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RemoveGranteesRequest) Reset() {
	*x = RemoveGranteesRequest{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RemoveGranteesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RemoveGranteesRequest) ProtoMessage() {}

func (x *RemoveGranteesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RemoveGranteesRequest.ProtoReflect.Descriptor instead.
func (*RemoveGranteesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{3}
}

func (x *RemoveGranteesRequest) GetDataPolicy() string {
	if x != nil {
		return x.DataPolicy
	}
	return ""
}

func (x *RemoveGranteesRequest) GetGrantees() []string {
	if x != nil {
		return x.Grantees
	}
	return nil
}

// Request message for the DeleteDataPolicy method.
type DeleteDataPolicyRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Resource name of the data policy to delete. Format is
	// `projects/{project_number}/locations/{location_id}/dataPolicies/{id}`.
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteDataPolicyRequest) Reset() {
	*x = DeleteDataPolicyRequest{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteDataPolicyRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteDataPolicyRequest) ProtoMessage() {}

func (x *DeleteDataPolicyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteDataPolicyRequest.ProtoReflect.Descriptor instead.
func (*DeleteDataPolicyRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{4}
}

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

// Request message for the GetDataPolicy method.
type GetDataPolicyRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Resource name of the requested data policy. Format is
	// `projects/{project_number}/locations/{location_id}/dataPolicies/{id}`.
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetDataPolicyRequest) Reset() {
	*x = GetDataPolicyRequest{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetDataPolicyRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetDataPolicyRequest) ProtoMessage() {}

func (x *GetDataPolicyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetDataPolicyRequest.ProtoReflect.Descriptor instead.
func (*GetDataPolicyRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{5}
}

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

// Request message for the ListDataPolicies method.
type ListDataPoliciesRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Resource name of the project for which to list data policies.
	// Format is `projects/{project_number}/locations/{location_id}`.
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// Optional. The maximum number of data policies to return. Must be a value
	// between 1 and 1000. If not set, defaults to 50.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// Optional. The `nextPageToken` value returned from a previous list request,
	// if any. If not set, defaults to an empty string.
	PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	// Optional. Filters the data policies by policy tags that they
	// are associated with. Currently filter only supports
	// "policy_tag" based filtering and OR based predicates. Sample
	// filter can be "policy_tag:
	// projects/1/locations/us/taxonomies/2/policyTags/3".
	// You may also use wildcard such as "policy_tag:
	// projects/1/locations/us/taxonomies/2*". Please note that OR predicates
	// cannot be used with wildcard filters.
	Filter        string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListDataPoliciesRequest) Reset() {
	*x = ListDataPoliciesRequest{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListDataPoliciesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListDataPoliciesRequest) ProtoMessage() {}

func (x *ListDataPoliciesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListDataPoliciesRequest.ProtoReflect.Descriptor instead.
func (*ListDataPoliciesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{6}
}

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

func (x *ListDataPoliciesRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListDataPoliciesRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

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

// Response message for the ListDataPolicies method.
type ListDataPoliciesResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Data policies that belong to the requested project.
	DataPolicies []*DataPolicy `protobuf:"bytes,1,rep,name=data_policies,json=dataPolicies,proto3" json:"data_policies,omitempty"`
	// Token used to retrieve the next page of results, or empty if there are no
	// more results.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListDataPoliciesResponse) Reset() {
	*x = ListDataPoliciesResponse{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListDataPoliciesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListDataPoliciesResponse) ProtoMessage() {}

func (x *ListDataPoliciesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListDataPoliciesResponse.ProtoReflect.Descriptor instead.
func (*ListDataPoliciesResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{7}
}

func (x *ListDataPoliciesResponse) GetDataPolicies() []*DataPolicy {
	if x != nil {
		return x.DataPolicies
	}
	return nil
}

func (x *ListDataPoliciesResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

// Represents the label-policy binding.
type DataPolicy struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The policy that is bound to this data policy.
	//
	// Types that are valid to be assigned to Policy:
	//
	//	*DataPolicy_DataMaskingPolicy
	Policy isDataPolicy_Policy `protobuf_oneof:"policy"`
	// Identifier. Resource name of this data policy, in the format of
	// `projects/{project_number}/locations/{location_id}/dataPolicies/{data_policy_id}`.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Output only. User-assigned (human readable) ID of the data policy that
	// needs to be unique within a project. Used as {data_policy_id} in part of
	// the resource name.
	DataPolicyId string `protobuf:"bytes,2,opt,name=data_policy_id,json=dataPolicyId,proto3" json:"data_policy_id,omitempty"`
	// The etag for this Data Policy.
	// This field is used for UpdateDataPolicy calls. If Data Policy exists, this
	// field is required and must match the server's etag. It will also be
	// populated in the response of GetDataPolicy, CreateDataPolicy, and
	// UpdateDataPolicy calls.
	Etag *string `protobuf:"bytes,11,opt,name=etag,proto3,oneof" json:"etag,omitempty"`
	// Required. Type of data policy.
	DataPolicyType DataPolicy_DataPolicyType `protobuf:"varint,3,opt,name=data_policy_type,json=dataPolicyType,proto3,enum=google.cloud.bigquery.datapolicies.v2.DataPolicy_DataPolicyType" json:"data_policy_type,omitempty"`
	// Output only. Policy tag resource name, in the format of
	// `projects/{project_number}/locations/{location_id}/taxonomies/{taxonomy_id}/policyTags/{policyTag_id}`.
	// policy_tag is supported only for V1 data policies.
	PolicyTag string `protobuf:"bytes,4,opt,name=policy_tag,json=policyTag,proto3" json:"policy_tag,omitempty"`
	// Optional. The list of IAM principals that have Fine Grained Access to the
	// underlying data goverened by this data policy.
	//
	// Uses the [IAM V2 principal
	// syntax](https://cloud.google.com/iam/docs/principal-identifiers#v2) Only
	// supports principal types users, groups, serviceaccounts, cloudidentity.
	// This field is supported in V2 Data Policy only. In case of V1 data policies
	// (i.e. verion = 1 and policy_tag is set), this field is not populated.
	Grantees []string `protobuf:"bytes,8,rep,name=grantees,proto3" json:"grantees,omitempty"`
	// Output only. The version of the Data Policy resource.
	Version       DataPolicy_Version `protobuf:"varint,9,opt,name=version,proto3,enum=google.cloud.bigquery.datapolicies.v2.DataPolicy_Version" json:"version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DataPolicy) Reset() {
	*x = DataPolicy{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DataPolicy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DataPolicy) ProtoMessage() {}

func (x *DataPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DataPolicy.ProtoReflect.Descriptor instead.
func (*DataPolicy) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{8}
}

func (x *DataPolicy) GetPolicy() isDataPolicy_Policy {
	if x != nil {
		return x.Policy
	}
	return nil
}

func (x *DataPolicy) GetDataMaskingPolicy() *DataMaskingPolicy {
	if x != nil {
		if x, ok := x.Policy.(*DataPolicy_DataMaskingPolicy); ok {
			return x.DataMaskingPolicy
		}
	}
	return nil
}

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

func (x *DataPolicy) GetDataPolicyId() string {
	if x != nil {
		return x.DataPolicyId
	}
	return ""
}

func (x *DataPolicy) GetEtag() string {
	if x != nil && x.Etag != nil {
		return *x.Etag
	}
	return ""
}

func (x *DataPolicy) GetDataPolicyType() DataPolicy_DataPolicyType {
	if x != nil {
		return x.DataPolicyType
	}
	return DataPolicy_DATA_POLICY_TYPE_UNSPECIFIED
}

func (x *DataPolicy) GetPolicyTag() string {
	if x != nil {
		return x.PolicyTag
	}
	return ""
}

func (x *DataPolicy) GetGrantees() []string {
	if x != nil {
		return x.Grantees
	}
	return nil
}

func (x *DataPolicy) GetVersion() DataPolicy_Version {
	if x != nil {
		return x.Version
	}
	return DataPolicy_VERSION_UNSPECIFIED
}

type isDataPolicy_Policy interface {
	isDataPolicy_Policy()
}

type DataPolicy_DataMaskingPolicy struct {
	// Optional. The data masking policy that specifies the data masking rule to
	// use. It must be set if the data policy type is DATA_MASKING_POLICY.
	DataMaskingPolicy *DataMaskingPolicy `protobuf:"bytes,7,opt,name=data_masking_policy,json=dataMaskingPolicy,proto3,oneof"`
}

func (*DataPolicy_DataMaskingPolicy) isDataPolicy_Policy() {}

// The policy used to specify data masking rule.
type DataMaskingPolicy struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A masking expression to bind to the data masking rule.
	//
	// Types that are valid to be assigned to MaskingExpression:
	//
	//	*DataMaskingPolicy_PredefinedExpression_
	//	*DataMaskingPolicy_Routine
	MaskingExpression isDataMaskingPolicy_MaskingExpression `protobuf_oneof:"masking_expression"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *DataMaskingPolicy) Reset() {
	*x = DataMaskingPolicy{}
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DataMaskingPolicy) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DataMaskingPolicy) ProtoMessage() {}

func (x *DataMaskingPolicy) ProtoReflect() protoreflect.Message {
	mi := &file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DataMaskingPolicy.ProtoReflect.Descriptor instead.
func (*DataMaskingPolicy) Descriptor() ([]byte, []int) {
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP(), []int{9}
}

func (x *DataMaskingPolicy) GetMaskingExpression() isDataMaskingPolicy_MaskingExpression {
	if x != nil {
		return x.MaskingExpression
	}
	return nil
}

func (x *DataMaskingPolicy) GetPredefinedExpression() DataMaskingPolicy_PredefinedExpression {
	if x != nil {
		if x, ok := x.MaskingExpression.(*DataMaskingPolicy_PredefinedExpression_); ok {
			return x.PredefinedExpression
		}
	}
	return DataMaskingPolicy_PREDEFINED_EXPRESSION_UNSPECIFIED
}

func (x *DataMaskingPolicy) GetRoutine() string {
	if x != nil {
		if x, ok := x.MaskingExpression.(*DataMaskingPolicy_Routine); ok {
			return x.Routine
		}
	}
	return ""
}

type isDataMaskingPolicy_MaskingExpression interface {
	isDataMaskingPolicy_MaskingExpression()
}

type DataMaskingPolicy_PredefinedExpression_ struct {
	// Optional. A predefined masking expression.
	PredefinedExpression DataMaskingPolicy_PredefinedExpression `protobuf:"varint,1,opt,name=predefined_expression,json=predefinedExpression,proto3,enum=google.cloud.bigquery.datapolicies.v2.DataMaskingPolicy_PredefinedExpression,oneof"`
}

type DataMaskingPolicy_Routine struct {
	// Optional. The name of the BigQuery routine that contains the custom
	// masking routine, in the format of
	// `projects/{project_number}/datasets/{dataset_id}/routines/{routine_id}`.
	Routine string `protobuf:"bytes,2,opt,name=routine,proto3,oneof"`
}

func (*DataMaskingPolicy_PredefinedExpression_) isDataMaskingPolicy_MaskingExpression() {}

func (*DataMaskingPolicy_Routine) isDataMaskingPolicy_MaskingExpression() {}

var File_google_cloud_bigquery_datapolicies_v2_datapolicy_proto protoreflect.FileDescriptor

const file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDesc = "" +
	"\n" +
	"6google/cloud/bigquery/datapolicies/v2/datapolicy.proto\x12%google.cloud.bigquery.datapolicies.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/iam/v1/iam_policy.proto\x1a\x1agoogle/iam/v1/policy.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\"\xeb\x01\n" +
	"\x17CreateDataPolicyRequest\x12L\n" +
	"\x06parent\x18\x01 \x01(\tB4\xe0A\x02\xfaA.\x12,bigquerydatapolicy.googleapis.com/DataPolicyR\x06parent\x12)\n" +
	"\x0edata_policy_id\x18\x02 \x01(\tB\x03\xe0A\x02R\fdataPolicyId\x12W\n" +
	"\vdata_policy\x18\x03 \x01(\v21.google.cloud.bigquery.datapolicies.v2.DataPolicyB\x03\xe0A\x02R\n" +
	"dataPolicy\"\xde\x01\n" +
	"\x17UpdateDataPolicyRequest\x12W\n" +
	"\vdata_policy\x18\x01 \x01(\v21.google.cloud.bigquery.datapolicies.v2.DataPolicyB\x03\xe0A\x02R\n" +
	"dataPolicy\x12@\n" +
	"\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskB\x03\xe0A\x01R\n" +
	"updateMask\x12(\n" +
	"\rallow_missing\x18\x03 \x01(\bB\x03\xe0A\x01R\fallowMissing\"\x8c\x01\n" +
	"\x12AddGranteesRequest\x12U\n" +
	"\vdata_policy\x18\x01 \x01(\tB4\xe0A\x02\xfaA.\n" +
	",bigquerydatapolicy.googleapis.com/DataPolicyR\n" +
	"dataPolicy\x12\x1f\n" +
	"\bgrantees\x18\x02 \x03(\tB\x03\xe0A\x02R\bgrantees\"\x8f\x01\n" +
	"\x15RemoveGranteesRequest\x12U\n" +
	"\vdata_policy\x18\x01 \x01(\tB4\xe0A\x02\xfaA.\n" +
	",bigquerydatapolicy.googleapis.com/DataPolicyR\n" +
	"dataPolicy\x12\x1f\n" +
	"\bgrantees\x18\x02 \x03(\tB\x03\xe0A\x02R\bgrantees\"c\n" +
	"\x17DeleteDataPolicyRequest\x12H\n" +
	"\x04name\x18\x01 \x01(\tB4\xe0A\x02\xfaA.\n" +
	",bigquerydatapolicy.googleapis.com/DataPolicyR\x04name\"`\n" +
	"\x14GetDataPolicyRequest\x12H\n" +
	"\x04name\x18\x01 \x01(\tB4\xe0A\x02\xfaA.\n" +
	",bigquerydatapolicy.googleapis.com/DataPolicyR\x04name\"\xca\x01\n" +
	"\x17ListDataPoliciesRequest\x12L\n" +
	"\x06parent\x18\x01 \x01(\tB4\xe0A\x02\xfaA.\x12,bigquerydatapolicy.googleapis.com/DataPolicyR\x06parent\x12 \n" +
	"\tpage_size\x18\x02 \x01(\x05B\x03\xe0A\x01R\bpageSize\x12\"\n" +
	"\n" +
	"page_token\x18\x03 \x01(\tB\x03\xe0A\x01R\tpageToken\x12\x1b\n" +
	"\x06filter\x18\x04 \x01(\tB\x03\xe0A\x01R\x06filter\"\x9a\x01\n" +
	"\x18ListDataPoliciesResponse\x12V\n" +
	"\rdata_policies\x18\x01 \x03(\v21.google.cloud.bigquery.datapolicies.v2.DataPolicyR\fdataPolicies\x12&\n" +
	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\xf9\x06\n" +
	"\n" +
	"DataPolicy\x12o\n" +
	"\x13data_masking_policy\x18\a \x01(\v28.google.cloud.bigquery.datapolicies.v2.DataMaskingPolicyB\x03\xe0A\x01H\x00R\x11dataMaskingPolicy\x12\x17\n" +
	"\x04name\x18\x01 \x01(\tB\x03\xe0A\bR\x04name\x12)\n" +
	"\x0edata_policy_id\x18\x02 \x01(\tB\x03\xe0A\x03R\fdataPolicyId\x12\x17\n" +
	"\x04etag\x18\v \x01(\tH\x01R\x04etag\x88\x01\x01\x12o\n" +
	"\x10data_policy_type\x18\x03 \x01(\x0e2@.google.cloud.bigquery.datapolicies.v2.DataPolicy.DataPolicyTypeB\x03\xe0A\x02R\x0edataPolicyType\x12K\n" +
	"\n" +
	"policy_tag\x18\x04 \x01(\tB,\xe0A\x03\xfaA&\n" +
	"$datacatalog.googleapis.com/PolicyTagR\tpolicyTag\x12\x1f\n" +
	"\bgrantees\x18\b \x03(\tB\x03\xe0A\x01R\bgrantees\x12X\n" +
	"\aversion\x18\t \x01(\x0e29.google.cloud.bigquery.datapolicies.v2.DataPolicy.VersionB\x03\xe0A\x03R\aversion\"\x89\x01\n" +
	"\x0eDataPolicyType\x12 \n" +
	"\x1cDATA_POLICY_TYPE_UNSPECIFIED\x10\x00\x12\x17\n" +
	"\x13DATA_MASKING_POLICY\x10\x01\x12\x1a\n" +
	"\x16RAW_DATA_ACCESS_POLICY\x10\x02\x12 \n" +
	"\x1cCOLUMN_LEVEL_SECURITY_POLICY\x10\x03\"2\n" +
	"\aVersion\x12\x17\n" +
	"\x13VERSION_UNSPECIFIED\x10\x00\x12\x06\n" +
	"\x02V1\x10\x01\x12\x06\n" +
	"\x02V2\x10\x02:\x90\x01\xeaA\x8c\x01\n" +
	",bigquerydatapolicy.googleapis.com/DataPolicy\x12Bprojects/{project}/locations/{location}/dataPolicies/{data_policy}*\fdataPolicies2\n" +
	"dataPolicyB\b\n" +
	"\x06policyB\a\n" +
	"\x05_etag\"\xdc\x03\n" +
	"\x11DataMaskingPolicy\x12\x89\x01\n" +
	"\x15predefined_expression\x18\x01 \x01(\x0e2M.google.cloud.bigquery.datapolicies.v2.DataMaskingPolicy.PredefinedExpressionB\x03\xe0A\x01H\x00R\x14predefinedExpression\x12C\n" +
	"\aroutine\x18\x02 \x01(\tB'\xe0A\x01\xfaA!\n" +
	"\x1fbigquery.googleapis.com/RoutineH\x00R\aroutine\"\xdf\x01\n" +
	"\x14PredefinedExpression\x12%\n" +
	"!PREDEFINED_EXPRESSION_UNSPECIFIED\x10\x00\x12\n" +
	"\n" +
	"\x06SHA256\x10\x01\x12\x0f\n" +
	"\vALWAYS_NULL\x10\x02\x12\x19\n" +
	"\x15DEFAULT_MASKING_VALUE\x10\x03\x12\x18\n" +
	"\x14LAST_FOUR_CHARACTERS\x10\x04\x12\x19\n" +
	"\x15FIRST_FOUR_CHARACTERS\x10\x05\x12\x0e\n" +
	"\n" +
	"EMAIL_MASK\x10\x06\x12\x12\n" +
	"\x0eDATE_YEAR_MASK\x10\a\x12\x0f\n" +
	"\vRANDOM_HASH\x10\bB\x14\n" +
	"\x12masking_expression2\x82\x11\n" +
	"\x11DataPolicyService\x12\xe6\x01\n" +
	"\x10CreateDataPolicy\x12>.google.cloud.bigquery.datapolicies.v2.CreateDataPolicyRequest\x1a1.google.cloud.bigquery.datapolicies.v2.DataPolicy\"_\xdaA!parent,data_policy,data_policy_id\x82\xd3\xe4\x93\x025:\x01*\"0/v2/{parent=projects/*/locations/*}/dataPolicies\x12\xe2\x01\n" +
	"\vAddGrantees\x129.google.cloud.bigquery.datapolicies.v2.AddGranteesRequest\x1a1.google.cloud.bigquery.datapolicies.v2.DataPolicy\"e\xdaA\x14data_policy,grantees\x82\xd3\xe4\x93\x02H:\x01*\"C/v2/{data_policy=projects/*/locations/*/dataPolicies/*}:addGrantees\x12\xeb\x01\n" +
	"\x0eRemoveGrantees\x12<.google.cloud.bigquery.datapolicies.v2.RemoveGranteesRequest\x1a1.google.cloud.bigquery.datapolicies.v2.DataPolicy\"h\xdaA\x14data_policy,grantees\x82\xd3\xe4\x93\x02K:\x01*\"F/v2/{data_policy=projects/*/locations/*/dataPolicies/*}:removeGrantees\x12\xf2\x01\n" +
	"\x10UpdateDataPolicy\x12>.google.cloud.bigquery.datapolicies.v2.UpdateDataPolicyRequest\x1a1.google.cloud.bigquery.datapolicies.v2.DataPolicy\"k\xdaA\x17data_policy,update_mask\x82\xd3\xe4\x93\x02K:\vdata_policy2</v2/{data_policy.name=projects/*/locations/*/dataPolicies/*}\x12\xab\x01\n" +
	"\x10DeleteDataPolicy\x12>.google.cloud.bigquery.datapolicies.v2.DeleteDataPolicyRequest\x1a\x16.google.protobuf.Empty\"?\xdaA\x04name\x82\xd3\xe4\x93\x022*0/v2/{name=projects/*/locations/*/dataPolicies/*}\x12\xc0\x01\n" +
	"\rGetDataPolicy\x12;.google.cloud.bigquery.datapolicies.v2.GetDataPolicyRequest\x1a1.google.cloud.bigquery.datapolicies.v2.DataPolicy\"?\xdaA\x04name\x82\xd3\xe4\x93\x022\x120/v2/{name=projects/*/locations/*/dataPolicies/*}\x12\xd6\x01\n" +
	"\x10ListDataPolicies\x12>.google.cloud.bigquery.datapolicies.v2.ListDataPoliciesRequest\x1a?.google.cloud.bigquery.datapolicies.v2.ListDataPoliciesResponse\"A\xdaA\x06parent\x82\xd3\xe4\x93\x022\x120/v2/{parent=projects/*/locations/*}/dataPolicies\x12\x97\x01\n" +
	"\fGetIamPolicy\x12\".google.iam.v1.GetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"L\x82\xd3\xe4\x93\x02F:\x01*\"A/v2/{resource=projects/*/locations/*/dataPolicies/*}:getIamPolicy\x12\x97\x01\n" +
	"\fSetIamPolicy\x12\".google.iam.v1.SetIamPolicyRequest\x1a\x15.google.iam.v1.Policy\"L\x82\xd3\xe4\x93\x02F:\x01*\"A/v2/{resource=projects/*/locations/*/dataPolicies/*}:setIamPolicy\x12\xbd\x01\n" +
	"\x12TestIamPermissions\x12(.google.iam.v1.TestIamPermissionsRequest\x1a).google.iam.v1.TestIamPermissionsResponse\"R\x82\xd3\xe4\x93\x02L:\x01*\"G/v2/{resource=projects/*/locations/*/dataPolicies/*}:testIamPermissions\x1a~\xcaA!bigquerydatapolicy.googleapis.com\xd2AWhttps://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/cloud-platformB\xe7\x03\xeaA}\n" +
	"$datacatalog.googleapis.com/PolicyTag\x12Uprojects/{project}/locations/{location}/taxonomies/{taxonomy}/policyTags/{policy_tag}\xeaA[\n" +
	"\x1fbigquery.googleapis.com/Routine\x128projects/{project}/datasets/{dataset}/routines/{routine}\n" +
	")com.google.cloud.bigquery.datapolicies.v2B\x0fDataPolicyProtoP\x01ZMcloud.google.com/go/bigquery/datapolicies/apiv2/datapoliciespb;datapoliciespb\xaa\x02%Google.Cloud.BigQuery.DataPolicies.V2\xca\x02%Google\\Cloud\\BigQuery\\DataPolicies\\V2\xea\x02)Google::Cloud::Bigquery::DataPolicies::V2b\x06proto3"

var (
	file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescOnce sync.Once
	file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescData []byte
)

func file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescGZIP() []byte {
	file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescOnce.Do(func() {
		file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDesc), len(file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDesc)))
	})
	return file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDescData
}

var file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_goTypes = []any{
	(DataPolicy_DataPolicyType)(0),              // 0: google.cloud.bigquery.datapolicies.v2.DataPolicy.DataPolicyType
	(DataPolicy_Version)(0),                     // 1: google.cloud.bigquery.datapolicies.v2.DataPolicy.Version
	(DataMaskingPolicy_PredefinedExpression)(0), // 2: google.cloud.bigquery.datapolicies.v2.DataMaskingPolicy.PredefinedExpression
	(*CreateDataPolicyRequest)(nil),             // 3: google.cloud.bigquery.datapolicies.v2.CreateDataPolicyRequest
	(*UpdateDataPolicyRequest)(nil),             // 4: google.cloud.bigquery.datapolicies.v2.UpdateDataPolicyRequest
	(*AddGranteesRequest)(nil),                  // 5: google.cloud.bigquery.datapolicies.v2.AddGranteesRequest
	(*RemoveGranteesRequest)(nil),               // 6: google.cloud.bigquery.datapolicies.v2.RemoveGranteesRequest
	(*DeleteDataPolicyRequest)(nil),             // 7: google.cloud.bigquery.datapolicies.v2.DeleteDataPolicyRequest
	(*GetDataPolicyRequest)(nil),                // 8: google.cloud.bigquery.datapolicies.v2.GetDataPolicyRequest
	(*ListDataPoliciesRequest)(nil),             // 9: google.cloud.bigquery.datapolicies.v2.ListDataPoliciesRequest
	(*ListDataPoliciesResponse)(nil),            // 10: google.cloud.bigquery.datapolicies.v2.ListDataPoliciesResponse
	(*DataPolicy)(nil),                          // 11: google.cloud.bigquery.datapolicies.v2.DataPolicy
	(*DataMaskingPolicy)(nil),                   // 12: google.cloud.bigquery.datapolicies.v2.DataMaskingPolicy
	(*fieldmaskpb.FieldMask)(nil),               // 13: google.protobuf.FieldMask
	(*iampb.GetIamPolicyRequest)(nil),           // 14: google.iam.v1.GetIamPolicyRequest
	(*iampb.SetIamPolicyRequest)(nil),           // 15: google.iam.v1.SetIamPolicyRequest
	(*iampb.TestIamPermissionsRequest)(nil),     // 16: google.iam.v1.TestIamPermissionsRequest
	(*emptypb.Empty)(nil),                       // 17: google.protobuf.Empty
	(*iampb.Policy)(nil),                        // 18: google.iam.v1.Policy
	(*iampb.TestIamPermissionsResponse)(nil),    // 19: google.iam.v1.TestIamPermissionsResponse
}
var file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_depIdxs = []int32{
	11, // 0: google.cloud.bigquery.datapolicies.v2.CreateDataPolicyRequest.data_policy:type_name -> google.cloud.bigquery.datapolicies.v2.DataPolicy
	11, // 1: google.cloud.bigquery.datapolicies.v2.UpdateDataPolicyRequest.data_policy:type_name -> google.cloud.bigquery.datapolicies.v2.DataPolicy
	13, // 2: google.cloud.bigquery.datapolicies.v2.UpdateDataPolicyRequest.update_mask:type_name -> google.protobuf.FieldMask
	11, // 3: google.cloud.bigquery.datapolicies.v2.ListDataPoliciesResponse.data_policies:type_name -> google.cloud.bigquery.datapolicies.v2.DataPolicy
	12, // 4: google.cloud.bigquery.datapolicies.v2.DataPolicy.data_masking_policy:type_name -> google.cloud.bigquery.datapolicies.v2.DataMaskingPolicy
	0,  // 5: google.cloud.bigquery.datapolicies.v2.DataPolicy.data_policy_type:type_name -> google.cloud.bigquery.datapolicies.v2.DataPolicy.DataPolicyType
	1,  // 6: google.cloud.bigquery.datapolicies.v2.DataPolicy.version:type_name -> google.cloud.bigquery.datapolicies.v2.DataPolicy.Version
	2,  // 7: google.cloud.bigquery.datapolicies.v2.DataMaskingPolicy.predefined_expression:type_name -> google.cloud.bigquery.datapolicies.v2.DataMaskingPolicy.PredefinedExpression
	3,  // 8: google.cloud.bigquery.datapolicies.v2.DataPolicyService.CreateDataPolicy:input_type -> google.cloud.bigquery.datapolicies.v2.CreateDataPolicyRequest
	5,  // 9: google.cloud.bigquery.datapolicies.v2.DataPolicyService.AddGrantees:input_type -> google.cloud.bigquery.datapolicies.v2.AddGranteesRequest
	6,  // 10: google.cloud.bigquery.datapolicies.v2.DataPolicyService.RemoveGrantees:input_type -> google.cloud.bigquery.datapolicies.v2.RemoveGranteesRequest
	4,  // 11: google.cloud.bigquery.datapolicies.v2.DataPolicyService.UpdateDataPolicy:input_type -> google.cloud.bigquery.datapolicies.v2.UpdateDataPolicyRequest
	7,  // 12: google.cloud.bigquery.datapolicies.v2.DataPolicyService.DeleteDataPolicy:input_type -> google.cloud.bigquery.datapolicies.v2.DeleteDataPolicyRequest
	8,  // 13: google.cloud.bigquery.datapolicies.v2.DataPolicyService.GetDataPolicy:input_type -> google.cloud.bigquery.datapolicies.v2.GetDataPolicyRequest
	9,  // 14: google.cloud.bigquery.datapolicies.v2.DataPolicyService.ListDataPolicies:input_type -> google.cloud.bigquery.datapolicies.v2.ListDataPoliciesRequest
	14, // 15: google.cloud.bigquery.datapolicies.v2.DataPolicyService.GetIamPolicy:input_type -> google.iam.v1.GetIamPolicyRequest
	15, // 16: google.cloud.bigquery.datapolicies.v2.DataPolicyService.SetIamPolicy:input_type -> google.iam.v1.SetIamPolicyRequest
	16, // 17: google.cloud.bigquery.datapolicies.v2.DataPolicyService.TestIamPermissions:input_type -> google.iam.v1.TestIamPermissionsRequest
	11, // 18: google.cloud.bigquery.datapolicies.v2.DataPolicyService.CreateDataPolicy:output_type -> google.cloud.bigquery.datapolicies.v2.DataPolicy
	11, // 19: google.cloud.bigquery.datapolicies.v2.DataPolicyService.AddGrantees:output_type -> google.cloud.bigquery.datapolicies.v2.DataPolicy
	11, // 20: google.cloud.bigquery.datapolicies.v2.DataPolicyService.RemoveGrantees:output_type -> google.cloud.bigquery.datapolicies.v2.DataPolicy
	11, // 21: google.cloud.bigquery.datapolicies.v2.DataPolicyService.UpdateDataPolicy:output_type -> google.cloud.bigquery.datapolicies.v2.DataPolicy
	17, // 22: google.cloud.bigquery.datapolicies.v2.DataPolicyService.DeleteDataPolicy:output_type -> google.protobuf.Empty
	11, // 23: google.cloud.bigquery.datapolicies.v2.DataPolicyService.GetDataPolicy:output_type -> google.cloud.bigquery.datapolicies.v2.DataPolicy
	10, // 24: google.cloud.bigquery.datapolicies.v2.DataPolicyService.ListDataPolicies:output_type -> google.cloud.bigquery.datapolicies.v2.ListDataPoliciesResponse
	18, // 25: google.cloud.bigquery.datapolicies.v2.DataPolicyService.GetIamPolicy:output_type -> google.iam.v1.Policy
	18, // 26: google.cloud.bigquery.datapolicies.v2.DataPolicyService.SetIamPolicy:output_type -> google.iam.v1.Policy
	19, // 27: google.cloud.bigquery.datapolicies.v2.DataPolicyService.TestIamPermissions:output_type -> google.iam.v1.TestIamPermissionsResponse
	18, // [18:28] is the sub-list for method output_type
	8,  // [8:18] is the sub-list for method input_type
	8,  // [8:8] is the sub-list for extension type_name
	8,  // [8:8] is the sub-list for extension extendee
	0,  // [0:8] is the sub-list for field type_name
}

func init() { file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_init() }
func file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_init() {
	if File_google_cloud_bigquery_datapolicies_v2_datapolicy_proto != nil {
		return
	}
	file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[8].OneofWrappers = []any{
		(*DataPolicy_DataMaskingPolicy)(nil),
	}
	file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes[9].OneofWrappers = []any{
		(*DataMaskingPolicy_PredefinedExpression_)(nil),
		(*DataMaskingPolicy_Routine)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDesc), len(file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   10,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_goTypes,
		DependencyIndexes: file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_depIdxs,
		EnumInfos:         file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_enumTypes,
		MessageInfos:      file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_msgTypes,
	}.Build()
	File_google_cloud_bigquery_datapolicies_v2_datapolicy_proto = out.File
	file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_goTypes = nil
	file_google_cloud_bigquery_datapolicies_v2_datapolicy_proto_depIdxs = nil
}
