xref: /aosp_15_r20/external/googleapis/google/apps/meet/v2beta/service.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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.apps.meet.v2beta;
18
19import "google/api/annotations.proto";
20import "google/api/client.proto";
21import "google/api/field_behavior.proto";
22import "google/api/resource.proto";
23import "google/apps/meet/v2beta/resource.proto";
24import "google/protobuf/empty.proto";
25import "google/protobuf/field_mask.proto";
26
27option csharp_namespace = "Google.Apps.Meet.V2Beta";
28option go_package = "cloud.google.com/go/apps/meet/apiv2beta/meetpb;meetpb";
29option java_multiple_files = true;
30option java_outer_classname = "ServiceProto";
31option java_package = "com.google.apps.meet.v2beta";
32option php_namespace = "Google\\Apps\\Meet\\V2beta";
33option ruby_package = "Google::Apps::Meet::V2beta";
34
35// REST API for services dealing with spaces.
36service SpacesService {
37  option (google.api.default_host) = "meet.googleapis.com";
38
39  // [Developer Preview](https://developers.google.com/workspace/preview).
40  // Creates a space.
41  rpc CreateSpace(CreateSpaceRequest) returns (Space) {
42    option (google.api.http) = {
43      post: "/v2beta/spaces"
44      body: "space"
45    };
46    option (google.api.method_signature) = "space";
47  }
48
49  // [Developer Preview](https://developers.google.com/workspace/preview).
50  // Gets a space by `space_id` or `meeting_code`.
51  rpc GetSpace(GetSpaceRequest) returns (Space) {
52    option (google.api.http) = {
53      get: "/v2beta/{name=spaces/*}"
54    };
55    option (google.api.method_signature) = "name";
56  }
57
58  // [Developer Preview](https://developers.google.com/workspace/preview).
59  // Updates a space.
60  rpc UpdateSpace(UpdateSpaceRequest) returns (Space) {
61    option (google.api.http) = {
62      patch: "/v2beta/{space.name=spaces/*}"
63      body: "space"
64    };
65    option (google.api.method_signature) = "space,update_mask";
66  }
67
68  // [Developer Preview](https://developers.google.com/workspace/preview).
69  // Ends an active conference (if there is one).
70  rpc EndActiveConference(EndActiveConferenceRequest)
71      returns (google.protobuf.Empty) {
72    option (google.api.http) = {
73      post: "/v2beta/{name=spaces/*}:endActiveConference"
74      body: "*"
75    };
76    option (google.api.method_signature) = "name";
77  }
78}
79
80// REST API for services dealing with conference records.
81service ConferenceRecordsService {
82  option (google.api.default_host) = "meet.googleapis.com";
83
84  // [Developer Preview](https://developers.google.com/workspace/preview).
85  // Gets a conference record by conference ID.
86  rpc GetConferenceRecord(GetConferenceRecordRequest)
87      returns (ConferenceRecord) {
88    option (google.api.http) = {
89      get: "/v2beta/{name=conferenceRecords/*}"
90    };
91    option (google.api.method_signature) = "name";
92  }
93
94  // [Developer Preview](https://developers.google.com/workspace/preview).
95  // Lists the conference records by start time and in descending order.
96  rpc ListConferenceRecords(ListConferenceRecordsRequest)
97      returns (ListConferenceRecordsResponse) {
98    option (google.api.http) = {
99      get: "/v2beta/conferenceRecords"
100    };
101  }
102
103  // [Developer Preview](https://developers.google.com/workspace/preview).
104  // Gets a participant by participant ID.
105  rpc GetParticipant(GetParticipantRequest) returns (Participant) {
106    option (google.api.http) = {
107      get: "/v2beta/{name=conferenceRecords/*/participants/*}"
108    };
109    option (google.api.method_signature) = "name";
110  }
111
112  // [Developer Preview](https://developers.google.com/workspace/preview).
113  // Lists the participants in a conference record, by default ordered by join
114  // time and in descending order. This API supports `fields` as standard
115  // parameters like every other API. However, when the `fields` request
116  // parameter is omitted, this API defaults to `'participants/*,
117  // next_page_token'`.
118  rpc ListParticipants(ListParticipantsRequest)
119      returns (ListParticipantsResponse) {
120    option (google.api.http) = {
121      get: "/v2beta/{parent=conferenceRecords/*}/participants"
122    };
123    option (google.api.method_signature) = "parent";
124  }
125
126  // [Developer Preview](https://developers.google.com/workspace/preview).
127  // Gets a participant session by participant session ID.
128  rpc GetParticipantSession(GetParticipantSessionRequest)
129      returns (ParticipantSession) {
130    option (google.api.http) = {
131      get: "/v2beta/{name=conferenceRecords/*/participants/*/participantSessions/*}"
132    };
133    option (google.api.method_signature) = "name";
134  }
135
136  // [Developer Preview](https://developers.google.com/workspace/preview).
137  // Lists the participant sessions of a participant in a conference record, by
138  // default ordered by join time and in descending order. This API supports
139  // `fields` as standard parameters like every other API. However, when the
140  // `fields` request parameter is omitted this API defaults to
141  // `'participantsessions/*, next_page_token'`.
142  rpc ListParticipantSessions(ListParticipantSessionsRequest)
143      returns (ListParticipantSessionsResponse) {
144    option (google.api.http) = {
145      get: "/v2beta/{parent=conferenceRecords/*/participants/*}/participantSessions"
146    };
147    option (google.api.method_signature) = "parent";
148  }
149
150  // [Developer Preview](https://developers.google.com/workspace/preview).
151  // Gets a recording by recording ID.
152  rpc GetRecording(GetRecordingRequest) returns (Recording) {
153    option (google.api.http) = {
154      get: "/v2beta/{name=conferenceRecords/*/recordings/*}"
155    };
156    option (google.api.method_signature) = "name";
157  }
158
159  // [Developer Preview](https://developers.google.com/workspace/preview).
160  // Lists the recording resources from the conference record.
161  rpc ListRecordings(ListRecordingsRequest) returns (ListRecordingsResponse) {
162    option (google.api.http) = {
163      get: "/v2beta/{parent=conferenceRecords/*}/recordings"
164    };
165    option (google.api.method_signature) = "parent";
166  }
167
168  // [Developer Preview](https://developers.google.com/workspace/preview).
169  // Gets a transcript by transcript ID.
170  rpc GetTranscript(GetTranscriptRequest) returns (Transcript) {
171    option (google.api.http) = {
172      get: "/v2beta/{name=conferenceRecords/*/transcripts/*}"
173    };
174    option (google.api.method_signature) = "name";
175  }
176
177  // [Developer Preview](https://developers.google.com/workspace/preview).
178  // Lists the set of transcripts from the conference record.
179  rpc ListTranscripts(ListTranscriptsRequest)
180      returns (ListTranscriptsResponse) {
181    option (google.api.http) = {
182      get: "/v2beta/{parent=conferenceRecords/*}/transcripts"
183    };
184    option (google.api.method_signature) = "parent";
185  }
186
187  // [Developer Preview](https://developers.google.com/workspace/preview).
188  // Gets a `TranscriptEntry` resource by entry ID.
189  //
190  // Note: The transcript entries returned by the Google Meet API might not
191  // match the transcription found in the Google Docs transcript file. This can
192  // occur when the Google Docs transcript file is modified after generation.
193  rpc GetTranscriptEntry(GetTranscriptEntryRequest) returns (TranscriptEntry) {
194    option (google.api.http) = {
195      get: "/v2beta/{name=conferenceRecords/*/transcripts/*/entries/*}"
196    };
197    option (google.api.method_signature) = "name";
198  }
199
200  // [Developer Preview](https://developers.google.com/workspace/preview).
201  // Lists the structured transcript entries per transcript. By default, ordered
202  // by start time and in ascending order.
203  //
204  // Note: The transcript entries returned by the Google Meet API might not
205  // match the transcription found in the Google Docs transcript file. This can
206  // occur when the Google Docs transcript file is modified after generation.
207  rpc ListTranscriptEntries(ListTranscriptEntriesRequest)
208      returns (ListTranscriptEntriesResponse) {
209    option (google.api.http) = {
210      get: "/v2beta/{parent=conferenceRecords/*/transcripts/*}/entries"
211    };
212    option (google.api.method_signature) = "parent";
213  }
214}
215
216// Request to create a space.
217message CreateSpaceRequest {
218  // Space to be created. As of May 2023, the input space can be empty. Later on
219  // the input space can be non-empty when space configuration is introduced.
220  Space space = 1;
221}
222
223// Request to get a space.
224message GetSpaceRequest {
225  // Required. Resource name of the space.
226  string name = 1 [
227    (google.api.field_behavior) = REQUIRED,
228    (google.api.resource_reference) = { type: "meet.googleapis.com/Space" }
229  ];
230}
231
232// Request to update a space.
233message UpdateSpaceRequest {
234  // Required. Space to be updated.
235  Space space = 1 [(google.api.field_behavior) = REQUIRED];
236
237  // Optional. Field mask used to specify the fields to be updated in the space.
238  // If update_mask isn't provided, it defaults to '*' and updates all
239  // fields provided in the request, including deleting fields not set in the
240  // request.
241  google.protobuf.FieldMask update_mask = 2
242      [(google.api.field_behavior) = OPTIONAL];
243}
244
245// Request to end an ongoing conference of a space.
246message EndActiveConferenceRequest {
247  // Required. Resource name of the space.
248  string name = 1 [
249    (google.api.field_behavior) = REQUIRED,
250    (google.api.resource_reference) = { type: "meet.googleapis.com/Space" }
251  ];
252}
253
254// Request to get a conference record.
255message GetConferenceRecordRequest {
256  // Required. Resource name of the conference.
257  string name = 1 [
258    (google.api.field_behavior) = REQUIRED,
259    (google.api.resource_reference) = {
260      type: "meet.googleapis.com/ConferenceRecord"
261    }
262  ];
263}
264
265// Request to fetch list of conference records per user.
266message ListConferenceRecordsRequest {
267  // Optional. Maximum number of conference records to return. The service might
268  // return fewer than this value. If unspecified, at most 25 conference records
269  // are returned. The maximum value is 100; values above 100 are coerced to
270  // 100. Maximum might change in the future.
271  int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL];
272
273  // Optional. Page token returned from previous List Call.
274  string page_token = 2 [(google.api.field_behavior) = OPTIONAL];
275
276  // Optional. User specified filtering condition in EBNF format. The following
277  // are the filterable fields:
278  //
279  // * `space.meeting_code`
280  // * `space.name`
281  // * `start_time`
282  // * `end_time`
283  //
284  // For example, `space.meeting_code = "abc-mnop-xyz"`.
285  string filter = 3 [(google.api.field_behavior) = OPTIONAL];
286}
287
288// Response of ListConferenceRecords method.
289message ListConferenceRecordsResponse {
290  // List of conferences in one page.
291  repeated ConferenceRecord conference_records = 1;
292
293  // Token to be circulated back for further List call if current List does NOT
294  // include all the Conferences. Unset if all conferences have been returned.
295  string next_page_token = 2;
296}
297
298// Request to get a Participant.
299message GetParticipantRequest {
300  // Required. Resource name of the participant.
301  string name = 1 [
302    (google.api.field_behavior) = REQUIRED,
303    (google.api.resource_reference) = {
304      type: "meet.googleapis.com/Participant"
305    }
306  ];
307}
308
309// Request to fetch list of participant per conference.
310message ListParticipantsRequest {
311  // Required. Format: `conferenceRecords/{conference_record}`
312  string parent = 1 [
313    (google.api.field_behavior) = REQUIRED,
314    (google.api.resource_reference) = {
315      child_type: "meet.googleapis.com/Participant"
316    }
317  ];
318
319  // Maximum number of participants to return. The service might return fewer
320  // than this value.
321  // If unspecified, at most 100 participants are returned.
322  // The maximum value is 250; values above 250 are coerced to 250.
323  // Maximum might change in the future.
324  int32 page_size = 2;
325
326  // Page token returned from previous List Call.
327  string page_token = 3;
328
329  // Optional. User specified filtering condition in EBNF format. The following
330  // are the filterable fields:
331  //
332  // * `earliest_start_time`
333  // * `latest_end_time`
334  //
335  // For example, `latest_end_time IS NULL` returns active participants in
336  // the conference.
337  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
338}
339
340// Response of ListParticipants method.
341message ListParticipantsResponse {
342  // List of participants in one page.
343  repeated Participant participants = 1;
344
345  // Token to be circulated back for further List call if current List doesn't
346  // include all the participants. Unset if all participants are returned.
347  string next_page_token = 2;
348
349  // Total, exact number of `participants`. By default, this field isn't
350  // included in the response. Set the field mask in
351  // [SystemParameterContext](https://cloud.google.com/apis/docs/system-parameters)
352  // to receive this field in the response.
353  int32 total_size = 3;
354}
355
356// Request to get a participant session.
357message GetParticipantSessionRequest {
358  // Required. Resource name of the participant.
359  string name = 1 [
360    (google.api.field_behavior) = REQUIRED,
361    (google.api.resource_reference) = {
362      type: "meet.googleapis.com/ParticipantSession"
363    }
364  ];
365}
366
367// Request to fetch list of participant sessions per conference record per
368// participant.
369message ListParticipantSessionsRequest {
370  // Required. Format:
371  // `conferenceRecords/{conference_record}/participants/{participant}`
372  string parent = 1 [
373    (google.api.field_behavior) = REQUIRED,
374    (google.api.resource_reference) = {
375      child_type: "meet.googleapis.com/ParticipantSession"
376    }
377  ];
378
379  // Optional. Maximum number of participant sessions to return. The service
380  // might return fewer than this value. If unspecified, at most 100
381  // participants are returned. The maximum value is 250; values above 250 are
382  // coerced to 250. Maximum might change in the future.
383  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
384
385  // Optional. Page token returned from previous List Call.
386  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
387
388  // Optional. User specified filtering condition in EBNF format. The following
389  // are the filterable fields:
390  //
391  // * `start_time`
392  // * `end_time`
393  //
394  // For example, `end_time IS NULL` returns active participant sessions in
395  // the conference record.
396  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
397}
398
399// Response of ListParticipants method.
400message ListParticipantSessionsResponse {
401  // List of participants in one page.
402  repeated ParticipantSession participant_sessions = 1;
403
404  // Token to be circulated back for further List call if current List doesn't
405  // include all the participants. Unset if all participants are returned.
406  string next_page_token = 2;
407}
408
409// Request message for GetRecording method.
410message GetRecordingRequest {
411  // Required. Resource name of the recording.
412  string name = 1 [
413    (google.api.field_behavior) = REQUIRED,
414    (google.api.resource_reference) = { type: "meet.googleapis.com/Recording" }
415  ];
416}
417
418// Request for ListRecordings method.
419message ListRecordingsRequest {
420  // Required. Format: `conferenceRecords/{conference_record}`
421  string parent = 1 [
422    (google.api.field_behavior) = REQUIRED,
423    (google.api.resource_reference) = {
424      child_type: "meet.googleapis.com/Recording"
425    }
426  ];
427
428  // Maximum number of recordings to return. The service might return fewer
429  // than this value.
430  // If unspecified, at most 10 recordings are returned.
431  // The maximum value is 100; values above 100 are coerced to 100.
432  // Maximum might change in the future.
433  int32 page_size = 2;
434
435  // Page token returned from previous List Call.
436  string page_token = 3;
437}
438
439// Response for ListRecordings method.
440message ListRecordingsResponse {
441  // List of recordings in one page.
442  repeated Recording recordings = 1;
443
444  // Token to be circulated back for further List call if current List doesn't
445  // include all the recordings. Unset if all recordings are returned.
446  string next_page_token = 2;
447}
448
449// Request for GetTranscript method.
450message GetTranscriptRequest {
451  // Required. Resource name of the transcript.
452  string name = 1 [
453    (google.api.field_behavior) = REQUIRED,
454    (google.api.resource_reference) = { type: "meet.googleapis.com/Transcript" }
455  ];
456}
457
458// Request for ListTranscripts method.
459message ListTranscriptsRequest {
460  // Required. Format: `conferenceRecords/{conference_record}`
461  string parent = 1 [
462    (google.api.field_behavior) = REQUIRED,
463    (google.api.resource_reference) = {
464      child_type: "meet.googleapis.com/Transcript"
465    }
466  ];
467
468  // Maximum number of transcripts to return. The service might return fewer
469  // than this value.
470  // If unspecified, at most 10 transcripts are returned.
471  // The maximum value is 100; values above 100 are coerced to 100.
472  // Maximum might change in the future.
473  int32 page_size = 2;
474
475  // Page token returned from previous List Call.
476  string page_token = 3;
477}
478
479// Response for ListTranscripts method.
480message ListTranscriptsResponse {
481  // List of transcripts in one page.
482  repeated Transcript transcripts = 1;
483
484  // Token to be circulated back for further List call if current List doesn't
485  // include all the transcripts. Unset if all transcripts are returned.
486  string next_page_token = 2;
487}
488
489// Request for GetTranscriptEntry method.
490message GetTranscriptEntryRequest {
491  // Required. Resource name of the `TranscriptEntry`.
492  string name = 1 [
493    (google.api.field_behavior) = REQUIRED,
494    (google.api.resource_reference) = {
495      type: "meet.googleapis.com/TranscriptEntry"
496    }
497  ];
498}
499
500// Request for ListTranscriptEntries method.
501message ListTranscriptEntriesRequest {
502  // Required. Format:
503  // `conferenceRecords/{conference_record}/transcripts/{transcript}`
504  string parent = 1 [
505    (google.api.field_behavior) = REQUIRED,
506    (google.api.resource_reference) = {
507      child_type: "meet.googleapis.com/TranscriptEntry"
508    }
509  ];
510
511  // Maximum number of entries to return. The service might return fewer than
512  // this value.
513  // If unspecified, at most 10 entries are returned.
514  // The maximum value is 100; values above 100 are coerced to 100.
515  // Maximum might change in the future.
516  int32 page_size = 2;
517
518  // Page token returned from previous List Call.
519  string page_token = 3;
520}
521
522// Response for ListTranscriptEntries method
523message ListTranscriptEntriesResponse {
524  // List of TranscriptEntries in one page.
525  repeated TranscriptEntry transcript_entries = 1;
526
527  // Token to be circulated back for further List call if current List doesn't
528  // include all the transcript entries. Unset if all entries are returned.
529  string next_page_token = 2;
530}
531