@google-cloud/agentregistry 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,934 @@
1
+ // Copyright 2026 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
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.agentregistry.v1;
18
+
19
+ import "google/api/annotations.proto";
20
+ import "google/api/client.proto";
21
+ import "google/api/field_behavior.proto";
22
+ import "google/api/field_info.proto";
23
+ import "google/api/resource.proto";
24
+ import "google/cloud/agentregistry/v1/agent.proto";
25
+ import "google/cloud/agentregistry/v1/binding.proto";
26
+ import "google/cloud/agentregistry/v1/endpoint.proto";
27
+ import "google/cloud/agentregistry/v1/mcp_server.proto";
28
+ import "google/cloud/agentregistry/v1/service.proto";
29
+ import "google/longrunning/operations.proto";
30
+ import "google/protobuf/empty.proto";
31
+ import "google/protobuf/field_mask.proto";
32
+ import "google/protobuf/timestamp.proto";
33
+
34
+ option csharp_namespace = "Google.Cloud.AgentRegistry.V1";
35
+ option go_package = "cloud.google.com/go/agentregistry/apiv1/agentregistrypb;agentregistrypb";
36
+ option java_multiple_files = true;
37
+ option java_outer_classname = "AgentRegistryServiceProto";
38
+ option java_package = "com.google.cloud.agentregistry.v1";
39
+ option php_namespace = "Google\\Cloud\\AgentRegistry\\V1";
40
+ option ruby_package = "Google::Cloud::AgentRegistry::V1";
41
+
42
+ // Service for managing Agents, Endpoints, McpServers, Services, and Bindings.
43
+ service AgentRegistry {
44
+ option (google.api.default_host) = "agentregistry.googleapis.com";
45
+ option (google.api.oauth_scopes) =
46
+ "https://www.googleapis.com/auth/agentregistry.read-only,"
47
+ "https://www.googleapis.com/auth/agentregistry.read-write,"
48
+ "https://www.googleapis.com/auth/cloud-platform,"
49
+ "https://www.googleapis.com/auth/cloud-platform.read-only";
50
+
51
+ // Lists Agents in a given project and location.
52
+ rpc ListAgents(ListAgentsRequest) returns (ListAgentsResponse) {
53
+ option (google.api.http) = {
54
+ get: "/v1/{parent=projects/*/locations/*}/agents"
55
+ };
56
+ option (google.api.method_signature) = "parent";
57
+ }
58
+
59
+ // Searches Agents in a given project and location.
60
+ rpc SearchAgents(SearchAgentsRequest) returns (SearchAgentsResponse) {
61
+ option (google.api.http) = {
62
+ post: "/v1/{parent=projects/*/locations/*}/agents:search"
63
+ body: "*"
64
+ };
65
+ option (google.api.method_signature) = "parent";
66
+ }
67
+
68
+ // Gets details of a single Agent.
69
+ rpc GetAgent(GetAgentRequest) returns (Agent) {
70
+ option (google.api.http) = {
71
+ get: "/v1/{name=projects/*/locations/*/agents/*}"
72
+ };
73
+ option (google.api.method_signature) = "name";
74
+ }
75
+
76
+ // Lists Endpoints in a given project and location.
77
+ rpc ListEndpoints(ListEndpointsRequest) returns (ListEndpointsResponse) {
78
+ option (google.api.http) = {
79
+ get: "/v1/{parent=projects/*/locations/*}/endpoints"
80
+ };
81
+ option (google.api.method_signature) = "parent";
82
+ }
83
+
84
+ // Gets details of a single Endpoint.
85
+ rpc GetEndpoint(GetEndpointRequest) returns (Endpoint) {
86
+ option (google.api.http) = {
87
+ get: "/v1/{name=projects/*/locations/*/endpoints/*}"
88
+ };
89
+ option (google.api.method_signature) = "name";
90
+ }
91
+
92
+ // Lists McpServers in a given project and location.
93
+ rpc ListMcpServers(ListMcpServersRequest) returns (ListMcpServersResponse) {
94
+ option (google.api.http) = {
95
+ get: "/v1/{parent=projects/*/locations/*}/mcpServers"
96
+ };
97
+ option (google.api.method_signature) = "parent";
98
+ }
99
+
100
+ // Searches McpServers in a given project and location.
101
+ rpc SearchMcpServers(SearchMcpServersRequest)
102
+ returns (SearchMcpServersResponse) {
103
+ option (google.api.http) = {
104
+ post: "/v1/{parent=projects/*/locations/*}/mcpServers:search"
105
+ body: "*"
106
+ };
107
+ option (google.api.method_signature) = "parent";
108
+ }
109
+
110
+ // Gets details of a single McpServer.
111
+ rpc GetMcpServer(GetMcpServerRequest) returns (McpServer) {
112
+ option (google.api.http) = {
113
+ get: "/v1/{name=projects/*/locations/*/mcpServers/*}"
114
+ };
115
+ option (google.api.method_signature) = "name";
116
+ }
117
+
118
+ // Lists Services in a given project and location.
119
+ rpc ListServices(ListServicesRequest) returns (ListServicesResponse) {
120
+ option (google.api.http) = {
121
+ get: "/v1/{parent=projects/*/locations/*}/services"
122
+ };
123
+ option (google.api.method_signature) = "parent";
124
+ }
125
+
126
+ // Gets details of a single Service.
127
+ rpc GetService(GetServiceRequest) returns (Service) {
128
+ option (google.api.http) = {
129
+ get: "/v1/{name=projects/*/locations/*/services/*}"
130
+ };
131
+ option (google.api.method_signature) = "name";
132
+ }
133
+
134
+ // Creates a new Service in a given project and location.
135
+ rpc CreateService(CreateServiceRequest)
136
+ returns (google.longrunning.Operation) {
137
+ option (google.api.http) = {
138
+ post: "/v1/{parent=projects/*/locations/*}/services"
139
+ body: "service"
140
+ };
141
+ option (google.api.method_signature) = "parent,service,service_id";
142
+ option (google.longrunning.operation_info) = {
143
+ response_type: "Service"
144
+ metadata_type: "OperationMetadata"
145
+ };
146
+ }
147
+
148
+ // Updates the parameters of a single Service.
149
+ rpc UpdateService(UpdateServiceRequest)
150
+ returns (google.longrunning.Operation) {
151
+ option (google.api.http) = {
152
+ patch: "/v1/{service.name=projects/*/locations/*/services/*}"
153
+ body: "service"
154
+ };
155
+ option (google.api.method_signature) = "service,update_mask";
156
+ option (google.longrunning.operation_info) = {
157
+ response_type: "Service"
158
+ metadata_type: "OperationMetadata"
159
+ };
160
+ }
161
+
162
+ // Deletes a single Service.
163
+ rpc DeleteService(DeleteServiceRequest)
164
+ returns (google.longrunning.Operation) {
165
+ option (google.api.http) = {
166
+ delete: "/v1/{name=projects/*/locations/*/services/*}"
167
+ };
168
+ option (google.api.method_signature) = "name";
169
+ option (google.longrunning.operation_info) = {
170
+ response_type: "google.protobuf.Empty"
171
+ metadata_type: "OperationMetadata"
172
+ };
173
+ }
174
+
175
+ // Lists Bindings in a given project and location.
176
+ rpc ListBindings(ListBindingsRequest) returns (ListBindingsResponse) {
177
+ option (google.api.http) = {
178
+ get: "/v1/{parent=projects/*/locations/*}/bindings"
179
+ };
180
+ option (google.api.method_signature) = "parent";
181
+ }
182
+
183
+ // Gets details of a single Binding.
184
+ rpc GetBinding(GetBindingRequest) returns (Binding) {
185
+ option (google.api.http) = {
186
+ get: "/v1/{name=projects/*/locations/*/bindings/*}"
187
+ };
188
+ option (google.api.method_signature) = "name";
189
+ }
190
+
191
+ // Creates a new Binding in a given project and location.
192
+ rpc CreateBinding(CreateBindingRequest)
193
+ returns (google.longrunning.Operation) {
194
+ option (google.api.http) = {
195
+ post: "/v1/{parent=projects/*/locations/*}/bindings"
196
+ body: "binding"
197
+ };
198
+ option (google.api.method_signature) = "parent,binding,binding_id";
199
+ option (google.longrunning.operation_info) = {
200
+ response_type: "Binding"
201
+ metadata_type: "OperationMetadata"
202
+ };
203
+ }
204
+
205
+ // Updates the parameters of a single Binding.
206
+ rpc UpdateBinding(UpdateBindingRequest)
207
+ returns (google.longrunning.Operation) {
208
+ option (google.api.http) = {
209
+ patch: "/v1/{binding.name=projects/*/locations/*/bindings/*}"
210
+ body: "binding"
211
+ };
212
+ option (google.api.method_signature) = "binding,update_mask";
213
+ option (google.longrunning.operation_info) = {
214
+ response_type: "Binding"
215
+ metadata_type: "OperationMetadata"
216
+ };
217
+ }
218
+
219
+ // Deletes a single Binding.
220
+ rpc DeleteBinding(DeleteBindingRequest)
221
+ returns (google.longrunning.Operation) {
222
+ option (google.api.http) = {
223
+ delete: "/v1/{name=projects/*/locations/*/bindings/*}"
224
+ };
225
+ option (google.api.method_signature) = "name";
226
+ option (google.longrunning.operation_info) = {
227
+ response_type: "google.protobuf.Empty"
228
+ metadata_type: "OperationMetadata"
229
+ };
230
+ }
231
+
232
+ // Fetches available Bindings.
233
+ rpc FetchAvailableBindings(FetchAvailableBindingsRequest)
234
+ returns (FetchAvailableBindingsResponse) {
235
+ option (google.api.http) = {
236
+ get: "/v1/{parent=projects/*/locations/*}/bindings:fetchAvailable"
237
+ };
238
+ option (google.api.method_signature) = "parent";
239
+ }
240
+ }
241
+
242
+ // Message for requesting list of Agents
243
+ message ListAgentsRequest {
244
+ // Required. Parent value for ListAgentsRequest
245
+ string parent = 1 [
246
+ (google.api.field_behavior) = REQUIRED,
247
+ (google.api.resource_reference) = {
248
+ child_type: "agentregistry.googleapis.com/Agent"
249
+ }
250
+ ];
251
+
252
+ // Optional. Requested page size. Server may return fewer items than
253
+ // requested. If unspecified, server will pick an appropriate default.
254
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
255
+
256
+ // Optional. A token identifying a page of results the server should return.
257
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
258
+
259
+ // Optional. Filtering results
260
+ string filter = 4 [(google.api.field_behavior) = OPTIONAL];
261
+
262
+ // Optional. Hint for how to order the results
263
+ string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
264
+ }
265
+
266
+ // Message for response to listing Agents
267
+ message ListAgentsResponse {
268
+ // The list of Agents.
269
+ repeated Agent agents = 1;
270
+
271
+ // A token identifying a page of results the server should return.
272
+ string next_page_token = 2;
273
+ }
274
+
275
+ // Message for searching Agents
276
+ message SearchAgentsRequest {
277
+ // Required. Parent value for SearchAgentsRequest. Format:
278
+ // `projects/{project}/locations/{location}`.
279
+ string parent = 1 [
280
+ (google.api.field_behavior) = REQUIRED,
281
+ (google.api.resource_reference) = {
282
+ child_type: "agentregistry.googleapis.com/Agent"
283
+ }
284
+ ];
285
+
286
+ // Optional. Search criteria used to select the Agents to return. If no search
287
+ // criteria is specified then all accessible Agents will be returned.
288
+ //
289
+ // Search expressions can be used to restrict results based upon searchable
290
+ // fields, where the operators can be used along with the suffix wildcard
291
+ // symbol `*`. See
292
+ // [instructions](https://docs.cloud.google.com/agent-registry/search-agents-and-tools)
293
+ // for more details.
294
+ //
295
+ // Allowed operators: `=`, `:`, `NOT`, `AND`, `OR`, and `()`.
296
+ //
297
+ // Searchable fields:
298
+ //
299
+ // | Field | `=` | `:` | `*` | Keyword Search |
300
+ // |--------------------|-----|-----|-----|----------------|
301
+ // | agentId | Yes | Yes | Yes | Included |
302
+ // | name | No | Yes | Yes | Included |
303
+ // | displayName | No | Yes | Yes | Included |
304
+ // | description | No | Yes | No | Included |
305
+ // | skills | No | Yes | No | Included |
306
+ // | skills.id | No | Yes | No | Included |
307
+ // | skills.name | No | Yes | No | Included |
308
+ // | skills.description | No | Yes | No | Included |
309
+ // | skills.tags | No | Yes | No | Included |
310
+ // | skills.examples | No | Yes | No | Included |
311
+ //
312
+ // Examples:
313
+ //
314
+ // * `agentId="urn:agent:projects-123:projects:123:locations:us-central1:reasoningEngines:1234"`
315
+ // to find the agent with the specified agent ID.
316
+ // * `name:important` to find agents whose name contains `important` as a
317
+ // word.
318
+ // * `displayName:works*` to find agents whose display name contains words
319
+ // that start with `works`.
320
+ // * `skills.tags:test` to find agents whose skills tags contain `test`.
321
+ // * `planner OR booking` to find agents whose metadata contains the words
322
+ // `planner` or `booking`.
323
+ string search_string = 3 [(google.api.field_behavior) = OPTIONAL];
324
+
325
+ // Optional. The maximum number of search results to return per page. The page
326
+ // size is capped at `100`, even if a larger value is specified. A negative
327
+ // value will result in an `INVALID_ARGUMENT` error. If unspecified or set to
328
+ // `0`, a default value of `20` will be used. The server may return fewer
329
+ // results than requested.
330
+ int32 page_size = 6 [(google.api.field_behavior) = OPTIONAL];
331
+
332
+ // Optional. If present, retrieve the next batch of results from the preceding
333
+ // call to this method. `page_token` must be the value of `next_page_token`
334
+ // from the previous response. The values of all other method parameters, must
335
+ // be identical to those in the previous call.
336
+ string page_token = 7 [(google.api.field_behavior) = OPTIONAL];
337
+ }
338
+
339
+ // Message for response to searching Agents
340
+ message SearchAgentsResponse {
341
+ // A list of Agents that match the `search_string`.
342
+ repeated Agent agents = 1;
343
+
344
+ // If there are more results than those appearing in this response, then
345
+ // `next_page_token` is included. To get the next set of results, call this
346
+ // method again using the value of `next_page_token` as `page_token`.
347
+ string next_page_token = 2;
348
+ }
349
+
350
+ // Message for getting a Agent
351
+ message GetAgentRequest {
352
+ // Required. Name of the resource
353
+ string name = 1 [
354
+ (google.api.field_behavior) = REQUIRED,
355
+ (google.api.resource_reference) = {
356
+ type: "agentregistry.googleapis.com/Agent"
357
+ }
358
+ ];
359
+ }
360
+
361
+ // Message for requesting list of Endpoints
362
+ message ListEndpointsRequest {
363
+ // Required. The project and location to list endpoints in.
364
+ // Expected format: `projects/{project}/locations/{location}`.
365
+ string parent = 1 [
366
+ (google.api.field_behavior) = REQUIRED,
367
+ (google.api.resource_reference) = {
368
+ child_type: "agentregistry.googleapis.com/Endpoint"
369
+ }
370
+ ];
371
+
372
+ // Optional. Requested page size. Server may return fewer items than
373
+ // requested. If unspecified, server will pick an appropriate default.
374
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
375
+
376
+ // Optional. A token identifying a page of results the server should return.
377
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
378
+
379
+ // Optional. A query string used to filter the list of endpoints returned.
380
+ // The filter expression must follow AIP-160 syntax.
381
+ //
382
+ // Filtering is supported on the `name`, `display_name`, `description`,
383
+ // `version`, and `interfaces` fields.
384
+ //
385
+ // Some examples:
386
+ //
387
+ // * `name = "projects/p1/locations/l1/endpoints/e1"`
388
+ // * `display_name = "my-endpoint"`
389
+ // * `description = "my-endpoint-description"`
390
+ // * `version = "v1"`
391
+ // * `interfaces.transport = "HTTP_JSON"`
392
+ string filter = 4 [(google.api.field_behavior) = OPTIONAL];
393
+ }
394
+
395
+ // Message for response to listing Endpoints
396
+ message ListEndpointsResponse {
397
+ // The list of Endpoint resources matching the parent and filter criteria in
398
+ // the request. Each Endpoint resource follows the format:
399
+ // `projects/{project}/locations/{location}/endpoints/{endpoint}`.
400
+ repeated Endpoint endpoints = 1;
401
+
402
+ // A token identifying a page of results the server should return.
403
+ // Used in
404
+ // [page_token][google.cloud.agentregistry.v1main.ListEndpointsRequest.page_token].
405
+ string next_page_token = 2;
406
+ }
407
+
408
+ // Message for getting a Endpoint
409
+ message GetEndpointRequest {
410
+ // Required. The name of the endpoint to retrieve.
411
+ // Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`
412
+ string name = 1 [
413
+ (google.api.field_behavior) = REQUIRED,
414
+ (google.api.resource_reference) = {
415
+ type: "agentregistry.googleapis.com/Endpoint"
416
+ }
417
+ ];
418
+ }
419
+
420
+ // Message for requesting list of McpServers
421
+ message ListMcpServersRequest {
422
+ // Required. Parent value for ListMcpServersRequest. Format:
423
+ // `projects/{project}/locations/{location}`.
424
+ string parent = 1 [
425
+ (google.api.field_behavior) = REQUIRED,
426
+ (google.api.resource_reference) = {
427
+ child_type: "agentregistry.googleapis.com/McpServer"
428
+ }
429
+ ];
430
+
431
+ // Optional. Requested page size. Server may return fewer items than
432
+ // requested. If unspecified, server will pick an appropriate default.
433
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
434
+
435
+ // Optional. A token identifying a page of results the server should return.
436
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
437
+
438
+ // Optional. Filtering results
439
+ string filter = 4 [(google.api.field_behavior) = OPTIONAL];
440
+
441
+ // Optional. Hint for how to order the results
442
+ string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
443
+ }
444
+
445
+ // Message for response to listing McpServers
446
+ message ListMcpServersResponse {
447
+ // The list of McpServers.
448
+ repeated McpServer mcp_servers = 1;
449
+
450
+ // A token identifying a page of results the server should return.
451
+ string next_page_token = 2;
452
+ }
453
+
454
+ // Message for searching MCP Servers
455
+ message SearchMcpServersRequest {
456
+ // Required. Parent value for SearchMcpServersRequest. Format:
457
+ // `projects/{project}/locations/{location}`.
458
+ string parent = 1 [
459
+ (google.api.field_behavior) = REQUIRED,
460
+ (google.api.resource_reference) = {
461
+ child_type: "agentregistry.googleapis.com/McpServer"
462
+ }
463
+ ];
464
+
465
+ // Optional. Search criteria used to select the MCP Servers to return. If no
466
+ // search criteria is specified then all accessible MCP Servers will be
467
+ // returned.
468
+ //
469
+ // Search expressions can be used to restrict results based upon searchable
470
+ // fields, where the operators can be used along with the suffix wildcard
471
+ // symbol `*`. See
472
+ // [instructions](https://docs.cloud.google.com/agent-registry/search-agents-and-tools)
473
+ // for more details.
474
+ //
475
+ // Allowed operators: `=`, `:`, `NOT`, `AND`, `OR`, and `()`.
476
+ //
477
+ // Searchable fields:
478
+ //
479
+ // | Field | `=` | `:` | `*` | Keyword Search |
480
+ // |--------------------|-----|-----|-----|----------------|
481
+ // | mcpServerId | Yes | Yes | Yes | Included |
482
+ // | name | No | Yes | Yes | Included |
483
+ // | displayName | No | Yes | Yes | Included |
484
+ //
485
+ // Examples:
486
+ //
487
+ // * `mcpServerId="urn:mcp:projects-123:projects:123:locations:us-central1:agentregistry:services:service-id"`
488
+ // to find the MCP Server with the specified MCP Server ID.
489
+ // * `name:important` to find MCP Servers whose name contains `important` as a
490
+ // word.
491
+ // * `displayName:works*` to find MCP Servers whose display name contains
492
+ // words that start with `works`.
493
+ // * `planner OR booking` to find MCP Servers whose metadata contains the
494
+ // words `planner` or `booking`.
495
+ // * `mcpServerId:service-id AND (displayName:planner OR
496
+ // displayName:booking)` to find MCP Servers whose MCP Server ID contains
497
+ // `service-id` and whose display name contains `planner` or
498
+ // `booking`.
499
+ string search_string = 3 [(google.api.field_behavior) = OPTIONAL];
500
+
501
+ // Optional. The maximum number of search results to return per page. The page
502
+ // size is capped at `100`, even if a larger value is specified. A negative
503
+ // value will result in an `INVALID_ARGUMENT` error. If unspecified or set to
504
+ // `0`, a default value of `20` will be used. The server may return fewer
505
+ // results than requested.
506
+ int32 page_size = 6 [(google.api.field_behavior) = OPTIONAL];
507
+
508
+ // Optional. If present, retrieve the next batch of results from the preceding
509
+ // call to this method. `page_token` must be the value of `next_page_token`
510
+ // from the previous response. The values of all other method parameters, must
511
+ // be identical to those in the previous call.
512
+ string page_token = 7 [(google.api.field_behavior) = OPTIONAL];
513
+ }
514
+
515
+ // Message for response to searching MCP Servers
516
+ message SearchMcpServersResponse {
517
+ // A list of McpServers that match the `search_string`.
518
+ repeated McpServer mcp_servers = 1;
519
+
520
+ // If there are more results than those appearing in this response, then
521
+ // `next_page_token` is included. To get the next set of results, call this
522
+ // method again using the value of `next_page_token` as `page_token`.
523
+ string next_page_token = 2;
524
+ }
525
+
526
+ // Message for getting a McpServer
527
+ message GetMcpServerRequest {
528
+ // Required. Name of the resource
529
+ string name = 1 [
530
+ (google.api.field_behavior) = REQUIRED,
531
+ (google.api.resource_reference) = {
532
+ type: "agentregistry.googleapis.com/McpServer"
533
+ }
534
+ ];
535
+ }
536
+
537
+ // Message for requesting list of Services
538
+ message ListServicesRequest {
539
+ // Required. The project and location to list services in.
540
+ // Expected format: `projects/{project}/locations/{location}`.
541
+ string parent = 1 [
542
+ (google.api.field_behavior) = REQUIRED,
543
+ (google.api.resource_reference) = {
544
+ child_type: "agentregistry.googleapis.com/Service"
545
+ }
546
+ ];
547
+
548
+ // Optional. Requested page size. Server may return fewer items than
549
+ // requested. If unspecified, server will pick an appropriate default.
550
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
551
+
552
+ // Optional. A token identifying a page of results the server should return.
553
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
554
+
555
+ // Optional. A query string used to filter the list of services returned.
556
+ // The filter expression must follow AIP-160 syntax.
557
+ //
558
+ // Filtering is supported on the `name`, `display_name`, `description`,
559
+ // and `labels` fields.
560
+ //
561
+ // Some examples:
562
+ //
563
+ // * `name = "projects/p1/locations/l1/services/s1"`
564
+ // * `display_name = "my-service"`
565
+ // * `description : "myservice description"`
566
+ // * `labels.env = "prod"`
567
+ string filter = 4 [(google.api.field_behavior) = OPTIONAL];
568
+ }
569
+
570
+ // Message for response to listing Services
571
+ message ListServicesResponse {
572
+ // The list of Service resources matching the parent and filter criteria in
573
+ // the request. Each Service resource follows the format:
574
+ // `projects/{project}/locations/{location}/services/{service}`.
575
+ repeated Service services = 1;
576
+
577
+ // A token identifying a page of results the server should return.
578
+ // Used in
579
+ // [page_token][google.cloud.agentregistry.v1main.ListServicesRequest.page_token].
580
+ string next_page_token = 2;
581
+ }
582
+
583
+ // Message for getting a Service
584
+ message GetServiceRequest {
585
+ // Required. The name of the Service.
586
+ // Format: `projects/{project}/locations/{location}/services/{service}`.
587
+ string name = 1 [
588
+ (google.api.field_behavior) = REQUIRED,
589
+ (google.api.resource_reference) = {
590
+ type: "agentregistry.googleapis.com/Service"
591
+ }
592
+ ];
593
+ }
594
+
595
+ // Message for creating a Service
596
+ message CreateServiceRequest {
597
+ // Required. The project and location to create the Service in.
598
+ // Expected format: `projects/{project}/locations/{location}`.
599
+ string parent = 1 [
600
+ (google.api.field_behavior) = REQUIRED,
601
+ (google.api.resource_reference) = {
602
+ child_type: "agentregistry.googleapis.com/Service"
603
+ }
604
+ ];
605
+
606
+ // Required. The ID to use for the service, which will become the final
607
+ // component of the service's resource name.
608
+ //
609
+ // This value should be 4-63 characters, and valid characters
610
+ // are `/[a-z][0-9]-/`.
611
+ string service_id = 2 [(google.api.field_behavior) = REQUIRED];
612
+
613
+ // Required. The Service resource that is being created.
614
+ // Format: `projects/{project}/locations/{location}/services/{service}`.
615
+ Service service = 3 [(google.api.field_behavior) = REQUIRED];
616
+
617
+ // Optional. An optional request ID to identify requests. Specify a unique
618
+ // request ID so that if you must retry your request, the server will know to
619
+ // ignore the request if it has already been completed. The server will
620
+ // guarantee that for at least 60 minutes since the first request.
621
+ //
622
+ // For example, consider a situation where you make an initial request and the
623
+ // request times out. If you make the request again with the same request
624
+ // ID, the server can check if original operation with the same request ID
625
+ // was received, and if so, will ignore the second request. This prevents
626
+ // clients from accidentally creating duplicate commitments.
627
+ //
628
+ // The request ID must be a valid UUID with the exception that zero UUID is
629
+ // not supported (00000000-0000-0000-0000-000000000000).
630
+ string request_id = 4 [
631
+ (google.api.field_info).format = UUID4,
632
+ (google.api.field_behavior) = OPTIONAL
633
+ ];
634
+ }
635
+
636
+ // Message for fetching available Bindings.
637
+ message FetchAvailableBindingsRequest {
638
+ // The reference of the source Agent.
639
+ oneof source {
640
+ // The identifier of the source Agent.
641
+ // Format:
642
+ //
643
+ // * `urn:agent:{publisher}:{namespace}:{name}`
644
+ string source_identifier = 2;
645
+ }
646
+
647
+ // The reference of the target Agent Registry resource.
648
+ oneof target {
649
+ // Optional. The identifier of the target Agent, MCP Server, or Endpoint.
650
+ // Format:
651
+ //
652
+ // * `urn:agent:{publisher}:{namespace}:{name}`
653
+ // * `urn:mcp:{publisher}:{namespace}:{name}`
654
+ // * `urn:endpoint:{publisher}:{namespace}:{name}`
655
+ string target_identifier = 3 [(google.api.field_behavior) = OPTIONAL];
656
+ }
657
+
658
+ // Required. The parent, in the format
659
+ // `projects/{project}/locations/{location}`.
660
+ string parent = 1 [
661
+ (google.api.field_behavior) = REQUIRED,
662
+ (google.api.resource_reference) = {
663
+ child_type: "agentregistry.googleapis.com/Binding"
664
+ }
665
+ ];
666
+
667
+ // Optional. Requested page size. Server may return fewer items than
668
+ // requested. Page size is 500 if unspecified and is capped at `500` even if a
669
+ // larger value is given.
670
+ int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL];
671
+
672
+ // Optional. A token identifying a page of results the server should return.
673
+ string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
674
+ }
675
+
676
+ // Message for response to fetching available Bindings.
677
+ message FetchAvailableBindingsResponse {
678
+ // The list of Bindings.
679
+ repeated Binding bindings = 1;
680
+
681
+ // A token identifying a page of results the server should return.
682
+ string next_page_token = 2;
683
+ }
684
+
685
+ // Message for updating a Service
686
+ message UpdateServiceRequest {
687
+ // Optional. Field mask is used to specify the fields to be overwritten in the
688
+ // Service resource by the update.
689
+ // The fields specified in the update_mask are relative to the resource, not
690
+ // the full request. A field will be overwritten if it is in the mask. If the
691
+ // user does not provide a mask then all fields present in the request will be
692
+ // overwritten.
693
+ google.protobuf.FieldMask update_mask = 1
694
+ [(google.api.field_behavior) = OPTIONAL];
695
+
696
+ // Required. The Service resource that is being updated.
697
+ // Format: `projects/{project}/locations/{location}/services/{service}`.
698
+ Service service = 2 [(google.api.field_behavior) = REQUIRED];
699
+
700
+ // Optional. An optional request ID to identify requests. Specify a unique
701
+ // request ID so that if you must retry your request, the server will know to
702
+ // ignore the request if it has already been completed. The server will
703
+ // guarantee that for at least 60 minutes since the first request.
704
+ //
705
+ // For example, consider a situation where you make an initial request and the
706
+ // request times out. If you make the request again with the same request
707
+ // ID, the server can check if original operation with the same request ID
708
+ // was received, and if so, will ignore the second request. This prevents
709
+ // clients from accidentally creating duplicate commitments.
710
+ //
711
+ // The request ID must be a valid UUID with the exception that zero UUID is
712
+ // not supported (00000000-0000-0000-0000-000000000000).
713
+ string request_id = 3 [
714
+ (google.api.field_info).format = UUID4,
715
+ (google.api.field_behavior) = OPTIONAL
716
+ ];
717
+ }
718
+
719
+ // Message for deleting a Service
720
+ message DeleteServiceRequest {
721
+ // Required. The name of the Service.
722
+ // Format: `projects/{project}/locations/{location}/services/{service}`.
723
+ string name = 1 [
724
+ (google.api.field_behavior) = REQUIRED,
725
+ (google.api.resource_reference) = {
726
+ type: "agentregistry.googleapis.com/Service"
727
+ }
728
+ ];
729
+
730
+ // Optional. An optional request ID to identify requests. Specify a unique
731
+ // request ID so that if you must retry your request, the server will know to
732
+ // ignore the request if it has already been completed. The server will
733
+ // guarantee that for at least 60 minutes after the first request.
734
+ //
735
+ // For example, consider a situation where you make an initial request and the
736
+ // request times out. If you make the request again with the same request
737
+ // ID, the server can check if original operation with the same request ID
738
+ // was received, and if so, will ignore the second request. This prevents
739
+ // clients from accidentally creating duplicate commitments.
740
+ //
741
+ // The request ID must be a valid UUID with the exception that zero UUID is
742
+ // not supported (00000000-0000-0000-0000-000000000000).
743
+ string request_id = 2 [
744
+ (google.api.field_info).format = UUID4,
745
+ (google.api.field_behavior) = OPTIONAL
746
+ ];
747
+ }
748
+
749
+ // Represents the metadata of the long-running operation.
750
+ message OperationMetadata {
751
+ // Output only. The time the operation was created.
752
+ google.protobuf.Timestamp create_time = 1
753
+ [(google.api.field_behavior) = OUTPUT_ONLY];
754
+
755
+ // Output only. The time the operation finished running.
756
+ google.protobuf.Timestamp end_time = 2
757
+ [(google.api.field_behavior) = OUTPUT_ONLY];
758
+
759
+ // Output only. Server-defined resource path for the target of the operation.
760
+ string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
761
+
762
+ // Output only. Name of the verb executed by the operation.
763
+ string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
764
+
765
+ // Output only. Human-readable status of the operation, if any.
766
+ string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
767
+
768
+ // Output only. Identifies whether the user has requested cancellation
769
+ // of the operation. Operations that have been cancelled successfully
770
+ // have
771
+ // [google.longrunning.Operation.error][google.longrunning.Operation.error]
772
+ // value with a [google.rpc.Status.code][google.rpc.Status.code] of `1`,
773
+ // corresponding to `Code.CANCELLED`.
774
+ bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
775
+
776
+ // Output only. API version used to start the operation.
777
+ string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
778
+ }
779
+
780
+ // Message for requesting a list of Bindings.
781
+ message ListBindingsRequest {
782
+ // Required. The project and location to list bindings in.
783
+ // Expected format: `projects/{project}/locations/{location}`.
784
+ string parent = 1 [
785
+ (google.api.field_behavior) = REQUIRED,
786
+ (google.api.resource_reference) = {
787
+ child_type: "agentregistry.googleapis.com/Binding"
788
+ }
789
+ ];
790
+
791
+ // Optional. Requested page size. Server may return fewer items than
792
+ // requested. Page size is 500 if unspecified and is capped at `500` even if a
793
+ // larger value is given.
794
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
795
+
796
+ // Optional. A token identifying a page of results the server should return.
797
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
798
+
799
+ // Optional. A query string used to filter the list of bindings returned.
800
+ // The filter expression must follow AIP-160 syntax.
801
+ string filter = 4 [(google.api.field_behavior) = OPTIONAL];
802
+
803
+ // Optional. Hint for how to order the results
804
+ string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
805
+ }
806
+
807
+ // Message for response to listing Bindings
808
+ message ListBindingsResponse {
809
+ // The list of Binding resources matching the parent and filter criteria in
810
+ // the request. Each Binding resource follows the format:
811
+ // `projects/{project}/locations/{location}/bindings/{binding}`.
812
+ repeated Binding bindings = 1;
813
+
814
+ // A token identifying a page of results the server should return.
815
+ // Used in
816
+ // [page_token][google.cloud.agentregistry.v1main.ListBindingsRequest.page_token].
817
+ string next_page_token = 2;
818
+ }
819
+
820
+ // Message for getting a Binding
821
+ message GetBindingRequest {
822
+ // Required. The name of the Binding.
823
+ // Format: `projects/{project}/locations/{location}/bindings/{binding}`.
824
+ string name = 1 [
825
+ (google.api.field_behavior) = REQUIRED,
826
+ (google.api.resource_reference) = {
827
+ type: "agentregistry.googleapis.com/Binding"
828
+ }
829
+ ];
830
+ }
831
+
832
+ // Message for creating a Binding
833
+ message CreateBindingRequest {
834
+ // Required. The project and location to create the Binding in.
835
+ // Expected format: `projects/{project}/locations/{location}`.
836
+ string parent = 1 [
837
+ (google.api.field_behavior) = REQUIRED,
838
+ (google.api.resource_reference) = {
839
+ child_type: "agentregistry.googleapis.com/Binding"
840
+ }
841
+ ];
842
+
843
+ // Required. The ID to use for the binding, which will become the final
844
+ // component of the binding's resource name.
845
+ //
846
+ // This value should be 4-63 characters, and must conform to RFC-1034.
847
+ // Specifically, it must match the regular expression
848
+ // `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.
849
+ string binding_id = 2 [(google.api.field_behavior) = REQUIRED];
850
+
851
+ // Required. The Binding resource that is being created.
852
+ Binding binding = 3 [(google.api.field_behavior) = REQUIRED];
853
+
854
+ // Optional. An optional request ID to identify requests. Specify a unique
855
+ // request ID so that if you must retry your request, the server will know to
856
+ // ignore the request if it has already been completed. The server will
857
+ // guarantee that for at least 60 minutes since the first request.
858
+ //
859
+ // For example, consider a situation where you make an initial request and the
860
+ // request times out. If you make the request again with the same request
861
+ // ID, the server can check if original operation with the same request ID
862
+ // was received, and if so, will ignore the second request. This prevents
863
+ // clients from accidentally creating duplicate commitments.
864
+ //
865
+ // The request ID must be a valid UUID with the exception that zero UUID is
866
+ // not supported (00000000-0000-0000-0000-000000000000).
867
+ string request_id = 4 [
868
+ (google.api.field_info).format = UUID4,
869
+ (google.api.field_behavior) = OPTIONAL
870
+ ];
871
+ }
872
+
873
+ // Message for updating a Binding
874
+ message UpdateBindingRequest {
875
+ // Required. The Binding resource that is being updated.
876
+ Binding binding = 1 [(google.api.field_behavior) = REQUIRED];
877
+
878
+ // Optional. Field mask is used to specify the fields to be overwritten in the
879
+ // Binding resource by the update.
880
+ // The fields specified in the update_mask are relative to the resource, not
881
+ // the full request. A field will be overwritten if it is in the mask. If the
882
+ // user does not provide a mask then all fields present in the request will be
883
+ // overwritten.
884
+ google.protobuf.FieldMask update_mask = 2
885
+ [(google.api.field_behavior) = OPTIONAL];
886
+
887
+ // Optional. An optional request ID to identify requests. Specify a unique
888
+ // request ID so that if you must retry your request, the server will know to
889
+ // ignore the request if it has already been completed. The server will
890
+ // guarantee that for at least 60 minutes since the first request.
891
+ //
892
+ // For example, consider a situation where you make an initial request and the
893
+ // request times out. If you make the request again with the same request
894
+ // ID, the server can check if original operation with the same request ID
895
+ // was received, and if so, will ignore the second request. This prevents
896
+ // clients from accidentally creating duplicate commitments.
897
+ //
898
+ // The request ID must be a valid UUID with the exception that zero UUID is
899
+ // not supported (00000000-0000-0000-0000-000000000000).
900
+ string request_id = 3 [
901
+ (google.api.field_info).format = UUID4,
902
+ (google.api.field_behavior) = OPTIONAL
903
+ ];
904
+ }
905
+
906
+ // Message for deleting a Binding
907
+ message DeleteBindingRequest {
908
+ // Required. The name of the Binding.
909
+ // Format: `projects/{project}/locations/{location}/bindings/{binding}`.
910
+ string name = 1 [
911
+ (google.api.field_behavior) = REQUIRED,
912
+ (google.api.resource_reference) = {
913
+ type: "agentregistry.googleapis.com/Binding"
914
+ }
915
+ ];
916
+
917
+ // Optional. An optional request ID to identify requests. Specify a unique
918
+ // request ID so that if you must retry your request, the server will know to
919
+ // ignore the request if it has already been completed. The server will
920
+ // guarantee that for at least 60 minutes after the first request.
921
+ //
922
+ // For example, consider a situation where you make an initial request and the
923
+ // request times out. If you make the request again with the same request
924
+ // ID, the server can check if original operation with the same request ID
925
+ // was received, and if so, will ignore the second request. This prevents
926
+ // clients from accidentally creating duplicate commitments.
927
+ //
928
+ // The request ID must be a valid UUID with the exception that zero UUID is
929
+ // not supported (00000000-0000-0000-0000-000000000000).
930
+ string request_id = 2 [
931
+ (google.api.field_info).format = UUID4,
932
+ (google.api.field_behavior) = OPTIONAL
933
+ ];
934
+ }