1- // Copyright 2025 Google LLC
1+ // Copyright 2026 Google LLC
22//
33// Licensed under the Apache License, Version 2.0 (the "License");
44// you may not use this file except in compliance with the License.
@@ -292,6 +292,23 @@ message QuotedMessageMetadata {
292292 pattern : "spaces/{space}/messages/{message}/quotedMessageMetadata/{quoted_message_metadata}"
293293 };
294294
295+ // The quote type of the quoted message.
296+ enum QuoteType {
297+ // Reserved. This value is unused.
298+ QUOTE_TYPE_UNSPECIFIED = 0 ;
299+
300+ // If quote_type is `REPLY`, you can do the following:
301+ //
302+ // * If you're replying in a thread, you can quote another message in that
303+ // thread.
304+ //
305+ // * If you're creating a root message, you can quote another root message
306+ // in that space.
307+ //
308+ // You can't quote a message reply from a different thread.
309+ REPLY = 1 ;
310+ }
311+
295312 // Required. Resource name of the message that is quoted.
296313 //
297314 // Format: `spaces/{space}/messages/{message}`
@@ -310,6 +327,63 @@ message QuotedMessageMetadata {
310327 // message, the request fails.
311328 google.protobuf.Timestamp last_update_time = 2
312329 [(google.api.field_behavior ) = REQUIRED ];
330+
331+ // Optional. Specifies the quote type. If not set, defaults to REPLY in the
332+ // message read/write path for backward compatibility.
333+ QuoteType quote_type = 4 [(google.api.field_behavior ) = OPTIONAL ];
334+
335+ // Output only. A snapshot of the quoted message's content.
336+ QuotedMessageSnapshot quoted_message_snapshot = 5
337+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
338+
339+ // Output only. Metadata about the source space of the quoted message.
340+ // Populated only for FORWARD quote type.
341+ ForwardedMetadata forwarded_metadata = 6
342+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
343+ }
344+
345+ // Provides a snapshot of the content of the quoted message at the time of
346+ // quoting or forwarding
347+ message QuotedMessageSnapshot {
348+ // Output only. The quoted message's author name.
349+ // Populated for both REPLY & FORWARD quote types.
350+ string sender = 1 [(google.api.field_behavior ) = OUTPUT_ONLY ];
351+
352+ // Output only. Snapshot of the quoted message's text content.
353+ string text = 2 [(google.api.field_behavior ) = OUTPUT_ONLY ];
354+
355+ // Output only. Contains the quoted message `text` with markups added to
356+ // support rich formatting like hyperlinks,custom emojis, markup, etc.
357+ // Populated only for FORWARD quote type.
358+ string formatted_text = 3 [(google.api.field_behavior ) = OUTPUT_ONLY ];
359+
360+ // Output only. Annotations parsed from the text body of the quoted message.
361+ // Populated only for FORWARD quote type.
362+ repeated Annotation annotations = 4
363+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
364+
365+ // Output only. Attachments that were part of the quoted message. These are
366+ // copies of the quoted message's attachment metadata. Populated only for
367+ // FORWARD quote type.
368+ repeated Attachment attachments = 5
369+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
370+ }
371+
372+ // Metadata about the source space from which a message was forwarded.
373+ message ForwardedMetadata {
374+ // Output only. The resource name of the source space.
375+ // Format: spaces/{space}
376+ string space = 1 [
377+ (google.api.field_behavior ) = OUTPUT_ONLY ,
378+ (google.api.resource_reference ) = { type : "chat.googleapis.com/Space" }
379+ ];
380+
381+ // Output only. The display name of the source space or DM at the time of
382+ // forwarding. For `SPACE`, this is the space name. For `DIRECT_MESSAGE`, this
383+ // is the other participant's name (e.g., "User A"). For `GROUP_CHAT`, this is
384+ // a generated name based on members' first names, limited to 5 including the
385+ // creator (e.g., "User A, User B").
386+ string space_display_name = 2 [(google.api.field_behavior ) = OUTPUT_ONLY ];
313387}
314388
315389// A thread in a Google Chat space. For example usage, see
0 commit comments