1*d5c09012SAndroid Build Coastguard Worker// Copyright 2022 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.discoveryengine.v1alpha; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/discoveryengine/v1alpha/common.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/struct.proto"; 23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 24*d5c09012SAndroid Build Coastguard Worker 25*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha"; 26*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb"; 27*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 28*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "DocumentProto"; 29*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.discoveryengine.v1alpha"; 30*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "DISCOVERYENGINE"; 31*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha"; 32*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha"; 33*d5c09012SAndroid Build Coastguard Worker 34*d5c09012SAndroid Build Coastguard Worker// Document captures all raw metadata information of items to be recommended or 35*d5c09012SAndroid Build Coastguard Worker// searched. 36*d5c09012SAndroid Build Coastguard Workermessage Document { 37*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 38*d5c09012SAndroid Build Coastguard Worker type: "discoveryengine.googleapis.com/Document" 39*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}" 40*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}" 41*d5c09012SAndroid Build Coastguard Worker }; 42*d5c09012SAndroid Build Coastguard Worker 43*d5c09012SAndroid Build Coastguard Worker // Unstructured data linked to this document. 44*d5c09012SAndroid Build Coastguard Worker message Content { 45*d5c09012SAndroid Build Coastguard Worker oneof content { 46*d5c09012SAndroid Build Coastguard Worker // The content represented as a stream of bytes. The maximum length is 47*d5c09012SAndroid Build Coastguard Worker // 1,000,000 bytes (1 MB / ~0.95 MiB). 48*d5c09012SAndroid Build Coastguard Worker // 49*d5c09012SAndroid Build Coastguard Worker // Note: As with all `bytes` fields, this field is represented as pure 50*d5c09012SAndroid Build Coastguard Worker // binary in Protocol Buffers and base64-encoded string in JSON. For 51*d5c09012SAndroid Build Coastguard Worker // example, `abc123!?$*&()'-=@~` should be represented as 52*d5c09012SAndroid Build Coastguard Worker // `YWJjMTIzIT8kKiYoKSctPUB+` in JSON. See 53*d5c09012SAndroid Build Coastguard Worker // https://developers.google.com/protocol-buffers/docs/proto3#json. 54*d5c09012SAndroid Build Coastguard Worker bytes raw_bytes = 2; 55*d5c09012SAndroid Build Coastguard Worker 56*d5c09012SAndroid Build Coastguard Worker // The URI of the content. Only Cloud Storage URIs (e.g. 57*d5c09012SAndroid Build Coastguard Worker // `gs://bucket-name/path/to/file`) are supported. The maximum file size 58*d5c09012SAndroid Build Coastguard Worker // is 2.5 MB for text-based formats, 100 MB for other formats. 59*d5c09012SAndroid Build Coastguard Worker string uri = 3; 60*d5c09012SAndroid Build Coastguard Worker } 61*d5c09012SAndroid Build Coastguard Worker 62*d5c09012SAndroid Build Coastguard Worker // The MIME type of the content. Supported types: 63*d5c09012SAndroid Build Coastguard Worker // 64*d5c09012SAndroid Build Coastguard Worker // * `application/pdf` (PDF, only native PDFs are supported for now) 65*d5c09012SAndroid Build Coastguard Worker // * `text/html` (HTML) 66*d5c09012SAndroid Build Coastguard Worker // * `application/vnd.openxmlformats-officedocument.wordprocessingml.document` (DOCX) 67*d5c09012SAndroid Build Coastguard Worker // * `application/vnd.openxmlformats-officedocument.presentationml.presentation` (PPTX) 68*d5c09012SAndroid Build Coastguard Worker // * `text/plain` (TXT) 69*d5c09012SAndroid Build Coastguard Worker // 70*d5c09012SAndroid Build Coastguard Worker // See https://www.iana.org/assignments/media-types/media-types.xhtml. 71*d5c09012SAndroid Build Coastguard Worker string mime_type = 1; 72*d5c09012SAndroid Build Coastguard Worker } 73*d5c09012SAndroid Build Coastguard Worker 74*d5c09012SAndroid Build Coastguard Worker // ACL Information of the Document. 75*d5c09012SAndroid Build Coastguard Worker message AclInfo { 76*d5c09012SAndroid Build Coastguard Worker // AclRestriction to model complex inheritance restrictions. 77*d5c09012SAndroid Build Coastguard Worker // 78*d5c09012SAndroid Build Coastguard Worker // Example: Modeling a "Both Permit" inheritance, where to access a 79*d5c09012SAndroid Build Coastguard Worker // child document, user needs to have access to parent document. 80*d5c09012SAndroid Build Coastguard Worker // 81*d5c09012SAndroid Build Coastguard Worker // Document Hierarchy - Space_S --> Page_P. 82*d5c09012SAndroid Build Coastguard Worker // 83*d5c09012SAndroid Build Coastguard Worker // Readers: 84*d5c09012SAndroid Build Coastguard Worker // Space_S: group_1, user_1 85*d5c09012SAndroid Build Coastguard Worker // Page_P: group_2, group_3, user_2 86*d5c09012SAndroid Build Coastguard Worker // 87*d5c09012SAndroid Build Coastguard Worker // Space_S ACL Restriction - 88*d5c09012SAndroid Build Coastguard Worker // { 89*d5c09012SAndroid Build Coastguard Worker // "acl_info": { 90*d5c09012SAndroid Build Coastguard Worker // "readers": [ 91*d5c09012SAndroid Build Coastguard Worker // { 92*d5c09012SAndroid Build Coastguard Worker // "principals": [ 93*d5c09012SAndroid Build Coastguard Worker // { 94*d5c09012SAndroid Build Coastguard Worker // "group_id": "group_1" 95*d5c09012SAndroid Build Coastguard Worker // }, 96*d5c09012SAndroid Build Coastguard Worker // { 97*d5c09012SAndroid Build Coastguard Worker // "user_id": "user_1" 98*d5c09012SAndroid Build Coastguard Worker // } 99*d5c09012SAndroid Build Coastguard Worker // ] 100*d5c09012SAndroid Build Coastguard Worker // } 101*d5c09012SAndroid Build Coastguard Worker // ] 102*d5c09012SAndroid Build Coastguard Worker // } 103*d5c09012SAndroid Build Coastguard Worker // } 104*d5c09012SAndroid Build Coastguard Worker // 105*d5c09012SAndroid Build Coastguard Worker // Page_P ACL Restriction. 106*d5c09012SAndroid Build Coastguard Worker // { 107*d5c09012SAndroid Build Coastguard Worker // "acl_info": { 108*d5c09012SAndroid Build Coastguard Worker // "readers": [ 109*d5c09012SAndroid Build Coastguard Worker // { 110*d5c09012SAndroid Build Coastguard Worker // "principals": [ 111*d5c09012SAndroid Build Coastguard Worker // { 112*d5c09012SAndroid Build Coastguard Worker // "group_id": "group_2" 113*d5c09012SAndroid Build Coastguard Worker // }, 114*d5c09012SAndroid Build Coastguard Worker // { 115*d5c09012SAndroid Build Coastguard Worker // "group_id": "group_3" 116*d5c09012SAndroid Build Coastguard Worker // }, 117*d5c09012SAndroid Build Coastguard Worker // { 118*d5c09012SAndroid Build Coastguard Worker // "user_id": "user_2" 119*d5c09012SAndroid Build Coastguard Worker // } 120*d5c09012SAndroid Build Coastguard Worker // ], 121*d5c09012SAndroid Build Coastguard Worker // }, 122*d5c09012SAndroid Build Coastguard Worker // { 123*d5c09012SAndroid Build Coastguard Worker // "principals": [ 124*d5c09012SAndroid Build Coastguard Worker // { 125*d5c09012SAndroid Build Coastguard Worker // "group_id": "group_1" 126*d5c09012SAndroid Build Coastguard Worker // }, 127*d5c09012SAndroid Build Coastguard Worker // { 128*d5c09012SAndroid Build Coastguard Worker // "user_id": "user_1" 129*d5c09012SAndroid Build Coastguard Worker // } 130*d5c09012SAndroid Build Coastguard Worker // ], 131*d5c09012SAndroid Build Coastguard Worker // } 132*d5c09012SAndroid Build Coastguard Worker // ] 133*d5c09012SAndroid Build Coastguard Worker // } 134*d5c09012SAndroid Build Coastguard Worker // } 135*d5c09012SAndroid Build Coastguard Worker message AccessRestriction { 136*d5c09012SAndroid Build Coastguard Worker // List of principals. 137*d5c09012SAndroid Build Coastguard Worker repeated Principal principals = 1; 138*d5c09012SAndroid Build Coastguard Worker } 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker // Readers of the document. 141*d5c09012SAndroid Build Coastguard Worker repeated AccessRestriction readers = 1; 142*d5c09012SAndroid Build Coastguard Worker } 143*d5c09012SAndroid Build Coastguard Worker 144*d5c09012SAndroid Build Coastguard Worker // Data representation. One of 145*d5c09012SAndroid Build Coastguard Worker // [struct_data][google.cloud.discoveryengine.v1alpha.Document.struct_data] or 146*d5c09012SAndroid Build Coastguard Worker // [json_data][google.cloud.discoveryengine.v1alpha.Document.json_data] should 147*d5c09012SAndroid Build Coastguard Worker // be provided otherwise an `INVALID_ARGUMENT` error is thrown. 148*d5c09012SAndroid Build Coastguard Worker oneof data { 149*d5c09012SAndroid Build Coastguard Worker // The structured JSON data for the document. It should conform to the 150*d5c09012SAndroid Build Coastguard Worker // registered [Schema][google.cloud.discoveryengine.v1alpha.Schema] or an 151*d5c09012SAndroid Build Coastguard Worker // `INVALID_ARGUMENT` error is thrown. 152*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct struct_data = 4; 153*d5c09012SAndroid Build Coastguard Worker 154*d5c09012SAndroid Build Coastguard Worker // The JSON string representation of the document. It should conform to the 155*d5c09012SAndroid Build Coastguard Worker // registered [Schema][google.cloud.discoveryengine.v1alpha.Schema] or an 156*d5c09012SAndroid Build Coastguard Worker // `INVALID_ARGUMENT` error is thrown. 157*d5c09012SAndroid Build Coastguard Worker string json_data = 5; 158*d5c09012SAndroid Build Coastguard Worker } 159*d5c09012SAndroid Build Coastguard Worker 160*d5c09012SAndroid Build Coastguard Worker // Immutable. The full resource name of the document. 161*d5c09012SAndroid Build Coastguard Worker // Format: 162*d5c09012SAndroid Build Coastguard Worker // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document_id}`. 163*d5c09012SAndroid Build Coastguard Worker // 164*d5c09012SAndroid Build Coastguard Worker // This field must be a UTF-8 encoded string with a length limit of 1024 165*d5c09012SAndroid Build Coastguard Worker // characters. 166*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = IMMUTABLE]; 167*d5c09012SAndroid Build Coastguard Worker 168*d5c09012SAndroid Build Coastguard Worker // Immutable. The identifier of the document. 169*d5c09012SAndroid Build Coastguard Worker // 170*d5c09012SAndroid Build Coastguard Worker // Id should conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) 171*d5c09012SAndroid Build Coastguard Worker // standard with a length limit of 63 characters. 172*d5c09012SAndroid Build Coastguard Worker string id = 2 [(google.api.field_behavior) = IMMUTABLE]; 173*d5c09012SAndroid Build Coastguard Worker 174*d5c09012SAndroid Build Coastguard Worker // The identifier of the schema located in the same data store. 175*d5c09012SAndroid Build Coastguard Worker string schema_id = 3; 176*d5c09012SAndroid Build Coastguard Worker 177*d5c09012SAndroid Build Coastguard Worker // The unstructured data linked to this document. Content must be set if this 178*d5c09012SAndroid Build Coastguard Worker // document is under a 179*d5c09012SAndroid Build Coastguard Worker // `CONTENT_REQUIRED` data store. 180*d5c09012SAndroid Build Coastguard Worker Content content = 10; 181*d5c09012SAndroid Build Coastguard Worker 182*d5c09012SAndroid Build Coastguard Worker // The identifier of the parent document. Currently supports at most two level 183*d5c09012SAndroid Build Coastguard Worker // document hierarchy. 184*d5c09012SAndroid Build Coastguard Worker // 185*d5c09012SAndroid Build Coastguard Worker // Id should conform to [RFC-1034](https://tools.ietf.org/html/rfc1034) 186*d5c09012SAndroid Build Coastguard Worker // standard with a length limit of 63 characters. 187*d5c09012SAndroid Build Coastguard Worker string parent_document_id = 7; 188*d5c09012SAndroid Build Coastguard Worker 189*d5c09012SAndroid Build Coastguard Worker // Output only. This field is OUTPUT_ONLY. 190*d5c09012SAndroid Build Coastguard Worker // It contains derived data that are not in the original input document. 191*d5c09012SAndroid Build Coastguard Worker google.protobuf.Struct derived_struct_data = 6 192*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 193*d5c09012SAndroid Build Coastguard Worker 194*d5c09012SAndroid Build Coastguard Worker // Access control information for the document. 195*d5c09012SAndroid Build Coastguard Worker AclInfo acl_info = 11; 196*d5c09012SAndroid Build Coastguard Worker 197*d5c09012SAndroid Build Coastguard Worker // Output only. The last time the document was indexed. If this field is set, 198*d5c09012SAndroid Build Coastguard Worker // the document could be returned in search results. 199*d5c09012SAndroid Build Coastguard Worker // 200*d5c09012SAndroid Build Coastguard Worker // This field is OUTPUT_ONLY. If this field is not populated, it means the 201*d5c09012SAndroid Build Coastguard Worker // document has never been indexed. 202*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp index_time = 13 203*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 204*d5c09012SAndroid Build Coastguard Worker} 205*d5c09012SAndroid Build Coastguard Worker 206*d5c09012SAndroid Build Coastguard Worker// Document captures all raw metadata information of items to be recommended or 207*d5c09012SAndroid Build Coastguard Worker// searched. 208*d5c09012SAndroid Build Coastguard Workermessage ProcessedDocument { 209*d5c09012SAndroid Build Coastguard Worker // Output format of the processed document. 210*d5c09012SAndroid Build Coastguard Worker oneof processed_data_format { 211*d5c09012SAndroid Build Coastguard Worker // The JSON string representation of the processed document. 212*d5c09012SAndroid Build Coastguard Worker string json_data = 2; 213*d5c09012SAndroid Build Coastguard Worker } 214*d5c09012SAndroid Build Coastguard Worker 215*d5c09012SAndroid Build Coastguard Worker // Required. Full resource name of the referenced document, in the format 216*d5c09012SAndroid Build Coastguard Worker // `projects/*/locations/*/collections/*/dataStores/*/branches/*/documents/*`. 217*d5c09012SAndroid Build Coastguard Worker string document = 1 [ 218*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 219*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 220*d5c09012SAndroid Build Coastguard Worker type: "discoveryengine.googleapis.com/Document" 221*d5c09012SAndroid Build Coastguard Worker } 222*d5c09012SAndroid Build Coastguard Worker ]; 223*d5c09012SAndroid Build Coastguard Worker} 224