1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.talent.v4beta1; 18 19import "google/api/field_behavior.proto"; 20import "google/api/resource.proto"; 21 22option go_package = "cloud.google.com/go/talent/apiv4beta1/talentpb;talentpb"; 23option java_multiple_files = true; 24option java_outer_classname = "TenantResourceProto"; 25option java_package = "com.google.cloud.talent.v4beta1"; 26option objc_class_prefix = "CTS"; 27 28// A Tenant resource represents a tenant in the service. A tenant is a group or 29// entity that shares common access with specific privileges for resources like 30// profiles. Customer may create multiple tenants to provide data isolation for 31// different groups. 32message Tenant { 33 option (google.api.resource) = { 34 type: "jobs.googleapis.com/Tenant" 35 pattern: "projects/{project}/tenants/{tenant}" 36 }; 37 38 // Enum that represents how user data owned by the tenant is used. 39 enum DataUsageType { 40 // Default value. 41 DATA_USAGE_TYPE_UNSPECIFIED = 0; 42 43 // Data owned by this tenant is used to improve search/recommendation 44 // quality across tenants. 45 AGGREGATED = 1; 46 47 // Data owned by this tenant is used to improve search/recommendation 48 // quality for this tenant only. 49 ISOLATED = 2; 50 } 51 52 // Required during tenant update. 53 // 54 // The resource name for a tenant. This is generated by the service when a 55 // tenant is created. 56 // 57 // The format is "projects/{project_id}/tenants/{tenant_id}", for example, 58 // "projects/foo/tenants/bar". 59 string name = 1; 60 61 // Required. Client side tenant identifier, used to uniquely identify the 62 // tenant. 63 // 64 // The maximum number of allowed characters is 255. 65 string external_id = 2 [(google.api.field_behavior) = REQUIRED]; 66 67 // Indicates whether data owned by this tenant may be used to provide product 68 // improvements across other tenants. 69 // 70 // Defaults behavior is 71 // [DataUsageType.ISOLATED][google.cloud.talent.v4beta1.Tenant.DataUsageType.ISOLATED] 72 // if it's unset. 73 DataUsageType usage_type = 3; 74 75 // A list of keys of filterable 76 // [Profile.custom_attributes][google.cloud.talent.v4beta1.Profile.custom_attributes], 77 // whose corresponding `string_values` are used in keyword searches. Profiles 78 // with `string_values` under these specified field keys are returned if any 79 // of the values match the search keyword. Custom field values with 80 // parenthesis, brackets and special symbols are not searchable as-is, 81 // and must be surrounded by quotes. 82 repeated string keyword_searchable_profile_custom_attributes = 4; 83} 84