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.v1beta; 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/protobuf/timestamp.proto"; 22*d5c09012SAndroid Build Coastguard Worker 23*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Beta"; 24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/discoveryengine/apiv1beta/discoveryenginepb;discoveryenginepb"; 25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "AnswerProto"; 27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.discoveryengine.v1beta"; 28*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "DISCOVERYENGINE"; 29*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1beta"; 30*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::DiscoveryEngine::V1beta"; 31*d5c09012SAndroid Build Coastguard Worker 32*d5c09012SAndroid Build Coastguard Worker// Defines an answer. 33*d5c09012SAndroid Build Coastguard Workermessage Answer { 34*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 35*d5c09012SAndroid Build Coastguard Worker type: "discoveryengine.googleapis.com/Answer" 36*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/sessions/{session}/answers/{answer}" 37*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/sessions/{session}/answers/{answer}" 38*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}/answers/{answer}" 39*d5c09012SAndroid Build Coastguard Worker }; 40*d5c09012SAndroid Build Coastguard Worker 41*d5c09012SAndroid Build Coastguard Worker // Citation info for a segment. 42*d5c09012SAndroid Build Coastguard Worker message Citation { 43*d5c09012SAndroid Build Coastguard Worker // Index indicates the start of the segment, measured in bytes (UTF-8 44*d5c09012SAndroid Build Coastguard Worker // unicode). 45*d5c09012SAndroid Build Coastguard Worker int64 start_index = 1; 46*d5c09012SAndroid Build Coastguard Worker 47*d5c09012SAndroid Build Coastguard Worker // End of the attributed segment, exclusive. 48*d5c09012SAndroid Build Coastguard Worker int64 end_index = 2; 49*d5c09012SAndroid Build Coastguard Worker 50*d5c09012SAndroid Build Coastguard Worker // Citation sources for the attributed segment. 51*d5c09012SAndroid Build Coastguard Worker repeated CitationSource sources = 3; 52*d5c09012SAndroid Build Coastguard Worker } 53*d5c09012SAndroid Build Coastguard Worker 54*d5c09012SAndroid Build Coastguard Worker // Citation source. 55*d5c09012SAndroid Build Coastguard Worker message CitationSource { 56*d5c09012SAndroid Build Coastguard Worker // ID of the citation source. 57*d5c09012SAndroid Build Coastguard Worker string reference_id = 1; 58*d5c09012SAndroid Build Coastguard Worker } 59*d5c09012SAndroid Build Coastguard Worker 60*d5c09012SAndroid Build Coastguard Worker // Reference. 61*d5c09012SAndroid Build Coastguard Worker message Reference { 62*d5c09012SAndroid Build Coastguard Worker // Unstructured document information. 63*d5c09012SAndroid Build Coastguard Worker message UnstructuredDocumentInfo { 64*d5c09012SAndroid Build Coastguard Worker // Chunk content. 65*d5c09012SAndroid Build Coastguard Worker message ChunkContent { 66*d5c09012SAndroid Build Coastguard Worker // Chunk textual content. 67*d5c09012SAndroid Build Coastguard Worker string content = 1; 68*d5c09012SAndroid Build Coastguard Worker 69*d5c09012SAndroid Build Coastguard Worker // Page identifier. 70*d5c09012SAndroid Build Coastguard Worker string page_identifier = 2; 71*d5c09012SAndroid Build Coastguard Worker } 72*d5c09012SAndroid Build Coastguard Worker 73*d5c09012SAndroid Build Coastguard Worker // Document resource name. 74*d5c09012SAndroid Build Coastguard Worker string document = 1 [(google.api.resource_reference) = { 75*d5c09012SAndroid Build Coastguard Worker type: "discoveryengine.googleapis.com/Document" 76*d5c09012SAndroid Build Coastguard Worker }]; 77*d5c09012SAndroid Build Coastguard Worker 78*d5c09012SAndroid Build Coastguard Worker // URI for the document. 79*d5c09012SAndroid Build Coastguard Worker string uri = 2; 80*d5c09012SAndroid Build Coastguard Worker 81*d5c09012SAndroid Build Coastguard Worker // Title. 82*d5c09012SAndroid Build Coastguard Worker string title = 3; 83*d5c09012SAndroid Build Coastguard Worker 84*d5c09012SAndroid Build Coastguard Worker // List of cited chunk contents derived from document content. 85*d5c09012SAndroid Build Coastguard Worker repeated ChunkContent chunk_contents = 4; 86*d5c09012SAndroid Build Coastguard Worker } 87*d5c09012SAndroid Build Coastguard Worker 88*d5c09012SAndroid Build Coastguard Worker // Chunk information. 89*d5c09012SAndroid Build Coastguard Worker message ChunkInfo { 90*d5c09012SAndroid Build Coastguard Worker // Document metadata. 91*d5c09012SAndroid Build Coastguard Worker message DocumentMetadata { 92*d5c09012SAndroid Build Coastguard Worker // Document resource name. 93*d5c09012SAndroid Build Coastguard Worker string document = 1 [(google.api.resource_reference) = { 94*d5c09012SAndroid Build Coastguard Worker type: "discoveryengine.googleapis.com/Document" 95*d5c09012SAndroid Build Coastguard Worker }]; 96*d5c09012SAndroid Build Coastguard Worker 97*d5c09012SAndroid Build Coastguard Worker // URI for the document. 98*d5c09012SAndroid Build Coastguard Worker string uri = 2; 99*d5c09012SAndroid Build Coastguard Worker 100*d5c09012SAndroid Build Coastguard Worker // Title. 101*d5c09012SAndroid Build Coastguard Worker string title = 3; 102*d5c09012SAndroid Build Coastguard Worker 103*d5c09012SAndroid Build Coastguard Worker // Page identifier. 104*d5c09012SAndroid Build Coastguard Worker string page_identifier = 4; 105*d5c09012SAndroid Build Coastguard Worker } 106*d5c09012SAndroid Build Coastguard Worker 107*d5c09012SAndroid Build Coastguard Worker // Chunk resource name. 108*d5c09012SAndroid Build Coastguard Worker string chunk = 1 [(google.api.resource_reference) = { 109*d5c09012SAndroid Build Coastguard Worker type: "discoveryengine.googleapis.com/Chunk" 110*d5c09012SAndroid Build Coastguard Worker }]; 111*d5c09012SAndroid Build Coastguard Worker 112*d5c09012SAndroid Build Coastguard Worker // Chunk textual content. 113*d5c09012SAndroid Build Coastguard Worker string content = 2; 114*d5c09012SAndroid Build Coastguard Worker 115*d5c09012SAndroid Build Coastguard Worker // Relevance score. 116*d5c09012SAndroid Build Coastguard Worker optional float relevance_score = 3; 117*d5c09012SAndroid Build Coastguard Worker 118*d5c09012SAndroid Build Coastguard Worker // Document metadata. 119*d5c09012SAndroid Build Coastguard Worker DocumentMetadata document_metadata = 4; 120*d5c09012SAndroid Build Coastguard Worker } 121*d5c09012SAndroid Build Coastguard Worker 122*d5c09012SAndroid Build Coastguard Worker // Search result content. 123*d5c09012SAndroid Build Coastguard Worker oneof content { 124*d5c09012SAndroid Build Coastguard Worker // Unstructured document information. 125*d5c09012SAndroid Build Coastguard Worker UnstructuredDocumentInfo unstructured_document_info = 1; 126*d5c09012SAndroid Build Coastguard Worker 127*d5c09012SAndroid Build Coastguard Worker // Chunk information. 128*d5c09012SAndroid Build Coastguard Worker ChunkInfo chunk_info = 2; 129*d5c09012SAndroid Build Coastguard Worker } 130*d5c09012SAndroid Build Coastguard Worker } 131*d5c09012SAndroid Build Coastguard Worker 132*d5c09012SAndroid Build Coastguard Worker // Step information. 133*d5c09012SAndroid Build Coastguard Worker message Step { 134*d5c09012SAndroid Build Coastguard Worker // Action. 135*d5c09012SAndroid Build Coastguard Worker message Action { 136*d5c09012SAndroid Build Coastguard Worker // Search action. 137*d5c09012SAndroid Build Coastguard Worker message SearchAction { 138*d5c09012SAndroid Build Coastguard Worker // The query to search. 139*d5c09012SAndroid Build Coastguard Worker string query = 1; 140*d5c09012SAndroid Build Coastguard Worker } 141*d5c09012SAndroid Build Coastguard Worker 142*d5c09012SAndroid Build Coastguard Worker // Observation. 143*d5c09012SAndroid Build Coastguard Worker message Observation { 144*d5c09012SAndroid Build Coastguard Worker message SearchResult { 145*d5c09012SAndroid Build Coastguard Worker // Snippet information. 146*d5c09012SAndroid Build Coastguard Worker message SnippetInfo { 147*d5c09012SAndroid Build Coastguard Worker // Snippet content. 148*d5c09012SAndroid Build Coastguard Worker string snippet = 1; 149*d5c09012SAndroid Build Coastguard Worker 150*d5c09012SAndroid Build Coastguard Worker // Status of the snippet defined by the search team. 151*d5c09012SAndroid Build Coastguard Worker string snippet_status = 2; 152*d5c09012SAndroid Build Coastguard Worker } 153*d5c09012SAndroid Build Coastguard Worker 154*d5c09012SAndroid Build Coastguard Worker // Chunk information. 155*d5c09012SAndroid Build Coastguard Worker message ChunkInfo { 156*d5c09012SAndroid Build Coastguard Worker // Chunk resource name. 157*d5c09012SAndroid Build Coastguard Worker string chunk = 1; 158*d5c09012SAndroid Build Coastguard Worker 159*d5c09012SAndroid Build Coastguard Worker // Chunk textual content. 160*d5c09012SAndroid Build Coastguard Worker string content = 2; 161*d5c09012SAndroid Build Coastguard Worker 162*d5c09012SAndroid Build Coastguard Worker // Relevance score. 163*d5c09012SAndroid Build Coastguard Worker optional float relevance_score = 3; 164*d5c09012SAndroid Build Coastguard Worker } 165*d5c09012SAndroid Build Coastguard Worker 166*d5c09012SAndroid Build Coastguard Worker // Document resource name. 167*d5c09012SAndroid Build Coastguard Worker string document = 1; 168*d5c09012SAndroid Build Coastguard Worker 169*d5c09012SAndroid Build Coastguard Worker // URI for the document. 170*d5c09012SAndroid Build Coastguard Worker string uri = 2; 171*d5c09012SAndroid Build Coastguard Worker 172*d5c09012SAndroid Build Coastguard Worker // Title. 173*d5c09012SAndroid Build Coastguard Worker string title = 3; 174*d5c09012SAndroid Build Coastguard Worker 175*d5c09012SAndroid Build Coastguard Worker // If citation_type is DOCUMENT_LEVEL_CITATION, populate document 176*d5c09012SAndroid Build Coastguard Worker // level snippets. 177*d5c09012SAndroid Build Coastguard Worker repeated SnippetInfo snippet_info = 4; 178*d5c09012SAndroid Build Coastguard Worker 179*d5c09012SAndroid Build Coastguard Worker // If citation_type is CHUNK_LEVEL_CITATION and chunk mode is on, 180*d5c09012SAndroid Build Coastguard Worker // populate chunk info. 181*d5c09012SAndroid Build Coastguard Worker repeated ChunkInfo chunk_info = 5; 182*d5c09012SAndroid Build Coastguard Worker } 183*d5c09012SAndroid Build Coastguard Worker 184*d5c09012SAndroid Build Coastguard Worker // Search results observed by the search action, it can be snippets info 185*d5c09012SAndroid Build Coastguard Worker // or chunk info, depending on the citation type set by the user. 186*d5c09012SAndroid Build Coastguard Worker repeated SearchResult search_results = 2; 187*d5c09012SAndroid Build Coastguard Worker } 188*d5c09012SAndroid Build Coastguard Worker 189*d5c09012SAndroid Build Coastguard Worker // The action. 190*d5c09012SAndroid Build Coastguard Worker oneof action { 191*d5c09012SAndroid Build Coastguard Worker // Search action. 192*d5c09012SAndroid Build Coastguard Worker SearchAction search_action = 2; 193*d5c09012SAndroid Build Coastguard Worker } 194*d5c09012SAndroid Build Coastguard Worker 195*d5c09012SAndroid Build Coastguard Worker // Observation. 196*d5c09012SAndroid Build Coastguard Worker Observation observation = 3; 197*d5c09012SAndroid Build Coastguard Worker } 198*d5c09012SAndroid Build Coastguard Worker 199*d5c09012SAndroid Build Coastguard Worker // Enumeration of the state of the step. 200*d5c09012SAndroid Build Coastguard Worker enum State { 201*d5c09012SAndroid Build Coastguard Worker // Unknown. 202*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 203*d5c09012SAndroid Build Coastguard Worker 204*d5c09012SAndroid Build Coastguard Worker // Step is currently in progress. 205*d5c09012SAndroid Build Coastguard Worker IN_PROGRESS = 1; 206*d5c09012SAndroid Build Coastguard Worker 207*d5c09012SAndroid Build Coastguard Worker // Step currently failed. 208*d5c09012SAndroid Build Coastguard Worker FAILED = 2; 209*d5c09012SAndroid Build Coastguard Worker 210*d5c09012SAndroid Build Coastguard Worker // Step has succeeded. 211*d5c09012SAndroid Build Coastguard Worker SUCCEEDED = 3; 212*d5c09012SAndroid Build Coastguard Worker } 213*d5c09012SAndroid Build Coastguard Worker 214*d5c09012SAndroid Build Coastguard Worker // The state of the step. 215*d5c09012SAndroid Build Coastguard Worker State state = 1; 216*d5c09012SAndroid Build Coastguard Worker 217*d5c09012SAndroid Build Coastguard Worker // The description of the step. 218*d5c09012SAndroid Build Coastguard Worker string description = 2; 219*d5c09012SAndroid Build Coastguard Worker 220*d5c09012SAndroid Build Coastguard Worker // The thought of the step. 221*d5c09012SAndroid Build Coastguard Worker string thought = 3; 222*d5c09012SAndroid Build Coastguard Worker 223*d5c09012SAndroid Build Coastguard Worker // Actions. 224*d5c09012SAndroid Build Coastguard Worker repeated Action actions = 4; 225*d5c09012SAndroid Build Coastguard Worker } 226*d5c09012SAndroid Build Coastguard Worker 227*d5c09012SAndroid Build Coastguard Worker // Query understanding information. 228*d5c09012SAndroid Build Coastguard Worker message QueryUnderstandingInfo { 229*d5c09012SAndroid Build Coastguard Worker // Query classification information. 230*d5c09012SAndroid Build Coastguard Worker message QueryClassificationInfo { 231*d5c09012SAndroid Build Coastguard Worker // Query classification types. 232*d5c09012SAndroid Build Coastguard Worker enum Type { 233*d5c09012SAndroid Build Coastguard Worker // Unspecified query classification type. 234*d5c09012SAndroid Build Coastguard Worker TYPE_UNSPECIFIED = 0; 235*d5c09012SAndroid Build Coastguard Worker 236*d5c09012SAndroid Build Coastguard Worker // Adversarial query classification type. 237*d5c09012SAndroid Build Coastguard Worker ADVERSARIAL_QUERY = 1; 238*d5c09012SAndroid Build Coastguard Worker 239*d5c09012SAndroid Build Coastguard Worker // Non-answer-seeking query classification type. 240*d5c09012SAndroid Build Coastguard Worker NON_ANSWER_SEEKING_QUERY = 2; 241*d5c09012SAndroid Build Coastguard Worker } 242*d5c09012SAndroid Build Coastguard Worker 243*d5c09012SAndroid Build Coastguard Worker // Query classification type. 244*d5c09012SAndroid Build Coastguard Worker Type type = 1; 245*d5c09012SAndroid Build Coastguard Worker 246*d5c09012SAndroid Build Coastguard Worker // Classification output. 247*d5c09012SAndroid Build Coastguard Worker bool positive = 2; 248*d5c09012SAndroid Build Coastguard Worker } 249*d5c09012SAndroid Build Coastguard Worker 250*d5c09012SAndroid Build Coastguard Worker // Query classification information. 251*d5c09012SAndroid Build Coastguard Worker repeated QueryClassificationInfo query_classification_info = 1; 252*d5c09012SAndroid Build Coastguard Worker } 253*d5c09012SAndroid Build Coastguard Worker 254*d5c09012SAndroid Build Coastguard Worker // Enumeration of the state of the answer generation. 255*d5c09012SAndroid Build Coastguard Worker enum State { 256*d5c09012SAndroid Build Coastguard Worker // Unknown. 257*d5c09012SAndroid Build Coastguard Worker STATE_UNSPECIFIED = 0; 258*d5c09012SAndroid Build Coastguard Worker 259*d5c09012SAndroid Build Coastguard Worker // Answer generation is currently in progress. 260*d5c09012SAndroid Build Coastguard Worker IN_PROGRESS = 1; 261*d5c09012SAndroid Build Coastguard Worker 262*d5c09012SAndroid Build Coastguard Worker // Answer generation currently failed. 263*d5c09012SAndroid Build Coastguard Worker FAILED = 2; 264*d5c09012SAndroid Build Coastguard Worker 265*d5c09012SAndroid Build Coastguard Worker // Answer generation has succeeded. 266*d5c09012SAndroid Build Coastguard Worker SUCCEEDED = 3; 267*d5c09012SAndroid Build Coastguard Worker } 268*d5c09012SAndroid Build Coastguard Worker 269*d5c09012SAndroid Build Coastguard Worker // An enum for answer skipped reasons. 270*d5c09012SAndroid Build Coastguard Worker enum AnswerSkippedReason { 271*d5c09012SAndroid Build Coastguard Worker // Default value. The answer skipped reason is not specified. 272*d5c09012SAndroid Build Coastguard Worker ANSWER_SKIPPED_REASON_UNSPECIFIED = 0; 273*d5c09012SAndroid Build Coastguard Worker 274*d5c09012SAndroid Build Coastguard Worker // The adversarial query ignored case. 275*d5c09012SAndroid Build Coastguard Worker ADVERSARIAL_QUERY_IGNORED = 1; 276*d5c09012SAndroid Build Coastguard Worker 277*d5c09012SAndroid Build Coastguard Worker // The non-answer seeking query ignored case. 278*d5c09012SAndroid Build Coastguard Worker NON_ANSWER_SEEKING_QUERY_IGNORED = 2; 279*d5c09012SAndroid Build Coastguard Worker 280*d5c09012SAndroid Build Coastguard Worker // The out-of-domain query ignored case. 281*d5c09012SAndroid Build Coastguard Worker // 282*d5c09012SAndroid Build Coastguard Worker // Google skips the answer if there are no high-relevance search results. 283*d5c09012SAndroid Build Coastguard Worker OUT_OF_DOMAIN_QUERY_IGNORED = 3; 284*d5c09012SAndroid Build Coastguard Worker 285*d5c09012SAndroid Build Coastguard Worker // The potential policy violation case. 286*d5c09012SAndroid Build Coastguard Worker // 287*d5c09012SAndroid Build Coastguard Worker // Google skips the answer if there is a potential policy violation 288*d5c09012SAndroid Build Coastguard Worker // detected. This includes content that may be violent or toxic. 289*d5c09012SAndroid Build Coastguard Worker POTENTIAL_POLICY_VIOLATION = 4; 290*d5c09012SAndroid Build Coastguard Worker } 291*d5c09012SAndroid Build Coastguard Worker 292*d5c09012SAndroid Build Coastguard Worker // Immutable. Fully qualified name 293*d5c09012SAndroid Build Coastguard Worker // `project/*/locations/global/collections/{collection}/engines/{engine}/sessions/*/answers/*` 294*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = IMMUTABLE]; 295*d5c09012SAndroid Build Coastguard Worker 296*d5c09012SAndroid Build Coastguard Worker // The state of the answer generation. 297*d5c09012SAndroid Build Coastguard Worker State state = 2; 298*d5c09012SAndroid Build Coastguard Worker 299*d5c09012SAndroid Build Coastguard Worker // The textual answer. 300*d5c09012SAndroid Build Coastguard Worker string answer_text = 3; 301*d5c09012SAndroid Build Coastguard Worker 302*d5c09012SAndroid Build Coastguard Worker // Citations. 303*d5c09012SAndroid Build Coastguard Worker repeated Citation citations = 4; 304*d5c09012SAndroid Build Coastguard Worker 305*d5c09012SAndroid Build Coastguard Worker // References. 306*d5c09012SAndroid Build Coastguard Worker repeated Reference references = 5; 307*d5c09012SAndroid Build Coastguard Worker 308*d5c09012SAndroid Build Coastguard Worker // Suggested related questions. 309*d5c09012SAndroid Build Coastguard Worker repeated string related_questions = 6; 310*d5c09012SAndroid Build Coastguard Worker 311*d5c09012SAndroid Build Coastguard Worker // Answer generation steps. 312*d5c09012SAndroid Build Coastguard Worker repeated Step steps = 7; 313*d5c09012SAndroid Build Coastguard Worker 314*d5c09012SAndroid Build Coastguard Worker // Query understanding information. 315*d5c09012SAndroid Build Coastguard Worker QueryUnderstandingInfo query_understanding_info = 10; 316*d5c09012SAndroid Build Coastguard Worker 317*d5c09012SAndroid Build Coastguard Worker // Additional answer-skipped reasons. This provides the reason for ignored 318*d5c09012SAndroid Build Coastguard Worker // cases. If nothing is skipped, this field is not set. 319*d5c09012SAndroid Build Coastguard Worker repeated AnswerSkippedReason answer_skipped_reasons = 11; 320*d5c09012SAndroid Build Coastguard Worker 321*d5c09012SAndroid Build Coastguard Worker // Output only. Answer creation timestamp. 322*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 8 323*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 324*d5c09012SAndroid Build Coastguard Worker 325*d5c09012SAndroid Build Coastguard Worker // Output only. Answer completed timestamp. 326*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp complete_time = 9 327*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 328*d5c09012SAndroid Build Coastguard Worker} 329